본문 바로가기
프로젝트/개인 프로젝트 리팩토링

[개인프로젝트 리팩토링] 리팩토링 계획

by dal_been 2024. 8. 1.
728x90

최근에 쉬다가 개인프로젝트를 조금 널널하게 리팩토링중이었다. 그래서 무엇을 리팩토링하고 있는지 정리해보고자 한다.

그에 대한 자세한 얘기는 차차 다룰 예정이다.

 


프로젝트 리팩토링

 

첫번째로 멀티모듈

개인프로젝트에는 지금 Customer와 Walker가 섞여있다. 그니까 약간 Admin코드랑 Customer 코드가 한 프로젝트에 섞여있는 느낌??

그래서 모듈을 나누고자 한다.

 

1. Common 모듈

  • domain
  • common code (위치, auth 관련)

2. Customer 모듈

  • 산책 알바를 신청한 고객

3. Walker 모듈

  • 산책 알바를 하는 고객(알바생느낌)

4. Batch 모듈

  • Spring Batch관련 코드

이렇게 4모듈정도로 나눌 예정이다.

사실 Common모듈은 조금 애매함이 있어서 나중에 고민좀 해볼 예정

 

 

두번째 Kafka적용

현재 산책 알바를 신청하는 고객에 대해서 예약 동시성 마냥 분산락을 적용했다. 물론 나쁜 방법은 아니지만 나의 기획상에서 분산락보다는 Kafka 잘 어울린다고 생각한다. 그 이유는 예약 자체가 Walker가 수락해야만 가능한 부분이라서 Kafka로 Customer 에서 Walker로 요청을 보내는게 나은 방법이라고 생각한다.

 

세번째 CQRS적용

데이터저장소 읽기와 업데이트 작업을 분리할 것이다. 이건 이미 적용했다. 신기하더라... 막 create, insert, update하는데 막 동기화됨... 개 신기... 이부분도 차차 블로그에서 다룰 예정

 

네번째 redis 캐시 이용

이전에는 redis캐시를 사용해서 성능향상뿐만 아니라 nGrinder로 성능 테스트도 해보고 싶다.

 

다섯번째 프로메테우스와 그라파나

애플리케이션 모니터링 세팅 해보고 싶다. 그래서 부하를 가할때 어떻게 변하는지 보고 싶다.

 

여섯번째 cursor 적용

지금은 offset을 이요하여 페이징 중인데 offset을 사용하다보면 뒤로 갈 수로 속도가 느려진다. 이런부분을 한번 보완해보고자 한다.

 

일곱번째 배포

배포를 좀 잘해보고 싶다. batch, walker, customer, 모니터링 따로 인스턴스를 둬서 좀 잘 해보고 싶으 ㄴ느낌?? 사실 배포는 좀만 더 고민할 예정.. 일단 AWS자체가 비용이 들기도 해서... 좀만 더 고민해보고..

 

 

 

 

 


일단 적용해보고자 하는 것을 정리해보았다. 몇개는 이미 적용했고 몇개는 공부하고 있다. 천천히 블로그도 다시 올려보야지