본문 바로가기
반응형

전체 글95

[스프링 1-4] 스프링 IOC 컨테이너, 싱글톤 레지스트리 (feat. Kotlin) 이전 포스팅 동일타입 빈이 여러개인 경우에 이어 이번 포스팅에서는 스프링의 IOC Context와 싱글톤 레지스트리에 대해 알아보겠다. 목차 관심사의 분리 상속보다 합성 IOC/DI DIP 동일 타입 빈이 여러개인 경우 빈 이름 중복 DI 구현 방법 스프링의 IOC Context 싱글톤 레지스트리 스프링의 IOC Context는 스프링 빈을 생성 관리하는 컨텍스트이다. 스프링 빈이란 스프링에서 생성하고 제어권을 가지고 관리하는 객체를 말한다. 즉, 스프링 IOC Context가 빈을 생성하고 DI 객체를 결정하고 DI를 하는 것이다. 우선 스프링 IOC Context에서 접근하여 스프링의 모든 빈이 등록되어있는지 확인하겠다. @SpringBootTest class IocContextTest { @Auto.. 2024. 2. 4.
[스프링 1-3] 동일 타입 빈 여러개(@Qualifier, @Primary), 빈 이름 중복, DI 구현 방법(생성자, 필드, 세터 주입) 이전 포스팅 IOC/DI와 DIP에 이어 이번 포스팅에서는 동일 타입 빈이 여러개, 빈 이름 중복, DI 구현 방법에 대해 알아보겠다. 목차 관심사의 분리 상속보다 합성 IOC/DI DIP 동일 타입 빈이 여러개인 경우 빈 이름 중복 DI 구현 방법 스프링의 IOC Context 싱글톤 레지스트리 동일 타입 빈이 여러개인 경우 주입되는 빈 기준 @Autowired를 통한 빈 주입 기준은 아래와 같다. 타입 기준 이름 기준 의존 주입 시 해당 클래스 타입의 스프링 빈을 찾고 존재하지 않으면 이름을 기준으로 빈을 찾는다. 이때, 해당 클래스 타입 또는 이름에 해당하는 객체가 없다면 에러를 발생시킨다. 또한 해당 클래스 타입에 존재하는 스프링 빈이 여러개이면 이름이 일치하는 것을 찾는데 이때 이름이 일치하는 .. 2024. 1. 2.
[스프링 1-2] IOC/DI와 DIP 이전 포스팅에서 관심사의 분리와 상속보다 합성에 대해서 다루었다. 이번 포스팅에서는 IOC/DI와 DIP에 대해 알아보겠다. 목차 관심사의 분리 상속보다 합성 IOC/DI DIP 동일 타입 빈이 여러개인 경우 빈 이름 중복 DI 구현 방법 스프링의 IOC Context 싱글톤 레지스트리 IOC(Inversion of Control, 제어의 역전) 제어의 역전이란 프로그램의 제어 흐름 구조가 뒤바뀌는 것이다. 프로그램의 제어권이 개발자가 작성한 코드에 있는 것이 아니라 외부에 존재하는 것을 말한다. 이때 프로그램의 제어권에 포함되는 내용은 사용할 객체 결정, 객체 생성, 메서드 호출 등 프로그래밍 언어로 표현할 수 있는 모든 행위를 포함한다. 제어의 역전을 통해 제어권을 외부에 넘긴다는 것은 그에 대한 책.. 2023. 12. 31.
[진행중]상속보다 합성을(composition over inheritance) 메서드 수준에서 관심사 분리 메서드가 하나의 관심사만 갖도록 분리하자는 내용이다. class GiveawayMachine { fun `당첨번호로 당첨고객 추출`() { // 당첨 번호 추출 val 추첨번호 = (0..9).map { (0..9).random() } // api 요청으로 고객 정보 추출 로직 val customRequest = HttpCustomRequest("https://www.mycorp.com") customRequest.setParameter("추첨번호", 추첨번호.toString()) val CustomInfo = customRequest.get() customRequest.close() } fun `당첨코드로 당첨고객 추출`() { // 당첨 코드 추출 val chars = (.. 2023. 12. 31.
반응형