2021년 9월 - 12월까지 시작한 세종 코딩 헬퍼 프로젝트를 리펙토링 하려고 한다.
그때 당시에 Infra 및 백엔드 파트를 담당했는데 기술을 적용할 때 성능은 생각하지 않고 했기에,,
아쉬움이 많은 프로젝트다. 견문을 쌓고 돌아온 지금, 해당 프로젝트를 보고 리펙토링을 할 예정이다.
그 당시에 배운 점 :
Docker, Nginx, Spring boot, JPA 등 사용해봤다.
→ 얕게 공부해서 바로 적용한 수준이다.
테이블 무결성을 유지하기 위해 스키마에 신경을 썼다.
→ 얕은 지식이기에 채팅할 때 1:1 구조로만 제약을 걸었다.
→ 다대다 구조로 변경하려면 공사가 필요하다.
웹에서 컴파일러를 실행할 수 있게 기능을 만들었다.
→ 보안에 신경쓰고, 스프링에서 zt-exec 라이브러리로 프로세스를 다뤄봤기에 의미 있었다. 하지만 해당 라이브러리를 사용할 때 깊은 이해를 가지고 적용한 것이 아니기에 깊은 공부가 필요하다.
물론 얕고 넓게 적용하고, 팀원들과 하고 싶은 프로젝트를 한 것이기에 의미있는 프로젝트다.
이 프로젝트를 더 확고히 가져가고 개인의 성장을 위해서 해당 프로젝트를 깊게 파볼 생각이다.
아쉬운 점 :
먼저 리펙토링 전, 현재 패키지 구조를 보겠다.
현재 패키지 구조의 문제 점 :
config, controller, domain, exception, repository, security, service 구조로 되어있다.
하지만 해당 프로젝트에서는 챗봇 기능, TA조교와 채팅 기능, 코드 컴파일러 기능이 있는데 도메인이 분리되어 있지 않아 관리하기 힘들다.
변경할 패키지 구조:
위 사진은 변경한 패키지 구조이다. 클래스 네이밍은 손을 봐야겠지만 확실히 구조가 깔끔해졌다.
다음 포스팅은 User Entity 책임 분리로 포스팅을 작성하겠다.