Skip to content

개인 회고 ‐ 손문기

손문기 edited this page Dec 19, 2023 · 4 revisions

1주차

이번 주 한 일

  • 프로젝트를 기획하고 백로그를 다같이 작성하였다.
  • 기술적 도전 주제를 주기적 데이터 수집, 대용량 데이터에 대한 효율적 처리로 정하였다.
  • NestJS 초기 설정과 eslint, prettier 설정을 하였다.

느낀점

  • 기술적 도전 주제 자체를 정하는 일도 많은 고민이 필요한 것 같다.
  • 원할한 협업을 위한 방법을 고민하는 것이 중요할 것 같다!
  • 안드로이드와 협업을 하면서 firebase를 이용한 푸시 알람 기능을 구현하게 되는데, 웹이 아닌 모바일 분야와 협업하기에 경험할 수 있는 특별한 경험이 될 것 같아 기대가 된다.

앞으로

  • 지금은 두루뭉술하게 생각하고 있는 도전 주제에 대해서 자세하게 학습 해보고, 특정 방안을 선택 하기 위한 근거를 찾아봐야겠다. (cron, cloud function, NoSQL(TSDB)...)
  • 앞으로 매주 배포를 해야 하는데, CI/CD에 대해 열심히 학습해봐야겠다!

2주차

이번 주 한 일

  • GitHub Actions를 활용하여 CD 구축
  • NCP VPC 서버 환경 구축
  • 회원가입 기능 구현

느낀점

  • 서버를 배포하는 과정에서 시행착오를 많이 겪었는데, 문제가 발생했을 때 원인을 찾는데 많은 시간이 걸렸다. 그래도 다음번에는 좀 더 잘할 수 있을 것 같다는 생각이 든다!

앞으로

  • CI/CD 파이프라인과 배포 서버 환경 구축하는데 생각보다 시간을 많이 소모하여, 코드 작업량이 적었다. 다음주부터는 진도를 열심히 나가봐야겠다!

3주차

이번 주 한 일

  • 사용자 인증 및 JWT 갱신 기능 구현
  • 사용자 별 트래킹 상품 목록 조회 API 구현
  • 트래킹 상품 삭제 API 구현
  • 목표 가격 수정 API 구현
  • 인기 상품 목록 조회 API 구현

느낀점

  • 저번주에 비해 이번주는 기능 개발 위주로 진행되어서 훨씬 재미있었다.
  • 도커로 올린 서버가 에러가 발생해서 죽는 현상이 발생하고 있는데, 로깅을 지금보다 자세하게 하고 에러가 발생해도 서버가 죽지 않도록 운영할 필요성을 느꼈다.
  • 감기에 걸려서 하루를 거의 날렸다. 컨디션 관리도 중요하다.

앞으로

  • 서버를 관리하기 위해 로깅하는 방식과 에러 처리 방식을 고민할 필요가 있다.
  • 주기적으로 가격을 조회하고 해당 데이터를 저장하는 방식에 대해 고민 할 필요가 있다.
  • 가격 데이터를 저장하기 위한 NoSQL DB에 대해 학습할 필요가 있다.

4주차

이번 주 한 일

  • refreshToken 보안 강화
  • MongoDB 연동
  • 가격 데이터 기간 단위 조회
  • 상품 정보 cache 추가
  • 최초 등록 상품 가격 정보 즉시 반영

느낀점

  • refreshToken에 대한 관리 방식을 추가하여 보안을 강화하도록 하였다. 이 과정에서 보안과 편의성은 반비례 한다는 것을 느꼈고 이 둘의 균형을 잘 유지하는게 중요하다는 생각이 들었다.
  • 상품 가격 데이터를 저장하기 위해 NoSQL DB를 사용하기로 정하고, 이 중에서도 어떤 DB를 사용할지 정하는데 많은 시간이 들었다. 선택지가 워낙 다양하다 보니, 특정 하나를 선택하는데 더 많은 시간이 소요되었던 것 같다. 항상 근거있는 선택을 하는 것은 어렵다...
  • 데이터를 읽고 쓰는 작업이 많고, 데이터의 양 자체도 많을 것으로 예상되어 이 부분을 어떻게 하면 효율적으로 처리할 수 있을지 고민을 하였다. 이에 대한 해결책으로 캐싱을 사용하기로 하였는데, 현재에는 간단하게 Map()객체를 활용하고 있다.

앞으로

  • 캐싱에 대해서 자세하게 학습해보고, 적용하는 과정에서 cache 구조를 변경할 필요가 있다. 직접 구현하거나 다른 모듈을 활용해봐도 좋을 것 같다.

5주차

이번 주 한 일

  • 인기 상품 custom cache 구현
  • redis연동하여 global cache 구현
  • token 저장소 redis로 이전

느낀점

  • 인기 상품 목록을 직접 캐시로 구현하면서 시행착오를 많이 겪었다. 특히 인기 상품 순위를 유지하기 위한 로직을 처리하는 것이 까다로웠다.
  • redis를 연동하는 과정에서도 라이브러리를 변경하고 자료구조를 변경 하는 등, 많은 시행착오를 겪었다. 새로운 기술을 도입하는 과정에서 학습을 충분히 진행하고 도입하는 것이 시행착오를 줄일 수 있는 방법인 것 같다.

앞으로

  • 그룹 프로젝트가 이제 1주 밖에 남지 않았다. 남은 기간은 발표 준비를 위주로 하게 될 것 같다.
  • 그동안 기능 개발한다고 미뤄둔 문서 작업을 성실히 수행해야 할 것 같다.
  • 추가로 코드 리펙토링도 진행하면 좋을 것 같다.

6주차

이번 주 한 일

  • 인기 상품 목록 버그 수정
  • 로컬, 글로벌 캐시 적용
  • 각종 캐시 버그 수정
  • 발표 자료 및 대본 작성, 발표 준비
  • 기술 문서 작성
  • 최종 발표

느낀점

  • 로컬 캐시와 글로벌 캐시를 나누어 적용하는 과정에서 캐시와 Redis에 대해 깊이 학습 할 수 있었다.
  • 발표 준비를 하면서 나 혼자 아는 것이 아니라, 남을 설득하기 위한 방법을 고민하는 것을 통해 지난 기간 동안의 진행 내용을 점검 할 수 있었다.
  • 미뤘던 기술 문서를 작성하며, 당시의 생각과 고민을 담기 위해서는 미루지 않고 성실하게 문서를 작성하는 것이 중요함을 배웠다.
  • 최종 발표 이후, 내가 작성한 코드의 근거를 찾고 이를 타인들에게 발표하고 질의 응답을 하고 있는 나 스스로를 발견하고 '그래도 많이 성장했구나'를 직접 체감할 수 있었다.

앞으로

  • 부스트캠프 기간 동안 배운 것들을 여기서 끝내지 않고, 어떻게 이어나가면 좋을지 고민할 필요가 있다.
  • 프로젝트의 앞으로의 방향성을 고민해봐야한다.
Clone this wiki locally