eta_kyung.blog
·16분

스프링 핵심 원리 (15) - 빈 스코프

1. 개요 지금까지 다룬 스프링 빈은 모두 컨테이너가 시작될 때 생성되어 종료될 때까지 유지되는 싱글톤이었다. 하지만 스프링은 이 외에도 빈이 살아있는 범위, 즉 스코프를 다양하게 지정할 수 있게 해준다. 특히 매번 새 인스턴스가 필요한 프로토타입 스코프를 싱글톤 빈과…

·9분

스프링 핵심 원리 (14) - 빈 생명주기 콜백

1. 개요 DB 커넥션 풀이나 네트워크 소켓처럼 외부 자원을 다루는 빈은 "애플리케이션이 뜰 때 연결하고, 종료될 때 끊는" 작업이 필요하다. 그런데 이 연결 작업을 생성자에 그냥 넣으면 문제가 생긴다. 스프링 빈은 객체가 먼저 만들어지고 그 다음에 의존관계(필드 값)…

·8분

스프링 핵심 원리 (13) - List, Map으로 전략 패턴 구현하기와 자동/수동 등록 기준

1. 개요 앞 글에서는 같은 타입의 빈이 여러 개일 때 그중 하나만 골라서 주입받는 방법을 다뤘다. 그런데 반대로 같은 타입의 빈을 하나만 고르는 게 아니라 전부 다 받아서 써야 하는 경우도 있다. 스프링은 이럴 때 List 나 Map 으로 한 번에 주입받는 방법을 지…

·8분

스프링 핵심 원리 (12) - 조회 빈이 2개 이상일 때, @Qualifier와 @Primary

1. 개요 @Autowired 는 타입을 기준으로 스프링 빈을 찾아서 주입한다. 지금까지 예제에서는 인터페이스를 구현한 빈이 하나뿐이었기 때문에 문제가 없었지만, 실무에서는 같은 인터페이스를 구현한 빈이 여러 개 등록되는 경우가 흔하다. 이번 글에서는 타입으로 조회했을…

·7분

스프링 핵심 원리 (10) - 다양한 의존관계 주입 방법과 생성자 주입

1. 개요 앞 글까지는 @Autowired 를 생성자에 붙여서 의존관계를 주입하는 방식만 사용해왔다. 그런데 스프링이 의존관계를 주입하는 방법은 생성자뿐만이 아니다. 크게 네 가지 방법이 있고, 각각 동작 시점과 용도가 다르다. 이번 글에서는 네 가지 주입 방법을 비교…

·5분

스프링 핵심 원리 (6) - 싱글톤 컨테이너

1. 개요 스프링은 대부분 여러 사용자가 동시에 요청을 보내는 웹 애플리케이션에서 사용된다. 그런데 지금까지 만들어 온 순수 자바 DI 컨테이너( AppConfig )는 빈을 요청할 때마다 new 로 객체를 새로 만든다. 트래픽이 많아지면 그만큼 객체가 계속 생성·소멸…

·6분

스프링 핵심 원리 (3) - IoC, DI 컨테이너

1. 개요 이전 글에서 AppConfig 를 만들어 구현 객체를 생성·연결하는 책임을 클라이언트로부터 분리했다. 이번 글에서는 이 변화를 좀 더 일반적인 용어로 정리해본다. AppConfig 가 등장하면서 프로그램의 제어 흐름이 어떻게 바뀌었는지를 제어의 역전(IoC)…

·7분

스프링 핵심 원리 (2) - 관심사의 분리

1. 개요 이전 글에서 좋은 객체 지향 설계의 핵심은 다형성이고, 이를 실제로 잘 활용하기 위한 지침이 SOLID 원칙이라는 것을 정리했다. 이번 글에서는 애플리케이션에 새로운 할인 정책을 추가해보면서 다형성만으로는 OCP와 DIP를 지킬 수 없다는 것을 직접 확인하고…

·7분

Spring (5) - Building an Application with Spring Boot

https://spring.io/guides/gs/spring boot [Spring Boot] 빠르게 웹 애플리케이션 시작하기: 자동 설정부터 Actuator까지 Spring Boot는 개발자가 오직 비즈니스 로직 구현에만 집중할 수 있는 환경을 제공한다. Sprin…

·5분

Spring (4) - Serving Web Content with Spring MVC

https://spring.io/guides/gs/serving web content [Spring Boot] Spring MVC로 웹 콘텐츠 제공하기 (Thymeleaf, DevTools) 스프링 부트(Spring Boot) 환경에서 웹 애플리케이션을 개발할 때 가장…

·4분

Spring (2) - Consuming a RESTful Web Service

https://spring.io/guides/gs/consuming rest 스프링 프레임워크 6.1 및 스프링 부트 3.2부터 기존의 RestTemplate 을 대체할 수 있는 동기식 HTTP 클라이언트인 RestClient 가 도입되었다. Fluent API 스타일…

·6분

Spring (1) - Building a RESTful Web Service

https://spring.io/guides/gs/rest service [Spring Boot] RESTful 웹 서비스 구축하기 (Spring REST API) Spring Boot를 활용하면 복잡한 설정 없이 몇 분 만에 간단한 RESTful Web Service…