멀티캠퍼스

Servlet Assignment 코드 리뷰

isaacagent 2025. 9. 8. 13:21
728x90

그림 1. 전반적인 WireFrame

기본적인 구조 이해가 필요하다.

서버의 기능을 담당하는 구조는 그림 1과 동일하다. 각종 .jsp에서 호출을 하여, 페이지네이션 및 각종 기능들을 지원을 한다. 

 

페이지에서 어떤 기능을 활용을 한다고 가정을 해보자.

일단 해당 페이지에 가는 것부터 시작을 한다.

1. Controller Interface에서 Mapping을 담당할 FrontController에 대한 기본 메소드 구조를 선언한다.

2. 페이지 진입을 시작하면 @WebServlet을 통해서 FrontController를 호출하게 되며, BoardController로 갈지, MemberController로 갈지 결정하게 된다.

3. BoardController 또는 MemberController로 간 이후 기능에 따른 Service객체를 호출하게 된다.

4. Service 객체는 클라이언트와 서버의 연결점 역할로 기능에 대항되는 DAO 호출을 진행한다.

5. DAO에서는 SQL Query 문을 수행하며 DB와의 상호작용을 진행한다.

6. DB에서는 직접적으로 DB와 연결이 되어있는 상태를 나타내고, Member에서 Password관련해서 암호화를 진행하기 위한 Encoder 클래스와 입력값 검증을 위한 Validation 클래스를 보유한다.
7. DTO에서는 DB에 존재하는 속성들을 담을 인스턴스들을 모아두는 객체이고, 페이지네이션을 위한 PageResult, PageRequest 클래스를 구성한다.

8. 각종 예외처리 통일을 위해서 Exception을 따로 오버라이딩 하여 사용한다.

 

전반적인 개요는 이러하다.

좀 더 자세한 예시를 보도록 해보자.

 

일단 로그인 페이지에서 로그인을 성공을 하고 리스트 페이지로 이동을 한다고 가정을 해보자. 

그림 2. list 페이지

상호작용을 할 수 있는 기능들이 대표적으로 3가지 정도가 보인다. 검색 기능과 글 쓰기 기능, 게시판에 올라온 글 상세 보기 정도 있는 듯하다. 그러면 리스트에 새 글을 올리기 위해서 글쓰기 버튼을 누르기로 한다.

그림 3. Controller 호출

그럼 FrontController를 호출을 하게 된다. 

그림 4. Mapping

FrontController에서는 어떤 호출을 했느냐에 따라서 BoardController로 갈지, MemberController로 갈지 결정을 하게 된다. 지금은 write.jsp에서 호출을 진행을 했기 때문에 boardController로 가게 된다. 이후 Forward 형태로 이동을 하게 된다. 

그림 5. Service 호출

BoardController에서 Switch 문을 통해 기능에 해당되는 영역에 진입하게 되고, jsp에 작성된 정보들(title, content, writer_id)을 입력을 한 뒤 Service 객체를 호출하게 된다.

그림 6. jsp에 작성된 정보들
그림 7. DAO 호출

서버와 맞닿아 있는 DAO 기능을 호출하게 된다.

그림 8. DAO에서 Query 진행

데이터베이스의 테이블 명과 속성 명을 일치 시킨 후에 쿼리를 통해서 jsp에 받아온 값을 넣어서 데이터베이스에 업데이트를 진행한다.

그림 9. DB 연결

이런 getConnection 메소드를 통하여 데이터베이스와의 연결을 진행한다.

 

insert를 진행 한 후 컨트롤러에서 다시 페이지 리다이렉트를 통해서 페이지 갱신을 진행한다.

 

그림 10. 새 글 추가

결과적으로는 새 글이 작성된 리스트가 추가 된 것을 확인 할 수 있게 된다.

'멀티캠퍼스' 카테고리의 다른 글

백엔드 로그인 구현  (0) 2025.09.22
spring 코드 기초 복습  (1) 2025.09.15
Servlet MVC 실습 코드 리뷰  (0) 2025.09.01
서블릿 기초  (1) 2025.08.25
데이터베이스 Index  (1) 2025.08.19