week2 멘토링 일지 - boostcampwm2023/web04-ALGOCEAN GitHub Wiki
✔️ 결론 및 To Do
FE & BE 공통
프로젝트 현황
- [Github Repository](https://github.com/boostcampwm2023/web04-ALGOCEAN)
- [Github Project](https://github.com/orgs/boostcampwm2023/projects/65)
URL | URI | Method | Description | Querystring | Request Body | Response Body | 비고 (Status Code 외) |
---|---|---|---|---|---|---|---|
/questions | /questions/lists | GET | 페이지 별 질문 리스트 (필터링, 정렬, 검색 가능) page는 1, sortByCreatedAt는 desc가 기본값임 일부 Querystring만 전달해도 됨 | tag, programmingLanguage, isAdopted, page, sortByCreatedAt,sortByViewCount,sortByLikeCount, title | { [{ id, title, nickname, tag(문제 사이트), createdAt, programmingLanguage, isAdopted, viewCount, likeCount }, ...] }, totalPage} | 200, 500 | |
/questions | /questions/finds/:title 삭제 예정 질문 리스트랑 통합했지만 호환성을 위해 내비 둠 이 API 사용하는 곳이 있다면 변경해주세요 | GET | 질문 검색 title을 포함하고 있는 질문들의 리스트를 반환 page는 1이 기본 값 | page | [{ id, title, nickname, tag(문제 사이트), createdAt, programmingLanguage, isAdopted, viewCount, likeCount }, ...] | 200, 500 | |
/questions | /questions/today | GET | 오늘의 질문 | redirect(302) | |||
/questions | /questions/hot | GET | 급상승 질문 | redirect(302) | |||
/questions | /questions/random | GET | 랜덤 질문 | redirect(302) | |||
/questions | /questions | POST | 질문 등록 | { title, content, tag, programmingLanguage, originalLink, draftId } | {id} | 201, 400 | |
/questions | /questions/:questionId | GET | 단일 질문 보기 | { id, title, nickname, tag(문제 사이트), createdAt, programmingLanguage, isAdopted, viewCount, likeCount, isLiked } | 200, 404 | ||
/questions | /questions/:questionId | PUT | 질문 수정 | { title, content, tag, programmingLanguage, originalLink } | 200, 400, 404 | ||
/questions | /questions/:questionId | DELETE | 질문 삭제 | 채택 안 한 것만 삭제 가능 | |||
/questions | /questions/drafts | POST | 임시글 생성 | {id} | 201, 500 | ||
/questions | /questions/drafts/:id | GET | 임시글 읽기 | { title, content, tag, programmingLanguage, originalLink } | {id} | 201, 500 | |
/questions | /questions/drafts/:id | PUT | 임시글 업데이트 | { title, content, tag, programmingLanguage, originalLink } | 200, 500 | ||
/questions | /questions/drafts/:id | DELETE | 임시글 삭제 | 200 | |||
/answers | /answers/:questionId | GET | 질문별 답변 목록 | [{ userId, nickname, answerId, content, videoLink, isAdopted, createdAt, isLiked }, ...] | 200, 404 | ||
/answers | /answers | POST | 답변 등록 | { content, videoLink } | 201, 400 | ||
/answers | /answers/:answerId | PUT | 답변 수정 | { content, videoLink } | 200, 400, 404 | ||
/answers | /answers/:answerId | DELETE | 답변 삭제 | 200, 400 | |||
/answers | /answers/adopt | POST | 답변 채택 | { answerId } | |||
/likes | /likes | POST | 좋아요 | { type: "question" 또는 "answer", id } | {1 또는 0} | 200 또는 201 |
📌 FE는 이번 주 예비군 훈련으로 인해 1명이서 개발을 진행했습니다.FE
👉 [FE 2주차 dev 서버](https://web04-algocean-fe-dev.vercel.app/)
FE 2주차 PR 목록
- [컴포넌트용 MockData 제작](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/40)
- [메인페이지 레이아웃 구현](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/49)
- [페이지네이션 컴포넌트 구현](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/57)
FE 2주차 개발 일지
- [랜더링 속도 측정 방법](https://www.notion.so/0a81f6ee44e54e319bf4027ce9f6c117?pvs=21)
- [Outlet을 활용한 중첩 라우팅 구현](https://www.notion.so/91d2c28ae2134936b309966f73a0fbc6?pvs=21)
- [Github Action과 개인 repo를 활용한 FE dev 서버 자동 배포 구축 (진행중)](https://www.notion.so/525cf27a23c941c7a068af85783bc67d?pvs=21)
질문 목록
-
팀원의 부재, 백엔드의 API 개발 의존성 등에 의해 프론트엔드 개발 속도가 현저히 느린 것 같습니다. 협업에서는 백엔드와 프론트엔드간의 실제 개발 진행 속도 차이가 어떻게 되나요? 프론트엔드 개발이 백엔드와의 의존성을 줄이기 위해서 어떤 방법을 사용하시나요?
-
공통 컴포넌트를 구현할 때 의존성, 유연성 측면에서 멘토님이 꼭 신경쓰시는 것이 어떤 것이 있으신가요? 페이지네이션 컴포넌트를 예시로 설명해주시면 더욱 감사하겠습니다.
-
프로젝트를 진행하는 과정에서 학습한 내용, 발생한 에러 등에 대해 개발 일지를 작성하고 있습니다. (상단의 FE 2주차 개발 일지 참고) 학습 내용, 발생 에러 외에도 개발 일지를 작성하기 좋은 내용이 있을까요? 또 개발 일지를 더 보완해서 작성할 수 있는 방법이 있을까요?
-
그 외의 프로젝트 전반 진행 상황과 관련하여 신경써봐야 할 것, 개선해야 할 점에 대해 말씀해 주시면 감사하겠습니다
☺️
BE
BE 2주차 PR 목록
- [BE 개발환경 설정](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/43)
- [prisma 설정](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/46)
- [답변 등록 API, 채택 API](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/47)
- [단일 질문 보기 API](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/51)
- [질문 리스트 API](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/59)
- [단일 질문 생성 API](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/60)
- [단일 질문 삭제 API](https://github.com/boostcampwm2023/web04-ALGOCEAN/pull/61)
BE 2주차 개발 일지 - [백엔드 초기 설정](https://www.notion.so/d605902a67054b95a7797703e7a7cd1f?pvs=21)
- [DTO, Entity 정의](https://www.notion.so/bda5cbc7846746fcad2c21866fed8c6a?pvs=21)
- [MySQL 대소문자 구분 설정 오류](https://www.notion.so/dfd673fe3dc946e2944fdbae2f4012f5?pvs=21)
- [nginx에 FE 배포](https://www.notion.so/8e4f434ce2204e02a9ed575e91e3912b?pvs=21)
질문 목록
-
협업 경험이 적어서 PR을 승인하기 전까지 팀원의 코드를 읽고 리뷰를 하는데 어떤 부분을 중점적으로 보아야 할 지 잘 모르겠습니다. 어느 정도 개선이 가능한지 여부를 모르기 때문에 이런 생각이 들었는데요. 보통 어느 정도로 리뷰를 하는지 예시 또는 경험을 알고 싶습니다.
-
서버 및 네트워크 구성도 피드백
[인프라](https://www.notion.so/2ce8ce5395124624bd2dc104e09f2ce0?pvs=21)
저번주 말씀해주신 내용 : 일정 산정
-
일정 산정 제대로 되지 않은 것 같음(왜? → 일이 조금씩 밀림)
-
다같이 일정을 못맞추게 되면 감정의 싸움으로 갈 수도 있음
-
due date동안 할 수 있을 만큼 하자 (일정 추정)
-
전체 6주동안의 목차를 작성하자 (책은 목차 없이 쓰여질 수 없음)
-
일정에 버퍼를 두자 계산된 시간에 1.3 혹은 1.5를 곱하자(누군가 감기 걸릴 수도 있음)
-
MOCK API를 백엔드에서 프론트엔드로 주는 것을 고려해보기(백엔드가 안주면 다른 방법을 찾아보기)
-
요구사항을 정리해서 먼저 구현해줄 것을 요청하는 걸 추천
-
컴포넌트의 의존성을 완전히 끊어야함(props만 가져다 쓸 수 있게) 의존성 줄이는게 가장 먼저임
-
유연성은 스펙(?)을 명시
-
개발일지를 작성하는 이유 (일지는 왜 작성하지? → 본인이 정의하기)
- 나와 타인의 성장을 위한 상생
-
일정 추정의 스케쥴링 (담당자까지)되어 있어야 함
-
TDD 꼭 해보기
-
스웨거 적용하기 (실서버에 배포된 API 명세)
-
개발 환경 세팅을 처음에 다 해야함
- CI / CD
- naming convention 정하기
- Swagger 사용
- Release Note 사용
- Mock API 제공 방식
-
코드 리뷰
-
인프라 구축 → 과하지 않은지 고민할 필요가 있음.
- subnet을 사용해서 얻는 장점을 고민해보자
-
개발 phase 나누기 local, dev, (test), prod
-
버전 태깅 (태그를 통한 릴리즈 작성)
- 기술적 도전 과제를 중심으로 기획서와 백로그 및 feature list 등이 완비되었다.
- 기술 스택의 선정 이유 혹은 구현 방식에 대해 나만의 근거를 가지고 설명할 수 있다.
- 이번주 스프린트 계획을 세웠고, 목표한 만큼 구현하고 있다.
- 다른 팀원의 과제가 무엇이고 왜 그 일을 하고 있는지 설명할 수 있다.