티스토리 뷰
Lv2 - 1주차 미션 : Spring Boot/게시글 관련 기능 구현
https://github.com/woowacourse/jwp-blog
학습목표
- Spring Boot를 통해 웹 애플리케이션 프로젝트를 생성하는 경험을 한다.
- Spring MVC를 통해 웹 애플리케이션에서 요청을 받고 응답을 하는 흐름을 이해한다.
- Acceptance Test(인수 테스트) 기반으로 웹 애플리케이션을 개발하는 경험을 한다.
미션
- 게시글 생성/조회기능 구현하기
- 게시글 수정/삭제기능 구현하기
- (adv) 카테고리 관련 기능 구현하기
체크리스트
- 제약조건
- HTML 중복 제거하였는가
- 정적 파일 수정 시 재시작 하지 않고 변경사항 반영하기
- class 파일 수정 시 자동으로 재시작 하기
- 기능구현
- 게시글 CRUD 기능을 구현했는가
- 모든 요청에 대한 Acceptance Test를 구현했는가
- 테스트의 중복을 제거하였는가
- URL 컨벤션을 지키며 구현했는가
새롭게 알게된 것
- Spring, Spring boot의 전체적인 컨셉
- Spring boot (정말)기본적인 사용법
- Thymeleaf 문법
- thymeleaf-layout을 통한 HTML 중복 제거
- SpringBoot Devtools 자동 리로드
- ATDD
- WebTestClient
느낀점
- Spring, Spring boot라는 엄청난 친구들의 존재를 알게되었다.
- 레벨1에서 맛보기로 써봤던 SparkJava의 수동적인 부분들이 스프링 부트에선 자동으로 되어 참 편하더라 (미션내내 "이게 왜 되지?")
- 여전히 웹 환경이 익숙하지 않고, 스프링이 처음이라 어색한 점이 많았다.
- 스프링, 부트에 전반적으로 익숙해지면서 그 원리도 공부할 필요있음. 단기간에 되는 건 아니고, 꾸준히 해가야할것 같음.
- Thymeleaf 문법도 어색했는데, 모든것들이 새롭게 등장하므로 빠르게 검색으로 필요한 것을 찾아서 사용하고 익숙해지는 연습이 필요할 것 같다.
- 레벨1때 느꼈던 것처럼, 혼자 삽질하기보다 빠르게 주기를 가져가며 주변에 물어보며 그 시간을 줄여나가는것이 좋음
CGI, Servlet, JSP, Spring 등등.. 새롭게 등장하는 웹 환경에서의 용어들, 조만간 큰 흐름을 한번 그려보고 파악해야겠다.- 테스트 방식이 처음엔 아예 감이 안왔는데, 조금씩 느낌은 알아가는 중
내 코드, 피드백 관련
-
HTML 중복제거 방식도 layout, decorator 등 여러 키워드와 방식이 있다.
-
인텔리제이의 debugging을 적극적으로 활용할 것
- 노션 메모
- 참고
-
Forward vs Redirect
Redirect와 forward의 차이
포워드시 첫URL로 나타나는 점이나 리다이렉트시 기존 정보 날아가는 등, 차이를 직접 느끼게 됨- 게시글 작성시 리다이렉트하지않으면 ~articles/와 같이 남아서, 새로고침하면 포워딩 한번 더 되고 게시글 2개 생기는 삽질도 했었다
-
게시글 작성시 본문이 tui-editor.js를 거치며 유니코드로 변환되는 과정이 있었다. 이를 모르고 열심히 렌더링 후의 뷰 코드를 테스트하는 삽질. 테스트 코드에서도 한번더 유니코드로 변환해 비교하는 해결법과, 동시에 이런 테스트 방식 자체의 (문제라긴 좀 그렇고)위험성? 생각해볼만한 여지?를 조언받음. 일단 지금 단계에선 상태와 location 확인정도만 했음
-
ParameterizedTest 썼던 경험
- 이제까진 반환값이 필요없고 사용하지 않으면 무조건 void로 리턴했었는데, 아직은 안써도 설계상의 이유로 원하는 타입을 리턴시키는 관점도 생각해보게됨. -> 이후의 주차에서 Entity 메소드를 설계할때 참고하게 되었음
- 테스트 코드에서의 반복되는 부분들을 줄일 생각자체도 처음으로 하게 되었다. -> 이후 주차엔 중복이 더 많아져 `AbstractControllerTest.class`처럼 메소드 뿐아니라 클래스로 빼기도 함.
'우아한 테크코스' 카테고리의 다른 글
우아한 테크코스) Lv2 - 3주차 [블로그 - 빌드&배포 구성 / 댓글 관련 기능 구현] 미션 후기, 코드리뷰 (0) | 2019.09.16 |
---|---|
우아한 테크코스) Lv2 - 2주차 [블로그 - Spring Data JPA/회원 관련 기능 구현] 미션 후기, 코드리뷰 (0) | 2019.09.13 |
우아한 테크코스) Lv1 - 6~8주차 [Chess] 미션 후기, 코드리뷰 (0) | 2019.09.13 |
우아한 테크코스) Lv1 - 4~6주차 [Lotto] 미션 후기, 코드리뷰 (0) | 2019.09.13 |
우아한 테크코스) Lv1 - 3주간의 페어프로그래밍 회고록 (0) | 2019.09.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Stack
- sort
- 개발자
- dfs
- 웹해킹
- queue
- JPA
- Android Studio
- Android
- javascript
- mysql
- Algorithm
- webhacking.kr
- OneToMany
- 해외여행
- graph
- socket
- 리버싱
- brute-force
- reversing
- Java
- 회고
- 우아한 테크코스
- bfs
- 프로그래머스
- Vo
- Data Structure
- FRAGMENT
- C
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함