spring boot8 Spring Data에서 String을 사용하지 않기 개요Spring Data를 사용하여 데이터를 처리한 경험이 있다면. 아래 코드들은 익숙한 코드일 것이다.하지만 DB 스키마가 변경되거나 모델이 변경되는 경우 아래 코드는 컴파일은 문제없이 가능하지만 실제 서비스에 배포해서 실행하게 되면 오류가 발생하는 코드가 된다.Sort.by("name", "age");where("user.type").is(...);기존 Spring Data를 사용하여 쿼리를 코드를 작성할 때 조건식, 정렬 또는 경로 탐색 등 다양한 용도로 도메인 변수를 문자열로 참조하여 작성했다. 하지만 애플리케이션이 시간이 지남에 따라 DB 구조가 변경되는 경우가 많아서 문자열을 사용하여 쿼리를 작성하는 로직에는 분명한 한계가 있었다. 개인적으로는 모델 안에 변수명을 상수로 추가하고 상수를 참조하.. 2026. 10. 15. Spring HttpServiceProxyFactory를 사용하여 설정 오버헤드 줄이기 개요Spring Framework 6에는 @HttpExchnage 어노테이션을 사용하여 Java Interface를 통해 HTTP Client 서비스를 정의하는 기능이 추가되었다. 예를 들면 다음과 같다.public interface UserService { @GetExchange("/users/{id}") User getUSer(@PathVariable String id);} UserSerivce HTTP 요청을 사용하기 위해서는 아래와 같이 Interface로부터 Proxy를 생성해야 사용이 가능하다.// Initialize HTTP clientvar restClient = RestClient.create("https://api.igooo.org");// Create factory for .. 2026. 9. 2. Spring Boot 4.1 Lazy JDBC connection Fetching 개요지난 포스팅(https://blog.igooo.org/191)에 이어 Spring Boot 4.1.0에 포함된 Lazy JDBC connection feting을 사용하여 JDBC를 사용하는 프로젝트에서 성능을 향상하는 방법을 알아보자. spring.datasource.connection-fetch 동작 방식JDBC를 사용하는 프로젝트에서는 Transaction을 사용하여 중요한 비즈니스 로직을 처리하는 경우가 많다. Transaction을 사용하는 경우 보통은 Service 클래스에 @Transactional 어노테이션을 사용하여 트렌젝션의 범위를 지정하여 사용한다. 이때 @Transactional 어노테이션이 지정된 메서드에 시작부터 끝까지 BEGIN, COMMIT이라는 명령 사이에서 메서드의 로.. 2026. 8. 21. Spring Boot 4.1 MongoDB 기반 Spring Batch 개요Spring Boot 4.1.0에 추가된 Spring Batch MongoDB 지원 기능을 알아보자.Spring Batch는 MongoDB가 개발되기 전부터 있던 프로젝트로, Spring Batch 작업의 상태틀 저장할 장소로 SQL 데이터메이스가 있다는 것을 전제로 개발이 되었다. 그래서 현재까지는 SQL 데이터베이스를 사용하지 않는 Spring Batch를 사용한 프로젝트도 SQL 데이터베이스를 연동하여 사용하거나, 별도의 SQL 데이터베이스가 없다면 H2를 사용하여 작업의 상태 정보를 저장해야 했다. 또한 Spring Boot를 사용하는 경우 SQL관련 라이브러리가 추가되면 자동으로 SQL 데이터베이스를 사용하려는 Bean을 생성했다.Spring Batch 6에서 MongoDB(https://d.. 2026. 8. 16. Spring Boot 4 - Jackson JsonView 사용하기 개요Spring Boot 4에는 Jackson 라이브러리의 버전이 3으로 올라갔다. JsonView 어노테이션을 기존 2 버전에서도 사용가능한 기술이었지만 데이터의 일부만 직렬화할 수 있는 새로운 기능이 추가되어 해당 기능을 알아보도록 하자. JsonView가 필요한 경우JsonView는 예를 들어 사용자 API 서비스를 개발하고 있고, 각기 다른 데이터 요구사항을 가진 여러 클라이언트에 API를 제공해야 하는 경우가 있다고 생각해 보자. 각각 모바일 APP, Web, 운영툴 등 각각의 클라이언트는 사용자 API에서 필요한 필드가 모두 다를 것이다. 모바일 APP은 간단한 사용자 정보가 필요하고, 운영툴은 사용자의 모든 정보가 필요할 것이다. JsonView를 사용하지 않고 각각의 클라이언트의 요구사항에.. 2026. 1. 10. Spring Boot 4 모듈화 개요Spring Boot 4.0.0이 2025.11.20 정식으로 출시(https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now)되었고, 많은 변경사항 중 하나인 Modular Spring Boot 4에 대하여 알아보자 A Modular Spring Boot 4Spring Boot 4가 출시되고 큰 변경사항 중 하나는 바로 기존에 단일(monolithic) spring-boot-autoconfigure JAR 파일 대신, 기능을 더 작고 집중된 모듈로 분리하여 각각의 JAR 파일로 제공하는 것이다. 아래는 Spring Boot4와 Spring Boot 3의 spring-boot-autoconfigure JAR 파일에 패키지 구조를 보면 Spri.. 2025. 12. 11. 이전 1 2 다음 728x90