오봉이와 함께하는 개발 블로그
Artineer - 프로젝트 패키지 구조 본문
728x90
Legacy...
위 구조와 같이 기존에 배웠던 내용으로 하기에는 너무 오래된 구조라는 것을 알아버렸다.
그래서 기왕 최근 많이 사용하는 기술로 프로젝트를 설계 하였으니 새로운 구조로 구조를 설계하고 싶었다.
New!
해당 프로젝트는 RESTful에 충실한 MVC패턴으로 구현할 예정이다.
Controller : 웹 MVC의 Controller의 역할을 한다.
Service : 핵심 비즈니스 로직을 구현한다.
Repository : DB에 접근하여 Domain 객체를 DB에 저장하고 관리한다.
Domain : 비즈니스 도메인 객체로(예 : 회원정보, 게시글 정보, 댓글 정보 등) DB에 저장되고 관리된다.
REST란?
- Representational State Transfer의 약자로 자원의 표현에 의한 상태 전달을 하는 개념이다.
- HTTP URI를 통해 자원을 명시하고 Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD Operation을 적용한다.
- C : Create로 생성(POST)를 의미한다.
- R : Read로 조회(GET)를 의미한다.
- U : Update로 수정(PUT)을 의미한다.
- D : Delete로 삭제(DELETE)를 의미한다.
- 다양한 클라이언트 등장에 따라 이를 모두 지원할 수 있는 통신 방법이 필요했고, 이를 지원히는 REST에 관심을 가지게 됐다.
MVC?
- 디자인 패턴 중 하나로 Model-View-Controller의 약자이다.
- 유저 인터페이스(View)와 비즈니스 로직을 분리하여 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
- 비즈니스 로직과 유저 인터페이스를 분리하기 때문에 유지보수가 편리하다.
Model
- Application이 사용할 Data를 가진 객체를 Model이라 지칭한다.
- Model에 상태 변화가 있을 때 Controller와 View에 통보한다.
- Controller가 Model의 변화를 적용할 수 있다.
Model의 규칙
- 사용자가 원하는 모든 데이터를 가지고 있어야 한다.
- View나 Controlle에 대한 정보를 알고 있으면 안 된다.
- Controller의 명령에 따라 변경이 일어나면 변경에 대한 처리 방법이 필요하다.
View
- 유저에게 보여지는 클라이언트를 모아둔 컨테이너
- 유저에게 정보를 주기 위해 Model로부터 정보를 받아온다.
View의 규칙
- Model이 가진 정보를 저장하지 않아야 한다.
- Model이나 Controller와 같이 다른 구성 요소를 알고 있지 않아야 한다.
- 변경이 일어났을 때 변경된 사항에 대한 처리방법을 구현해야 한다.
Controller
- 사용자가 접근한 URL에 따라 요청사항을 파악하여 Model에 변화를 주고 View를 반영한다.
Controller의 규칙
- Model과 View에 대한 정보가 있어야 한다.
- Model과 View의 상태 변화를 모니터링해야 한다.
728x90
'Artineer 리뉴얼 프로젝트' 카테고리의 다른 글
다시 시작 (0) | 2022.09.20 |
---|---|
중단 (0) | 2022.05.26 |
Artineer - 테이블 생성 쿼리문 (0) | 2022.05.19 |
Artineer - 게시글 댓글 작성 기능(대댓글 포함) (0) | 2022.05.18 |
Artineer - Table 설계 (0) | 2022.05.16 |
Comments