본문 바로가기

Programming/과거포스팅

스프링의 세 가지 핵심 프로그래밍 모델


스프링의 세가지 핵심 프로그래밍 모델


프레임 워크라 함은 틀(뼈대)라고 생각하면 된다. 어플리케이션을 구성하는 오브젝트가 생성되고 동작하는 방식에 대한 틀을 제공해주고 코드가 어떻게 작성돼야 하는지에 대한 기준을 제시 해주기 때문에 틀을 따라 내용만 구성해주면 된다. 이런 틀을 프로그래밍 모델이라고 한다. 스프링은 세 가지의 핵심 프로그래밍 모델을 지원한다.


첫 번째, IoC/DI라고 불리는 오브젝트의 생명주기와 의존관계에 대한 프로그래밍 모델이다. 스프링의 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 객체지향 설계 원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/DI를 프레임워크의 근간으로 삼고 있다.  제어의 역전(IoC), 의존성 주입(DI)의 자세한 내용은 앞으로 추가 될 예정이다. 스프링이 직접 제공하는 모든 기술과 API, 컨테이너도 IoC/DI 방식으로 작성되어 있다.


두 번째, 서비스 추상화이다. 스프링은 특정 환경이나 기술에 종속되어 있지 않고 이식성이 뛰어나다. 이것이 가능한 이유가 서비스 추상화가 잘 되어 있기 때문이다.


세 번째, AOP다. 관점지향프로그래밍(AOP)는 객코드내에 산재해 있는 부가적인 기능들을 모듈화하여 독립적으로 구현함으로써 깔끔한 코드를 유지할 수 있게 해준다. AOP를 이용하면 비지니스 로직을 제외한 공통적인 기능들을 독립적으로 구현할 수 있기 때문에 코드가 알아보기 쉽고 깔끔해진다.