-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
실제 코드 구현 과정에서 논의 사항과 달라진 부분들이 있습니다
- Member -> User로 변경되었습니다.
SpringSecurity에서 기본적으로 제공하는 메서드에 모두 user 키워드가 들어가기 때문에 일관성을 위해 변경했습니다. - 북마크, 좋아요, 차단의 경우 Delete 요청 없이 Post로 좋아요와 취소를 변경하도로 변경되었습니다.
프론트/ 백엔드 모두 불필요하게 코드가 증가한다고 생각되어 배제하였습니다. 다른 의견 있으시면 남겨주세요. - 기본 댓글은 좋아요를 받지만 답글(re-comment)는 좋아요를 누를 수 없는 것으로 변경했습니다.
또한, 프로필 사진도 댓글에만 표시됩니다. - 기존에 협의되지 않았던 기술 스택인 QueryDsl의 의존성을 추가해놨습니다.
복잡한 페이징 처리 시에 도움이 많이 되기 때문에 넣어놓기는 했는데, 반드시 필요한 순간이 오기 전까지는 사용하지 않을 예정입니다.
초기 템플릿 안내 사항
- 인자로 받아야하는 요소들에 대한 정확한 값을 아직 확정하지 못했기 때문에 개발 단계에서 끊임 없이 저랑 소통하며 정해나가야 할 것 같습니다.
혼자 작업하다보니 전체 프로세스까지 신경쓰며 프론트를 구현하기가 어렵습니다 ㅜㅜ 양해 부탁드립니다.
특히 반환 형태는 반드시 저와 상의 후 결정하셔야 합니다. - 마찬가지로 컨트롤러는 반환값이나 입력값 DTO를 겉으로라도 구현해놨으나,
서비스까지 제가 모두 정의하면 오늘 안에 끝낼 수 없을 것 같아 서비스는 메서드명만 정해두고 인자와 반환값은 모두 디폴트로 두었습니다.
개발 시 불필요한 수정을 줄일 수 있도록 보편적으로 사용되는 항목은 사전에 협의하며 작성하면 좋을 것 같습니다. - 스프링 시큐리티 때문에 Controller 테스트는 모든 메서드에 각각 @WithMockUser를 작성해야 정상적으로 테스트 가능합니다.
- 기본적인 앱 실행 테스트는 완료했으나 시간이 촉박하여 충분히 검수하지 못했습니다.. 문제 있는 항목 발견하면 먼저 알려주시고, 이후 수정 부탁드립니다.
- 컨트롤러, 서비스의 클래스 작명은 모두 Interface 이름 + Impl로 통일합니다.
- 추가적으로 메서드가 필요한 경우에도 인터페이스를 먼저 작성하고 구현체에서 상속받아 구현해주세요.
커밋 시에는 아래 양식을 지켜주세요
* Feat : 새로운 기능 추가
* Fix : 버그 수정
* Docs : 문서 수정
* Style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
* Refactor : 코드 리펙토링
* Test : 테스트 코드, 리펙토링 테스트 코드 추가
* Chore : 빌드 업무 수정, 패키지 매니저 수정
ex>
git commit -m "Feat : UserPost 메서드 작성. (제목)
UserPost 메서드 구현 및 관련 Dto인 UserPost.Post 작성" (본문)
간단한 예시일 뿐 가급적 제목만으로 모든 걸 알 수 있는 게 Best practice입니다.
2022/ 09/ 19~ 개발 일정
로직 명칭을 정하기가 애매해 모두 API 기준으로 작성하였습니다.
해당 방식이 불편하면 의견 공유 부탁드립니다!
한 개 작업을 완료 시마다 풀 리퀘스트 및 완료 체크 부탁드립니다.
전달사항 reminding 및 (반 강제적인) 지속적인 레포 확인을 위함입니다.
이 부분도 다른 의견 있으시면 공유 부탁드려요!
디스코드 회원 목록 순서대로 작성
강지원
- POST /posts
- GET /posts
- PATCH /posts/{post-id}
양은찬
- 스프링 시큐리티 토큰 프론트와 연동
- 프론트 주요 api 연동 마무리
김경근
- POST /{post-id}/bookmark
- POST /{post-id}/report
- POST /{post-id}/like
추가 과제- GET /posts?category={category}&page={page}&size={size}
조규원
- GET /profile/{user-id}
- DELETE /{user-id}
- POST /block/{user-id}
작업 단위는 최대한 서로 의존성을 갖지 않도록 분배하였습니다. 추후 내가 꼭 맡고 싶은 역할이 있다거나, 기존 분배 방식이 마음에 들지 않으면 말씀해주세요.
1. 커밋 시 클래스, 메서드 경계를 넘지 않게 최소 단위로 수정한다.
아무리 사소한 것이더라도 해당 메서드나 클래스 경계에 수정할 것이 그 부분 밖에 없다면 그것만 커밋할 것.
(단, 특정 메서드에 밀접한 관계가 있는 DTO작성 시 같이 커밋할 수 있습니다.)
2. 1개 로직 완성 시마다 PullReqeust
3. 테스트는 반드시 단위테스트로 다른 레이어에 영향을 받지 않아야하며, 한 개 메서드당 실패 테스트도 최소 한 개 이상 포함한다.
4. 컨트롤러 테스트 시 RestDocs도 생성할 것 (HTML 제외)
Reactions are currently unavailable