///
Search
🏅

1주차

상태
미션 공개 완료

이번주 수행 사항

필수과제

회원가입, 회원정보수정, 로그인, 로그아웃, 아이디찾기
글 작성, 글 수정, 글 리스트, 글 삭제

추가과제

비번찾기
상품 등록
상품 수정
상품 리스트
상품 상세페이지

미션 개요 - 요구사항 정의

회원

회원은 일반회원과 작가회원이 있다.
가입 직후는 일반회원이고, 작가명 등록을 하면 작가회원이 된다.
작가회원이 되면 상품(책)을 등록할 수 있다.
별개로 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
임시비밀번호를 발송

ERD