매번 고객에 요구사항에 대한 기능을 구현하기 위해 비지니스 로직을 머리속으로 그리며 개발을 진행하곤 했다
로직을 어느정도 그려 내려가다 보면 무언가 놓친게 있어서 다시 처음으로
올라가고 다시 그려 내려가고를 여러번 반복하다 보면 코드는 기능에 대한 역할을 하고 있지만 가독성이 좋지 않고 성능에 대한 고려는 전혀 없으며
유지보수까지 놓쳐 있는 경우가 대부분이다
문득 내가 잘못된 습관으로 코드를 작성하고 있는 것 같아 도움을 받고자
읽은 Test Driven Development
기능을 바로 구현하지 않고 테스트를 시작으로 기능을 구현하는 방법
기능을 아주 작은 단위(익숙해지면 단위에 대한 기준을 높임)로 분리하여 테스트하며 테스트가 성공하면 중복을 제거하고 필요한 기능이 제 역할을 할 때 리팩토링까지 고려하여 가독성과 유지보수에 용이하게 할 수 있다
책을 읽고 적용하기 시작한지 얼마 되지 않았지만
기존에 작성했던 스케줄러 애플리케이션의 기능을 작은 단위로 분리하여
테스트 해본 결과 너무 많은 기능이 하나의 큰 기능으로 뭉쳐져 있었고
(충분히 분리될 수 있었음) 자바를 사용하는데 OOP에 해당하지 않게
작성한 것 같다. 반성한다
지금부터 TDD 없이 개발을 진행하지 않을 것이다
이 후 얼마나 좋은 코드를 가질 수 있을지 기대된다
목표한 바를 이룰 때까지 가보자