TDD, Clean Code With Java 수강 후기
- 생각
- 2021. 5. 22.
2021년 중반이 되어서야 작년에 수강한 TDD, Clean Code 강의 후기를 작성하고 있습니다. 원래는 진작부터 쓰고 싶었던 이야기입니다. 글 솜씨가 부족하고 하고 싶은 이야기가 있어도 잘 정리가 되지 않아 미루고 미루었습니다. 하지만 더 늦어진다면 왠지 쓰지 못할 이야기가 될 것 같아 지금에서야 쓰게 되었습니다.
강의를 수강하게 된 이유 그리고 결론
작년에 했던 일들 중에 기억에 남는 일이 있다면 그것은 박재성님의 TDD(TDD, Clean Code)를 수강했던 것이 아닐까라고 생각합니다. 비전공자가 국비 지원 학원을 통해 막연히 시작하게 된 개발 일은 쉽지 않았습니다. 처음에도 어려웠지만 시간이 어느 정도 지난 지금도 개발은 어렵습니다. 사실은 시간이 흐를수록 프로그래밍을 하는 것이 더 어렵게 느껴집니다. 여전히 저는 지금 개발을 잘하고 있는 것인지, 더 나아가 어떻게 하면 더 개발을 잘할 수 있는지가 궁금하지만 작년의 저는 지금의 저와 같은 고민은 했지만 방향성은 갖지 못한 채 프로그래밍을 고민하고 개발을 하고 있었습니다.
그러던 와중에 우연한 기회로 박재성님이 TDD를 주제로 수업을 하신다는 사실을 알게 되어 작년 7월에 TDD, Clean Code With Java 9기 과정에 참여하게 되었습니다. TDD, Clean Code With Java 과정을 수료하면서 느낀 점은 "어설프고 다듬을 부분이 많이 있지만 그래도 잘못된 방향으로 고민하고 개발을 배우고 있지 않았구나"입니다. 개인적으로는 이 사실만으로도 만족스러웠고 개발자로서의 자신을 되짚어 볼 수 있는 계기가 되었습니다.
이 과정을 통해 배우는 것들
TDD, Clean Code 과정은 단순하게 요약하면 "미션"과 "피드백" 이 두 가지로 이야기할 수 있습니다.
먼저 과정을 듣는 수강생들은 TDD를 기반으로 미션(자동차 경주, 로또, 사다리 타기, 볼링 게임)들을 자바 코드로 구현합니다. 구현된 코드는 리뷰 요청을 통해 리뷰어가 확인하고 피드백을 합니다. 이 과정에서 수강생과 리뷰어는 서로 의견을 주고받으며, 지속적으로 미션을 구현한 코드를 리팩토링 하게 됩니다.
코드 구현
: 각 미션마다 코드를 통해 구현해야 하는 요구 사항이 있으며, 이 요구 사항을 테스트 코드를 기반으로 설계하고 작성합니다. 처음 테스트 코드를 접하시는 분이어도 미션을 진행하는 데에는 어려움이 없도록 학습 과정이 설계되어 있으니 이 부분은 걱정하지 않으셔도 됩니다.
리뷰 요청 및 피드백 그리고 수정
: 코드 구현을 통해 만들어진 결과물을 PR(Pull Request)을 통해 리뷰어에게 리뷰를 요청하게 됩니다. 리뷰어는 PR 요청받은 내용을 확인하고 피드백을 주며, 이 과정에서 수강생과 리뷰어는 서로 의견을 주고받으며, 지속적으로 일어나는 피드백과 수정을 통해 코드를 점진적으로 리팩토링 합니다. 리뷰어는 미션마다 다른 리뷰어를 배정받으며, PR뿐만 아니라 메신저(Slack)를 통해서 1:1 대화를 할 수도 있습니다.
완료
: 강의는 각 미션마다 단계가 있고 모든 단계가 완료되면 다음 미션을 수행하는 형태로 진행됩니다. TDD, Clean Code 강의 목표는 총 4개의 미션(자동차 경주, 로또, 사다리 타기, 볼링 게임)을 완주하는 것입니다.
이러한 일련의 과정 속에서 수강생은 개발자가 가져야 하는 역량인 클린 코드, 테스트, 리팩토링도 배울 수 있을 뿐만 아니라 실무에서 접하기 어려운 좋은 개발 문화도 직접적으로 경험할 수 있습니다.
다만 TDD, Clean Code 과정은 실무 경력 최소 1 ~ 3년 이상의 자바 개발자에게 권장되는 수업 과정이기 때문에, 프로그래밍을 처음 접하는 분이라면 과정이 어려울 수 있습니다.
미션 완주를 목표로 해보면 어떨까?
미션 완주를 목표로 하는 게 이상하게 들리실 수 있지만, 이 과정에서는 "미션 완주"가 하나의 목표가 될 수 있다고 생각합니다. 일반적으로 수업이나 수강을 한다고 하면 정해진 기간 동안 "듣는" 과정을 생각하기 때문입니다. 그렇기 때문에 미션을 완주하기는 생각보다 어렵습니다. 실제로 4가지의 모든 미션을 완료하는 수강생 분들은 전체 인원 중 20% 정도입니다.
TDD, Clean Code과정은 일반적인 수업처럼 단순히 듣는 게 아니라 주어진 미션을 해결해야 하기 때문에 자신이 직접 해야 합니다. 수강 과정에서 실시간 영상 강의와 미션을 해결하기 위한 동영상 강의는 제공되지만, 이것은 어디까지나 수업의 일부입니다. 이 말은 수강하는 사람이 수동적이 아니라 능동적으로 해야 한다는 말이기도 합니다. 즉 미션을 완주한다는 목표를 세우지 않으면 동영상 강의로 만족해야 할 수도 있다는 이야기입니다. 목표가 있고 없고는 확실히 다른 결과를 가져온다고 생각합니다.
하고 싶은 이야기
이 글을 쓰면서 정리하고 싶었던 내용은 수업 과정이 아니었는데 어쩌다 보니 과정을 주요 내용으로 정리를 하게 되었습니다. 어서 빨리 글 쓰는 재주가 늘어났으면 좋겠습니다.
가장하고 싶었던 이야기는 다름이 아니라 적어도 자바 기본을 알고 1년 차 이상되는 실무자라면 TDD, Clean Code 과정을 수강을 들어보시면 좋을 것 같다는 추천이었습니다. 이 과정은 자신이 노력한 만큼 결과를 얻을 수 있는 학습 내용이기 때문에 열심히 하신다면 자바 프로그래밍 과정 중 으뜸이라고 생각합니다.
홍보를 위해 작성한 글이라고 오해하시면 어쩔 수 없지만, 진심으로 이 수업은 개발자로서 많은 성장을 할 수 있게 해 줍니다. 객체지향 설계를 할 수 있는 방법부터, 피드백을 통해 얻는 성장 경험까지 일반적인 IT기업에서는 쉽게 배울 수 없는 것들을 보고 듣고 배웁니다. 특히 사수가 없이 개발을 배우신 분이라면요.
'생각' 카테고리의 다른 글
나는 왜 글을 쓰는가? (0) | 2021.08.10 |
---|---|
SI 회사에 취업하면 어떤 점이 좋고 나쁠까? (4) | 2021.05.30 |
네카라쿠배당토 - 개발자 이야기 (4) | 2021.05.02 |
웹 개발자는 어떤 일을 하나요? [풀스택, 프론트엔드, 백엔드, 퍼블리셔] (49) | 2021.04.29 |
웹 개발자 취업 준비하기 - 프론트엔드 인터뷰 (25) | 2021.04.12 |