MyBatis

0.Basic.개발의 주요 구조.

Jungsoomin :) 2020. 7. 11. 19:20

 

 

 

 

개발의 주요 레이어와 개발 과정이다. 

 

  • View: 사용자에게 보여줄 영역으로 Model 객체를 이용해서 데이터를 수신받아 동적으로 움직이거나 정적 파일을 내보낸다.

  • Controller: 화면에서 요청한 URL를 Mapping(@RequestMapping , @GetMapping, @PostMapping @DeleteMapping 등) 해서 Model 객체를 이용해 View 단에 데이터를 넘긴다. Service에 의존한다.

  • Service:  비즈니스 로직과 기능적 부분을 만들어내고 구현하는 곳으로 Service라는 Interface를 구현해서 해당 메서드로 비즈니스 로직을 짜는 경우가 많다.(유지보수의 용이, 재사용성)  DAO(Data Access Object)에 의존한다.

  • DAO(Data Access Object): 데이터 처리를 위한 동작을 가진 객체이다. DAO라는 Interface를 구현해서 해당 메서드를 가지고 하나의 테이블과 연결되어 데이터를 처리한다. SqlSessionTemplate에 의존한다.

  • MyBatis: 직접 JDBC-API에 접근하거나 바로 데이터베이스에 엑세스하지않고 해당 프레임워크를 거친다. VO(Values Object)DTO(DataTranferObject)를 이용하며 데이터를 맵핑하거나 파라미터로 받아준다.

    DAO와 VO을 설정에 잡아놓고 사용한다.

개인적인 의견으로 이 과정을 머릿 속에 잡아놓지 않는다면 아무것도 할 수 없어진다고 생각한다.

그래서 스스로도 예제를 아무리 따라서치려고 해보아도 이해하지를 못하고 패키지를 어떻게 짜놓는지도 이해할 수 없었다.

현재도 나는 그런 점을 하스스로 몰랐어서 공부하고 이해하는 중에 있다. springframework의 철학과 관련이 있고, 느슨한 결합도 높은 응집력이라는 키워드,  관련을 가지지 않는 것을 분리하라. 라는 철학들에 조금 더 이해하게 되는 것 같다.