dev/spring37 Spring Boot ShedLock in Action (with MongoDB) https://github.com/igooo/tutorials/tree/main/spring-boot-3.4/shedlock-mongo개요Spring Boot를 사용하여 프로젝트를 진행할 때 간단한 예약 작업은 @Scheduled 어노테이션을 사용하여 간단하게 처리할 수 있다. @Scheduled 로직을 실행하는 서버가 1개인 경우에는 아무런 고민 없이 사용가능하지만, 고가용성을 위하여 2개 이상 서버를 실행하는 경우에는 @Scheduled의 로직이 중복으로 실행되어 개발자가 의도하지 않거나 예측하지 못한 결과가 발생할 수 있다.ShedLock을(https://github.com/lukas-krecan/ShedLock) 사용하면 @Schedule을 사용하여 작성된 로직이 여러 서버에서 실행되더라도 동시에.. 2025. 3. 18. Spring Boot를 사용하여 MongoDB Auto-Generated Field 사용하기 개요MongoDB를 사용하면 _id 필드에 대하여 ObjectId를 사용하도록 권장하고 있지만, 다른 DB에서 데이터를 마이그레이션 하거나 데이터 구조상 _id의 값을 Number 형태의 값을 사용해야 하는 경우는 별도의 처리가 필요하다. JPA는 @GeneratedValue를 사용하여 Auto Increment Key 방식을 지원해 주지만 MongoDB의 경우에는 어떻게 처리해야 하는지 알아보자. Getting started프로젝트 설정Spring Boot 프로젝트를 생성하면서 MongoDB 의존성을 추가해 준다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' ......} 상품 .. 2025. 3. 12. Spring AI를 사용하여 당근 상품 등록 기능 개발하기 개요당근 앱을 사용하다 보면 많은 부분에서 AI를 사용하여 상품 정보를 쉽게 등록하게 해 주거나 사용자가 입력한 정보를 사용하여 관련 있는 광고를 노출해주고 있는 것을 볼 수 있다. 이전 포스팅에서 Spring AI를(https://blog.igooo.org/162) 사용하여 간단하게 AI를 연동하는 방법을 알아봤는데 이번 포스팅에서는 기능을 더 추가하여 당근 앱에서 사용하는 기능을 구현해 본다. Getting startedSpring InitializrAI 연동을 위해서 OpenAI를 추가하고, Frontend를 위해서 간단한 Vaandi 의존성을 추가하여 프로젝트를 생성한다. Config application.properties예제에서는 OpenAI를 사용하고 gpt-4o 모델을 사용한다.vaadin.. 2025. 2. 16. Spring boot devtools 개요Spring Boot에는 개발 경험을 조금 더 즐겁게 만들어 줄 수 있는 spring-boot-devtools 모듈을 제공한다. Devtools는 모든 개발 프로젝트에 추가할 수 있으며, 개발 시점에 추가적인 기능을 제공한다. 사용방법Maven org.springframework.boot spring-boot-devtools true Gradledependencies { developmentOnly("org.springframework.boot:spring-boot-devtools")} 주의사항spring-boot-devtools는 다중 모듈 프로젝트에서 클래스 로드 등 문제가 발생할 수 있다. spring-boot-devtools는 패키징 된 애플리케이션을 실행할 때는 자동으로 비활성화한다.. 2025. 2. 7. Spring AI 영수증 이미지 처리하기 개요Spring AI를 사용하여 영수증 이미지 파일에 총액과 상품 정보를 조회하여 화면에 출력하는 기능을 개발한다.Spring AI와 OpenAI를 사용하면 매우 적은 코드로 간단하게 AI기능을 구현할 수 있다. Getting startedSpring InitializrAI 연동을 위해서 OpenAI를 추가하고, Frontend를 위해서 간단한 Vaandi 의존성을 추가하여 프로젝트를 생성한다. Config application.properties이미지 파일 업로드를 위해서 multipart 업로드 사이즈를 설정한다.OpenAI와 연동을 위해서 사용하는 모델과 API Key를 입력한다.(참고 https://blog.igooo.org/150)spring.application.name=ai-receiptva.. 2025. 1. 21. Spring Boot + Testcontainers 테스트 빠르게 실행하기 개요Spring Boot 3.1.0에서는 로컬 개발, 테스트를 간소화하기 위해 Docker container를 사용한 테스트인 Testcontainers에(https://docs.spring.io/spring-boot/reference/testing/testcontainers.html) 대한 지원이 추가되었다. Testcontainers는 Mock객체를 활용한 테스트를 작성하는 대신 실제 종속성을 사용하여 테스트를 작성하는데 도움이 되지만 실제 Docker container를 사용하는 테스트를 실행하므로 Mock을 사용한 테스트보다는 테스트 시간이 증가할 수 있다. 아래 내용 등을 통해 Testcontainers를 사용하면서 테스트 실행 시간을 줄이는 방법과 장단점에 대하여 알아본다. Pre-requis.. 2025. 1. 16. 이전 1 2 3 4 ··· 7 다음