본문 바로가기

Spring

(3)
Spring Boot가 Auto Configuration을 하는 방식 Auto Configuration이란모든 Spring Boot 프로젝트는 `org.springframework.boot:spring-boot-autoconfigure` 라는 jar 파일을 가지는데, 이는 여러 AutoConfiguration 클래스들의 집합입니다. AutoConfiguration 클래스는 우리가 일반적으로 `@Configuration` 어노테이션을 통해 만들 수 있는 Configuration과 다르지 않지만, Spring의 `Condition` 인터페이스를 통해서 다양한 조건을 검사해서 빈을 생성하거나 생성하지 않도록 하는 Configuration입니다.  Spring Condition이란Spring의 `Condition` 인터페이스는 `matches`라는 메소드를 정의하게 되어있는데, ..
Spring IoC와 DI IoC의 정의IoC는 Inversion of Control의 약자로, 제어를 역전하는 디자인 원칙(Design Principle)입니다. 1) 프로그램의 흐름 제어나 2) 객체 의존성 관리와 같이, 소프트웨어 컴포넌트의 주된 역할(main purpose)이 아닌 부가적인 역할들을 개발자의 Custom Code 대신 프레임워크가 맡기 때문에 제어의 역전이라고 합니다.  IoC를 따르는 디자인 패턴들프로그램의 흐름 제어를 역전한다는 것은 TUI(Text-based User Interface)와 GUI를 비교해서 설명할 수 있는데, TUI에서는 주로 시스템에 사용가능한 명령어(available commands)를 리스트업하거나 사용자가 입력한 값을 조회하기 위해 개발자가 시스템 코드를 호출했다면, GUI에서는..
Spring Boot와 Spring Framework의 차이 Spring Spring은 Java 앱 개발이 복잡하다보니 그에 대응하기 위해 시작된 오픈소스 프로젝트인데, 여러 작은 프로젝트들로 이루어져 있습니다. 주요 Spring 프로젝트로는 Spring Framework나 Spring Data, Spring Security 등이 있고 Spring Boot도 그 중 하나입니다.  Spring Framework Spring Framework는 산업용 어플리케이션(enterprise application)을 개발하는 데 있어 비즈니스 로직에 더 집중할 수 있게 하는 기술들의 집합이라고 할 수 있습니다. 구체적으로는 1) DI나 Event, AOP 같은 코어 기술, 2) 테스트를 위한 Mock 객체나 Spring MVC Test, 3) 데이터 접근을 위한 JDBC와 O..