이번주차는 테스트 코드 작성 중심으로 구현하라는 요구사항이 추가되었다.
자바스크립트에서는 JEST
라는 툴을 사용해 테스트를 코드를 작성할 수 있다.
작성한 기능 목록을 하나씩 구현할 때마다 테스트를 통해 잘 돌아가는지 확인하는 구조이다. 어떻게 테스트 코드를 작성해야 하는지 문법도 모르고 방법론도 몰라 갈피를 못 잡아 패닉이 왔었다. TDD 방법론으로 개발하는 강의도 없었고 글도 찾기 어려워서 더욱 그랬다.
나는 이태까지 혼자 힘이 아닌 누가 정해준 길을 따라 걸어갔던 것뿐이었다.
항상 강의 위주, 기능 구현에만 목매달던 개발을 해왔던지라 자기 주도적으로 학습하고 내 것으로 만드는 능력이 많이 부족해 테스트 코드 작성에 실패했고 나 자신에게도 만족스럽지 못했ㄷ.
이번 미션은 야구 게임으로 저번주차보다 프로그래밍 구현 자체의 난이도는 어렵지 않았다. 어렵지 않다고 안도해서 그런지 이 미션을 진행하면서 요구 사항의 테스트 코드를 작성하지 못해 반성하게 되었다. 항상 프로그래밍에 있어 기능 구현과 화면단에 보여주는 것만 신경 써왔었엇고. 위에서 말한 거와 같이 나는 이태까지 혼자 힘이 아닌 누가 정해준 길을 따라 걸어갔던 것뿐이었다는 걸 느껴 개발자로서 여태까지의 마음가짐이 부끄러웠고 자신을 되돌아보게 되는 여러모로 큰 충격을 받았던 일주일이었다.
솔직히 위의 충격 + 테스트 코드의 어려움 때문에 이번 미션을 포기할까 생각도 들었지만 실패해도 아랑곳하지 않고 지속하면 언젠가는 이 전보다 무조건 성장해있을 거라는 확신을 갖고 있기에 다음 미션도 주저하지 않고 포기하지 않을 것이다. 실패를 많이 해본 사람만이 진정으로 성공한 사람이라고 생각하기 때문이다.
진행하면서 느낀 점은 우테코가 수강생에게 전하고자 하는 바가 아닐지라도 개발은 혼자 하는 것이 아니며 사람들과 같이 협업할 수 있게 교육하는 느낌을 받았다.
프로그래밍을 구현하는 것은 개발자로서 기본으로 해야 하는 덕목이고 위의 규정들을 지키는 것이 진정 개발자가 아닐까 생각한다.
이전보다 성장한 점은 기능 목록 세분화와 그에 따른 의미 단위의 커밋, 하나의 함수에는 하나의 기능, 변수명 짓기에 신경 쓰게 되었고 그렇기에 이전보다 내가 작성한 코드나 깃 레포의 가독성이 좋아졌다고 생각한다. 또한 회고록을 작성하면서 나의 생각을 글로 남기는 것에 습관을 들이는 시작점이라고 생각한다.