분류 전체보기136 LLM + RAG 프로젝트 [2] 아키텍쳐 설계 구현에 들어가기 앞서 아키텍쳐부터 확정짓고 가기로 했다.우선 mermaid 문법을 모르기에.. GPT를 써서 빠르게 시퀀스 다이어그램부터 완성했다. 사용자 -> FastAPI 까지의 시퀀스와 FastAPI 내부의 시퀀스를 나누었다. 우선은 사용자 -> FastAPI 까지의 시퀀스 다이어그램이다.개인 프로젝트임에도 욕심이 가득한게 보인다.특정 도메인에 내 취향이 잔뜩 담긴 프로젝트지만 이왕 하는거 실 서비스에 가깝게 만들어 보려고 한다. 우선 리버스 프록시 역할을 할 미들웨어가 필요했다.단순 react - FastAPI 연결을 했다가는 예상치 못한 무수한 요청에 무의미한 API 호출로 지갑이 거덜날까 무서워, Spring으로 미들웨어를 구축하며, 세션 베이스 사용자 인증 로직도 추가하기로 했다. 물론 id.. 2025. 6. 23. LLM + RAG 프로젝트 [1] 포트폴리오의 큰 가닥을 잡았다.프로젝트 제목은 LLM 기반 RAG 구조를 적용한, 특정 비정형 도메인에 최적화된 정보 검색 및 근거 기반 질의응답 서비스이다. 하지만 이제 특정 비정형 도메인이 애니메이션을 포함하는 서브컬쳐가 될 예정이다. 뉴스를 활용하기에는 저작권, 개인정보 위험성이 있어 뉴스는 배제했다.AIHub나 Kaggle을 찾아봤지만 마음에 드는, 딱 끌리는 도메인과 데이터가 없어서 직접 원하는 도메인의 데이터를 추출해 사용하기로 했다. 정한 도메인은 바로 애니메이션 + 서브컬쳐. 챗 GPT에 물어보면 뭐랄까 진짜 너무 제너럴하고 슴슴한 답변만 줘서 인물의 설정, 작품의 배경, 원작과 차이점, 인물 간 관계 이런걸 유사도 검색으로 LLM에 집어넣어가지고아주 디테일한 질문, 관점 차이에 따라 바뀌.. 2025. 6. 18. LLM + RAG 프로젝트 시작 [0] 회사에 다니고 있지만, 파이썬 기술스택을 완전히 놓치는 건 너무 아쉬웠다.그래서 오랜만에 사이드 프로젝트를 하나 시작해보기로 했다.예전에 만들어둔 프로젝트들을 뒤적이다가 눈에 띈 건, 일별로 꽤 오랫동안 크롤링해둔 뉴스 헤더 데이터였다.처음엔 이 데이터를 가지고 감정분석을 통해 사회적 지표와 상관관계를 보려는 시도를 했었지만, 당시엔 단순 키워드 하드코딩 수준의 분석이라 유의미한 결과는 얻지 못했다. 그러다 다시 보니, 생각보다 방대한 시계열 데이터가 모여 있었다.최근엔 조금 뜸했지만, 이걸 잘 활용하면 LLM + RAG 구조로 꽤 흥미로운 실험이 가능하겠다는 생각이 들었다. 간단한 목표부터 잡았다.“뉴스 헤더 데이터를 기반으로, 특정 시기의 주요 이슈를 추출해보자.”이걸 위해 사용할 스택은 다음과 같.. 2025. 6. 15. 파티션 나눠진 부팅 USB 포맷하기. 윈도우 + R 혹은 윈도우 검색으로 CMD를 실행시킨다. diskpartlist diskselect disk{n}clean create partition primaryformat quick fs=ntfs 우선 전체적인 실행 명령어는 위와 같다. diskpart 에 진입하여 list disk 명령어를 사용하면 아래와 같이 나온다. 원하는 디스크, 대용량 USB나 외장하드라면 잘 파악해야 할듯... 이렇게 디스크를 선택 한 후 list disk 명령어를 다시 사용하면 친?절?하게도 어떤 디스크를 선택했는지 좌측에 별표로 보여준다. 이어 cleancreate partition primary 명령어를 실행해주고 format 명령어로 포맷을 해주면 사용이 가능하다.ntfs가 아니라 fat32도 가능하다. pr.. 2025. 4. 8. 서비스 중인 DB가 터졌다. (Tibero 5) 사실 터진건 저번주 금요일이다.터졌다고 표현하는게 맞을까? Out of memory 이슈로 tibero5.b 서비스를 재시작 하게 되었다.기기 자체가 나보다 나이가 많기에 DB가 올라가있는 서버를 재부팅하기에는 무서워서 DB 프로세스, 티베로만 재부팅 진행했다.tbdown 실행하고 tbboot를 실행했다.소름이 돋고 손에 땀이나고 다리가 떨리고 식은땀이 흘렀다.tbdown은 되었지만 tbboot가 에러를 내뿜으며 실행되지 않았다.c1.ctl , c2.ctl을 찾지 못해 실행이 되지 않았다.나는 여기서 왜 사람들이 대기업 대기업 하는지를 깨달았다.DB에 문제가 생기고 서비스에 지장이 가자마자 순식간에 많은일이 진행되었다.하청에 근무함에도 불구하고 귀중한 경험이었다.개발자 네트워크의 중요성을 깨달았다.5분도.. 2025. 2. 27. Q4 Google Cloud Technical Series 후기 첫째날과 둘째날 모두 초반에는 신규 하드웨어, 인프라 관련 내용이었다.6세대 TPU와 더 강력해진 클라우드 컴퓨팅 성능 중-후반에는 실제 사용 사례, 환경 구축 Demo가 있었다. 발표 자료, 내용은 해당 페이지에서 확인 가능하다.https://cloudonair.withgoogle.com/events/summit-apac-app-dev-infrastructure-24/resources# Cloud Technical Series - App Dev & Infra editionJoin Industry experts who will share success stories, proven strategies, best practices and engage with the cloud community at this.. 2024. 12. 6. JpaRepository에 정의되지 않은 메소드 사용법 JPA 레퍼런스를 보았을 때 findAllBy... findBy...... get... 엄청 많았다.하지만 이것들만 가지고는 SQL의 where절 조건 걸어 조회하거나 업데이트 하는게 불가능해 보여서 추가로 조사를 진행했다. 메소드의 이름으로 조건을 줄 수 있다고 한다. 예를들면 레퍼런스에 findAllById 라는 항목이 있는데 Id가 고정된것이 아닌 유동적으로 변경이 가능하다.findAllById를 SQL로 바꿔보면SELECT * FROM {tableName} where ID;//만약 ID가 리스트 타입이라면SELECt * FROM {tableName} where ID in [{ListAttribute1}, {ListAttribute2}, ...];이런식으로 JPA가 쿼리문으로 작성하는 것 같다. 하.. 2024. 11. 19. Spring Annotation 컨닝페이퍼 스프링에서 제공하는 주요 어노테이션 정리단순 데이터 뭉치로 빈약한 설명, 부정확할 가능성 있음컴포넌트 스캔 및 빈 등록 관련 어노테이션@Component : 일반적인 스프링 빈으로 등록할 때 사용@Service : 비즈니스 로직을 처리하는 클래스에 사용@Repository : DB와 연동되는 클래스에 사용@Controller, @Restcontroller : 웹 요청을 처리하는 클래스에 사용의존성 주입(DI) 관련 어노테이션@Autowired : 필드, 생성자, 메소드에 의존성을 주입할 때 사용@Qualifier : 같은 타입의 여러 빈 중에서 특정 빈을 선택할 때 사용.@Inject / @Resource : DI를 위한 다른 방식의 어노테이션(Jakarta 및 JSR-330 표준)으로@Autowired.. 2024. 10. 21. Spring Bean 클래스들을 스프링 컨테이너에 스프링 빈으로 등록해서 애플리케이션을 실행한다는걸 알았다.그럼 모든 클래스를 등록해야 할까? 어떻게 등록해야 할까? 같은 의문들이 생겨서 GPT를 비롯하여 구글링 한 결과를 정리하려고 한다. 첫번째 의문에 대한 결과는 당연하게도스프링 컨테이너에 모든 빈을 등록하는것은 아니었다.자동으로 빈을 등록하고 생성해서 애플리케이션을 관리해주는것도 아니었다.이 부분이 쿠버네티스의 마스터노드 - 파드와 차이점이었다. 스프링 컨테이너에 빈을 등록하는 방법어노테이션 기반 등록 - @Component, @Service, @Repository, @Controller 같은 어노테이션을 클래스에 붙이면스프링이 해당 클래스들을 스캔해서 알아서 빈으로 등록해준다.Java 설정 클래스- @Configur.. 2024. 10. 21. 이전 1 2 3 4 ··· 16 다음