SpringBoot

· SpringBoot
들어가기 전이 글은 학교 프로젝트에서 사용한 Spring Boot의 Eureka 사용 방법에 대한 내용이다. 강의에서 들은 내용과 독학으로 공부한 내용을 정리한 것이기 때문에 틀린 부분이 있을 수도 있다는 것을 유념하며 읽으면 좋을 거 같다.Eureka란?먼저 이름에서 알 수 있다시피 Spring Cloud의 일종이다. Spring Cloud란 Spring Boot를 기반으로 MSA(MicroService Architecture)구축에 특화된 라이브러리들의 집합이라고 할 수 있다. 여기에는 Netflix OSS(Open Soucre Software)가 일부 포함되어 있는데 이들이 바로 Eureka, Hystrix, Zuul, Ribbon 등이다. 이번 글에서는 이 중 Eureka에 대해 알아보자. Eur..
· SpringBoot
지연 초기화 vs 즉시 초기화 Spring의 기본 초기화는 즉시 초기화 방식을 사용한다. Context가 실행되면 해당 context가 관리하는 모든 빈을 초기화하는 것이다. 하지만 이런 초기화를 특정 빈만 나중에 하고 싶다면 지연 초기화 방식을 사용한다. 지연 초기화는 @Lazy 어노테이션을 이용하여 사용하며 적용된 빈은 context가 실행될때 초기화되는 것이 아닌 빈이 사용될때 초기화가 된다. 지연 초기화는 component, Bean, Configuration에 사용 가능하다. 특히 configuration에 사용하면 설정 파일에 있는 모든 빈들이 지연 초기화된다. 하지만 추천되는 초기화 방식은 즉시 초기화 방식이다. 왜냐하면 Spring 구성에 오류가 있을 경우 프로그램이 시작하자마자 오류가 있..
· SpringBoot
의존성 주입? 컴포넌트 스캔을 통해 해당 패키지의 컴포넌트들의 의존성을 식별하고 와이어링하는 과정을 의존성 주입이라고 한다. 이를 다른 말로 IOC라고도 하는데(Inversion of Control) 이게 뜻하는 바는 기존 Java에서는 어떠한 객체를 생성하고 이를 다른 객체에 의존성 주입하는 과정을 개발자가 담당해서 코드를 작성하였다면 Spring에서는 그럴 필요없이 원하는 클래스를 컴포넌트로 만들면 Spring Context가 알아서 객체를 만들고 와이어링하기 때문에 객체를 제어하는 주체가 개발자에서 Spring으로 역전되었다는 뜻이다. 자동 와이어링? Spring이 컴포넌트(Spring Bean)들을 보고 필요한 의존성을 자동으로 와이어링 해주는 것이다. 1. 생성자 기반 생성자를 이용하여 다른 클..
· SpringBoot
@Primary? 동일한 클래스의 Bean들 중 가장 기본으로 쓰이는 Bean을 지정하는 역할 @Primary가 있으면 동일한 클래스의 Bean이 있고 따로 특정 Bean을 지정하지 않아도 Spring이 자동으로 @Primary가 달린 Bean을 사용한다. @Qualifier? 한정자라는 의미로 특정 Bean을 특정한 이름으로 한정하는 역할을 한다. @Qualifier("한정자")의 형식으로 사용되며 해당 주석을 달고 나면 다른 Bean이나 클래스에서 동일한 방식으로 해당 Bean을 불러서 사용할 수 있게 된다. 즉 동일한 클래스의 여러 Bean이 있을 때 하나의 Bean을 특정한다고 생각하면 된다. @Primary VS @Qualifier ? 두개의 설명만 보면 하는 역할이 비슷해보인다. 하지만 동일한..
Castle Hyeon
'SpringBoot' 카테고리의 글 목록