TDD 도입 + CI 자동화

wonseok·2023년 4월 5일
1

현재 저는 스타트업 및 정부지원 사업 출품을 위한 MVP 안드로이드 앱(프릿)을 개발하고 있습니다.
그간 간략한 성과를 말씀드리자면

  1. 2023 KAIST SPARCS Startup 해커톤 우수팀 선정 및 멘토링
  2. 2023 서울대 캠퍼스타운 서류합격 및 발표 결과 대기중

이외에도 생애최초 청년창업 지원사업 결과 대기중, 기타 서울 내 캠퍼스타운 정부 지원 사업에 지원서를 작성하고 있습니다.

나중에 들어올 팀원들을 위해 클린 아키텍처 기반의 설계를 하였고, 아직도 부족한 부분이 많기 때문에 지라(Jira) 스프린트를 3번 돌릴 동안 공부를 하며 리팩토링하는 과정에 시간을 쏟고 있습니다.

특히 이번에 여기저기 개발 관련 컨퍼런스도 다녀오고, 현업에 계신 분들의 이야기들을 들어보면, TDD(+BDD?)의 중요성, DIP 기반 모듈화 등에 대한 이야기를 많이 들었습니다.

결국 핵심은 유지보수성, 확장가능한 프로젝트를 개발해냄과 동시에 보다 더 testable하고, readable한 코드를 짜는 것의 중요성이 많이 높아지고 있다는 점입니다.

예시로, 저는 안드로이드를 막 처음 공부했을 때 진행했던 프로젝트를 최근에 궁금해서 한 번 열어본 적이 있었는데, 기본적인 코드 컨벤션도 지켜지지 않았고, 분명 내가 짠 코드임에도 이해하기가 힘들고, 도대체 이 코드가 뭘 하려는지 도통 이해할 수가 없었습니다.

저는 소프트웨어 개발에 있어서 깨친 유리창 이론을 굉장히 좋아합니다.
한 번 나빠진 소프트웨어의 품질은 계속해서 나빠질 것입니다.

그래서 이번 프로젝트의 중반부부터는 TDD를 도입하여 개발을 진행하고자 합니다.
또한 보다 안전한 코드를 품질을 유지하기 위해 다른 툴보다 간편한 Github Actions CI 방식을 도입하였습니다.

Kotest + mockK를 사용한 도메인 비즈니스 로직 테스트

0개의 댓글