헥사고날 아키텍처 2탄: 외부 API 포트와 실패 처리
헥사고날 아키텍처에서 외부 API 호출을 유스케이스 안에 직접 넣으면 업무 규칙과 네트워크 실패가 한 클래스에 섞입니다.이 글은 1탄의 주문 생성 예제에 결제 출력 포트를 추가하고, Spring Boot Java에서 어댑터와 실패 처리를 분리하는 방법을 다룹니다.글을 읽고 나면 외부 API 변경, timeout,...
Latest post
헥사고날 아키텍처는 한 번 패키지를 나누는 것으로 끝나지 않고, 시간이 지나도 경계가 무너지지 않게 지켜야 합니다.이 글은 Spring Boot Java 프로젝트에서 아키텍처 테스트, 이벤트 분리, 관측성, 운영 체크리스트로 포트와 어댑터 구조를 유지하는 방법을 다룹니다.글을 읽고 나면 “잘 만든 예제”를 넘어 팀 프로젝트에서 헥사고날 구조를 어떻게 관리할지 판단할 수 있습니다.
글 읽기Writing
헥사고날 아키텍처에서 외부 API 호출을 유스케이스 안에 직접 넣으면 업무 규칙과 네트워크 실패가 한 클래스에 섞입니다.이 글은 1탄의 주문 생성 예제에 결제 출력 포트를 추가하고, Spring Boot Java에서 어댑터와 실패 처리를 분리하는 방법을 다룹니다.글을 읽고 나면 외부 API 변경, timeout,...
계층형 구조로 시작한 Spring Boot 프로젝트가 커지면 서비스가 Controller, JPA, 외부 API에 쉽게 끌려갑니다.이 글은 헥사고날 아키텍처를 처음 접하는 Java 개발자를 위해 포트와 어댑터를 작은 주문 생성 예제로 설명합니다.글을 읽고 나면 어떤 코드를 안쪽에 두고, 어떤 코드를 바깥쪽으로 밀...
LLM 애플리케이션은 단일 프롬프트에서 시작하지만, 지식·행동·상태·통제가 필요해지면서 여러 구성 요소를 가진 시스템으로 확장됩니다.이 글은 단일 호출, RAG, 도구 사용, 워크플로, 에이전트의 차이를 한 흐름으로 연결하고 Java 예제로 경계를 설명합니다.글을 읽고 나면 유행하는 구조를 그대로 도입하지 않고 ...
AI 코딩 도구는 CRUD와 테스트 초안을 빠르게 만들지만, 운영 환경의 맥락까지 책임지지는 못합니다.이 글은 Spring Boot와 Kubernetes 환경에서 달라진 개발 흐름을 살펴보고, 백엔드 개발자가 어디에 시간을 써야 하는지 정리합니다.핵심은 코드를 더 빨리 입력하는 능력보다 문제를 정의하고 설계와 결...
외부 API마다 반복되는 WebClient 호출 코드는 URL과 HTTP 계약을 알아보기 어렵게 만들고 테스트도 구현 세부사항에 묶이게 합니다.이 글은 2026년 6월 20일 기준 최신 안정판인 Spring Boot 4.1.0에서 HTTP Interface를 WebClient 기반 프록시로 등록하는 방법을 Jav...
WebClient 호출은 몇 줄이면 만들 수 있지만, timeout과 오류 분류가 빠지면 외부 API 장애가 내 서비스의 장애로 번지기 쉽습니다.이 글은 2026년 6월 20일 기준 최신 안정판인 Spring Boot 4.1.0에서 전용 starter, Kotlin 코루틴, 제한적 재시도와 테스트를 한 흐름으로 ...
Spring Boot 4는 단순히 버전 숫자만 오른 릴리스가 아니라 Spring Framework 7, Jakarta EE 11, Jackson 3을 기반으로 생태계를 정리한 큰 변화입니다.이 글은 2026년 6월 20일 기준 최신 안정판인 4.1.0을 기준으로, Boot 3 사용자가 알아야 할 변경점과 새 기능...
LLM 애플리케이션의 흐름이 분기와 반복을 포함하기 시작하면 일반적인 함수 호출만으로는 상태와 실행 경로를 관리하기 어렵습니다.이 글은 LangGraph의 핵심 용어를 State, Node, Edge 중심으로 연결하고, 짧은 Python 예제로 전체 동작을 설명합니다.글을 읽고 나면 LangGraph가 필요한 상...
헥사고날 아키텍처를 적용하면서, 클래스들을 어떤 레이어에 배치해야 할지 고민해본 적 있으신가요?이 글에서는 헥사고날 아키텍처의 핵심 원칙을 이해하고, 다양한 클래스 유형을 올바른 위치에 배치하는 실용적인 방법을 제시합니다.깔끔하고 유지보수하기 쉬운 애플리케이션 구조를 만드는 데 도움이 될 것입니다.
Spring WebFlux에서 예외는 비동기 스트림 환경에서 다뤄야 하므로 기존 MVC와는 다른 패턴과 함수가 필요합니다.본 포스트는 WebFlux에서 임의 예외를 발생시키는 방법과, 실무에서 자주 쓰는 예외 핸들링 함수(onErrorReturn, onErrorResume, doOnError 등)를 Kotlin ...
Spring WebFlux는 비동기 논블로킹 리액티브 프로그래밍을 위한 스프링의 핵심 모듈입니다.본 포스트에서는 WebFlux의 주요 함수와 실전 예제를 초보자도 이해할 수 있도록 쉽게 설명합니다.Kotlin 기반의 전체 예제 코드와 함께, 실무에서 바로 쓸 수 있는 팁과 구조적 설명을 제공합니다.