본문 바로가기

전체 글46

Spring 의 다양한 설정 형식 지원 - 자바 코드, XML Spring Container 는 다양한 형식의 설정 정보를 받아드릴 수 있게 유연하게 설계되어 있다. 대표적인 예시로는 다음 아래와 같다. Java code XML Groovy Annotation 기반 자바 코드 설정 사용 AppConfig 파일을 생성하여 자바 문법을 활용한 설정 방식이다. new AnnotationConfigApplicationContext(AppConfig.class) AnnotationConfigApplicationContext 클래스를 사용하면서 자바 코드로된 설정 정보를 넘기면 된다. XML 설정 사용 최근 스프링 부트를 사용하면서 XML 기반의 설정은 잘 사용하지 않는다. 그렇지만, 많은 Legacy 프로젝트들이 XML 로 되어있는 경우가 많다. XML 사용하면 컴파일 없이.. 2020. 11. 30.
BeanFactory 와 ApplicationContext BeanFactory Spring Container 의 최상위 인터페이스 이다. Spring Bean 을 관리하고 조회하는 역할, 책임을 담당하는 명세 이다. Spring Bean 에 관련된 모든 기능은 대부분 BeanFactory 가 제공하는 기능이다. "getBean()" 과 같은 메서드 제공 ApplicationContext BeanFactory 의 모든 기능을 상속 받아서 제공하는 인터페이스 이다. Bean 에 대한 관리와 모든 기능들을 BeanFactory 에서 제공해주는데 불구하고, 왜 ApplicationContext 를 사용하는가? BeanFactory 와 ApplicationContext 이 둘의 차이점은 과연 무엇인가? 실제 Application 을 개발할 때는 Bean 을 관리하고 조.. 2020. 11. 29.
관심사의 분리 각각의 인터페이스를 공연하는 배역이라 가정할 때, 실제 배역에 맞는 배우를 선택하는 것은 누가 하는가? 각 역할을 누가 할지는 배우들 본인이 정하는게 아니다. 역할이 아닌 구현까지 봐라보는 것은 배우가 자신의 역할 뿐만 아니라 상대 배우도 직접 선택하는 것이나 다름 없는 것이다. 이는 결코 유연한 공연을 진행할 수 없다. 유연한 공연을 진행하기 위해선 그 누가 오더라도 해당 배역은 대체될 수 있어야 한다. 관심사를 분리하는 것의 진정한 의미는 배우는 본인의 역할인 배역을 수행하는 것에만 집중할 수 있도록 하는 것이다. 다양한 역할, 책임을 주어지는 것이 아니라 본연의 역할과 책임 한가지만 가질 수 있도록 하는 것을 의미한다. 이를 구현하기 위해선 역할을 지정해주는 책임을 가진 별도의 기획자가 필요하다. .. 2020. 11. 12.