<aside> 🏁 실전 프로젝트 6주차에 가장 집중해주셔야 할 것은 “최종 발표회 준비”입니다. 최종 발표에는 6주간 진행했던 프로젝트 개발 과정을 엔지니어답게 설명할 수 있어야합니다. 아래 항목들을 바탕으로 기술적으로 더욱 매력적인 최종 발표를 준비해봅니다.
</aside>
우리 프로젝트에서 기술적으로 강점을 삼을 만할 항목을 정리해 주세요. (최종 발표 및 면접에서 프로젝트를 진행할 때 어떤 도전을 했는지 말할 수 있는 좋은 소스가 됩니다)
프로젝트에 적용했던 핵심 기술 목록을 작성해 주시고, 각 기술을 도입하게된 의사결정 과정을 정리해주세요.
| 구분 | 요구사항 | 선택지 | 핵심 기술을 선택한 이유 및 근거 |
|---|---|---|---|
| FE | 로그인 상태를 전역에서 사용 | - 전역상태관리 툴(redux, Recoil, Zustand 등) |
Context API 선택 V | 로그인 상태와 간단한 유저 정보만을 저장 및 확인하면 되고, 컨텍스트로 감싸주어 컨텍스트 전체가 리렌더링되는 단점이 있는데 그것또한 로그인 상태가 바뀌면 전체적으로 바뀌어야하는 부분(로그인 상태에서만 가능한 기능들)이 있기 때문에 적합하다고 결정. | | | 배포 | - S3, Netlify 등
Vercel 선택 V | Github를 통해 자동 빌드 및 배포가 가능한 것에 더불어, 배포 최적화로 개발 프로세스가 간단해짐. | | | 서버 데이터에 대한 상태관리 | - redux, saga
React-Query 선택 V | 다른 상태관리 도구들의 불편함과 복잡함에 비하면 훨씬 사용이 간편하고 캐싱과 같은 편리한 기능이 있음. API 데이터의 캐싱, 동기화 및 업데이트와 상태 관리를 효율적으로 처리하기 위해 선택함. | | | 배포 | - css, sass 등
styled-components (CSS-in-JS 방식)선택 V | 자바스크립트 기반의 React를 사용하기에 컴포넌트 단위로 스타일을 적용하는 부분이 적합하고 코드의 가독성을 해치지 않으며, 동적 스타일링이 가능하기 때문에 선택함. | | BE | - 회원가입, 로그인관련 보안 정책?
로그인한 회원의 상태는 어떤식으로 관리? | - Security Stateless
Security Session 정책에서 Stateless 방식을 제외한 방식
Oauth 인증방식
JWT + Refresh Token | - 서버가 유저의 상태를 저장하지 않게 하기 위한 선택
JWT Token을 사용해서 인증하는 방식을 선택
엑세스 토큰만 사용하기에는 토큰 탈취의 위험성과 짧은 유효시간의 단점을 극복하기 위해 Refresh Token 함께 사용
Oauth 인증은 강력한 인증방식이지만, 처음 기술을 선택할때 Admin 이라는 선택지를 함께 만들어 두고 싶어서 JWT 인증을 선택 | | | - 채팅관련 메모리 관리?
Redis를 사용한다면 어떤 데이터를 어떻게 처리 할 것인가?
단순히 채팅 관련 데이터만 저장? | - Redis Pub/Sub을 사용하지 않는 방식
RabbitMQ
Redis | - 메세지에 관련된 데이터는 영구저장이 필요없고, 빠른 입출력을 요구했기 때문에 Redis를 선택
단순히 채팅에만 사용하는게 아니라 로그인이나, 채팅방 사용 유저의 상태도 같이 관리 할 필요성이 있었음
짧은시간에 학습하고 적용 시키기에는, 참고할만한 레퍼런스가 가장 많았던 Redis가 상위권 선택에 위치
메세지를 주고받는 데이터의 크기나 향후 확장성을 생각하면 Websocket+Stomp 만으로는 무리라고 생각해서 선택 |
👀유저 테스트를 진행했다면 해당 항목을 추가로 작성 해 주세요
유저테스트 설문지의 링크와 결과, 결과를 토대로 반영해야 할 점을 작성 해 주세요
공통
유저, 채팅 관련
가게, 리뷰 관련
펫 관련
유저 테스트를 기반으로, 무엇을 어떻게 개선하면 좋을지 우선순위 별로 기록 해 주세요
| 우선순위 | 개선 및 추가사항 | 마감일자 |
|---|---|---|
| 1 | Redis 데이터들의 유효기간을 설정 | |
| 2 | Admin 계정의 필요성 | |
| 3 | 가게 이미지 드래그앤드롭 업로드 | 완료 |
| 4 | ||
| 5 |