Skip to content

Commit

Permalink
[댓글 기능] 미르 미션 제출합니다. (woowacourse#150)
Browse files Browse the repository at this point in the history
* revert: Revert Project

* [게시글 생성/조회/수정/삭제] 올라프 미션 제출합니다. (woowacourse#29)

* docs : README.md 작성

* feat: 게시글 작성 페이지 이동 구현

* index.html, article-edit.html 파일을 templates 폴더로 이동함

* AriticleController.java: /writing GET요청 처리

Squashed commit of the following:

commit 7fa33210c68665351585da9f8fbc4e2117248a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:55 2019 +0900

    docs: TODO 추가

commit d8e14dbdd71112723278e2e312ec46582a131d00
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:17 2019 +0900

    feat: 게시글 작성 페이지 이동

* feat: 게시글 작성 및 추가 기능 구현

* feat: 게시글 목록 조회

commit 9361045bbb8cfc607918c5ed4bda4ceee9aece6f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 10 18:01:03 2019 +0900

    feat: 게시글 목록 조회

* feat: 게시글 조회 기능

Squashed commit of the following:

commit 513b0f9f8dcf8cd2a2810db7d8e82c3efd13b317
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:42:08 2019 +0900

    feat: 게시글 조회 기능 구현

commit 55b1b0ea2760d83c12b1cc060e2fa0d03e9d8297
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:29:05 2019 +0900

    chore: 절대경로로 변경

    * 외부 리소스 접근 경로 상대경로에서 절대경로로 변경

* feat: 게시글 수정 기능 구현

* feat: 게시글 삭제 기능 구현

Squashed commit of the following:

commit 44fa3af15a2b1b6da8b8229f06a26c315cfa493c
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:11:07 2019 +0900

    docs: TODO.md 추가

commit b01f06e590c2b8b42a40c8da36adb01705bfbf7f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:01:39 2019 +0900

    refactor: html js부분 중복 제거

commit 51101469f093fd305653c6ed63d5be8aaa69ad24
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:52:07 2019 +0900

    fix: article-edit.html 나가기 버튼 오류 수정

commit 23ba3a40a3c427248c4ee8f1bdbf16a1119d1798
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:49:11 2019 +0900

    feat: 게시글 삭제 시 redirect

commit 70d5a2e9232f2baea54bbe3ac554696b89ad9149
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:29:53 2019 +0900

    feat: 게시글 삭제 후 남은 게시글 보여주기

commit 184ddc4acf42506d2f46d48eb4e79b4dae6173ce
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:21:21 2019 +0900

    refactor: 들여쓰기

commit 4e8b30e3dfa72ed4babfba2f4e3ffd9b571f8787
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:16:19 2019 +0900

    feat: 게시글 삭제 기능 구현

commit 5111c6e2d26adec5799a4546a3100a0e3f874835
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:43:53 2019 +0900

    refactor: Article 클래스 id 필드 추가

commit 2e71b5f6a5010bbe5cecca9a4f26616f53788450
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:42:44 2019 +0900

    chore: html 중복 제거

commit b88d426c35f40c12d1e069b9480789d0c7937563
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:54:29 2019 +0900

    refactor: UI 버그 수정

    * app.css, index.html 수정

commit 7c80edaf0f4452a5f610487086c466ce0da8292a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:49:31 2019 +0900

    docs: 게시글 삭제 기능 TODO 작성

* refactor: InvalidArticleException 로 Article 예외 처리

* refactor : 피드백 반영

Squashed commit of the following:

commit 3502b6bbf150aeae8ca67faba9651d1deabf84f1
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:23:34 2019 +0900

    refactor: field injection에서 constructor injection으로 수정

commit 9cdcde68f444456e08d71853fc07a0861536048e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:14:39 2019 +0900

    refactor: ArticleController 클래스 PathVariable 자료형 int로 통일

commit 72a7c41d5e089876c4a126c44bf2f369c6602bf3
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:11:47 2019 +0900

    refactor: 테스트 코드 중복 제거

commit 71766eb20f8af1c57ad2f6453da7d0cedaec8b54
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:34:41 2019 +0900

    refactor: Article 클래스에서 게시물 수정 메서드(update) 구현

commit ff7daec7c63371a5f0901c9dedd25924dd998cee
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:33:23 2019 +0900

    docs: 피드백 관련 TODO.md 작성

* Squashed commit of the following:

commit b3fb54bf50e96576f2e6c2ad68da298c291d0a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 15:03:43 2019 +0900

    refactor: 수정한 게시글 내용 확인 테스트를 추가

commit da8e30ca3f936c90c1a0d49f9d84cbd64142d42b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:53:12 2019 +0900

    refactor: test 코드 중복 제거

commit 5b1abb3a6ca22e256256ebbc475ac80437d9166e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:48:01 2019 +0900

    refactor: html 중복제거

commit 805f23d18afe93a0b327a8abbb9745ad0ff551ae
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:44:51 2019 +0900

    refactor: ArticleRepository 클래스의 find 메서드 findById 로 메서드명 변경

commit b4ebb395c7f166f685bcb819e43b1222de5c1ca5
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:42:20 2019 +0900

    refactor: ArticleDto에 toArticle 메서드를 구현

commit 8ad5c7f015098e682556ad578626d6b4a0795532
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:41:29 2019 +0900

    refactor: 테스트 코드 수정

    * ArticleNotFoundException 적용

commit 7eb3c5f3dbfa8aba6b30b80c337ffa104e96b36f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:37:21 2019 +0900

    refactor: ArticleNotFoundException 추가

commit 0bd73b3de30c220e2e9b869f9e525d0da5070759
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:35:48 2019 +0900

    refactor: build.gradle 컨벤션, 테스트 실패 부분 통과하도록 수정

* [게시판 회원 기능] 올라프 미션 제출합니다 (woowacourse#64)

* docs : README.md 작성

* feat: 게시글 작성 페이지 이동 구현

* index.html, article-edit.html 파일을 templates 폴더로 이동함

* AriticleController.java: /writing GET요청 처리

Squashed commit of the following:

commit 7fa33210c68665351585da9f8fbc4e2117248a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:55 2019 +0900

    docs: TODO 추가

commit d8e14dbdd71112723278e2e312ec46582a131d00
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:17 2019 +0900

    feat: 게시글 작성 페이지 이동

* feat: 게시글 작성 및 추가 기능 구현

* feat: 게시글 목록 조회

commit 9361045bbb8cfc607918c5ed4bda4ceee9aece6f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 10 18:01:03 2019 +0900

    feat: 게시글 목록 조회

* feat: 게시글 조회 기능

Squashed commit of the following:

commit 513b0f9f8dcf8cd2a2810db7d8e82c3efd13b317
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:42:08 2019 +0900

    feat: 게시글 조회 기능 구현

commit 55b1b0ea2760d83c12b1cc060e2fa0d03e9d8297
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:29:05 2019 +0900

    chore: 절대경로로 변경

    * 외부 리소스 접근 경로 상대경로에서 절대경로로 변경

* feat: 게시글 수정 기능 구현

* feat: 게시글 삭제 기능 구현

Squashed commit of the following:

commit 44fa3af15a2b1b6da8b8229f06a26c315cfa493c
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:11:07 2019 +0900

    docs: TODO.md 추가

commit b01f06e590c2b8b42a40c8da36adb01705bfbf7f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:01:39 2019 +0900

    refactor: html js부분 중복 제거

commit 51101469f093fd305653c6ed63d5be8aaa69ad24
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:52:07 2019 +0900

    fix: article-edit.html 나가기 버튼 오류 수정

commit 23ba3a40a3c427248c4ee8f1bdbf16a1119d1798
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:49:11 2019 +0900

    feat: 게시글 삭제 시 redirect

commit 70d5a2e9232f2baea54bbe3ac554696b89ad9149
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:29:53 2019 +0900

    feat: 게시글 삭제 후 남은 게시글 보여주기

commit 184ddc4acf42506d2f46d48eb4e79b4dae6173ce
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:21:21 2019 +0900

    refactor: 들여쓰기

commit 4e8b30e3dfa72ed4babfba2f4e3ffd9b571f8787
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:16:19 2019 +0900

    feat: 게시글 삭제 기능 구현

commit 5111c6e2d26adec5799a4546a3100a0e3f874835
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:43:53 2019 +0900

    refactor: Article 클래스 id 필드 추가

commit 2e71b5f6a5010bbe5cecca9a4f26616f53788450
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:42:44 2019 +0900

    chore: html 중복 제거

commit b88d426c35f40c12d1e069b9480789d0c7937563
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:54:29 2019 +0900

    refactor: UI 버그 수정

    * app.css, index.html 수정

commit 7c80edaf0f4452a5f610487086c466ce0da8292a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:49:31 2019 +0900

    docs: 게시글 삭제 기능 TODO 작성

* refactor: InvalidArticleException 로 Article 예외 처리

* refactor : 피드백 반영

Squashed commit of the following:

commit 3502b6bbf150aeae8ca67faba9651d1deabf84f1
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:23:34 2019 +0900

    refactor: field injection에서 constructor injection으로 수정

commit 9cdcde68f444456e08d71853fc07a0861536048e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:14:39 2019 +0900

    refactor: ArticleController 클래스 PathVariable 자료형 int로 통일

commit 72a7c41d5e089876c4a126c44bf2f369c6602bf3
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:11:47 2019 +0900

    refactor: 테스트 코드 중복 제거

commit 71766eb20f8af1c57ad2f6453da7d0cedaec8b54
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:34:41 2019 +0900

    refactor: Article 클래스에서 게시물 수정 메서드(update) 구현

commit ff7daec7c63371a5f0901c9dedd25924dd998cee
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:33:23 2019 +0900

    docs: 피드백 관련 TODO.md 작성

* Squashed commit of the following:

commit b3fb54bf50e96576f2e6c2ad68da298c291d0a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 15:03:43 2019 +0900

    refactor: 수정한 게시글 내용 확인 테스트를 추가

commit da8e30ca3f936c90c1a0d49f9d84cbd64142d42b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:53:12 2019 +0900

    refactor: test 코드 중복 제거

commit 5b1abb3a6ca22e256256ebbc475ac80437d9166e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:48:01 2019 +0900

    refactor: html 중복제거

commit 805f23d18afe93a0b327a8abbb9745ad0ff551ae
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:44:51 2019 +0900

    refactor: ArticleRepository 클래스의 find 메서드 findById 로 메서드명 변경

commit b4ebb395c7f166f685bcb819e43b1222de5c1ca5
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:42:20 2019 +0900

    refactor: ArticleDto에 toArticle 메서드를 구현

commit 8ad5c7f015098e682556ad578626d6b4a0795532
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:41:29 2019 +0900

    refactor: 테스트 코드 수정

    * ArticleNotFoundException 적용

commit 7eb3c5f3dbfa8aba6b30b80c337ffa104e96b36f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:37:21 2019 +0900

    refactor: ArticleNotFoundException 추가

commit 0bd73b3de30c220e2e9b869f9e525d0da5070759
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:35:48 2019 +0900

    refactor: build.gradle 컨벤션, 테스트 실패 부분 통과하도록 수정

* refactor: Controller 리턴 타입 String에서 ModelAndView로 변경

* refactor: ArticleRepository 클래스의 id 필드 AtomicInteger타입으로 변경

* refactor: ArticleControllerTests 리팩토링

* refactor: H2 DB를 사용하도록 수정

* docs: README.md 회원 등록/조회 내용 작성

* docs: TODO.md 회원 등록/조회 내용 작성

* refactor: Controller 분리

RequestMapping 어노테이션 활용

* docs: 게시글 관련 기능 TODO.md 작성

* chore: MySQL 적용

* refactor: html 리팩터링

* Squashed commit of the following:

commit 12f5dd899e4c7d9ae1f343354ac676053e104c40
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:53:00 2019 +0900

    feat: 회원 조회 기능 구현

commit ca6e79b27d71319f8ac7ba9c5064c35952c3ec5b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:51:10 2019 +0900

    docs: 테스트 관련 todo 추가

commit 5e526558556d32f2668e318bf46e6c269e010b3a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:44:48 2019 +0900

    docs: 회원가입 TODO 추가

commit b894e540c9cd36b5ddf47e5be057ee0ead8557bf
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:39:56 2019 +0900

    feat: 회원 가입 입력 정보 validation 구현

commit 224106abfdb871127d558d6c9fc78c33b1895e7d
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:11:40 2019 +0900

    refactor: 어노테이션 기반 Validation 으로 수정

commit 62348ce5a89dac0a2bcdfc558a41ce05077dc983
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:09:17 2019 +0900

    docs: TODO.md 회원 가입 규칙 수정

commit 5e2d29fed1b3b61f82d952132a0cbfd21d1ce755
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:35:57 2019 +0900

    feat: 회원 등록 기능 구현

commit 63831508990f975324bde991cbc9eb2e1a9f56c8
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:34:00 2019 +0900

    refactor: 패키지 구조 변경

* feat: 회원 등록/조회 기능 구현

Squashed commit of the following:

commit 12f5dd899e4c7d9ae1f343354ac676053e104c40
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:53:00 2019 +0900

    feat: 회원 조회 기능 구현

commit ca6e79b27d71319f8ac7ba9c5064c35952c3ec5b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:51:10 2019 +0900

    docs: 테스트 관련 todo 추가

commit 5e526558556d32f2668e318bf46e6c269e010b3a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:44:48 2019 +0900

    docs: 회원가입 TODO 추가

commit b894e540c9cd36b5ddf47e5be057ee0ead8557bf
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:39:56 2019 +0900

    feat: 회원 가입 입력 정보 validation 구현

commit 224106abfdb871127d558d6c9fc78c33b1895e7d
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:11:40 2019 +0900

    refactor: 어노테이션 기반 Validation 으로 수정

commit 62348ce5a89dac0a2bcdfc558a41ce05077dc983
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:09:17 2019 +0900

    docs: TODO.md 회원 가입 규칙 수정

commit 5e2d29fed1b3b61f82d952132a0cbfd21d1ce755
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:35:57 2019 +0900

    feat: 회원 등록 기능 구현

commit 63831508990f975324bde991cbc9eb2e1a9f56c8
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:34:00 2019 +0900

    refactor: 패키지 구조 변경

* chore: application.properties 파일 적용

* refactor: update 로직 수정

* feat: 회원 목록 조회를 위해 user-list.html

* feat: 회원 등록 규칙 위반 시 사용자에게 알림 기능 구현

* docs: 로그인 기능 README.md

* docs: 로그인 기능 TODO.md 작성

* feat: 로그인 구현

* feat: 로그인 시 사용자 이름 띄우기 구현

* refactor: html 중복 제거

* feat: 로그아웃 기능 구현

* feat: 로그인 한 유저 redirect 구현

* docs: 회원 수정/탈퇴 기능 README.md 작성

* docs: 회원 수정/탈퇴 기능 todo 작성

* feat: 회원 정보 수정 기능 구현

* feat: 회원 정보 탈퇴 기능 구현

* feat: 비밀 번호 확인 기능 구현

* fix: 회원 가입시 Validation 버그

* refactor: test 코드 중복 제거

* test: 로그인 상황에 대한 테스트 코드 추가 및 리팩터링

* refactor: controller, tests

Squashed commit of the following:

commit 262de58d826c152faae16d2cef260975337d1b96
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 04:25:50 2019 +0900

    refactor: 중복 제거

commit dadf174
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 04:14:12 2019 +0900

    refactor: Interceptor로 controller 중복 제거

commit 2d79e10
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 03:03:15 2019 +0900

    refactor: html 중복 제거

commit dc26841
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:41:59 2019 +0900

    test: 테스트 코드 추가 및 리팩터링

commit dc05ce5
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:41:19 2019 +0900

    fix: request에 세션 설정 안된 경우 처리

commit 27181a9
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:40:10 2019 +0900

    refactor: redirect 수행하도록 변경

commit ea1d506
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:38:36 2019 +0900

    refactor: 에러메세지 상수화

* refactor: update 메서드의 반환값 추가

* refactor: test DB mysql에서 h2로 변경

* refactor: User 클래스 email필드, name 필드 null 체크 추가

* refactor: Optional의 메서드를 활용하여 리턴

* refactor: 중복 로직 메서드로 추출

* fix: 회원 탈퇴 기능 버그 수정

* refactor: @ParameterizedTest로 중복 코드 제거

* fix: 회원 탈퇴 테스트 코드 버그 수정

* refactor: matchPassword 메서드에서 authenticate 메서드로 변경

* refactor: repository 패키지 domain 안으로 이동

* fix: 정규표현식의 특수문자 추가

* refactor: UserService 구현

* add: User 클래스 toString 메서드 추가, 불필요한 테스트 코드 제거

* [게시판 회원 기능] 올라프 미션 제출 합니다. (woowacourse#99)

* docs : README.md 작성

* feat: 게시글 작성 페이지 이동 구현

* index.html, article-edit.html 파일을 templates 폴더로 이동함

* AriticleController.java: /writing GET요청 처리

Squashed commit of the following:

commit 7fa33210c68665351585da9f8fbc4e2117248a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:55 2019 +0900

    docs: TODO 추가

commit d8e14dbdd71112723278e2e312ec46582a131d00
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Tue Jul 9 17:26:17 2019 +0900

    feat: 게시글 작성 페이지 이동

* feat: 게시글 작성 및 추가 기능 구현

* feat: 게시글 목록 조회

commit 9361045bbb8cfc607918c5ed4bda4ceee9aece6f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 10 18:01:03 2019 +0900

    feat: 게시글 목록 조회

* feat: 게시글 조회 기능

Squashed commit of the following:

commit 513b0f9f8dcf8cd2a2810db7d8e82c3efd13b317
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:42:08 2019 +0900

    feat: 게시글 조회 기능 구현

commit 55b1b0ea2760d83c12b1cc060e2fa0d03e9d8297
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 08:29:05 2019 +0900

    chore: 절대경로로 변경

    * 외부 리소스 접근 경로 상대경로에서 절대경로로 변경

* feat: 게시글 수정 기능 구현

* feat: 게시글 삭제 기능 구현

Squashed commit of the following:

commit 44fa3af15a2b1b6da8b8229f06a26c315cfa493c
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:11:07 2019 +0900

    docs: TODO.md 추가

commit b01f06e590c2b8b42a40c8da36adb01705bfbf7f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 14:01:39 2019 +0900

    refactor: html js부분 중복 제거

commit 51101469f093fd305653c6ed63d5be8aaa69ad24
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:52:07 2019 +0900

    fix: article-edit.html 나가기 버튼 오류 수정

commit 23ba3a40a3c427248c4ee8f1bdbf16a1119d1798
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:49:11 2019 +0900

    feat: 게시글 삭제 시 redirect

commit 70d5a2e9232f2baea54bbe3ac554696b89ad9149
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:29:53 2019 +0900

    feat: 게시글 삭제 후 남은 게시글 보여주기

commit 184ddc4acf42506d2f46d48eb4e79b4dae6173ce
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:21:21 2019 +0900

    refactor: 들여쓰기

commit 4e8b30e3dfa72ed4babfba2f4e3ffd9b571f8787
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 09:16:19 2019 +0900

    feat: 게시글 삭제 기능 구현

commit 5111c6e2d26adec5799a4546a3100a0e3f874835
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:43:53 2019 +0900

    refactor: Article 클래스 id 필드 추가

commit 2e71b5f6a5010bbe5cecca9a4f26616f53788450
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Fri Jul 12 01:42:44 2019 +0900

    chore: html 중복 제거

commit b88d426c35f40c12d1e069b9480789d0c7937563
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:54:29 2019 +0900

    refactor: UI 버그 수정

    * app.css, index.html 수정

commit 7c80edaf0f4452a5f610487086c466ce0da8292a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Thu Jul 11 16:49:31 2019 +0900

    docs: 게시글 삭제 기능 TODO 작성

* refactor: InvalidArticleException 로 Article 예외 처리

* refactor : 피드백 반영

Squashed commit of the following:

commit 3502b6bbf150aeae8ca67faba9651d1deabf84f1
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:23:34 2019 +0900

    refactor: field injection에서 constructor injection으로 수정

commit 9cdcde68f444456e08d71853fc07a0861536048e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:14:39 2019 +0900

    refactor: ArticleController 클래스 PathVariable 자료형 int로 통일

commit 72a7c41d5e089876c4a126c44bf2f369c6602bf3
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:11:47 2019 +0900

    refactor: 테스트 코드 중복 제거

commit 71766eb20f8af1c57ad2f6453da7d0cedaec8b54
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:34:41 2019 +0900

    refactor: Article 클래스에서 게시물 수정 메서드(update) 구현

commit ff7daec7c63371a5f0901c9dedd25924dd998cee
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 12:33:23 2019 +0900

    docs: 피드백 관련 TODO.md 작성

* Squashed commit of the following:

commit b3fb54bf50e96576f2e6c2ad68da298c291d0a2e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 15:03:43 2019 +0900

    refactor: 수정한 게시글 내용 확인 테스트를 추가

commit da8e30ca3f936c90c1a0d49f9d84cbd64142d42b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:53:12 2019 +0900

    refactor: test 코드 중복 제거

commit 5b1abb3a6ca22e256256ebbc475ac80437d9166e
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:48:01 2019 +0900

    refactor: html 중복제거

commit 805f23d18afe93a0b327a8abbb9745ad0ff551ae
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:44:51 2019 +0900

    refactor: ArticleRepository 클래스의 find 메서드 findById 로 메서드명 변경

commit b4ebb395c7f166f685bcb819e43b1222de5c1ca5
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:42:20 2019 +0900

    refactor: ArticleDto에 toArticle 메서드를 구현

commit 8ad5c7f015098e682556ad578626d6b4a0795532
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:41:29 2019 +0900

    refactor: 테스트 코드 수정

    * ArticleNotFoundException 적용

commit 7eb3c5f3dbfa8aba6b30b80c337ffa104e96b36f
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:37:21 2019 +0900

    refactor: ArticleNotFoundException 추가

commit 0bd73b3de30c220e2e9b869f9e525d0da5070759
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 14 14:35:48 2019 +0900

    refactor: build.gradle 컨벤션, 테스트 실패 부분 통과하도록 수정

* refactor: Controller 리턴 타입 String에서 ModelAndView로 변경

* refactor: ArticleRepository 클래스의 id 필드 AtomicInteger타입으로 변경

* refactor: ArticleControllerTests 리팩토링

* refactor: H2 DB를 사용하도록 수정

* docs: README.md 회원 등록/조회 내용 작성

* docs: TODO.md 회원 등록/조회 내용 작성

* refactor: Controller 분리

RequestMapping 어노테이션 활용

* docs: 게시글 관련 기능 TODO.md 작성

* chore: MySQL 적용

* refactor: html 리팩터링

* Squashed commit of the following:

commit 12f5dd899e4c7d9ae1f343354ac676053e104c40
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:53:00 2019 +0900

    feat: 회원 조회 기능 구현

commit ca6e79b27d71319f8ac7ba9c5064c35952c3ec5b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:51:10 2019 +0900

    docs: 테스트 관련 todo 추가

commit 5e526558556d32f2668e318bf46e6c269e010b3a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:44:48 2019 +0900

    docs: 회원가입 TODO 추가

commit b894e540c9cd36b5ddf47e5be057ee0ead8557bf
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:39:56 2019 +0900

    feat: 회원 가입 입력 정보 validation 구현

commit 224106abfdb871127d558d6c9fc78c33b1895e7d
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:11:40 2019 +0900

    refactor: 어노테이션 기반 Validation 으로 수정

commit 62348ce5a89dac0a2bcdfc558a41ce05077dc983
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:09:17 2019 +0900

    docs: TODO.md 회원 가입 규칙 수정

commit 5e2d29fed1b3b61f82d952132a0cbfd21d1ce755
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:35:57 2019 +0900

    feat: 회원 등록 기능 구현

commit 63831508990f975324bde991cbc9eb2e1a9f56c8
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:34:00 2019 +0900

    refactor: 패키지 구조 변경

* feat: 회원 등록/조회 기능 구현

Squashed commit of the following:

commit 12f5dd899e4c7d9ae1f343354ac676053e104c40
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:53:00 2019 +0900

    feat: 회원 조회 기능 구현

commit ca6e79b27d71319f8ac7ba9c5064c35952c3ec5b
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:51:10 2019 +0900

    docs: 테스트 관련 todo 추가

commit 5e526558556d32f2668e318bf46e6c269e010b3a
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:44:48 2019 +0900

    docs: 회원가입 TODO 추가

commit b894e540c9cd36b5ddf47e5be057ee0ead8557bf
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:39:56 2019 +0900

    feat: 회원 가입 입력 정보 validation 구현

commit 224106abfdb871127d558d6c9fc78c33b1895e7d
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:11:40 2019 +0900

    refactor: 어노테이션 기반 Validation 으로 수정

commit 62348ce5a89dac0a2bcdfc558a41ce05077dc983
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 17:09:17 2019 +0900

    docs: TODO.md 회원 가입 규칙 수정

commit 5e2d29fed1b3b61f82d952132a0cbfd21d1ce755
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:35:57 2019 +0900

    feat: 회원 등록 기능 구현

commit 63831508990f975324bde991cbc9eb2e1a9f56c8
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Wed Jul 17 15:34:00 2019 +0900

    refactor: 패키지 구조 변경

* chore: application.properties 파일 적용

* refactor: update 로직 수정

* feat: 회원 목록 조회를 위해 user-list.html

* feat: 회원 등록 규칙 위반 시 사용자에게 알림 기능 구현

* docs: 로그인 기능 README.md

* docs: 로그인 기능 TODO.md 작성

* feat: 로그인 구현

* feat: 로그인 시 사용자 이름 띄우기 구현

* refactor: html 중복 제거

* feat: 로그아웃 기능 구현

* feat: 로그인 한 유저 redirect 구현

* docs: 회원 수정/탈퇴 기능 README.md 작성

* docs: 회원 수정/탈퇴 기능 todo 작성

* feat: 회원 정보 수정 기능 구현

* feat: 회원 정보 탈퇴 기능 구현

* feat: 비밀 번호 확인 기능 구현

* fix: 회원 가입시 Validation 버그

* refactor: test 코드 중복 제거

* test: 로그인 상황에 대한 테스트 코드 추가 및 리팩터링

* refactor: controller, tests

Squashed commit of the following:

commit 262de58d826c152faae16d2cef260975337d1b96
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 04:25:50 2019 +0900

    refactor: 중복 제거

commit dadf174
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 04:14:12 2019 +0900

    refactor: Interceptor로 controller 중복 제거

commit 2d79e10
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 03:03:15 2019 +0900

    refactor: html 중복 제거

commit dc26841
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:41:59 2019 +0900

    test: 테스트 코드 추가 및 리팩터링

commit dc05ce5
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:41:19 2019 +0900

    fix: request에 세션 설정 안된 경우 처리

commit 27181a9
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:40:10 2019 +0900

    refactor: redirect 수행하도록 변경

commit ea1d506
Author: school0bhy <house1217@ajou.ac.kr>
Date:   Sun Jul 21 02:38:36 2019 +0900

    refactor: 에러메세지 상수화

* refactor: update 메서드의 반환값 추가

* refactor: test DB mysql에서 h2로 변경

* refactor: User 클래스 email필드, name 필드 null 체크 추가

* refactor: Optional의 메서드를 활용하여 리턴

* refactor: 중복 로직 메서드로 추출

* fix: 회원 탈퇴 기능 버그 수정

* refactor: @ParameterizedTest로 중복 코드 제거

* fix: 회원 탈퇴 테스트 코드 버그 수정

* refactor: matchPassword 메서드에서 authenticate 메서드로 변경

* refactor: repository 패키지 domain 안으로 이동

* fix: 정규표현식의 특수문자 추가

* refactor: UserService 구현

* add: User 클래스 toString 메서드 추가, 불필요한 테스트 코드 제거

* refactor: User 클래스 입력값 검증 로직 추가

* refactor: ControllerAdvice를 이용하여 에러 핸들링하도록 변경

* refactor: controller 클래스 패키지 이동 및 불필요한 코드 삭제

* test: UserService 테스트 코드

* test: UserDto 테스트 코드 구현

* test: ArticleDto 테스트 코드 작성

* refactor: entity 기본생성자 접근제어자 private으로 변경

* refactor: UserControllerExceptionHandler 클래스 위치 변경

사용하지 않는 파일 삭제

* refactor: test 코드 리팩터링

* refactor: 상수 접근제어자 추가

* rename: Controller 패키지 이름 변경 -> controller

* refactor: User Service 분리

* refactor: controller test 패키지 수정

* refactor: UserService 및 테스트 리팩터링

* refactor: ArticleReadService, ArticleWriteService 구현

* refactor: ArgumentResolver 구현

* docs: 댓글 기능 README.md 작성

* docs: todo.md 작성

* feat: 게시글 작성자 추가

* feat: Comment entity 구현

* refactor: findByIdAndAuthor 메서드 articleReadService로 이동

* feat: 댓글 생성/조회 기능 구현

* chore: controller test 위치 변경

* feat: 댓글 삭제 기능 구현

* refactor: exception handler 메서드명 변경

* refactor: OnDelete annotation 사용

* feat: 댓글 수정 기능 구현

* refactor: article 페이지 css 수정

* refactor: cascade 옵션 오류 수정

* refactor: BindException 처리 분리

* resolve conflict

* merge: 충돌 해결

* rename: package명 변경

* refactor: 불필요한 파일 삭제

* refactor: package 정리

* refactor: exception package 생성 및 exception 파일 이동

* refactor: Article 변경

lombok 추가
@lob 적용
update 시 작성자 확인

* fix: article error 수정

* refactor: 에러 메시지 Exception 에 작성

* refactor: Comment 클래스 변경

- lombok 수정
- null 확인 & 작성자 확인 메서드 분리

* refactor: user pattern 클래스 생성

* refactor: 작성자 확인 메서드 변경

* refactor: User 클래스 lombok 적용

* refactor: User 클래스 modifyName 리턴 값 void로 변경

* refactor: User 클래스 magic number 제거

* refactor: Dto 클래스 lombok 적용

* refactor: ArticleDto Setter 사용 제거

* refactor: CommentDto Setter 사용 제거

* refactor: 불필요한 package 제거

* refactor: CommentService Read / Write 분리

* refactor: Argument lombok 적용 및 null 체크

* refactor: 에러 메시지 Exception 에 작성

* refactor: CommentController requestMapping 적용

* refactor: exception package 이동

* refactor: UserController / MypageController 분리

* refactor: login Error / validate group 추가

* refactor: 세미오타 수정 / 세미콜론 2개

* refactor: 사용하지 않는 annotation 제거

* refactor: Article 클래스 시간 추가 및 메서드 분리

* refactor: Comment 클래스 메서드 분리

* refactor: 필드 접근 생성자 변경

* refactor: Error 메시지 변경

* refactor: User modifyName 메서드 변경

* refactor: Service 변경

- 사용하지 않는 annotation 제거
- 매개변수 Dto -> Entity 로 변경

* refactor: setter 삭제

* refactor: Exception Handler 위치 변경

* refactor: 매개변수 Dto -> Entity로 변경

* refactor: ArticleDto 생성자 매개변수 이름 변경

* refactor: 불필요한 테스트 삭제

* refactor: Object 재사용을 위한 클래스 생성

* refactor: TestTemplate 메서드 명 변경

* refactor:  테스트 버그 수정

* refactor: TestObject 사용

* refactor: 사용하지 않는 패키지 제거
  • Loading branch information
ddu0422 committed Aug 6, 2019
1 parent 334795a commit cf786a4
Show file tree
Hide file tree
Showing 110 changed files with 2,641 additions and 1,529 deletions.
165 changes: 82 additions & 83 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,86 @@
# 게시글 관련 기능 구현
# 나만의 블로그 서비스

## 1단계 기능목록
## 게시글 관련 기능

### 게시글 생성

- 게시글 작성 페이지 이동
- 메인페이지(index.html)에서 게시글 생성 버튼을 누르기
- `GET /writing` 으로 요청
- 작성 페이지(article-edit.html)로 이동

- 게시글 작성
- `POST /articles` 으로 요청
- 게시글 생성 시 게시글은 ArticleRepository의 `List<Article> articles`에 저장한다.
- 게시글 페이지(article.html)로 이동

### 게시글 목록 조회

- 메인 페이지 이동
- `GET /` 으로 요청으로 이동 시 메인 페이지에 게시글 목록이 노출

### 게시글 조회

- 게시글 페이지 이동
- 메인페이지(index.html)에서 게시글을 클릭 시 게시글 페이지(article.html)으로 이동
- `GET /articles/{articleId}` 으로 요청

### 게시글 수정

- 게시글 수정 페이지 이동
- 게시글 페이지(article.html)에서 수정 버튼 누르기
- `GET /articles/{articleId}/edit` 으로 요청
- 게시글 수정 페이지(article-edit.html)로 이동
- 게시글 수정
- `PUT /articles/{articleId}` 으로 요청
- 게시글 페이지(article.html)로 이동

### 게시글 삭제

- 게시글 페이지(article.html)에서 삭제 버튼 누르기
- `DELETE /articles/{articleId}` 으로 요청
- 게시글 목록 조회 페이지(index.html)로 이동

## 2단계 기능목록

### 기존에 구현한 데이터를 MySql로 옮기기
### 회원등록
- 회원가입페이지(signup.html)에서 POST /users 로 요청
- Spring Data JPA를 이용하여 DB에 user 정보를 저장
- 생성 후 로그인 화면으로 이동
- 회원가입 시 아래의 회원가입 규칙을 지켜야 하고, 위반 시 사용자에게 알려준다.

### 회원조회
- GET /users 로 요청하여 회원목록페이지(user-list.html) 이동
- DB에 저장된 회원 정보 노출

### 회원등록실패
- 회원등록 실패 시 errorMessage를 Model에 담아서 페이지에 노출하기!
- 프론트엔드에서 errorMessage 노출 시 부트스트랩의 Alerts을 이용할 것
- 프론트엔드에서도 유효성 체크할 수 있도록 할 것
- HTML5에서 제공하는 form validation 기능을 최대한 활용할 것
### 게시글 생성/조회 기능
1. 게시글 작성 페이지 이동
- 로그인하지 않은 사용자는 로그인 요청
- 메인페이지(index.html)에서 게시글 생성 버튼을 누르기
- ```GET /writing``` 으로 요청
- 작성 페이지(article-edit.html)로 이동

### 실행 쿼리 보기 설정하기

### 로그인
- 로그인 성공 시 메인 화면을 띄우고 우측 상단에 사용자 이름을 띄운다.
- 로그인 실패 시 상황에 맞는 실패 메시지를 띄운다.
- 이메일이 없는 경우
- 비밀번호가 틀린 경우
2. 게시글 작성
- 로그인하지 않은 사용자는 로그인 요청
- ```POST /articles``` 으로 요청
- 게시글 생성 시 게시글은 ```ArticleRepository``````List<Article> articles```에 저장한다.
- 게시글 페이지(article.html)로 이동

3. 게시글 목록 조회
- 메인페이지 이동 시 ```GET /``` 으로 요청하여 전체 게시글 목록이 노출

4. 게시글 조회
- 메인페이지에서 게시글 클릭시 ```GET /articles/{articleId}``` 으로 요청하여 게시글 페이지로 이동

### 게시글 수정/삭제 기능
1. 게시글 수정 페이지 이동
- 작성자만 접근 가능
- 게시글 페이지(article.html)에서 수정 버튼 누르기
- GET /articles/{articleId}/edit 으로 요청
- 게시글 수정 페이지(article-edit.html)로 이동

2. 게시글 수정
- 작성자만 접근 가능
- ```PUT/articles/{articleId}``` 으로 요청 시 게시글 페이지(article.html)로 이동

3. 게시글 삭제
- 작성자만 접근 가능
- 게시글 페이지(article.html)에서 삭제 버튼 누르기
- DELETE /articles/{articleId} 으로 요청
- 게시글 목록 조회 페이지(index.html)로 이동

## 회원 관련 기능

### 회원 등록/조회 기능
1. 회원등록
- 회원가입페이지(signup.html)에서 ``POST /users`` 로 요청
- Spring Data JPA를 이용하여 DB에 user 정보를 저장
- 생성 후 로그인 화면으로 이동
- 회원가입 시 아래의 회원가입 규칙을 지켜야 하고, 위반 시 사용자에게 알려준다.

> 회원가입 규칙
> - 동일한 email로 중복가입을 할 수 없다.
> - 이름은 2~10자로 제한하며 숫자나 특수문자가 포함될 수 없다.
> - 비밀번호는 8자 이상의 소문자, 대문자, 숫자, 특수문자의 조합이다.
> - 비밀번호 확인 기능이 동작해야 한다.
2. 회원조회
- ``GET /users`` 로 요청하여 회원목록페이지(user-list.html) 이동
- DB에 저장된 회원 정보 노출

### 로그인 기능
1. 로그인 기능
- 로그인 성공 시 메인 화면을 띄우고 우측 상단에 사용자 이름을 띄운다.
- 로그인 실패 시 상황에 맞는 실패 메시지를 띄운다.
- 이메일이 없는 경우
- 비밀번호가 틀린 경우

### 로그아웃
- 로그아웃 시 메인 화면을 띄운다.

### 기타
- 로그인 한 유저가 로그인/회원가입 화면에 접근할 경우 메인 화면을 띄운다.
- 회원 수정 시 본인 여부를 판단하여 다른 사람이 수정을 시도하는 경우 제한한다.

### 회원 수정 / 탈퇴 기능 구현하기
- 본인의 회원정보만 수정할 수 있어야 하고 본인만 탈퇴할 수 있어야 한다.
- 로그인 후 본인 확인하는 과정이 필요하다.

### 회원 수정
- 회원수정페이지(signup.html)에서 PUT 메소드를 이용하여 수정 요청

### 회원 탈퇴
- MyPage > profile 하단 > 탈퇴 버튼을 추가
- DELETE 메소드를 이용하여 탈퇴 요청
2. 로그아웃 기능
- 로그아웃 시 메인 화면을 띄운다.

3. 기타
- 로그인 한 유저가 로그인/회원가입 화면에 접근할 경우 메인 화면을 띄운다.


### 회원 수정/탈퇴 기능
1. 회원 수정
- 로그인한 사용자는 자신의 회원정보 수정 가능
- 로그인하지 않은 사용자는 회원정보 수정 불가, ``GET /``로 redirect
2. 회원 탈퇴
- 로그인한 사용자는 회원 탈퇴 요청 가능 (DELETE 메소드를 이용)
- 로그인하지 않은 사용자는 탈퇴 요청시 ``GET /``로 redirect


## 댓글 관련 기능
1. 댓글 작성 시 작성자와 게시글 정보가 같이 저장
2. 댓글 생성/조회/수정/삭제 조회 기능
- 수정/삭제는 댓글 작성자만 가능
106 changes: 106 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
## 게시글 관련 기능 TODO

### 게시글 작성
- [X] 게시글 작성페이지 이동 : ``GET /writing`` 요청 시 200 OK
- [X] 게시글 작성 : ``POST /articles``로 요청시 작성한 게시글 페이지로 이동

### 게시글 생성
- [X] 제목, 배경 이미지 url, 내용이 모두 입력되었을 때 -> 정상 처리
- [X] 제목, 내용이 입력되지 않았을 때 -> 에러 발생
- [X] 배경 이미지 url이 입력되지 않았을 때 -> 정상 처리 (기본 값을 설정)

### 게시글 조회
- [X] 존재하는 게시글 id에 접근 했을 때 -> 정상 처리
- [X] 존재하지 않는 게시글 id에 접근 했을 때 -> 에러 발생

### 게시글 수정
- [X] 게시글 수정 페이지 이동 : ``GET /articles/{articleId}/edit``으로 요청 시 200 OK
<br>(게시글 수정 페이지(article-edit.html)로 이동)
- [x] 게시글 수정 : ``PUT /articles/{articleId}``로 요청시 작성한 게시글 페이지로 이동
- [X] 존재하는 게시글 수정 (update) -> 정상 처리
- [X] 존재하지 않는 게시글 수정 요청 -> 에러 발생

### 게시글 삭제
- [X] 게시글 페이지(article.html)에서 삭제 버튼 클릭 시 ``DELETE /articles/{articleId}`` 으로 요청
- [X] 게시글 삭제 후 게시글 목록 조회 페이지(index.html)로 이동
- [X] 존재하는 게시글 삭제 (delete) 요청 -> 정상 처리
- [X] 존재하지 않는 게시글 삭제 요청 -> 에러 발생

### 제약조건
- [X] HTML 중복 제거
- [X] 정적 파일 수정 시 재시작하지 않고 변경사항 반영하기
- [X] class 파일 수정 시 자동으로 재시작하기

### 기타
- [X] 커스텀 익셉션 만들기

### 피드백
- [X] Article 클래스에 update구현
- [X] 테스트 코드 중복 제거
- [X] 필드 인젝션 -> 생성자 인젝션
- [X] PathVariable 자료형 통일 (Integer/int)

## 회원 관련 기능

### 회원 등록
- [X] 회원가입페이지(signup.html) 에서 ``POST /users`` 로 요청하면
DB에 user정보 저장
- [X] 저장 후 로그인 화면으로 redirect
- [X] 실패 시 사용자에게 알려준다
- [X] 회원가입 관련 html 수정 (signup.html)

### 회원 가입 규칙
- [X] 동일한 email 중복 가입 시도 -> 에러
- [X] 이름은 2~10자, 숫자나 특수문자가 포함된 경우 -> 에러
- [X] 비밀번호는 8자 이상, 소문자, 대문자, 숫자, 특수문자의 조합이 아닌 경우 -> 에러
- [X] 비밀번호 확인 기능이 동작

### 회원 조회
- [X] ``GET /users``로 요청하여 회원 목록 페이지(user-list.html) 이동
- [X] 회원 목록 페이지에서 DB에 저장된 회원 정보 확인
- [X] user-list.html 수정

### 기타
- [X] MySql로 DB 변경
- [X] 실행 쿼리 보기 설정하기
- [X] update CrudRepository의 save 대안 찾아보기
- [X] 테스트 코드 독립성 - (테스트 메서드마다 DB 롤백할 수 있는 방법 찾아보기)

### 로그인
- [X] 로그인 성공 시 메인 화면(index.html)으로 redirect
- [X] 로그인 성공 시 메인화면 우측 상단에 사용자 이름을 띄운다.
- [X] 해당 이메일이 없는 경우 -> 에러
- [X] 비밀번호 불일치 경우 -> 에러
- [X] 로그아웃 요청 시 메인 화면(index.html)으로 redirect
- [X] 로그인 한 유저가 로그인/회원가입 화면에 접근할 경우 메인 화면(index.html)으로 redirect
- [X] 로그인 한 유저가 로그인/회원가입 화면에 접근할 경우 메인 화면(index.html)으로 redirect 테스트!
- [X] 로그인하지 않은 유저가 로그인/회원가입 화면에 접근할 경우 200 OK

### 회원 수정
- [X] ``GET /mypage`` 로 요청시 회원 정보 페이지로 이동 (200 OK)
- [X] ``GET /mypage/edit`` 로 요청시 회원정보 수정페이지로 이동 (200 OK)
- [X] ``POST /mypage``로 요청시 회원 정보 수정하고 ``GET /mypage`` 로 redirect
- [X] 회원 정보 수정 테스트 코드!

### 회원 탈퇴
- [X] MyPage > profile 하단 > 탈퇴 버튼 추가
- [X] 탈퇴버튼 클릭시 ``DELETE /users`` 로 요청 ~ 탈퇴 처리 후 ``GET /`` 로 redirect

## 게시글 추가 기능

1. 게시글 작성 관련 요청 (``GET /articles/writing``, ``POST /articles/write``)
- [x] 로그인한 사용자 -> 정상 동작 (원래대로)
- [x] 로그인하지 않은 사용자 -> 로그인 요청 (로그인페이지로 redirect)

2. 게시글 수정 / 삭제 관련 요청 (``GET /articles/{articleId}/edit``, ``PUT /articles/{articleId}``, ``DELETE /articles/{articleId}``)
- [x] 로그인하지 않은 사용자 -> 에러 발생 (로그인페이지로 redirect)
- [x] 작성자인 경우 -> 정상 동작 (원래대로)
- [x] 작성자가 아닌 경우 -> 에러 발생 (홈으로 이동할때 alert 창 발생)

## 댓글 관련 기능

- [ ] 댓글 보기 : 게시글 조회할 때 연관 댓글 함께 보여주기
### 댓글 작성
- [ ] ``POST /comment/{articleId}``
- [ ] ``PUT /comment/{commentId}/``
- [ ] ``DELETE /comment/{commentId}/``
40 changes: 21 additions & 19 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,35 +1,37 @@
plugins {
id 'org.springframework.boot' version '2.1.6.RELEASE'
id 'java'
id 'org.springframework.boot' version '2.1.6.RELEASE'
id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'techcourse'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
jar {
baseName = 'spring-validation'
version = '0.0.1-SNAPSHOT'
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
testImplementation 'org.junit.jupiter:junit-jupiter:5.4.2'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
implementation 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-devtools'
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java'
implementation group: 'org.hibernate', name: 'hibernate-java8', version: '5.0.0.CR1'

testImplementation 'org.junit.jupiter:junit-jupiter-api'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'junit'
}
testImplementation 'org.springframework.boot:spring-boot-starter-webflux'
testImplementation 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-devtools'
implementation 'org.apache.commons:commons-lang3:3.0'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java'
runtimeOnly 'net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1'
testImplementation 'org.springframework.boot:spring-boot-starter-webflux'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa'
testImplementation 'com.h2database:h2'
runtimeOnly 'net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1'
}
6 changes: 3 additions & 3 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Wed Jul 10 16:43:27 KST 2019
#Fri Jul 19 11:35:16 KST 2019
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
zipStoreBase=GRADLE_USER_HOME
28 changes: 0 additions & 28 deletions src/main/java/techcourse/myblog/HelloWorldController.java

This file was deleted.

Loading

0 comments on commit cf786a4

Please sign in to comment.