CodeNexus
메뉴

Spring · Spring Boot 정리 — 33편

Spring 핵심 개념부터 실무 설정까지.

학습 순서

난이도 순으로 읽으면 흐름이 이어집니다.

  1. SpringBoot, JPA, H2를 이용한 간단한API 작성입문
  2. SpringBoot, MongoDB 시작하기입문
  3. [Spring] @SpringBootAppllication 어노테이션에 대한 고찰중급
  4. [Spring]Bean에 대해서 알아보자중급
  5. [Spring] bean circular dependencies (빈 순환 참조)중급
  6. [Spring Boot] 스프링 부트 3가지 특징중급
  7. [Spring] Spring Data Common 프로젝트 살펴보기중급
  8. [Spring] SpringApplication를 통한 코딩중급
  9. [Spring] @ConfigurationProperties를 이용해서 properties값들을 클래스로 관리하기중급
  10. [Spring] 메세지 컨버터중급
  11. [Spring] Profile 설정하기중급
  12. [Spring] MVC 만들어 보기중급
  13. [Spring] DispatcherServlet에 대해서 알아보자중급
  14. Jackson 어노테이션 사용중급
  15. [Spring]HandlerMethodArgumentResolver 인터페이스중급
  16. [Spring] 모델 검증(validation)중급
  17. [Spring] MultipartFile을 이용한 파일 업로드중급
  18. Spring, JPA를 이용한 REST API 만들기중급
  19. Thymeleaf Collection 정보 화면에 렌더링하기중급
  20. Thymeleaf 실무에서 자주 사용하는 것들중급
  21. [Spring] 빈 주입하는 방법 && Best Practice중급
  22. Spring Sentry(에러 트래킹 서비스) 적용하기중급
  23. [Spring Cloud] spring cloud config 간단 예제중급
  24. SpringBoot RabbitMQ 연동하기중급
  25. Spring Boot, Dockerfile로 이미지 생성, 배포하기중급
  26. Jackson, LocalDateTime Serialization, Deserialization 이슈중급
  27. Bean Validation 이슈 (Object Graph)중급
  28. SpringBoot CommandLineRunner, ApplicationRunner 초기화 방법중급
  29. Spring Boot 서버 타임존 설정 방법중급
  30. Spring과 MongoDB 연동 실전 가이드중급
  31. Spring WebFlux 테스트 방법중급
  32. [Spring] MVC 살펴보기심화
  33. Spring Batch 프로젝트 살펴보기심화

자주 묻는 질문

Spring과 Spring Boot는 무엇이 다른가요?

Spring은 DI 컨테이너를 중심으로 한 프레임워크이고, Spring Boot는 그 위에서 자동 설정과 내장 서버, 의존성 묶음(starter)을 제공해 설정을 줄여 주는 도구입니다. Spring Boot를 쓴다고 Spring을 안 쓰는 것이 아니라, Spring을 더 적은 설정으로 쓰는 것입니다.

빈 순환 참조(circular dependency)는 왜 생기고 어떻게 푸나요?

두 빈이 생성자에서 서로를 주입받으면 어느 쪽도 먼저 만들어질 수 없어 발생합니다. 근본 해법은 책임을 분리해 의존 방향을 한쪽으로 정리하는 것이고, 불가피하면 setter 주입이나 @Lazy로 생성 시점을 늦출 수 있습니다.

빈 주입은 생성자와 필드 중 어느 쪽이 좋나요?

생성자 주입이 기본입니다. 필수 의존성이 누락되면 객체 생성 단계에서 바로 드러나고, 필드를 final로 둘 수 있어 불변성이 보장되며, 테스트에서 의존성을 직접 넣기도 쉽습니다.

전체 글 33편

Spring · Spring Boot

Spring WebFlux 테스트 방법

이 블로그에서는 Spring WebFlux의 테스트 방법에 대해 자세히 알아보겠습니다. Spring WebFlux는 Spring Framework 5에서 도입된 리액티브 프로그래밍 모델로서, 비동기적인 웹 애플리케이션을 개발할 수 있게 해줍니다.

레퍼런스중급약 9분#spring#test#webflux

Spring · Spring Boot

Bean Validation 이슈 (Object Graph)

API관련 작업을 하다가, @RequestBody로 매핑된 객체의 필드값을 validaiton하기 위해서 @Valid 어노테이션(JSR-303) 을 적용했지만, 제대로 적용이 되지 않았다. 이에 대한 해결책을 알아보자.

트러블슈팅중급약 6분#bean-validation#hibernate#object-graph

Spring · Spring Boot

SpringBoot RabbitMQ 연동하기

이번시간에는 오픈소스 메세지 브로커인 RabbitMQ를 로컬에 설치하고, Spring Boot 프로젝트를 이용해서 간단하게 메세지를 전송하고, Listening 하는 샘플 프로젝트를 만들어보도록 하겠습니다.

튜토리얼중급약 7분#spring#springboot

Spring · Spring Boot

Jackson 어노테이션 사용

오늘은 Jackson 어노테이션에 대해서 알아보도록 하겠습니다. 다음과 같이 스프링 부트를 사용하면 spring boot starter web 의존성에 jackson databind 라이브러리가 추가 되어 있다.

레퍼런스중급약 4분#jackson

Spring · Spring Boot

[Spring] DispatcherServlet에 대해서 알아보자

DispatcherSevlet의 기본전략과 여러가지 유형에 대해서 알아보자. DispatcherServlet 의 초기화 전략은 다음과 같다. 초기화 구조는 거의다 비슷하기 때문에 여기에서는 initViewResolvers(context) 를 살펴보자.

레퍼런스중급약 9분#spring

Spring · Spring Boot

[Spring] Profile 설정하기

실제 프로젝트에서 dev, stage, production과 같은 개발하는 환경이 다르다. @Profile 어노테이션을 이용해서 다른 profile을 설정하는 방법에 대해서 알아보자.

튜토리얼중급약 4분#spring

Spring · Spring Boot

[Spring] SpringApplication를 통한 코딩

applicationContext가 등록되기 전에 발생한 이벤트를 Listen하는 리스너를 등록하려면 어떻게 해야할까? SampleListner를 만들고, ApplicationListenr 를 구현한다. Generic으로 발생할 이벤트를 명시해 준다.

레퍼런스중급약 2분#spring