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

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

Programming/JPA ⁄ Spring 2025.02.28
[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
Spring 6의 HTTP Interface

IntroSpring Framework 6.1 에서 새롭게 등장한 HTTP Interface는 외부 API를 호출하고 데이터를 처리하는 과정을 아주 단순하게 해준다.기존에도 RestTemplate, WebClient 등의 강력한 도구들이 있었지만, Feign Client 에서 영감을 받은 선언적 인터페이스 방식의 HTTP Interface는 간결한 코드로 손쉽게 사용할 수 있다.이번 글에서는 스프링에서 외부 API 호출을 어떻게 진화시켜왔는지 살펴보고, 마지막으로 HTTP Interface를 활용해 간단히 외부 API 요청을 처리하는 방법을 알아본다. 실습에 앞서 스프링부트 프로젝트를 생성해주자.스프링부트 버전은 꼭 3.1+ 해줘야 Http Interface를 사용할 수 있다. Dependencies에 ..

Programming/JPA ⁄ Spring 2024.11.26
Gradle Wrapper 버전이 낮아서 JDK 21 지원을 안한다면

Intro프로젝트의 Spring boot 버전을 3.2.5 에서 3.3.5로 업데이트 하는 김에 사용하는 JDK도 17 에서 21로 업데이트 하려고 했다.그런데 사용중인 Gradle 의 버전이 낮다 보니 바로 변경되지는 않았다.코틀린 버전도 JDK 21을 지원하는 버전이 아니여서 업그레이드가 필요했는데, 전체적으로 겪었던 내용들을 정리해본다.JAVA 21을 지원하지 않음.GradleJDK 18 까지만 지원을 하는 Gradle을 사용하고 있다.제일 먼저 gradle의 업그레이드가 필요했다.지금 쓰는 버전을 확인 해 본다../gradlew --verson 확인 결과 굉장히 오래된 7.5 버전을 사용중이다.아래의 명령어로 원하는 gradle 버전으로 업데이트 할 수 있다. 처음에는 아래와 같이 8.3으로 업데..

Programming/Java 2024.11.20
자바스크립트로 이미지에 워터마크 추가하기

Intro이미지에 워터마크를 추가하는 것은 저작권 보호나 브랜드 표시를 위해 필요한 작업이다. 예전에는 포토샵같은 이미지 편집 툴이 필요했지만, 이제는 자바스크립트만으로도 간단하게 워터마크를 추가할 수 있다. 이번 글에서는 HTML과 자바스크립트를 활용해 이미지를 웹 브라우저에서 직접 처리하고 워터마크를 삽입하는 방법을 알아본다.Canvas이번 워터마크 추가에 사용하는 기술은 HTML5의 다. canvas는 픽셀 단위로 이미지를 그리고 수정할 수 있는 도구이며, 다음과 같은 과정을 통해 워터마크를 삽입할 예정이다.를 생성하고, 이미지 파일을 불러와 그대로 그린다.텍스트나 워터마크 이미지를 원하는 위치에 추가한다.canvas의 결과를 다시 이미지로 변환한다.이를 통해 별도의 서버나 이미지 편집 프로그램 ..

Programming/javascrlpt 2024.11.19