테스트의 중요성에 대해 다른 사람들에게 많이 강조를 받았고 그 내용에 대해 공감하는 면이 있어 많은 자료들을 찾았다. 유튜브 영상도 보고, "테스트 주도 개발"이라는 책도 앞부분 조금 읽었다. 그리고 대략적으로 어떤 순서대로 개발하는 지도 알게 되었다.
하지만 아는 것과 적용하는 것은 많이 달랐던 것 같다. 막상 키보드를 잡으니 테스트부터 구현해야 되는 것은 알지만 구현을 먼저 했다. Mockito 사용법에 익숙하지 않다보니 테스트 작성하는 시간이 구현하는 시간보다 더 오래 걸렸다. 이러한 점들이 테스트를 먼저 작성하기 꺼리는 요인이었다.
하지만 시간과 습관이 해결해 줄 문제라고 생각한다. 의식적으로 하나라도 TDD 방식으로 구현하려 노력하고 테스트 코드도 많이 작성해보면 해결될 문제라고 생각한다. 다음주에는 기능 하나라도 테스트를 먼저 작성해보는 습관을 가져보자.
과제를 시작한 수요일에는 책만 읽었던 것 같다. 어떻게 하면 한번에 좋은 설계를 하고 한번에 읽기 쉬운 코드를 쓸 수 있을까 고민했다. 그래서 지금 당장 작성하기 보다는 책을 읽고 정보를 찾아가면서 어떻게 해야 될까 고민만 했다.
과제를 완성하고 다시 생각해보니 처음 작성해서 완벽한 코드 그런 건 없다고 생각한다. 한 번에 잘 썼다고 느낄 때는 아마 내가 오만해졌을 때 빼고는 없을 것 같다. 어쩌면 다시 작성하는 것은 필수적인거 같다. 그러니 일단 빠르게 생각해서 설계하고 작성해야겠다. 그 후에 수정해야 할 부분이 있다면 그 때 수정하자. 이 것이 절대 비효율적이라고 생각하지 말자.
아직 내가 코딩을 배운지 7~8개월 밖에 안된 사람이라는 것을 잊지 말자. 지금이 선발 과정에 있다고 해도 어디까지나 배움에 목적이 있다. 너무 완벽해지려 하지 말고 하나씩 좋아지려고 노력해야겠다.
다른 사람들이 보기 좋은 코드를 작성하기 위해 Convention에 집중했던 것 같다. 다른 사람들과 약속한 Convention을 지키는 것이 다른 사람들도 읽기 좋을 것이라고 생각했다. 그리고 변수 이름이나 메서드 이름에 역할을 표현하려고 노력하는 등 보기 좋은 코드에 대해 많이 고민했던 것 같다.