2016년 1월 11일 월요일

자바 기반의 웹 프레임워크 구현

자바 기반의 웹 프레임워크 구현을 위한 기반 요소를 다룬다.

1. MVC 아키텍처 패턴
2. 자바 프로젝트 빌드 도구
3. 스프링 프레임워크

모델-뷰-컨트롤러(Model–View–Controller, MVC)

소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.

referenced photo by : http://slides.com/antonkril/cqs-cqrs-mvc-http#/


프로젝트 빌드 도구

메이븐(Maven)
pom.xml에 정의된 표준 디렉토리 구조에 따라 빌드된다.

엔트(Ant)
형식적인 규칙에 억메이지 않고 명세한 절차에 따라 빌드된다.

그래들(Gradle)
메이븐의 장황한 XML을 그루비(Grooby) 구문을 통해 쉽게 접근 할 수 있다.
이외에, 기존의 빌드의 장점을 취하였다.

스프링 프레임워크

자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크이다. 동적인 웹 사이트 개발을 위한 다양한 서비스를 제공한다. 전자정부 표준프레임워크의 기반 기술로 쓰인다.

다음은 스프링 프레임워크의 주요 기능 요소들이다.

IoC (Inversion of Control)
Dependency Lookup과 Dependency Injection을 포함하는 계념이다.
DL의 경우 Bean을 Lookup하기 위한 컨테이너에서 제공하는 API와 의존 관계가 발생한다. 의존 관계를 줄이기 위해서는 DI를 사용한다.

DI (Dependency Injection)
클래스 사이의 의존 관계를 컨테이너 외부의 Bean 설정을 통해서 해소한다.
예시)
의존 관계 A -> B에 가상의 인터페이스를 추가한다.
: A -> IB(인터페이스 정의) -> B
Bean 설정 파일에 의존 관계(IB -> B)를 명세한다.
Bean 설정 명세는 XML, @ (어노테이션) 두 가지 방법으로 가능하다.

AOP (Aspect-Oriented Programming)
트랜잭션, 로깅, 보안등의 핵심적인 비즈니스 로직과 관련이 없으나, 여러 모듈에서 공통적으로 사용되는 기능들을 분리하는 프로그램 패러다임이다.

POJO(Plain Old Java Object)
객체 타입의 부분 속성 변경에서 오는 복잡성을 제거하고, 단지 객체의 표면에 메타데이터를 덧 붙이는 역활을 통해 유연하고 효율적인 프로그래밍을 수행 할 수 있도록 한다.

프레임워크
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게, 일련의 협업화된 형태로 클래스를 제공하는 것이다. - 랄프 존슨(Ralph Johnson)

References

POJO에 대해서
http://changsuk.me/?p=1800

0 개의 댓글:

댓글 쓰기