본문 바로가기

dev114

Spring Boot 4 - Jackson JsonView 사용하기 개요Spring Boot 4에는 Jackson 라이브러리의 버전이 3으로 올라갔다. JsonView 어노테이션을 기존 2 버전에서도 사용가능한 기술이었지만 데이터의 일부만 직렬화할 수 있는 새로운 기능이 추가되어 해당 기능을 알아보도록 하자. JsonView가 필요한 경우JsonView는 예를 들어 사용자 API 서비스를 개발하고 있고, 각기 다른 데이터 요구사항을 가진 여러 클라이언트에 API를 제공해야 하는 경우가 있다고 생각해 보자. 각각 모바일 APP, Web, 운영툴 등 각각의 클라이언트는 사용자 API에서 필요한 필드가 모두 다를 것이다. 모바일 APP은 간단한 사용자 정보가 필요하고, 운영툴은 사용자의 모든 정보가 필요할 것이다. JsonView를 사용하지 않고 각각의 클라이언트의 요구사항에.. 2026. 1. 10.
RestTestClient를 사용하여 Spring Rest API 테스트 작성하기 개요RestTestClient는 Spring Framework 7에서 새롭게 도입된 통합 테스트 도구로, Spring REST API를 손쉽게 테스트할 수 있게 해 준다. 기존에 MockMvc와 WebTestClient의 장점을 하나로 합쳐 단순하고 직관적인 API를 제공하여 쉽게 테스트를 작성할 수 있게 해 준다.이번 게시글에서는 RestTestClient의 각 상황에 맞는 사용법과 왜 사용해야 하는지에 대하여 알아보자. 자세한 사항은 아래 문서를 참고한다.공식 문서 : https://docs.spring.io/spring-framework/reference/testing/resttestclient.html RestTestClient를 사용해야 하는 이유는 무엇일까?모든 유형의 테스트를 위한 일관된 A.. 2026. 1. 5.
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.
Embabel을 사용하여 AI Agent API로 제공하기 개요이전 포스팅(https://blog.igooo.org/186)에서 Embable을 사용하여 AI Agent를 개발하는 방법에 대하여 알아보았다. 빠르게 Embabel을 알아보기 위해서 Spring Shell을 사용한 간단한 CLI 형태로 예제를 작성했는데 이번에는 AI Agent를 여러 사람에게 쉽게 제공하기 위해서는 API 형태로 제공을 해야 하기 때문에 API로 AI Agent를 제공하는 방법에 대해서 알아보자.Spring Web을 사용하여 API를 제공하고 AI Agent와 연동하는 방법에 대하여 알아본다. Getting Started준비사항이전 포스팅(https://blog.igooo.org/186)을 작성했을 당시 Emababel 버전이 0.1 이었고 현재 작성일(2025-12) 기준으로는 .. 2025. 12. 11.
Embabel을 사용하여 AI Agent 만들기 개요Embabel은 JVM 환경에서 동작하는 AI Agent 프레임웍으로, LLM 기반의 상호작용을 기존의 코드 및 도메인 모델과 자연스럽게 결합하는데 초점을 두고 개발된 프레임워크다. 즉 Java, Kotlin 프로젝트 환경에서 AI Agent를 기존 프로젝트와 쉽게 통합하여 개발할 수 있게 해 준다.핵심적인 특징은 사용자가 요청한 목표를 달성하기 위해 에이전트가 스스로 계획을 세우고 행동한다. 또한 AI 기반의 플래너가 상황에 따라 최적의 행동 순서를 결정하여 사용자의 요청을 처리한다. 또한 Kotlin으로 개발되어 Java, Kotlin으로 개발된 많은 시스템에 통합이 쉽다. 더 자세한 설명은 Rod Johnson이 작성한 블로그를 참고하자.https://medium.com/@springrod/em.. 2025. 10. 4.
Java 25 새로운 기능으로 더 좋은 코드 작성하기 개요JDK 25가 2025/09/16 정식으로 출시(https://openjdk.org/projects/jdk/25/) 되었고 JDK 21부터 JDK 25까지 추가된 특징을 확인하여 더 좋은 코드를 작성할 수 있는 방법에 대하여 알아본다.(참고 : JDK 24에 추가된 기능에 대해서 이전 글을 https://blog.igooo.org/171 참고한다.) Sealed Type에 대한 Switch 표현식Sealed Type에 대하여 switch 구문을 사용하면 견고함과 확장성을 유지하면서도 코드의 다독성을 크게 향상할 수 있다. 아래 예제에는 서버의 응답을 모델링하는 ServerResponse의 sealed 타입이 있다.sealed interface ServerResponse { record Res.. 2025. 9. 19.
728x90