분류 전체보기(69)
-
[PersonaAI - 비공개 프로젝트 d-2] 파일다운로드 기능 오작동
파일 다운로드 Back-End단 로직을 구현하고 Front-End 단에서 버튼 클릭으로 호출을 했는데 다운로드가 되지 않았다. 메소드를 안 탔나 확인해 봤지만 메소드도 탔고 Back-End 단에서도 로직이 정상적으로 실행되고 Exception도 뱉지 않았다. 원인을 찾기 위해 개발자도구의 네트워크에 들어가 요청-응답정보를 확인해보는데 200으로 정상 응답이 도착해있었다. 해당 파일명도 떠있길래 더블클릭 해봤더니 다운로드가 된다... 그렇다면 Front단 Back단 모두 코드 로직에서는 틀린게 없었다고 가설을 하고 다른 곳에 문제점을 찾기 시작했다. 크롬 브라우저로 로컬을 테스트해보고 있었는데 브라우져의 문제인가 해서 엣지로 바꿔서 테스트를 해봤다.결과는 이상무 ajax로 요청을 보내고 있었는데 이 설정이..
2024.07.31 -
[SpringBoot] 파일 다운로드 구현
File Download Method웹개발을 하면서 제일 자주 잊어먹고 개발 할때마다 reference를 찾아서 하는 것이 파일 다운로드였다.막상 개발해보면 로직이 어렵지 않지만 어떤 모듈을 써서 개발했는지 헷갈려서 매번 다시 찾아서 했었다. 그렇게 개발하다보니 몇가지 다운로드 구현 방식의 패턴이 보였고직접 사용해 보지 못한 방식까지 찾아서 같이 포스팅한다. 방법 1. HttpServletResponse ( return Type : Void ) 직접 구현해본 다운로드 기능 중 가장 많은 비중을 차지 한 방식이다.이 방식은 Spring Framwork를 사용해보기전 Pure Java로 처음 Java 개발할 때부터 사용한 방식이라 자주 사용한 것 같다. @Controllerpublic class FileC..
2024.07.30 -
[PersonaAI - 비공개 프로젝트 d] myBatis useGeneratedKeys 안될때
회사 솔루션에 새로 들어갈 기능 일부를 맡아서 개발을 시작했다. 내가 맡은 부분은 트리구조로 사용자가 사내 on-premise로 운영중인 서버 내의 NAS 서버 디렉토리 안에 디렉토리를 자유롭게 생성하고 파일을 저장하고 그 파일을 RAG에 자동으로 Embedding 시키는 것 까지가 내 역할이었다. 순조롭게 개발되다가 예상치 못한 부분에서 막혀버렸다. 하지만 파일 저장 후 Embedding을 하는데 예외처리를 하면서 실패/성공 사유를 로그로 쌓으려고 DB에 저장된 파일 정보의 Index를 받아오려했지만 실패한것이다. 해당 솔루션은 속도이슈로 JPA 를 걷어내고 myBatis를 쓰고 있었기 때문에 무난하고 쉽게 insert 태그에 useGeneratedKeys를 활용해서 만들었었다. 디버깅 모드로 확인해 ..
2024.07.25 -
JVM·JRE·JDK 개념 정리
현업에서 Java 프로젝트 세팅을 하면서 간간히 JVM,JRE를 볼때가 있다. 여기 저기 찾아가면서 세팅은 했지만 정확한 개념을 모르니 왜 이렇게 세팅을 해야하는 지 불분명해서 찾아봤다. JVM ( Java Virtual Machine ) JVM을 비유하자면 프로그램이라 할 수 있다. Java는 컴파일 언어이다.그리고 이 컴파일은 Java 코드를 바이너리의 기계어로 바꾸는 작업을 말하고 그 작업을 하는 대상이 컴파일러이다. 이 컴파일되어 바이너리 기계어로 바뀐 자바 코드를 OS등의 컴퓨터의 환경에 맞게 언어가 작동하도록 하는 프로그램인 것이다. 즉, 바이트 프로그램을 돌리기 위한 프로그램이다. JRE ( Java Runtime Environment ) JRE는 말 그대로 자바 런타임 환경이다 Ja..
2024.07.09 -
[OracleDB] SCOTT 계정 활성화 (19c 버전)
오랜만에 sql 공부나 다시 하려고 오라클 다운 받아서 예전 처럼 scott 계정을 활성화 하려 했더니scott계정이 존재하질 않는다... 알고 봤더니 19버전 부터는 scott 계정을 지원하지 않는 거였다....( 대책없이 그냥 최신버전 다운 받았더니 이런일을 겪는다....) 다시 다운 받자니 OracleDB는 삭제 과정이 귀찮고 다운로드 시간도 오래걸리기에 그냥 19버전에서 방법을 찾기로 결심했다. 많은 시도가 있었지만 찾은 방법은 의외로 간단했다.1. SYS 계정으로 접속CMD 창을 열고 다음을 입력sqlplus sys/설정한비밀번호 as sysdba >> 다음에 접속됨: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production..
2024.07.03 -
[기본문법] 2. 변수
C언어의 변수 선언은 Java와 매우 흡사하다. 하지만 몇가지 차이점이 있는데 1) 가비지 컬렉션이 없다 ㄴ> C언어는 garbage collection을 제공하지 않는다. 그래서 초기화가 중요하다. 2) 기본 자료형 long long / long double ㄴ> 8바이트 혹은 그 이상의 크기를 가진 자료형을 가지고 있다. 3) 상수 선언 ㄴ> Java는 상수 선언시 final를 붙이지만 C언어에서는 const로 선언을 한다. int main(){ const int num = 10; int const num2 = 15; } => 위와 같이 const와 자료형의 순서는 상관없다.
2024.04.15