[Project] 애지멍지 리팩토링 플랜

dohyun-dev·2023년 6월 28일
1

프로젝트

목록 보기
1/4

SSAFY 교육 중 공통프로젝트로 애지멍지를 만들었는데 프로젝트 공모전에서 입상도 하고 애정이 깊은 프로젝트 였다. 당시 나도 부족했지만 백엔드 리드 개발 포지션을 맡아 아쉬운 점이 많은 프로젝트이다. 리팩토링 계획은 잡고 있었지만 취업준비가 바뻐 🥲 손에 잡히지가 않았다.

프로젝트 아쉬운 점

아쉬운 점을 뽑으라면 너무 많다.

  1. 테스트 환경
    • 기존 테스트 환경과 운영 환경을 분리하지 않았기 때문에 충돌이 많이 일어났었음.
  2. Mockito 적용 단위테스트
    • Mockito를 적용하지 않고 모두 통합테스트를 진행하였기 때문에 테스트 시간이 많이 소요됐었음.
  3. DB FK 제약
    • 프로젝트를 진행하면서 이미지 테이블에서 많은 문제가 생겼다. 컨설턴트님한테 들은 이야기인데 이미지 테이블 같은 경우는 반정규화해서 사용하는 경우가 많다고 하였다. 또한 테이블에 FK 제약을 걸지 않고 무결성, 일관성을 희생하고 개발자의 편의를 더 보장하는 방법으로 실무에서 자주 사용된다고 하였다.
  4. 배포
    • Docker를 사용한 수동 배포를 진행했는 까닭에 배포가 빈번해 귀찮은 경우가 많았다.
  5. 패키지 구조 변경
    • 패키지 구조에 대한 변경이 필요하다고 생각된다.
  6. 서비스 레이어 CQRS 변경
  7. DTO 사용범위 & mapper 사용
    • 레이어간 데이터 교환은 모두 DTO를 사용하도록 변경하고 dto, entity 변경 로직은 mapper를 도입해 사용
  8. DIP 준수
    • 기존 구체클래스에 의존하는 경우가 많았다. DIP를 준수하자
  9. 객체지향 설계 원칙을 고려하면서 개발
  10. 성능테스트 진행
  11. ELK 스택을 사용해보고 싶었다.
  12. 휴대폰 인증 로직 비동기 처리
  13. 프로퍼티 암호화

코드 리팩토링

  1. 패키지 구조 변경
  2. ERD 재설계
  3. Mockito 사용 단위테스트
  4. CQRS 도입
  5. DTO 사용범위 변경
  6. mapper 도입
  7. 객체지향 설계 원칙 준수
  8. DIP 준수
  9. ELK 스택 도입
  10. MSA 전환(보류)
  11. 인증로직 비동기 처리
  12. 파일 저장 S3 변경

인프라

  1. 테스트 환경과 배포 환경 분리
  2. CI/CD
    • Jenkins
  3. Grafana, Prometheous 모니터링 툴 도입

기타

  1. 성능테스트

1개의 댓글

comment-user-thumbnail
2023년 7월 12일

정말 이걸 다 진행할 수 있으세요?! 너무 기대됩니다.

답글 달기