1. Framework
1) 사전적 의미는 뼈대 혹은 틀로서 소프트웨어 관점에서 접근하면 아키텍처이 해당하는 골격 코드이다.
- 어플리케이션의 구조를 결정하는 코드를 프레임워크가 제공한다.
2) 장점
- 빠른 구현 시간
- 쉬운 관리
- 개발자들의 역량 획일화
2. Spring
1) JDK 버전 처리
- 프로젝트 우클릭 Properties -> Project Facets, Java Compiler 확인
2) Maven의 주 용도(pom.xml)
- 프로젝트에 필요한 의존적인 라이브러리를 자동으로 관리해주는 용도
3) MVC 프로젝트 템플릿의 구조
src/main/java 개발되는 java 코드의 경로
src/main/resources 서버가 실행될 때 필요한 파일들의 경로
src/test/java 테스트 전용 경로
src/test/resources 테스트 시에만 사용되는 파일들 경로
src/main/webapp/WEB-INF/spring Spring 설정 파일의 경로
src/main/webapp/WEB-INF/views JSP 파일 경로
pom.xml Maven의 설정 파일
4) 스프링 프레임워크를 사용해야 하는 이유
- 개발자의 구성에 따라 프로젝트의 결과 차이가 크기 때문에
그 상황을 극복하기 위해 기본 흐름, 구조를 맞춤 그에 따라 개발 시간을 단축
5) 다른 프레임워크와의 차별성
(1) 복잡함에 반기를 들어서 만든 프레임워크
- 일반적인 Java 클래스, 인터페이스 이용으로 진입장벽 낮음
- EJB에 비해 가볍기 때문에 빠른 시간에 엔터프라이즈급의 시스템 작성 가능
(2) 프로젝트의 전체 구조를 설계할 때 유용한 프레임워크
(3) 다른 프레임워크들의 포용
- 다른 프레임워크들과의 통합을 지원하여 최소한의 수정 가능
- 여러 종류의 프레임워크를 혼용해서 사용 가능
(4) 개발 생산성과 개발 도구의 지원
- 유지보수에 있어서 xml의 설정 등을 사용
- STS, Eclipse 등의 플러그인 빠른 업데이트
6) 스프링의 주요 특징
(1) POJO 기반의 구성(Plain Old Java Object)
- 자바 객체의 라이프 사이클을 스프링 컨테이너가 직접 관리하며,
스프링 컨테이너로부터 필요한 객체를 얻어올 수 있다.
(2) 의존성 주입 DI(Dependency Injection)지원
- 각 계층이나 서비스들 사이 또는 객체들 사이에 의존성이 존재할 경우 스프링 프레임워크가
서로를 연결시켜준다. 이는 클래스 사이에 약한 결합을 가능케 한다.
- 생성자, set method, Annotation
(3) AOP(Aspect Oriented Programming) 지원
- 트랜잭션, 로깅, 보안 등 여러 모듈에서 공통적으로 지원하는 기능을 분리하여 사용 가능(반복 코드 x)
(4) 확장성이 높다.