회의 주제
API 명세서 회의를 진행한다.
- 각자 머쓱레터의 API 를 조사해온다.
- 필드명 통일화, 공통 API 묶기,
- queryOptions 로 queryKey 관리
api-docs 를 로컬 환경에서 실행하는 방법
yarn api-docs start
express 공부한거 공유하기
- 생활코딩 express 강의 듣고 공유
오프님 테스트 코드 강의
현재 몇 가지 해놓은 작업에 대해서..
Express 디렉토리 구조
상세 내용은.. 이 PR 에서 확인 가능.
(리팩토링 완료 시 제거될 파일이나 디렉토리에는 언더바를 붙혀 놓았음!)
📂 src 📂 _apis: 기존에 구현된 SNS API, 슬랙 API 등 외부 서비스에 대한 로직 (추후 제거될 예정..) 📂 _handlers: 기존에 구현된 슬랙 관련 컨트롤러 로직 (추후 제거될 예정...) 📂 config: 각종 설정 로직 📂 domains: 각 도메인에 대한 소스코드 (우선 REST API의 가장 앞 부분에 해당되는 것들로 묶어 놓았어요.) 📄[domain].controller.ts: 클라이언트의 요청에 대한 응답을 처리하는 곳 📄[domain].service.ts: 도메인에 대한 각종 비즈니스 로직이 들어가는 곳 📄[domain].repository.ts: DB에 액세스하는 직접적인 로직이 들어가는 곳 📄[domain].validator.ts: 클라이언트의 Request 객체에 대한 유효성 검사 로직을 작성하는 곳 📂 middlewares: 특정 도메인에 종속되지 않고 전역적으로 사용되는 Express 미들웨어 (유효성 검사, 로그인 검사 등) 📂 models: TypeORM 스키마 (그대로 DB에 적용) 📂 types: 각종 타입 📂 utils: 각종 유틸성 로직
회원가입 기능 구현
우선 간단하게 accessToken만 발급 받도록 해 놓았음..
Express에 Jest 설치
Jest 설치하고, 간단하게 단위 테스트 몇 개 작성해보았음.. (auth service, 미들웨어 등등)
Express를 로컬에 띄우기 위해서..
- Express 서버에서 MySQL, Redis를 사용하고 있기 때문에 각자 컴퓨터에 설치가 필요..
- 각자 로컬에서 데이터베이스 계정과 비밀번호를 환경변수 .env에서 변경하는 과정 필요
- (원래 Docker 컨테이너로 환경을 만들어 놓을 수 있을 거 같은데.. 아직 그 쪽까지 학습을 못해서 해놓지 못했음.. 😂)
- env 파일은 회의용 디스코드 채널에 업로드해놓았음
회의 결과
스키마
- User 스키마 변경
- username → email
- image_name → image_url
- Comment 스키마
- author → author_id (삭제 기능 때문에 FK 연결해야함.)
- nickname 추가 (닉네임 필드)
- updated_at 제거
API
- PUT /users/{userId}
- 액세스 토큰 header에 추가 완료.
- GET /posts
- 작성자 이름 들어가야 함.
- comments 배열 대신에 commentCount만 있어도 됨. (FE도 수정 사항 반영)
→ authorId, authorName 필드 작성 완료.
→ commentCount 로 변경 완료.
- GET /posts/{postId}
- 액세스 토큰 없어도 됨.
→ 액세스 토큰 삭제 완료.
- POST /posts/{postId}/comments
- 비회원 전용이랑, 회원 전용이랑 구분해서 API 포인트 작성하기.
→ 같은 API에 query 파라미터로 asSignedUser=true | false 값에 따라서 비회원과 회원 전용을 구분했음. 완료.
- 편지 삭제 API 추가해야 함.
→ DELETE /comments/{commentId} 완료.
- 로그인 API에서 validation 안보내주기.
- validationFilter에 인자 하나 보내서.. validation 필드 줄지 안줄지 수정하기
(2주) 작업 분배
- 상훈: 인프라, 패키지 매니저, 자동화, Github Actions, … 등등 해보고 싶음
PR 빌드 실패 체크하기.ERD-cloud로 ERD 옮기기오늘 의논한 내용 바탕으로 API DOCS 업데이트하기.오늘 의논한 내용 바탕으로 DB, Auth 로직 변경하기TanStack Query V5 마이그레이션 (단순히 버전만 올리기)- Query Key Factory 패턴으로 queryOptions 정리 (새로운 API 적용)
- 백엔드 API
/auth
관련 APIPUT /users/{userId}/slack}
슬랙 계정 연동POST /slack/verification
슬랙 DM으로 인증 링크 전송- 테스트 코드 공부…. (할 수 있으려나 ㅠ0ㅠ)
- 주연
- 폰트 관련 최적화
- 테스트코드 공부 ⇒ 특히 msw와 어떻게 테스트할지에 특화해서 공부하고싶음
- 백엔드 공부 + api
- GET
/users
사용자 목록 조회 - GET
/posts/{postId}/comments
댓글 다건 조회 - GET
/comments/{commentId}
댓글 단건 조회
- 호원
- Post, Comment api 초안 구현
- GET
/posts/{postId}
머쓱이 상세 조회 - DELETE
/posts/{postId}
머쓱이 삭제 - POST
/posts/{postId}/comments
특정 머쓱이에게 편지 작성 - Tanstack Query 사용 패턴 공부
- 테스트 코드 공부
- 호수:
- 백엔드 API 구현
/posts
머쓱이 목록 조회/posts
머쓱이 생성- 최신순, 인기순 ‘토글버튼’ 머쓱이 목록 조회
- 머쓱 생성 react hook form 적용 (까먹고있었..)
- 배포 과정 코드 , API 요청 후 DB 확인
- 현지
- 기존 코드를 useSuspenseQuery 훅으로 변경
- 서버 API 구현 (프로필 이미지 s3 업로드 공부하기 )
- GET
/users/{userId}
특정 사용자의 정보 조회 - PUT
/users/{userId}
사용자의 정보 수정 - PUT
/users/{userId}/photo
사용자의 프로필 이미지 수정
규칙
- 2주에 1번 테크스펙 작성하기(개인 블로그에 작성하고 깃허브 wiki에 블로그 url 또는 내용 복붙하기)
- PR 리뷰 규칙
- 이슈 올리고 브랜치 만들기
- PR 올릴 때
D-3
,D-1
라벨 달고 PR 올렸다고 카톡방에 올리기 최.대.한
모든 인원이 코드리뷰 해주기- PR 꼭 쪼개서 올려주세요. 한꺼번에 올리면 Merge X
- 스크럼 회의 - 주 1회
궁금한 점은 디코에서 실시간 or 비동기 커뮤니케이션
- 머쓱 레터 작업 중에는 디코에 들어와있기!