-
Notifications
You must be signed in to change notification settings - Fork 1
리팩토링 BE
Park-Mu-Seong edited this page Jan 6, 2025
·
2 revisions
-
Category:
관심사 분리
-
Why?
- 기존 스케줄러 로직과 메인 서비스 로직이 섞여있어 코드 를 찾기 어려움
-
Category:
확장성 개선
-
Why?
- DB 변경, 테스트 등 다양한 환경에서 바로 사용할 수 있도록 의존성의 결합도를 낮추기 위함
-
Category:
일관성 개선
-
Why?
- OOP 원칙을 위배하는 코드를 수정하기 위함
-
Category:
가독성 개선
-
Why?
- 한 도메인 내에 여러 파일이 위치하여 가독성이 저하됨
- 특히 같은 계층의 파일이 여러 개인 경우 그 정도가 두드러짐
-
Category:
일관성 개선
-
Why?
- DTO를 사용하는 곳도 있고 사용하지 않는곳 도 존재하여 일관성이 떨어짐
-
Category:
일관성 개선
-
Why?
- 레포지토리 계층과 서비스 계층의 역할 책임의 일관성이 떨어짐
-
Category:
가용성 테스트
-
Why?
- PM2의 다중 프로세스를 활용한 부하분산을 통해 수치적으로 가용성 측면에서의 이점을 얻기 위함
-
목표
- 싱글 프로세스를 사용할때 보다 최대 서버 가용성 10% 이상 개선하기
-
Category:
가용성 테스트
-
Why?
- 채팅 서버가 최대로 수용할 수 있는 웹소켓 커넥션 수를 파악하기 위함. 또한 이에 따라 클러스터를 활용한 가용성 측면에서의 이점을 얻기 위함
-
목표
- 최대 웹소켓 커넥션 개수 10% 개선
-
Category:
효율성 + 가용성 테스트
-
Why?
- 웹소켓 서버와 API 서버가 분리되지 않아 발생하는 병목현상을 줄이기 위함
-
목표
- API 응답 속도 5% 개선
-
Category:
예외 개선
-
Why?
- 중복된 RSS가 들어와도 별도의 예외처리가 되고 있지 않음
-
Category:
예외 개선
-
Why?
- Feed Crawler 내 코드들을 재검토 하여 핸들링 되지 못한 예외 상황들을 고려 후 처리
-
Category:
예외 개선
-
Why?
- NestJS 내 코드들을 재검토 하여 핸들링 되지 못한 예외 상황들을 고려 후 처리
-
Category:
관리성 개선
-
Why?
- 인프라 이전, 서비스 패키지 관리 등 다양한 상황에서 더욱 간편하게 서비스를 관리할 수 있도록 각 서비스에 도커를 적용 dockerfile, docker-compose 작성
-
Category:
보안 / 가용성 개선
-
Why?
- 비교적 불안정 하던 Private Instance 리소스 문제를 해겷하기 위해 수직확장 진행
- 보안을 위해 NGINX 및 정적파일을 제외한 모든 서비스를 Private 영역으로 이전
-
Category:
가용성 개선
-
Why?
- Redis가 급격히 부하를 받을 때를 대비
-
Category:
가용성 개선
-
Why?
- MySQL이 급격히 부하를 받을 때를 대비
-
Category:
가용성 개선
-
Why?
- 클라우드 내 AutoScaling 서비스를 활용해 급격한 대규모 트래픽에 대비
-
Category:
테스트 환경 안전성 개선
-
why?
- 테스트 실행시 발생가능한 DB 충돌을 방지하기 위해 병렬 동작을 제거 및 테스트용 DB initializing 필요성 대두
테스트 환경 호환성 개선
- Why?
- 기존의 편의성을 위해 테스트용 DB를 Sqlite 사용중이었으나, 프로덕션 레벨 DB환경을 구현하기 위해 Docker를 사용하여 임시 테스트 DB 구축
-
Category:
테스트 커버리지 개선
-
Why?
- feed-crwaler 테스트 작성을 통한 모듈의 안전성 보장을 위함
ORIGIN REPO: https://github.com/boostcampwm-2024/web05-Denamu
URL: https://denamu.site/
TEAM E-MAIL: [email protected]
NOTION: team notion
FIGMA: team figma