[Porject] Main-Project 2주차 일지

Gogh·2023년 1월 16일
0

Project

목록 보기
4/5
post-thumbnail

🎯 메인 프로젝트 2주차 일지

📒 Main Project


  • 메인 프로젝트 진행 상황
    • 서비스 로직 기능 구현 80% 완료
    • 단순 CRUD 부분 리팩토링 진행과 동시에 기능 구현된 서버 배포
    • GA CI/CD

📌 Project Goal

  • 기존 프로젝트에서 구현 하지 못했던 기능 및 기술 사용하여 반영
  • 새로운 기술에 대한 두려움을 극복하고 빠르게 학습하고 구현해 보며 이해
  • 중요도에 따라 목표한 구현 기능들 빠짐없이 마무리
  • 프로젝트에서 사용한 라이브러리, 기술, 기능 등 모든 스택에 대한 사용 이유 파악
  • 복잡한 메인 프로젝트를 진행 하며 내 능력을 확실히 객관화 하고 부족한 점을 찾아 학습

📌 Project Current

🏈개발 현황

기능 구현이 대부분 완료되어 가고 있으며, 새로운 것을 학습 하고 이해 하며 적용 해 본적 없는 기능과 기술들을 최대한 활용하려 노력하고 있다

  • Redis In-Memory DB 활용
    • JWT 토큰 인증 방식으로 로그인 기능을 구현하였는데, 기존의 개발 프로젝트들은 Access Token과 Refresh Token을 모두 활용하고 클라이언트 헤더로 넘겨 토큰의 탈취 위험 또는 보안상 문제가 있었다.
    • Refresh Token을 제 기능에 맞게 활용하기 위해서는 서버에서 Refresh Token을 가지고 있어야 된다 생각을 했고 만료 기한을 지정하고 빠르게 DB에 접근가능한 Redis DB를 활용하여 Token을 저장 하고자 했다.
    • 간단한 Key-Value 방식으로 DB 저장 기능을 사용 하였기에 구현에 큰 어려움은 없었다
    • BackLog로 남겨둔 채팅과 알림 기능 구현을 염두에 두고 Redis를 활용 했다
    • Redis 활용에 대해서는 따로 정리 하여 블로깅 예정이다
  • Exception Handling
    • 기존 개발 프로젝트에서는 Custom 예외처리에 허점이 많았다.. 클라이언트에서 요청만 정상적으로 들어온다면 서버 에러가 자주 발생하는 것이 아니기에 크게 신경을 쓰지 않은것 같아 이번 메인 프로젝트에는 조금더 깔끔하게 서버에서 발생하는 예외를 Custom 예외로 처리하고 처리 현황을 정리하고자 했다.
    • 팀 디스코드 채널에 ErrorLogger 채널을 생성하여 웹훅으로 서버 에러 발생시 메세지를 받아 빠르게 대응할 수 있도록 하였다
    • 웹훅으로 팀 채널에서 서버 에러를 관리하게 되니, 기존에는 그냥 빠르게 리팩토링 하고 크게 신경 쓰지 않고 넘겨 버렸던 500 에러, 유효성 검증 등에 조금 더 신경쓰게 되고, 팀 노션에서 Trouble Shooting 현황을 기록 관리 하며 크고 작은 500 에러들을 Custom 예외로 처리하여 조금 더 친절한 API 응답에 가까워 진것 같은 느낌이다 😅

image

🩺 멘토링

  • 2주차 멘토링에서는 백엔트 파트 각 팀원별 업무 분장과 개발 현황을 공유하는 시간을 가졌다
  • 도메인 별 나누어진 업무 진행 현황을 공유하였으며 나는 JWT, OAuth2, User 등 회원과 관련된 도메인을 맡아 구현하고 있다.
  • 개발 진행중에 생각보다 큰 어려움은 없었고, 추후 채팅, 알림 기능 적용에 대비해 웹소켓과 SSE 통신에 대해 공부를 하여 간단하게 브리핑 하는 시간을 가졌다.
  • 다음 멘토링 과제로는 로그인 인증/인가 관련 내용을 학습이다, JWT와 OAuth2를 처음 구현할때 정리 했던 블로깅을 다시 한번 훑어 보며, 보완하고 학습해야겠다

📌 다음으로..

  • 다음주 일지는 CI/CD와 테스트 코드에 대한 내용이 되겠다
  • 기능 구현을 어느정도 마무리 하고 배포 후 프론트 데이터 통신 구현중 발생하는 에러나 수정사항에 대응하며, 테스트 코드를 작성하고 필요하다면 로직을 리팩토링 할 예정이다.

🛠️ 나의 역할과 구현 기능

크게 도메인 별로 업무 분장만 했을 뿐 상세하게 내가 맡은 역할과 구현한 기능들을 정리하는 시간이 없었던 것 같다.

  • 역할
    • ... 백엔드 팀장?
    • 로그인(OAuth2,JWT), 회원 관련 도메인
    • AWS 인프라 구축
    • Nginx 프록시 서버 관리
    • CI/CD 구축
    • 디스코드 웹훅 로그 관리
    • 전체 도메인 기능 로직 리팩토링
  • 구현 기능
    • AWS 인프라 구축 및 Nginx 프록시 설정
    • 웹훅 서버 에러 관리
    • CI/CD 구축
    • JWT 토큰 기반 일반 로그인/OAuth2(구글, 카카오) 로그인 구현
    • 회원과 회원이 소유한 프로필 리스트 CRUD 기능 구현
    • QueryDSL 라이브러리 사용한 학생과 튜터 전체 리스트 동적 검색 쿼리 구현
    • 과외 매칭 및 후기 CRUD 기능 구현
    • 과외 일지 CRUD 구현
    • 메세지 기능 직접 구현(실시간 채팅 X)
    • 메세지와 과외 일지 간단한 알림 기능 구현(메세지와 일지의 Receiver가 조회 했을때만 알림 종료)
profile
컴퓨터가 할일은 컴퓨터가

0개의 댓글