프로젝트 진행 배경
기존 프로젝트를 개발하면서 유지보수성을 전혀 고려하지 않고 개발을 하였었습니다. 패키지 구조도 당시 학원에서 Github 충돌이 나지 않게 팀원 이름별로 나누어 개발을 진행하라고 하였기 때문에, 실무에서도 그렇게 개발하는 줄 알았으나 다르다는 것을 깨달았고 이를 고치고 싶다는 생각을 가지고 있었습니다.
하지만 유지보수성을 전혀 고려하지 않은 프로젝트 였기 때문에, 해당 프로젝트를 수정하기보단 아예 새롭게 개발하는것이 빠르겠다 싶었습니다.
기존 프로젝트는 Spring Framework, MyBatis 를 사용하여 개발하였는데, 개인적으로 JPA와 Spring Boot에 대해 학습하면서 JPA와 Spring Boot를 사용하여 어플리케이션을 개발하는 것이 더 효율적이고 빠르게 개발할 수 있다는 생각이 들었습니다. 그래서 기왕 Recode하는 김에 JPA와 Spring Boot를 적용하여 실전에서 더 깊은 이해를 하고자 합니다.
어떻게 진행해야 효율적일까?
Maven으로 빌드한 Spring Framework 및 MyBatis를 사용하여 만든 프로젝트를 Gradle, Spring Boot 및 JPA로 변경 하려고 하는데, 어떻게 해야 효율적으로 변경할 수 있을지 궁금했습니다.
Maven에서 Gradle로 프로젝트를 변경한 사례를 구글에서 검색해봤지만 원하는 정보를 얻지 못했습니다. 그래서 ChatGPT에게 한번 물어보았고, 답변을 정리하자면
Gradle로 변경 → SpringBoot 의존성 추가 → application.properties 설정 → JPA 엔티티 생성 → Repository 인터페이스 생성 → Mybatis 코드를 JPA로 변경 → 테스트 및 디버깅 → 필요한대로 리팩토링
이 흐름대로 마이그레이션을 진행하면 좋다고 합니다. 저는 기존의 프로젝트를 "변경"하는것이 아닌 아예 새롭게 만드는것이기 때문에 Gradle로 변경 → SpringBoot 의존성 추가 → application.properties 설정 까지만 따르고 View에 맞추어 BackEnd 부분을 새롭게 개발하려고 합니다.
목표
- 기존 프로젝트에서 불필요한 의존성 추가가 많이 발견되었습니다. 불필요한 의존성을 제거할 것입니다.
- 디렉토리 구성도 개선이 필요하다고 판단되었습니다. 유지보수와 확장에 유리한 구조를 고민하여 디렉토리를 구성할 예정입니다.
- Java 코드 컨벤션을 지키지 않은 코드가 많았습니다. 최소한 자바 코드 컨벤션을 준수하도록 모두 리팩토링할 계획입니다.
- Github를 처음 사용했었기 때문에 커밋 메세지도 많이 혼란스러웠습니다. 혼자 개발하더라도 최소한의 커밋 메세지 컨벤션을 지켜가며 commit 예정입니다.
- 프로젝트 목적이 JPA와 Spring에 대하여 깊은 이해를 하는것이 목적이기 때문에, 템플릿 엔진을 JSP에서 thymeleaf로 교체 할까도 고민해봤지만 취지에 맞지 않는 것 같아 View에 대한 리팩토링은 백엔드 관련된 부분에 관하여만 최소한으로 진행할 예정입니다.
※ 모든 소스코드는 https://github.com/DevCHW/gukmo-code-refactor 에서 확인할 수 있습니다.
'개발 기록' 카테고리의 다른 글
사이드 프로젝트 [국비의 모든것] - 로그인, 로그아웃 기능 구현 (0) | 2023.06.05 |
---|---|
사이드 프로젝트 [국비의 모든것] - 패키지 구조 설계하기 (0) | 2023.06.05 |
사이드 프로젝트 [국비의 모든것] - 데이터베이스, 엔티티 설계 (0) | 2023.06.05 |
사이드 프로젝트 [국비의 모든것] - Spring Boot Oracle DB 연결 (0) | 2023.06.05 |
사이드 프로젝트 [국비의 모든것] - 프로젝트 환경설정 (0) | 2023.05.19 |
개발을 하며 만났던 문제들과 해결 과정, 공부한 내용 등을 기록합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!