• 프론트엔드 사용하는 기술 스택/라이브러리와, 선정 이유를 적어주세요.

    • socket.io - 웹소켓을 이용해 클라이언트에 실시간으로 데이터를 전송할수있어 실시간 채팅을 하기위해 활용하고 있습니다.
    • react-Query - API 요청시 써야 하는 코드가 단순하며 굳이 클라이언트 서버에 가지고 있어야 할 데이터가 없어 react-Query를 최대한 활용하고 있습니다.
    • redux - 예약 테이블에서 booking을 할때 복잡하고 다양한 state값을 요구하고 이를 한눈에 파악하여 전역에서 사용하기 위해 사용하게 되었습니다.
    • redux-thunk - 예약 테이블이 하나의 액션으로 처리가 되는게 아닌 복잡하고 다양한 상호 작용이 필요 하여 thunk함수를 사용하여 조건에 맞는 실행을 처리하게 되었습니다.
    • axios - promise 기반으로 데이터를 다루기에 데이터 관리가 편하고 fetch 와 달리 별도로 JSON 형식으로 데이터를 바꿀 필요가 없어서 선정했습니다.
  • 백엔드 사용하는 기술 스택/라이브러리와, 선정 이유를 적어주세요.

    • socket.io - WebSocket 기술을 활용하고 room 개념을 활용해 사용자들을 세세하게 관리하기 위해 socket.io를 선택
    • mySQL - 좋아요, 구독, 예약 등 테이블 간의 관계 설정이 많아 SQL 선택
    • joi - express-validator 을 선택하지 않은 이유는 코드의 가독성을 높이기 위해서 선택했다
    • passport - 카카오, 구글, 네이버 각각의 인증기관의 각각 다른 인증 방법, 구현 방법의 복잡성을 어느정도 통일화 시킬 수 있는 장점때문에 사용
    • multer - 이미지를 S3에 저장하고 삭제하기 위해 사용
    • swagger - 프론트엔드와 원할한 소통을 위해 API 문서 작성
    • sequelize - SQL을 query가 아닌 ORM으로 다루기 위해 사용
    • day - Date 타입을 보다 간편하게 다루기 위해 사용
    • winston - 로그를 보다 체계적으로 관리하기 위해 사용
    • nodemailer - 이메일 인증을 통한 아이디및 비밀번호 변경 기능을 위해 사용
    • Bcrypt - Crypt해시의 의존성이 높다 반면 Bcrypt는 어떤 일이 일어나더라도 리소스와 귀중한 데이터를 훨씬 더 보호할 수 있는 장점 때문에 사용
    • node-cron - Agenda, Node-cron, Node-schedule, Agenda(우리는 AWS RDS 를 사용하고 있다 ⇒ nonSQL 기반 DB는 필요 없다), Node-cron 과 Node-schedule 은 cron 형식을 기반으로하고 있다. node 프로세스 관리인 pm2와 node-cron 을 조합하는 것을 선호 한다고 하여 사용
  • 이번 주 한 일

    • 팀 전체 (리더님께서 필두로 정리해 주세요.)
      • 로그인/회원가입, 메인, 상세페이지(CRUD) 보완, 예약 및 실시간 채팅 기능 작업
    • 팀원 개인별로 작성해 주세요.
      • 운철 - 예약 테이블을 통한 부킹 시스템 구축
      • 자덕 - 블로그 개인 페이지( 댓글, 좋아요) , 글 디테일 페이지 , 글 작성
      • 대규 - socket io 를 이용한 실시간 채팅 구현
      • 광민 - socket io 채팅 구현 및 webRTC 공부
      • 선우 - 이메일 인증(아이디 찾기/비밀번호 변경), accessToken/refeshToken 만들기, 회원탈퇴한 인원 주기적으로 db에서 삭제
      • 민지 - 예약페이지 코드 수정
      • 성준 - 이미지 데이터 추가/삭제 로직 구현, eslint 도입, 카테고리, 태그 추가
  • 이외에도 기술적인 방향을 잡기 위한 질문을 정리해오시면 가장 좋습니다!

    프론트

    • 한 페이지 안에 예로 LIke 컴포넌트가 랜더링이 된다라고 할 시에 부모 컴포넌트 ( 페이지에 해당 ) 하는 함수의 전체 렌더링을 어떻게 막을 수 있을까요? useQuery로 데이터를 관리하는 저희에게는 <useQuery option + useCallback or useMemo면 충분할까요? 놓치고 있는 부분이 있지 않을까 싶어 여쭤봅니다! >
    • 유저 로그인 정보를 react query로 관리를 하는데 이안에서 유저 정보를 다른곳에서 사용하기 위해 cookie에 그 값을 담아서 쓰고 있는데 다른 처리 방법이 있을까요? ( 전역상태관리? )

    백엔드

    • Docker 빌드할때, 환경파일은 어떻게 하는게 좋을까요?
    • 개발 환경 그대로 서버에서 실행하기 위해 도커를 사용하는데 이런 이유로 도커를 사용하는 게 맞을까요? 또 어떤 장점 때문에 도커를 사용하는 걸까요?
      • 개발할 때 노드 16버전 이상을 사용했는데 서버에서 노드 버전 문제로 에러가 났습니다. 그래서 도커를 이용해 개발환경의 이미지를 서버에 가져와 도커에서 실행하니 문제가 없었습니다.
  • 0숙제: 멘토링 결과 다음 주까지 해올 일

    • 팀 전체 (리더와 부리더님께서 필두로 정리해 주세요.)

    • 팀원 개인별로 작성해 주세요.