본문 바로가기

전체 글85

의존성 주입(Dependency Injection)(의존성 주입_XML) 지난 번에는 의존 관계에 대하여 알아보았다. 그렇다면 이번에는 스프링을 통한 의존성 주입에 대해 알아보자. 객체 간의 의존성을 가지는 관계는 객체 내부에서 직접 호출(new 클래스명)하는 대신, 스프링 컨테이너를 통해 외부에서 객체르 생성해서 넣어주는 방식이 바로 스프링의 의존성 주입이다. public interface Computer{ void coding(); } public class Laptop implements Computer{ @Override public void coding(){} } public class Desktop implements Computer{ @Override public void coding(){} } public class Programmer{ private Compu.. 2023. 4. 11.
의존성 주입(Dependency Injection)(강하고 느슨한 결합 관계) 우선 의존성에 대해 알아보자. 예를 들어 A와 B가 있다고 했을 때, A가 수정되었을 때, B 또한 이 영향을 받는다는 것. 이것이 바로 의존성을 갖는 것이다. 의존성을 갖는 관계에서는 또 강한 결합과 느슨한 결합이라는 관계로 나뉜다. 강한 결합 관계는 구현 클래스를 직접 참고하는 것이다. public class Desktop{ public void CodingDesktop(){}; } public class Programmer { private Desktop Computer; public void code(){ Desktop.CodingDesktop(); } } 위와 같이 Programmer 클래스는 Desktop이라는 구현된 클래스를 직접 참조하고 있기 때문에 강한 결합 상태라고 할 수 있다. 하지만.. 2023. 4. 11.
제어의 역전(Inversion of Control) 제어의 역전, 멋있는 문장이다. 스프링을 공부하다보면 자주 등장하는 것이 Spring IoC Container다. 여기서 IoC가 바로 제어의 역전을 의미한다. 이 멋있는 문장, '제어의 역전'이란 무엇일까? 의존성 주입을 이해하기 위해서는 우선 제어의 역전에 대해 알아야 한다. 자바에서는 new 연산자를 통해 객체를 생성하고, 객체 간의 결합 관계를 형성하고, 초기화를 해주는 등, 개발자가 직접 객체를 제어해야 했다. 하지만 Spring에서는 다양한 방식으로 객체를 등록하면 이를 스프링 컨테이너에서 생명주기를 전부 관리해주게 되었다. 여기서 Spring에 등록한 객체가 바로 Bean!! 이고, 이 Bean의 생명주기는 다음과 같다. 스프링 컨테이너 생성 -> 빈 생성 -> 의존성 주입 -> 초기화 롤백.. 2023. 4. 11.
Spring에서 Bean이란? 스프링 관련 글을 보다면 Bean 또는 빈 이라는 단어를 자주 접할 수 있다. 가끔은 한글로 빈이라고 해서 나는 또 빈(Empty) 설정, 빈(Empty) 스캐너랑 헷갈리던데. 암튼 스프링에서 Bean 또는 빈은 무엇일까? Bean이란 Spring Ioc 컨테이너가 관리하는 자바 객체로, 컨테이너에 의해서 생명 주기가 관리되는 객체를 말한다. IoC 컨테이너에 의해서 인스턴스화 되고 조립, 관리되는 객체라고 생각하면 될까 자바에서는 new 연산으로 객체를 생성했다면, 이제는 의존성을 주입하는 것을 외부에게 맡겼기 때문에, 즉, 제어의 역전이 일어났기 때문에 Spring IoC 컨테이너에서 객체를 관리하게끔 객체를 Bean화 시킨 것이다. 원래는 그냥 알아서 의존했는데 이 의존관계를 스프링 IoC 컨테이너.. 2023. 4. 11.