Study/Spring 12

[Spring] 의존성 주입(Dependency Injection) 방법

오늘은 의존성 주입이 무엇인지, 그리고 주입 방법에 대해 간단하게 정리해보려고 한다. 우선, 의존성 주입에 대해 알아보기 전에 의존관계란 무엇인지 알아야 한다. 의존관계는 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 객체들은 서로 상호작용하고 협력하며 프로그램을 구성한다. 이때, 한 객체가 다른 객체 없이 작동할 수 없거나 다른 객체에 의존할 때, 이를 의존관계라고 한다. 쉽게 말해 A와 B가 의존관계에 있다면, B가 변경되면 A도 영향을 받는다. 의존성 주입 🔸객체를 직접 생성하는 것이 아닌 외부에서 생성한 후 주입시키는 방식이다. 스프링에서는 이러한 기능을 담당하는 DI 컨테이너가 존재하고, DI 컨테이너는 객체들 간의 의존관계를 주입한다. 의존성 주입을 하면 객체의 결합도를 줄일 수 있고, 유..

Study/Spring 2024.04.08

[Spring] 싱글톤 패턴과 싱글톤 컨테이너

오늘은 싱글톤 패턴과 싱글톤 컨테이너에 대해 정리해보려고 한다. 대부분의 스프링 애플리케이션은 웹 애플리케이션으로, 보통 여러 고객이 동시에 요청을 한다.만약 고객이 요청할 때마다 객체를 새로 생성한다면 메모리 낭비가 심할 것이다.그렇기 때문에 해당 객체가 딱 1개만 생성되고 공유하도록 설계해야 한다. 싱글톤 패턴🔸 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 싱글톤 패턴 구현 예시public class SingletonService { // 1. static 영역에 객체를 딱 1개만 생성 private static final SingletonService instance = new SingletonService(); // 2. public으로 열어서 객체 인..

Study/Spring 2024.04.03

[Spring] AOP 개념 및 적용

오늘은 AOP에 대해 알아보고, 실제 프로젝트에서 어떻게 적용했는지 정리해보려고 한다. 우선, 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능 : 해당 객체가 제공하는 고유의 기능 부가 기능 : 핵심 기능을 보조하기 위해 제공되는 기능 - 로그 추적 로직, 트랜잭션 부가 기능은 횡단 관심사로 쉽게 이야기해서 하나의 부가 기능이 여러 곳에 동일하게 사용된다는 뜻이다. 이러한 부가 기능을 여러 곳에 적용하려면 아주 많은 반복이 필요하다. 더 큰 문제는 수정이다. 중복 코드를 만들어 내기 때문에 변경할 때 많은 수정이 필요하다. 또한, 비즈니스 로직과 같이 있으면 코드에 대한 이해가 어려워진다는 문제가 있다. AOP (Aspect-Oriented Programming) 🔸관점 지..

Study/Spring 2024.04.01