본문 바로가기

JAVA/Spring

스프링 웹프로젝트의 구성

반응형

일반적으로 웹프로젝트는 3개의 레이어 구성

Presentation Layer - UI를 담당하는 구성요소

JSP와 같은 뷰(View)를 구성하는 부분과  Controller라는 부분으로 분리되어서 작성


Business Layer - 서비스계층이라고도 하며, 고객의 요구사항을  반영하는 계층으로 사용자의 환경이 아닌 기능적인 요구사항을 구현하는 곳, 어떤 형태의 데이터가 필요하고 반환될 것인지를 결정


Data Access Layer - Persistence Layer라고 하기도 하는데, 데이터 처리를 전문으로 담당


기본구성

Model -> Controller -> Service -> DAO -> MyBaits -> Database

(HTML,JSP)


MyBatis와 구성

DAO   <-----------  spring-mybatis [(SqlSessingTemplate) MyBatis[ (SqlSessionFactory) ] ] ------> Database


스프링이 자체로 가지고 있는 JDBC용 개발 모듈 (spring-jdbc)을 이용해 개발할 수 있지만 MyBatis를 이용해서 개발하면 편리함을 제공함.


MyBatis 장점 

- 간결한 코드의 처리

MyBatis는 통산 SQL Mapper  라이브러리.

JDBC 작업을 하게 되면 try ~ catch ~ finally를 이용하는 처리에서부터 PreparedStatement 와 ResultSet의 데이터를 처리하기까지 많은 코드를 직접 작성하게 된다.

MyBatis 는 이런 코드를 상당히 많이 줄여주며 개발의 속도를 향상시킨다.


- SQL 문의 분리운영

JDBC는 개발자가 SQL문을 처리하기 위해서 별도의 파일을 작성하는 등의 번거로운 작업이 필요

MyBatis의 경우 XML 혹은 애노테이션 방식으로  SQL문을 별도로 처리하는 작업이 가능

필요한 경우 두가지 방식을 혼합해서 사용하는 것도 가능


- Spring과의 연동으로 자동화된 처리

스프링 프레임워크와 MyBatis를 연계하는 MyBatis-Spring 라이브러리를 이용하면 개발자는 직접 SQL문의 호출 없이도 원하는 결과를 얻을수 있다.

MyBatis-Spring 라이브러리가 만들어내는 클래스 덕분인데, 이 때문에 MyBatis는 단독으로 사용하는 것보다 스프링과 연계해서

사용하는 편이 오히려 코드의 양을 줄여주게 된다.


-동적 SQL을 이용한 제어기능

제어문이나 루프 등의 처리기능을 가지고 있어서 Java코드에서 분리시킬수가 있다.


스프링 - MyBatis-Spring - MyBatis <-> MySQL

spring-jdbc, mybatis-spring 라이브러리 필요

반응형

'JAVA > Spring' 카테고리의 다른 글

Spring Transaction  (0) 2017.11.27
Spring AOP  (0) 2017.11.21
RestController  (0) 2017.11.20
예외처리 기본  (0) 2017.11.20
모델2방식과 스프링 MVC  (0) 2017.11.20