Spring Boot 18

Spring Boot에서 Spring MVC 요청 처리 흐름 한눈에 보기 (DispatcherServlet, HandlerMapping, Filter/Interceptor)

Spring Boot 3.x 기준으로 Spring MVC 요청이 들어온 뒤 DispatcherServlet이 HandlerMapping/HandlerAdapter를 거쳐 컨트롤러를 호출하고 응답이 나가기까지의 흐름과 Filter vs Interceptor 차이를 정리합니다.도입 (문제 상황)Spring Boot로 API를 개발하다 보면 “요청이 컨트롤러까지 오기 전에 어디서 막히지?”, “인터셉터에 넣었는데 왜 인증이 안 먹지?” 같은 상황을 한 번쯤 겪게 됩니다. 로그를 찍어도 호출 순서가 머릿속에 그려지지 않으면, 디버깅이 오래 걸리고 수정도 조심스러워져요.핵심 개념: Spring MVC 요청 처리 흐름에서 꼭 잡아야 할 포인트Spring MVC의 핵심은 Front Controller인 Dispatc..

Spring Boot 2026.03.09

Spring Boot에서 @ConfigurationProperties로 설정을 타입 안전하게 받기 (Value 남용 탈출)

@Value를 남용할 때 생기는 유지보수/검증 문제를 정리하고, Spring Boot 3의 @ConfigurationProperties + Validation로 설정을 타입 안전하게 분리하는 방법을 예제로 보여드립니다.도입 (문제 상황)@Value("${...}")를 여기저기 붙여서 설정을 읽다 보면, 어느 순간 “이 설정이 어디서 쓰이지?”를 추적하기가 꽤 힘들어집니다. 게다가 숫자/URL/시간 같은 값이 문자열로 흘러다니다가 런타임에야 터지는 경우도 자주 보게 됩니다. 설정을 타입 안전하게 받고, 검증까지 한 번에 묶어두는 방법이 필요합니다.핵심 개념 — Spring Boot @ConfigurationProperties가 중요한 이유Spring Boot에서 설정을 다루는 방식은 크게 두 가지로 나뉩니..

Spring Boot 2026.03.08

Spring Boot Bean과 DI(의존성 주입) 핵심만: @Component/@Bean, 생성자 주입, 순환참조

Spring Boot 3에서 Bean 등록 방식(@Component vs @Bean)과 생성자 주입을 권장하는 이유, 그리고 순환참조를 빠르게 진단·해결하는 감을 잡아봅니다.도입 (문제 상황)Spring Boot로 기능을 붙이다 보면 “이 클래스는 @Component 붙이면 되나, @Bean으로 등록해야 하나?” 같은 고민을 자주 하게 됩니다. 또 DI는 되긴 되는데, 왜 다들 “생성자 주입이 정답”이라고 말하는지 근거가 궁금해지기도 해요. 마지막으로 어느 날 갑자기 애플리케이션이 뜨지 않으면서 순환참조 에러가 터지면, 어디부터 봐야 할지 막막해집니다.핵심 개념 — Spring Boot Bean 등록과 DI에서 꼭 알아야 할 것들Spring Boot Bean이란: “스프링 컨테이너가 관리하는 객체”Bea..

Spring Boot 2026.03.08

Spring Boot 로깅 기본: SLF4J + Logback 빠르게 세팅 (레벨/패턴/MDC/마스킹)

Spring Boot 로깅 기본: SLF4J + Logback 빠르게 세팅 (레벨/패턴/MDC/마스킹)Spring Boot 3에서 SLF4J+Logback으로 로그 레벨과 패턴을 정리하고, MDC로 요청 추적을 붙인 뒤 민감정보 마스킹 포인트까지 실무 기준으로 빠르게 세팅합니다.도입 (문제 상황)운영 장애가 났는데 로그에 “뭔가”는 찍혀 있지만, 정작 어떤 요청이었는지 추적이 안 될 때가 있습니다. 반대로 로그를 자세히 찍었더니 비밀번호/토큰 같은 민감정보가 섞여서 보안 이슈가 되기도 해요. 이번 글에서는 Spring Boot에서 SLF4J + Logback을 “딱 실무에서 필요한 만큼” 빠르게 세팅해 봅니다.핵심 개념 — Spring Boot 로깅에서 꼭 잡아야 하는 4가지Spring Boot 3.x는..

Spring Boot 2026.03.07

Spring Boot application.yml 설정 기본기 — properties vs yml, 계층 구조, 타입 바인딩까지

Spring Boot 3.x에서 application.yml을 제대로 쓰기 위한 기본기: properties와의 차이, 계층 구조 설계, @ConfigurationProperties 타입 바인딩, 설정 키 네이밍 팁을 실무 관점으로 정리합니다.1) 도입 (문제 상황)Spring Boot 프로젝트를 시작하면 가장 먼저 만지는 파일이 application.yml인데, 막상 설정이 늘어나면 “이 키를 어디에 둬야 하지?”, “점(.)으로 쓰는 게 맞나, 하이픈(-)이 맞나?” 같은 고민이 생기기 쉽습니다.또 @Value로 여기저기 주입하다가 타입 변환이나 기본값 처리에서 한 번쯤은 삐끗해 보셨을 거예요.2) 핵심 개념 (Spring Boot application.yml 설정을 잘 쓰는 이유)Spring Boo..

Spring Boot 2026.03.06

Spring Boot 프로젝트 구조와 실행 흐름: 메인 클래스부터 @SpringBootApplication까지

Spring Boot 3.x에서 메인 클래스가 실행된 뒤 어떤 순서로 컴포넌트 스캔과 자동 구성(Auto Configuration)이 적용되는지, @SpringBootApplication의 의미를 중심으로 정리합니다.도입 (문제 상황)Spring Initializr로 프로젝트를 만들고 main()을 실행하면 서버가 “알아서” 떠요. 그런데 막상 패키지를 조금만 옮기거나, 빈이 안 잡히는 순간부터 “대체 어디서부터 뭐가 시작되는 거지?”라는 질문이 생깁니다. 이 글에서는 메인 클래스부터 시작해 @SpringBootApplication이 실제로 해주는 일을 실행 흐름 관점에서 잡아드립니다.핵심 개념 (Spring Boot 실행 흐름, @SpringBootApplication, 컴포넌트 스캔, 자동 구성)1)..

Spring Boot 2026.03.05

Spring Boot Spring Initializr로 프로젝트 한방 생성: Gradle/Maven 선택부터 Java 17 설정까지

Spring Initializr로 Spring Boot 3.x 프로젝트를 빠르게 만들고, Gradle/Maven 선택 기준과 스타터 의존성 개념, Java 17 설정 포인트를 정리합니다.도입 (문제 상황)Spring Boot로 시작하려고 하는데 “프로젝트는 어떻게 만들지?”, “Gradle이랑 Maven 중 뭘 골라야 하지?”에서 첫날 시간을 다 쓰는 경우가 많습니다. 게다가 Spring Initializr 화면에서 의존성을 몇 개만 잘못 고르면, 실행은 되는데 나중에 설정 지옥이 시작되기도 해요.핵심 개념 (Spring Initializr, 빌드 도구, 스타터가 중요한 이유)Spring Initializr는 “Spring Boot가 잘 돌아가는 기본 골격”을 안전하게 만들어 주는 생성기입니다. 단순히 ..

Spring Boot 2026.03.05

Spring Boot는 왜 쓰는가? — Spring vs Spring Boot 차이와 실무 포지션

Spring과 Spring Boot의 차이를 “설정/의존성/실행/운영” 관점에서 정리하고, Boot가 실무에서 어떤 문제를 줄여주는지 예제로 설명합니다.도입 (문제 상황)Spring으로 API 서버를 만들려는데, 시작부터 “설정이 너무 많다”는 느낌을 받으실 때가 있어요. 의존성 조합, 웹 서버 연결, 설정 파일, 로깅, 모니터링까지… 기능 개발 전에 준비 작업이 길어지면 속도가 확 떨어집니다. 그래서 많이들 묻습니다. “Spring Boot는 도대체 뭐가 달라서 다들 쓰는 걸까요?”핵심 개념 — Spring vs Spring Boot 차이, Boot가 해결한 것들먼저 용어부터 정리하면, **Spring Framework는 ‘프레임워크(핵심 기능 묶음)’**이고, **Spring Boot는 ‘Spring..

Spring Boot 2026.03.04