본문 바로가기

개발/Java || Spring9

01. Spring Boot 3.0 시작하기 최근 개인사가 바빠 자기계발에 신경쓰지 못했다. Spring 3.0 버전대가 릴리즈됐고, Java17이 나왔지만 써본적도 없다. 그렇다고 마냥 놀았냐고 하면 그건 아니다. 사내 프로젝트로 메신저 기능을 주도해서 개발하고 있고, 플러터로 기존 앱을 마이그레이션하고 있다. 하지만 역시 내 본분은 백엔드로서 스프링 프레임워크를 다루어야한다고 생각했다. 1. 프로젝트 시작하기 먼저, Spring Initializr(https://start.spring.io/)로 프로젝트를 생성한다. 참고로, Spring Framework 3.0 버전대는 Java 17 이상을 사용해야 한다. - 빌드 및 종속성 관리에는 Gradle을 사용할 것으로, Gradle - Groovy를 선택한다. - 언어는 Java를 사용할 것이므로,.. 2023. 3. 12.
제어의 역전 (Inversion Of Control, IoC) 제어의 역전(IoC)이란? 프로그램의 흐름(객체의 생성, 소멸과 같은 생명주기 등)을 개발자(Application)가 직접 제어하는 것이 아니라 외부(프레임워크)에서 제어할 수 있도록 하는 것입니다. 이를 위해 Spring Framework에서는 Application을 구성하는 객체(Bean)를 관리하는 데에 IoC Container를 이용합니다. 이 IoC Container를 이용하여 DI, AOP가 가능해집니다. 💡 DI는 IoC를 구현하기 위한 디자인 패턴 중 하나입니다. 1. IoC의 구현 1-1. 프로그래머가 직접 제어하는 방식 public class SampleController { private Book book; public SampleController() { this.book = new.. 2022. 11. 2.
의존성 주입 (Dependency Injection, DI) 의존성 주입이란? 객체를 직접 생성하는 것이 아니라 외부에서 생성 및 주입하는 방식을 의미합니다. 이를 통해 각 모듈 간의 결합도는 낮아지고, 유연성은 높아지게 됩니다. 1. Spring에서의 의존성 주입 강한 결합 객체 내부에서 다른 객체를 생성하는 구조를 말합니다. A 클래스에서 B 객체를 생성하고, B 객체를 C 객체로 바꾸려면 A 클래스를 수정해야 하기 때문입니다. 느슨한 결합 외부에서 생성된 객체를 인터페이스를 통해 넘겨받는 구조를 말합니다. 이렇게 하면 결합도를 낮추고, 런타임 시 의존 관계가 결정되기 때문에 유연한 구조를 가지게 됩니다. 이 때, SOLID 원칙 중 Open Closed Principle을 지키기 위해 전략 패턴(생성자 주입)을 사용합니다. 여기서 생성자 주입의 종류로는, F.. 2022. 10. 23.