JavaConfig 장점
- 주입(injection), 상속, 다형성 등의 기능을 수행할 수 있다.
- 빈에 대한 생성과 초기화에 대한 모든 권한을 가진다.
- IDE같은 개발 도구의 도움 없이도 손쉽게 리팩토링이 가능하다.
- 컨테이너 초기화 시 큰 비용이 드는 클래스 패스 스캐닝(Classpath Scanning)을 줄일 수 있다.
- 필요에 따라 XML 또는 Property 등을 사용할 수 있다.
프레임워크
- 뼈대나 근간을 이루는 코드들의 묶음, 한 마디로 프로그램을 만들기 위한 기본 틀이라고 보면 된다.
프레임워크를 사용하는 이유
- 각 개발자마다 실력차이가 많이 나기 때문에 개발자의 구성에 따라 프로젝트의 결과물이 차이가 많이 난다.
- 개발자 입장에서 완성된 구조에 자신이 맡은 코드를 개발해서 넣어주는 형태이므로 개발 시간을 단축할 수 있다.
- 회사 입장에서 프레임워크를 사용하면 일정한 품질을 보장할 수 있다.
- 개발에 필요한 구조를 이미 코드로 만들어놓았기 때문에, 개발자가 해당 구조에 코드를 조립하는 형태의 개발이 가능하다.
스프링 프레임워크의 차별성
- 복잡함에 반기가 들어서 만들어진 프레임워크
- EJB에 비해 가볍기 때문에 엔터프라이즈급의 시스템을 개발할 수 있다.
- 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크
- 스프링은 어느 한 분야에 집중하기 보다, 전체 구조를 설계할 수 있다.
- 다른 프레임워크들의 포용
- 스프링은 전체 구조에 집중했기 때문에 특정한 영역의 프레임워크와 공존할 수 있다.
- 개발 생산성과 개발도구의 지원
스프링의 주요 특징
-
POJO 기반의 구성
- 쉽게 말하면, Java코드를 이용해서 객체를 구성하는 방식을 스프링에서 사용할 수 있다.
- 특정 라이브러리나 컨테이너의 기술에 종속적이지 않다는 이야기임
- 가장 일반적인 형태로 코드를 작성하고 실행할 수 있기 때문에 생산성에 유리하고, 코드에 대한 테스트 작업 역시 좀 더 유연하게 할 수 있다.
-
의존성 주입(DI)을 통한 객체 간의 관계 구성
-
의존성
- 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것
- 간단히 표현하면, 생성자 호출이다. 즉
new 연산자
이다.
-
주입
- 외부에서 객체를 생성해서 넣어주는 것
-
의존성 주입
- 어떤 객체가 필요한 객체를 외부에서 밀어 넣는다.
-
-
AOP(Aspect-Oriented-Programming) 지원
-
AOP
- 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 기능
관점 지향 프로그래밍
-
장점
- 개발자는 핵심 비즈니스 로직에만 집중해서 코드를 개발할 수 있다.
- 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화 시킬 수 있다.
- 원하는 관심사의 유지보수가 수월한 코드를 구성할 수 있다.
-
-
편리한 MVC 구조
-
WAS의 종속적이지 않은 개발환경
'언어 > Spring' 카테고리의 다른 글
도로명 API 사용예제 (0) | 2020.01.02 |
---|---|
스프링 버전 차이 (0) | 2019.12.24 |
전자정부 프레임워크 기반의 페이지 네비게이션(Pagination) 사용 (0) | 2019.09.25 |