3. 리펙토링 목록

2023. 2. 24. 04:20프로젝트/8주차 실전 프로젝트

해당 포스트는 앞으로 진행할, 혹은 진행된 리펙토링에 대한 소개 및 설명을 기록할 목차로서 제공되는 글입니다.

번호 순으로 구현하지는 않을 것 같고 작성되는 대로 수정될 수 있습니다.

 

1. Express 종속성 제거와 커스텀 데코레이터

관련 포스팅 글

https://ksw0627.tistory.com/113

 

3. 리펙토링 -Express 종속성 제거와 커스텀 데코레이터-

1. github issue https://github.com/TeamBudgetOverflow/backend/issues/56 refactoring: Eliminating express-like constructs such as req and res · Issue #56 · TeamBudgetOverflow/backend Nest.js의 코드에서 Express-like(@Req, @res)한 구문을 사용하

ksw0627.tistory.com

 

2. process.env 대신 configModule 사용

관련 포스팅 글

https://ksw0627.tistory.com/114

 

3. 리펙토링 -process.env 대신 configModule 사용-

1. Github Issue https://github.com/TeamBudgetOverflow/backend/issues/57 refactoring: using ConfigModule instead process.env · Issue #57 · TeamBudgetOverflow/backend 환경 변수를 가져오는 process.env는 Node.js의 기능으로, Nest.js 사용시

ksw0627.tistory.com

3. 비즈니스 로직 이관처리

https://github.com/TeamBudgetOverflow/backend/issues/63

 

비즈니스 로직 이관처리 · Issue #63 · TeamBudgetOverflow/backend

controller의 비즈니스 로직을 service로 이관 처리 작업 내역 User 모듈 Goal 모듈 Report 모듈

github.com

4. SRP  원칙을 지키는 메소드 분할

https://github.com/TeamBudgetOverflow/backend/issues/64

 

메소드 분할 · Issue #64 · TeamBudgetOverflow/backend

User, Goal, Report 모듈에서 기본 비즈니스 로직을 분리했고(#63 ) 분리한 비즈니스 로직을 메소드 단위로 분리하고 코드 리펙토링을 하고자 함. 메소드는 최대한 하나의 역할만 하도록 분할하는 것

github.com

5. 트랜젝션 - DB의 상태를 생성, 수정을 2개 이상 진행하는 메소드

https://github.com/TeamBudgetOverflow/backend/issues/61

 

Transaction · Issue #61 · TeamBudgetOverflow/backend

트랜젝션을 생성하기 위해 전제되는 내용 controller에서 순차적으로 진행했던 로직을 service로 이관 처리 #63 service의 비즈니스 로직을 메소드 분할하여 단일 책임 원칙(SRP)를 지키도록함 #64 DB의 상

github.com

AWS Systems Manager Parameter Store를 통해 환경 변수 외부로부터 사용

 

Redis를 이용한 refreshToken 관리

 

Entity에서 데코레이터를 사용한 Column 조건 설정 및 DTO 간략화 

 

트랜젝션 구현

 

성능 테스트

 

user.controller.ts 코드 간략화

 

goal.controller.ts 코드 간략화

 

코드 개선을 통한 성능 개선 확인

 

단위, 통합 테스트 구현과 테스트 도구 사용

 

스웨거 or nestia 구현 ( 채팅 기능 구현시 )

 

채팅 기능 구현 ( 프론트 분과 이야기 되어야함 )

 

모니터링 및 관측 가능성 ( 미정 )