1.2.1 스프링 코어의 이해: 스프링 기초
스프링 코어는 앱에 통합되는 기본 메커니즘을 제공하는 스프링 프레임워크 일부분이다. 스프링은 제어 역전(Inversion of Control, IoC) 원칙을 기반으로 작동한다. 이 원칙을 사용하면 앱이 실행을 제어하는 대신 다른 소프트웨어 부분, 여기에서는 스프링 프레임워크에 제어 권한을 넘긴다. 우리는 구성(configuration)을 이용하여 앱 로직을 정의하도록 작성된 코드 관리 방법을 프레임워크에 지시한다. 제어 역전(IoC)에서 ‘역전’은 앱이 자체 코드로 실행을 제어하거나 의존성을 사용하지 못하는 대신 프레임워크(의존성)가 앱과 앱의 코드를 제어한다는 의미다(그림 1-4).
Note ≣ | 이 맥락에서 ‘제어(controls)’라는 용어는 ‘인스턴스 생성’ 또는 ‘메서드 호출’ 같은 작업을 나타낸다. 프레임워크는 앱에서 정의한 클래스의 객체를 생성할 수 있다. 여러분이 작성하는 구성을 기반으로 스프링은 메서드를 가로채서 다양한 기능으로 보강한다. 예를 들어 스프링은 특정 메서드를 가로채서 메서드 실행 중에 나타날 수 있는 오류를 기록할 수 있다.