안녕하세요. 지난 포스트에 이어 E-Market 프로젝트 개발 후기를 공유합니다. 이번에는 프로젝트의 뼈대를 더욱 탄탄하게 다지는 작업에 집중했습니다. 개발 속도 향상과 안정성 확보를 위해 테스트 관련 Helper 클래스들을 추가하고, 몇몇 종속성 라이브러리를 변경했습니다. 자세한 내용은 GitHub PR (https://github.com/sosow0212/electronic-market/pull/4) 에서 확인하실 수 있습니다.
개발 과정에서 테스트의 중요성은 아무리 강조해도 지나치지 않습니다. 단순히 버그를 찾는 것 이상으로, 리팩토링이나 새로운 기능 추가 시 예상치 못한 문제 발생을 방지하고 안정적인 코드 유지를 가능하게 합니다. 물론 현업에서는 테스트 작성에 대한 비용적인 부담도 고려해야 하지만, 적어도 개발 초기 단계에서는 테스트를 충분히 작성하여 개발 효율을 높이는 것이 중요하다고 생각합니다. 특히 저는 다음과 같은 상황에서 테스트의 효과를 톡톡히 보았습니다. 예를 들어, 데이터베이스 연동 부분을 개발할 때, 각 테스트 케이스마다 데이터베이스를 초기화하고 특정 데이터를 삽입하는 작업이 반복되었습니다. 이러한 반복적인 작업을 자동화하기 위해 테스트 격리(Test Isolation)를 위한 Helper 클래스를 만들었습니다. 이 클래스는 테스트 실행 전에 필요한 데이터를 자동으로 설정하고, 테스트 실행 후에는 데이터베이스를 초기 상태로 되돌리는 역할을 수행합니다. 덕분에 테스트 코드 작성 시간을 단축하고, 테스트 간의 의존성 문제를 해결할 수 있었습니다.
또한, QueryDSL을 도입하여 데이터베이스 쿼리 작성 방식을 개선했습니다. QueryDSL을 사용하면 객체 지향적인 방식으로 쿼리를 작성할 수 있어 가독성이 향상되고, 코드 관리가 훨씬 편리해졌습니다. 종속성 라이브러리 변경 또한 프로젝트의 안정성과 성능 향상에 기여했습니다. 특히, 기존에 사용하던 라이브러리 중 버전 충돌이나 보안 취약점이 발견된 라이브러리를 최신 버전으로 업데이트하고, 더 효율적인 라이브러리로 교체하면서 프로젝트의 전반적인 품질을 높일 수 있었습니다. 이 외에도 여러가지 Helper 클래스들을 추가하여 개발 과정에서 반복적으로 사용되는 기능들을 모듈화하여 코드 중복을 제거하고 유지보수성을 높였습니다.
결론적으로, 이번 작업을 통해 E-Market 프로젝트의 테스트 환경이 더욱 강화되었고, 개발 효율과 코드 품질이 향상되었습니다. 앞으로도 지속적인 테스트 자동화 및 리팩토링을 통해 더욱 안정적이고 효율적인 프로젝트를 만들어나가도록 노력하겠습니다. 다음 포스트에서는 새로운 기능 구현에 대한 이야기로 찾아뵙겠습니다.