본문 바로가기
Road to Developer/edwith풀스택웹개발자

26. 스프링 MVC패턴을 이용해 방명록 만들기 1 (요구사항 / 내부흐름)

by 구월에작은섬 2018. 7. 24.

방명록 만들기

Controller + Service + Dao 구분


트랜잭션 처리 기능.(Roll back, Commit)


데이터베이스 관련 : Dao를 통한 데이터 입출력


요구사항 1

아래와 같은 데이터베이스 테이블 구조를 갖는다.



요구사항 2

  • http://localhost:8080/guestbook/을 요청하면 자동으로 /guestbook/list로 리다이렉팅한다.
  • 방명록이 없다면 건수는 0을 표시한다.
  • 아래에 방명록을 입력하는 폼이 보여진다.

요구사항 3

  • 방명록 입력 폼에서는 이름과 내용을 입력한다.
  • 등록버튼을 누르면 /guestbook/write로 값을 전달하고 저장한다.
  • 저장된 이후에 /guestbook/list로 리다이렉트 시킨다.

요구사항 4

  • /guestbook/list에 입력한 정보가 보여진다. 방명록 전체 수, ID, 이름, 내용, 날짜
  • 방명록 페이징처리를 한다. 5건당 1페이지로 설정한다.


요구사항 5

  • 방명록 6건이상이되면 페이지 수가 2개가 된다. (1,2)
  • 1페이지를 누르면 /guestbook/list?start=0을 요청, 2페이지를 누르면 ?start=5를 요청한다.
  • /guestbook/list 는 /guestbook/list?start=0과 결과가 같다.


요구사항 6

  • 방명록에 글을 쓰거나, 삭제할 때는 아래같은 새로운 mysql log테이블을 작성한다.


    작성 순서

    web.xml파일에서 2개의 config파일을 작성한다. 

    1. dispatcher servlet 역할의 WebMvcContextConfiguration.java 

    2. Application Context Listener가 읽어들일 ApplicationConfig.java는 DBConfig.java를 import한다.


    GuestbookController에서 URL을 처리한다. 

    GuestbookService인터페이스를 사용한다. GuestbookServiceImpl이라는 구현클래스를 갖는다.

    Guestbook.ServiceImpl은 LogDao와 GuestbookDao를 이용해서 비즈니스 로직을 수행한다.

    LogDao는 저장 기능만 갖는다. 

    GuestbookDao는 여러개의 SQL기능을 갖고 있으므로 sql문을 관리하는 GuestbookDaoSqls를 갖는다.


    Guestbook, Log Dto를 만든다.

    Guestbook : id, name, content, regdate

    Log : id, ip, method, regdate


    View의 역할을 수행하는 list.jsp를 작성한다.

    index.jsp를 redirect를 사용해서 list.jsp로 보낸다.