이번주 수행 사항
필수과제
•
회원가입, 회원정보수정, 로그인, 로그아웃, 아이디찾기
•
글 작성, 글 수정, 글 리스트, 글 삭제
추가과제
•
비번찾기
•
상품 등록
•
상품 수정
•
상품 리스트
•
상품 상세페이지
미션 개요 - 요구사항 정의
회원
•
회원은 일반회원과 작가회원이 있다.
•
가입 직후는 일반회원이고, 작가명 등록을 하면 작가회원이 된다.
•
작가회원이 되면 상품(책)을 등록할 수 있다.
•
별개로 authLevel 의 값이 7이면 관리자의 역할도 수행할 수 있다.
•
회원가입
◦
회원가입시 축하메일을 발송한다.
•
로그인
◦
스프링 시큐리티를 사용하여 구현한다.
•
로그아웃
◦
스프링 시큐리티를 사용하여 구현한다.
•
프로필
◦
작가명을 입력하고, 작가 회원이 될 수 있다.
•
비밀번호변경
•
아이디 찾기
◦
가입 시 입력한 이메일 주소를 입력하여 아이디를 찾을 수 있다.
•
비밀번호 찾기
◦
로그인 시 필요한 아이디와 이메일로 비밀번호를 찾을 수 있다.
◦
이메일로 임시 비밀번호를 발송한다.
글 관리기능
•
글 작성/수정
◦
마크다운 원문과 렌더링 결과(HTML)까지 같이 저장한다.
•
글 리스트
◦
제목과 글의 해시태그들을 볼 수 있다.
◦
해시태그를 클릭하면 내가 작성한 글 중 해당 해시태그와 관련된 글들을 볼 수 있다.
•
글 삭제
◦
글이 삭제되면 글 리스트로 리다이렉트 한다.
◦
삭제버튼 눌렀을 때 confirm 창으로 삭제여부를 한 번 더 물어본다.
•
글 상세화면
◦
글의 제목, 내용, 해시태그를 모두 출력
◦
글의 내용은 마크다운 해석이 되어야 한다.
상품(책) 관리기능
•
상품 작성/수정
◦
상품의 이름을 작성할 수 있다.
◦
하나의 글 키워드만 고를 수 있다.
◦
등록을 누르면 해당 상품 상세 페이지로 이동해야 한다.
◦
키워드는 수정이 불가능하고 내용은 수정이 가능하다.
•
상품 리스트
◦
모든 상품을 출력한다.
◦
각각 상품은 상품의 이름, 가격, 작가를 출력한다.
•
상품 삭제
◦
상품이 삭제되면 상품 리스트로 리다이렉트 한다.
◦
삭제버튼 눌렀을 때 confirm 창으로 삭제여부를 한 번 더 물어본다.
•
상품 상세화면
◦
상품의 이름, 가격, 작가를 출력한다.
◦
상품 설명을 출력한다.
◦
미리보기는 구현하지 않는다.
주요 엔드 포인트
홈
메인
GET /
•
최신 글 100개 노출
글
글 리스트
GET /post/list
•
글 리스트, 전체 노출
•
리스트 아이템 구성요소 : 번호, 제목, 작성자, 작성날짜, 수정날짜
•
페이징 없음
글 상세
GET /post/{id}
•
번호, 제목, 작성자, 작성날짜, 수정날짜, 내용
•
해시태그
글 등록
GET /post/write
•
폼 입력
◦
subject
◦
content
◦
keywords
▪
입력예시
#자바 #스프링부트 #스프링배치
글 수정
GET /post/{id}/modify
•
폼 입력
◦
subject
◦
content
◦
postKeywordContents
▪
입력예시
#자바 #스프링부트
POST /post/{id}/modify
글 삭제
GET /post/{id}/delete
도서
도서목록
GET /product/list
•
상품 리스트, 전체 노출
•
리스트 아이템 구성요소 : 번호, 상품명, 가격, 작성자, 작성날짜
•
페이징 없음
도서등록
GET /product/create
•
폼 입력
◦
subject
◦
price
◦
postKeywordId
POST /product/create
도서수정
GET /product/{id}/modify
•
폼 입력
◦
subject
◦
price
POST /product/{id}/modify
도서삭제
GET /product/{id}/delete
로그인/로그아웃
로그인
GET /member/login
•
폼 입력
◦
username
◦
password
POST /member/login
로그아웃
GET /member/logout
회원가입/회원정보수정
회원가입
GET /member/join
•
폼 입력
◦
username
◦
password
◦
passwordConfirm
◦
email
◦
nickname
POST /member/join
회원정보수정
GET /member/modify
•
폼 입력
◦
email
◦
nickname
POST /member/modify
비밀번호변경
GET /member/modifyPassword
•
폼 입력
◦
oldPassword
◦
password
◦
passwordConfirm
POST /member/modifyPassword
아이디찾기/비번찾기
아이디찾기
GET /member/findUsername
•
폼 입력
◦
email
POST /member/findUsername
•
입력된 email에 해당하는 user의 username을 노출
비번찾기
GET /member/findPassword
•
폼 입력
◦
username
◦
email
POST /member/findPassword
•
임시비밀번호를 발송