2주차 피어세션 - boostcamp-2020/IssueTracker-13 GitHub Wiki

2주차 피어세션 17 그룹 (Web)

진행상황 공유

15조

  1. CRUD API Postman으로 보여주기
  2. React Init
  3. 헤더 컴포넌트 제작
  4. 로그인, 회원가입 모달
  5. 이슈 커멘트 컴포넌트

13조

  1. 이슈화면목록 (mock-data 이용)
  2. CRUD API
  • Issues
  • Lables (test)
  • Milestones
  • Users
  • Comments -> 고장남
  • auth -> 하는중
  1. GitHub Actions CI환경 구축
  2. npm initDB (Umzug, Sequelize-CLI)

기술공유

  • super-test 를 쓰면 api test 가 편리하다!
  • test DB? 배포 서버 database 네임만 바꿔줘서 접속
  • 이미지 저장 방식? -> Object Storage
  • Form Data를 선택한 이유? 형식에만 맞춰서 넣어주면 Request , Response가 편하기 때문이다.

코드리뷰

  • API 형태

    • Backend 친화적? Frontend 친화적?
    • Backend에서 join해서 보내주기 VS frontend에서 각각 호출해서 합쳐서 쓰기
    • Pagination VS 전부 다 가져와서 쓰기
  • 13조 -> 15조

    • Q. getIssuesByCount에서 Take 10, Skip 5가 무엇인지 궁금합니다.
    • Issue에 여러 Property를 추가하는 함수들이 잘 정의되어있네요.
    • Routers/issue.ts 에 discription 오타
    • Property를 추가, 제거하는 함수를 따로 하신 이유가 궁금하네요.
    • Patch 쓰는 장점이 궁금하네요. (저희는 PUT 쓰는중)
    • TypeScript를 쓰는 장점? -> 자동완성, 타입에러 잡기
    • TypeScript를 쓰는 단점? -> 외부 JavaScript 연동이 어려울 때가 있음(Sequelize 등)
    • component 폴더와 분리된 context 폴더는 어떤 용도인가요? -> props로 상태를 계속 내리는 것이 아니라, context API를 사용하려는 의도 + 상태를 component와 decouping 해서 독립적으로 쓰려는 이유
  • 15조 -> 13조

    • IssueAPI Endpoint 를 하나로 두고 Request가 들어오는 것에 따라 유연하게 요청을 처리하는 것이 인상깊었습니다.
    • Seeder를 잘 사용하신게 인상 깊습니다.
    • SUCCESS_MESSAGE 객체를 따로 빼서 사용하신 것이 매우 인상깊어요.
    • OAuth 시도 : ios 앱한테 직접 주기는 힘들고 web view 를 띄웠을 때 거기서 redirection 을 통해서 오는데 어떤 브라우저인지를 check 하여 로직을 선택하는 방식을 구상 중입니다.