회사에서 MVC패턴을 활용한 관리자 페이지를 리뉴얼하는 프로젝트에 참여하게 되어서 공부할 겸 개념을 알아보고 정리하려고 글을 작성한다.
MVC 패턴이란?
MVC(model-view-controller)는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
출처 : MVC MDN 문서(https://developer.mozilla.org/ko/docs/Glossary/MVC)
- Model : 데이터와 비즈니스 로직을 관리
- 모델은 앱이 포함해야할 데이터가 무엇인지를 정의.
- 데이터의 상태가 변경되면, 모델을 일반적으로 뷰에게 알리거나 가끔 컨트롤러에게 알리기도 한다.
- 관리자 페이지에서는 db의 테이블을 가져오는 쿼리문을 작성한다.
- View : 레이아웃과 화면 처리
- 앱의 데이터를 보여주는 방식을 정의
- 관리자 페이지에서는 jsp로 작성하며 html, css(부트스트랩), jquery, java 코드를 다같이 사용한다.
- Controller : 모델과 뷰로 명령을 전달
- 앱이 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함
- 관리자 페이지에서는 데이터를 수정, 삭제, 등록하는 기능로직을 작성한다.
진행하고 있는 관리자 페이지의 전체 구조는 다음과 같다

db의 코드관리 부분을 맡았고 각 파일에 대한 간단한 설명이다.
파일설명
[CodeController.java]
- 역할 : 클라이언트의 HTTP요청을 처리하고 비즈니스 로직을 호출한다
- 종속성 : CodeService 및 ClCodeService를 사용하여 비즈니스 로직을 처리
- 주요 메서드
- codeList: 공통코드 목록 조회를 담당하는 메서드
- codeListAjax: Ajax를 통한 공통코드 목록 조회 메서드
- codeView: 공통코드 상세 조회를 담당하는 메서드
- codeCreate: 공통코드 등록 페이지로 이동하는 메서드
- codeCreateProcess: 공통코드를 등록하는 메서드
- codeModify: 공통코드 수정 페이지로 이동하는 메서드
- codeModifyProcess: 공통코드를 수정하는 메서드
[CodeService.java]
- 역할 : 비즈니스 로직을 정의하는 인터페이셔, 실제 비즈니스 로직은 이를 구현한 클래스에서 수행됨
- 종속성 : CodeService는 CodeDAO를 사용하여 데이터베이스와 상호작용
- 주요 메서드
- getCodeList: 공통코드 목록을 조회하는 메서드
- getCode: 공통코드를 조회하는 메서드
- createCode: 공통코드를 등록하는 메서드
- modifyCode: 공통코드를 수정하는 메서드
- getCodeListTotCnt: 공통코드 목록의 총 갯수를 조회하는 메서드
[CodeDAO.java]
- 역할 : 데이터베이스와의 상호 작용을 구현한 DAO 클래스로, 실제 SQL 쿼리를 수행
- 종속성 : CodeDAO는 MyBatis의 SqlSessionTemplate을 사용하여 데이터베이스에 접근
- 주요 메서드
- selectCodeList: 통코드 목록을 조회하는 메서드
- selectCode: 공통코드를 조회하는 메서드
- insertCode: 공통코드를 등록하는 메서드
- updateCode: 공통코드를 수정하는 메서드
- selectCodeListTodCnt: 공통코드 목록의 총 갯수를 조회하는 메서드
[CodeServiceImpl.java]
- 역할: CodeService 인터페이스를 구현한 클래스로, 비즈니스 로직을 실제로 처리
- 종속성: CodeServiceImpl은 CodeDAO를 사용하여 데이터베이스와 상호 작용
[sqlmap-mysql-code.xml]
- 역할: MyBatis SQL mapper파일로 SQL을 정의하고 매핑
- 종속성: CodeDAO에서 이 파일에 정의된 쿼리를 호출하여 데이터베이스와 상호 작용