Spring
[Spring] @Autowired vs @Resource vs @Inject
🧐 @Autowired, @Resource, @Inject을 사용하는 이유 의존 주입을 위해 사용한다. 특정 Bean 기능을 수행하기 위해 기능에 필요한 특정한 Bean을 참조해야 하는데, 이 때 특정 Bean에 자동 연결을 위해 위 어노테이션들을 사용한다. 😊 @Autowired vs @Resource vs @Inject public class Animal{} @Component public class Dog implements Animal{} @Component public class Cat implements Animal{} 차이 @Autowired private Dog cat //타입 기준 -- Dog 타입으로 연결 @Resource private Dog cat //이름 기준 -- Cat 타입으로..
[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 간단히 프로그램의 제어 흐름 구조가 뒤바뀌는 것. 스프링의 중요한 개발 개념인 의존성 주입을 이해하기 위해 알고 있어햐하는 개념. 객체 간의 결합도(의존도)를 줄이고 유연한 코드를 작성 할 수 있음. 가독성 및 코드의 중복 해소, 유지보수를 편리하게 도와줌 객체가 자신이 사용할 객체를 스스로 선택하지 않음. 대표적으로 템플릿 메소드 패턴이 있음 🤨 객체 간의 결합도 (의존도) ' 어떤 객체가 다른 객체에 의존하는 정도를 나타낸다.' 코로나 바이러스로 인해 사람들은 항상 마스크를 사용하고 다녀야 합니다. 항상 사용해야하기 때문에 사람과 마스크의 의존도가 높다고 할 수 있습니다. 이를 강결합이라고 부릅니다. 그리..