
Spring 의 핵심 개념 중 하나는 바로 Bean 입니다. Bean 은 Spring 컨테이너에 의해 관리되는 객체로, 객체의 라이프사이클과 의존성 주입을 컨트롤할 수 있습니다. 그런데 모든 Bean이 같은 방식으로 동작하지는 않습니다. 이때 Bean 의 생성과 라이프사이클을 결정하는 것이 바로 Bean Scope 입니다.Bean Scope 란?Bean Scope 는 Bean 이 생성되고 관리되는 방식과 생명주기를 정의합니다. Spring 은 기본적으로 Singleton Scope 를 사용하지만 필요에 따라 다른 Scope 로 변경할 수 있습니다. 다음 표는 Spring 에서 제공하는 주요 Bean Scope 입니다.Scope설명singleton기본 스코프, 애플리케이션 컨텍스트당 단 하나의 인스턴스를 ..

Spring 프레임워크를 다루다 보면 가장 자주 마주치게 되는 개념이 바로 IoC(Inversion of Control)와 DI(Dependency Injection)입니다. 그리고 이 개념들을 실질적으로 구현하고 관리하는 핵심 구조가 Spring 컨테이너입니다. Spring , IoC, DI 컨테이너는 개발자들이 비슷한 의미로 혼용해서 사용하는 표현입니다.Spring vs IoC vs DI 컨테이너이 세 가지 용어는 자주 함께 등장하지만 관점에 따라 각각의 의미가 다릅니다.용어설명관점SpringIoC/DI 를 실현하는 Spring 프레임워크의 핵심 구성 요소구현체IoC객체 생성 및 제어 흐름을 외부에 위임하는 설계 원칙설계 철학DI객체가 의존하는 객체를 외부에서 주입받는 방식구현 기법 즉 Spring ..

Java 를 비롯한 현대 프로그래밍 언어는 대부분 객체지향(OOP)을 기반으로 설계됩니다. 개발자는 도메인 모델을 클래스로 정의하고 객체 간의 메시지를 주고받으며 시스템을 구축하게 됩니다.하지만 우리가 데이터를 저장할 때는 여전히 관계형 데이터베이스를 사용합니다. 이는 두 패러다임의 충돌을 야기합니다. 개발자는 데이터를 저장하기 위해 SQL 을 작성하고 객체를 직접 DB 와 연결하는 반복적인 코드를 작성하게 됩니다. 이 과정에서 객체 간의 책임과 협력이라는 객체지향의 핵심이 사라지고 데이터 저장과 조회 중심의 데이터 중심 설계로 바뀌게 됩니다.패러다임 불일치란 무엇일까?객체지향과 관계형 데이터베이스는 전혀 다른 개념과 철학을 기반으로 합니다.이를 흔히 "패러다임 불일치(Paradigm Mismatch)"..