
🤔 시작은 작은 의문에서프로젝트에서 API 에러를 통일된 구조로 관리하기 위해 모든 도메인 예외는 ErrorCode 라는 열거형 기반으로 처리하고 있었습니다. 예를 들어 댓글 도메인에서 예외가 발생하면 CommentErrorCode 에 정의된 코드와 메세지를 기반으로 일관된 응답을 내려줍니다.public enum CommentErrorCode implements ErrorCode { COMMENT_NOT_FOUND("댓글을 찾을 수 없습니다.", HttpStatus.NOT_FOUND), INVALID_CONTENT("댓글 내용이 유효하지 않습니다.", HttpStatus.BAD_REQUEST); ...}이 구조는 도메인마다 책임을 분리해서 관리할 수 있다는 점이 유지보수 측면에서 큰 장..

Spring 기반의 백엔드 프로젝트에서 예외 처리는 단순한 오류 대응을 넘어 유지보수성, 디버깅 편의성, 클라이언트와의 명확한 약속을 위해 반드시 체계적으로 설계되어야 합니다. 이번 글에서 도메인별 ErrorCode enum + 도메인별 커스텀 Exception + GlobalExceptionHandler 패턴에 대해 구체적으로 알아보겠습니다.✅ 예외 처리 구조 개요구조 목표도메인별로 에러를 세분화하고 의미 있는 코드를 부여응답 포맷을 통일해 프론트와 명확한 약속 제공예외 메시지를 한 곳에서 관리하여 유지보수 효율 극대화예외 흐름 요약서비스/도메인에서 도메인별 Exception 발생 ↓DomainException 내부에 ErrorCode 포함 (ex: MemberErrorCode, PostError..

Spring 의 핵심 개념 중 하나는 바로 Bean 입니다. Bean 은 Spring 컨테이너에 의해 관리되는 객체로, 객체의 라이프사이클과 의존성 주입을 컨트롤할 수 있습니다. 그런데 모든 Bean이 같은 방식으로 동작하지는 않습니다. 이때 Bean 의 생성과 라이프사이클을 결정하는 것이 바로 Bean Scope 입니다.Bean Scope 란?Bean Scope 는 Bean 이 생성되고 관리되는 방식과 생명주기를 정의합니다. Spring 은 기본적으로 Singleton Scope 를 사용하지만 필요에 따라 다른 Scope 로 변경할 수 있습니다. 다음 표는 Spring 에서 제공하는 주요 Bean Scope 입니다.Scope설명singleton기본 스코프, 애플리케이션 컨텍스트당 단 하나의 인스턴스를 ..

Spring 프레임워크를 다루다 보면 가장 자주 마주치게 되는 개념이 바로 IoC(Inversion of Control)와 DI(Dependency Injection)입니다. 그리고 이 개념들을 실질적으로 구현하고 관리하는 핵심 구조가 Spring 컨테이너입니다. Spring , IoC, DI 컨테이너는 개발자들이 비슷한 의미로 혼용해서 사용하는 표현입니다.Spring vs IoC vs DI 컨테이너이 세 가지 용어는 자주 함께 등장하지만 관점에 따라 각각의 의미가 다릅니다.용어설명관점SpringIoC/DI 를 실현하는 Spring 프레임워크의 핵심 구성 요소구현체IoC객체 생성 및 제어 흐름을 외부에 위임하는 설계 원칙설계 철학DI객체가 의존하는 객체를 외부에서 주입받는 방식구현 기법 즉 Spring ..