Project

[리팩토링] 중단했던 리팩토링 재시작

newny 2024. 3. 29. 16:21
반응형

Intro


학원 교육때 진행했던 '취미/여가 중계 플랫폼 HABIT'은 해당 프로젝트는 JSP와 Mybatis로 만들어졌는데, Thymeleaf와 JPA로 작년에 리팩토링을 진행했다. 하지만 리팩토링을 진행하다가 중단했었다. 그 이유는 그때 당시 JPA가 숙지되어있지 않았고, 페이지가 너무 많아서 Thymeleaf로 바꾸는 과정이 너무 힘들었다. 그때에는 '나는 백엔드 개발자가 될거야' 라는 생각 때문에 Thymeleaf로 바꾸는 과정에 시간과 에너지를 쏟는게 의미가 있는지에 대한 생각이 들었고, 일단 중단하고 공부한 후에 진행하자는 생각이 컸다.

그래서 리팩토링을 중단하고 더 공부를 하고, 이런저런 프로젝트에 참여하며 시간을 보냈다. 그러다보니 생각이 많이 바뀌었다. 막상 취업 시장에 들어가보니 현재 나의 스펙(나이, 전공 등...)으로는 서비스회사에 백엔드로 취업하기가 힘들겠구나 싶었다. 그래서 해당 프로젝트를 다시 들춰 보았다. 이번 리팩토링은 제대로 마무리 지을 예정이다. 그리고 이번에는 현업자와 함께 리팩토링을 진행하며 전체적인 아키텍처나 스키마 구조도 다시 손볼 예정이다.

 

 

진행 상황


해당 프로젝트의 설명

같이 프로젝트를 진행하는 현업자는 나의 지인이다. 일을하며 해당 프로젝트에 참여하기때문에 코딩을 많이 하지는 못할것같고 프로젝트의 전체적인 아키텍처나 사용할 기술 그리고 스키마 구조에 대해서 아마 자문을 해주는 정도가 될것같다.

팀원에게 기존의 프로젝트에 대한 설명과 어떤 사이트를 인용하였는지에 대해 설명을 하였다.

 

팀 프로젝트를 위한 템플릿 형성

해당 프로젝트를 진행하며 진행 상황을 알 수 있도록 노션을 이용해 템플릿을 구성하였다. 

예전에 '프리온보딩 백엔드'를 진행하면서 해당 팀원들과 사용했던 템플릿을 좀더 업그레이드 하여 사용중이다.

 

테이블 재정의

기존의 테이블은 코린이 시절에 만든 테이블이라 허점이 많았다. 그래서 테이블을 다시 정의하였다. 나는 해당 프로젝트를 먼저 진행해보았기 때문에 프로젝트를 진행하며 불편했던 점에 대해 테이블을 다시 구성하였다. 팀원은 테이블을 숙지하며 자연스럽지 못한 부분에 대해서 테이블을 재구성 해주었다. 논의 결과 이번엔 슈퍼 관리자 페이지도 만들어보는것으로 결정하였다.

 

ERD 재정의

재 정의된 테이블 정의서를 이용하여 ERD를 다시 만들었다. 컬럼명도 일관성이 있도록 만들었다.

 

UI

여러명에서 만든 UI라 일관성이 부족했던 부분을 손볼 예정이고, 필요없는 페이지나 버튼은 먼저 제거한 후 나중에 기능 추가 개념으로 넣을 예정이다.

 

 

결론


원래는 해당 프로젝트 리팩토링은 하지않을 생각이었다. 왜냐하면 UI를 또 손봐야하고, 볼륨이 생각보다 크고, 실제 운영해볼 수 있는 프로젝트가 아니기 때문이다.

하지만 리팩토링을 진행한 이유는 해당 프로젝트에 적용해볼 수 있는 기술이 많아서이다. 스프링 배치, 캐싱, OAuth, 외부 API 사용 등...

따라서 나는 해당 UI 작업이 빨리 끝나기만을 바랄 뿐이다... (지금도 UI 작업중이다ㅠ)

여튼 해당 프로젝트 리팩토링 진행정도는 위와 같으며 20% 정도 진행되었다. 곧 정보처리 산업기사 실기를 봐야하는데 같이 병행하며 할 수 있을지 모르겠다. 할 수 있는만큼 최선을 다해서 리팩토링을 진행할 예정이다.

반응형