IOC

    [Spring] 스프링의 IoC

    👉 지금까지 대표적인 IoC 프레임워크인 스프링 없이도 IoC 개념을 적용했었는데, 이번에는 스프링 프레임워크를 사용해 IoC 스타일의 애플리케이션을 설계해보겠습니다. 스프링의 IoC 핵심은 빈 팩토리(Bean Factroy)와 애플리케이션 컨텍스트(Application Context)가 있습니다. 스프링에서는 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리라 부릅니다. 그리고 이를 좀 더 확장한 것을 애플리케이션 컨텍스트라고 부릅니다. 이 둘의 차이점은 빈팩토리는 빈을 생성하고 관계를 설정하는 IoC의 기본 기능에 초점을 맞췄고, 애플리케이션 컨텍스트는 애플리케이션 전반에 걸쳐 모든 구성요소의 제어 작업을 담당하는 IoC엔진입니다. 💡 빈(Bean)이란? 스프링이 제어권을 가지고..

    [Spring] 오브젝트 팩토리

    👉 클라이언트인 UserDaoTest에서 ConnectionMaker 구현 클래스를 사용할지를 결정하는 기능을 갖고 있습니다. 하지만 UserDaoTest는 UserDao의 기능이 잘 동작하는지 테스트를 위한 클래스입니다. 그렇기 때문에 UserDaoTest에 있는 Connection Maker 구현 부분을 분리해야합니다. 💡 팩토리 분리시킬 기능을 담당할 클래스를 만들기 위해, 이 클래스는 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려주는 것인데, 이 클래스를 팩토리라고 부릅니다. 주의해야할 점은 추상 팩토리 패턴이나 팩토리 메소드 패턴과는 다르다는 것을 인지해야합니다. 이제 팩토리 클래스의 역할을 하는 DaoFactory 클래스를 만들어보겠습니다. DaoFactory 클래스 public..

    [Spring] @Bean 과 @Component 차이

    🧐 @Bean 과 @Component 사용하는 이유? IoC Container는 @Configuration, @Bean, @Component, @Repository, @Service, @Controller가 달린 클래스를 감지하며 빈을 가져오기 위해 빈 스캐닝을 합니다. 대표적으로 빈으로 사용 할 수 있도록 해주는 어노테이션으로 @Bean과 @Component이 있다. (@Configuration은 구성클래스를 만들 때 사용, @Repository, @Service, @Controller는 @Component에 속해있다.) 😊@Bean vs @Component 👉 @Bean @Bean은 개발자가 직접 제어가 불가능한 외부 라이브러리를 사용할 때 사용한다. @Configuration을 선언한 클래스 내부에..

    [Spring] POJO 구성해보기

    🧐 자바로 POJO 구성해보기 (1) POJO클래스를 설계할 때 @Configuration, @Bean을 붙여 자바 구성 클래스를 만들거나, @Component, @Repository, @Service, @Controller를 붙여 자바 컴포넌트를 구성해야합니다. IoC 컨테이너는 위와 같이 애너테이션을 붙인 자바 클래스를 스캐닝하여 POJO 인스턴스를 구성해줄 수 있습니다. 기본적인 POJO를 설계할 때의 원리는, 아래 그림과 같이 Main Class에서 IoC 컨테이너를 생성해주고, 구성 클래스에서 생성된 빈 인스턴스를 가져오는 원리입니다. POJO를 사용하기 위해 다목적 시퀀스 생성기 애플리케이션을 만들어보면, prefix, suffix, initial 세 프로퍼티를 지닌 SequenceGenera..

    [Spring] 스프링의 심장부 - IoC (제어의 역전)

    🧐 IoC (제어의 역전이란?) 스프링 프레임워크의 심장부 Inversion of Control 간단히 프로그램의 제어 흐름 구조가 뒤바뀌는 것. 스프링의 중요한 개발 개념인 의존성 주입을 이해하기 위해 알고 있어햐하는 개념. 객체 간의 결합도(의존도)를 줄이고 유연한 코드를 작성 할 수 있음. 가독성 및 코드의 중복 해소, 유지보수를 편리하게 도와줌 객체가 자신이 사용할 객체를 스스로 선택하지 않음. 대표적으로 템플릿 메소드 패턴이 있음 🤨 객체 간의 결합도 (의존도) ' 어떤 객체가 다른 객체에 의존하는 정도를 나타낸다.' 코로나 바이러스로 인해 사람들은 항상 마스크를 사용하고 다녀야 합니다. 항상 사용해야하기 때문에 사람과 마스크의 의존도가 높다고 할 수 있습니다. 이를 강결합이라고 부릅니다. 그리..