[Spring Boot] Spring AI 활용해 LLM과 연동하기

IntroDeepseek를 테스트 해보고 리소스 대비 대단한 성능에 감탄을 했고, 그 이후로 항상 개인적으로 진행 중인 프로젝트에서도 하나씩 LLM을 연동한 기능을 추가하려고 생각해왔다. LLM을 적용해 가치를 만들어낼 수 있는 분야는 너무나도 다양하다.튜토리얼 수준으로 진행할 예정이기에 원래는 로컬에서 DeepSeek R-1의 8B 정도의 모델을 돌려서 처리하려 했지만, 아쉽게도 몇 번의 테스트 결과 해결되지 않는 한글 처리 이슈가 있었다. 응답이 오래 걸리는건 스케줄러로 처리하도록 하면 어느정도는 해결 가능하지만, 정확도는 타협할 수 없는 부분이다. 32B 이상 모델은 사용해야 한글도 원활하게 소화해내는걸로 보이는데 집에서 열심히 돌아가고 있는 서버 노트북 스펙은 그 정도를 감당할 수준이 아니다.그래..

Programming/JPA ⁄ Spring 2025.02.28
PostgreSQL CVE-2025-1094 대응 마이그레이션

Intro최근 PostgreSQL에서 심각한 보안 취약점인 CVE-2025-1094가 발견되었다. 이 취약점은 특정 상황에서 SQL 인젝션 공격이 가능하도록 만드는 치명적인 문제로, PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), PQescapeStringConn() 같은 libpq 함수들이 따옴표 구문을 제대로 처리하지 못하는 데서 비롯되었다.PostgreSQL 17.3, 16.7, 15.11, 14.16, 13.19 이전 버전이 영향을 받으며, PostgreSQL 개발팀은 2025년 2월 13일 해당 취약점을 해결한 보안 패치를 발표했다.https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageInd..

Data/PostgreSQL 2025.02.27
[Spring Boot] 정적 파일 캐싱 및 자동 버전 관리 설정

Intro웹 애플리케이션에서 정적 파일(이미지, CSS, JS 등)의 성능 최적화는 중요하다. 캐시를 활용하면 불필요한 네트워크 요청을 줄여서 성능을 개선할 수 있으며, 파일의 버전 관리를 자동화하면 배포할 때 브라우저가 새로운 리소스를 제대로 가져오게 만들 수 있다. 잘못 캐시해두면 기껏 새로운 정적 파일을 배포했지만 사용자들은 브라우저에 캐시된 엉뚱한 정적자원을 활용하는 사태가 벌어진다.Spring Boot에서는 spring.web.resources.cache.period 및 spring.web.resources.chain.strategy.content.enabled 설정을 활용하면 정적 파일의 캐싱과 버전 관리를 쉽게 적용할 수 있다.이번 글에서는 새로운 Spring Boot 프로젝트를 생성하고, ..

Programming/JPA ⁄ Spring 2025.02.13
MySQL 이모지 저장되지 않는 문제 해결

Intro데이터베이스에 이모지가 포함된 텍스트 데이터를 저장하려 했더니 다음과 같은 에러가 발생했다.org.springframework.orm.jpa.JpaSystemException: could not execute statement [Incorrect string value: '\xF0\x9F\x91\x89 \xEC...' for column 'content' at row 1] INSERT할 때 Incorrect string value 오류가 발생한 것이다. 문자셋은 utf8mb4로 제대로 설정되어있었는데 어떤 문제가 있었는지 알아보자.원인 찾기데이터베이스의 문자셋과 Collation 확인SELECT schema_name AS database_name, default_character_se..

Data/MYSQL ⁄ MariaDB 2025.02.10
Deepseek r1 모델을 로컬에서 돌려보자

Intro이전 글에서 LLAMA3 로컬 설치 실행 및 테스트 를 해보았다. 최근 제한된 자원으로 뛰어난 성능을 발휘하는 LLM인 Deepseek가 화제다. X(Twitter) 에서 관련 글이 잔뜩 올라오기 시작하더니 얼마 지나지 않아 주식시장에서 엄청난 파장을 일으키는 바람에 모든 사람들이 다 알게 되었다. 안그래도 제한된 자원으로 자체적으로 LLM을 구축하자니 성능이 아쉽고 컴퓨팅파워가 너무 많이 들어가고 그렇다고 상용모델(OpenAI)을 사용하자니 비용이 부담되는 상황에서 굉장히 솔깃한 내용이다.특히 R1 모델의 경우에는 믿거나 말거나 겨우 80억의 비용으로 o1 모델에 대적하는 성능을 만들어냈다는데 뉴스에서는 검열이니 중국이라 믿을 수 없다느니 이상한 소리만 해댄다. 애초에 오픈소스 대형 언어모델로..

Data/LLM 2025.02.02