커리큘럼
교육 방식
19기 기준으로 대략 7주간 4개의 미션을 수행하게 되며, 각 미션들은 여러 개의 스텝으로 나눠져있다. 각각의 스텝들을 진행할 때, 기능 요구사항, 프로그래밍 요구사항, 커밋 요구사항을 지켜가며 구현을 한다. 구현후에 리뷰어분들에게 코드 리뷰를 받고 수정을 진행하며 일정 수준이 되어 통과되면 다음 스텝을 진행한다.
통과 즉, Pull Request merge가 되지 않으면 PR에 남긴 리뷰어분들의 피드백을 확인 및 적용하여 다시 push를 하며 merge가 될 때까지 이를 반복한다.
수강 계기
현재 재직중인 회사가 규모가 큰 대기업이지만 제대로 된 코드 리뷰 문화가 있지 않은 상황이라 내 코드에 대한 좋고 나쁨에 대한 판단과 더 나은 코드를 위한 피드백이 없는 상황이다. 지금 저연차 때는 어찌저찌 버틴다고 해도, 고연차가 되면 그에 걸맞는 실력을 제대로 쌓아서 갖고 있을지 의문이었다.
저연차 개발자를 위한 교육들은 많지만, 어떤 코드가 더 나은지, 어떻게 기존 코드를 개선해나가는게 좋은지를 알려줄 수 있는 주니어에서 시니어가 되기 위한 지식을 알려주는 교육이 필요했다.
다행히 우아한형제들의 교육 플랫폼인 NEXTSTEP에서 해당 교육 과정을 진행하고 있고, 많은 추천을 받고 있어 검증된 교육이라 생각해 참가하게 되었다.
피드백 모음
자동차 경주 - 단위테스트
로또 - TDD
사다리타기 - FP, OOP
수강신청 - 레거시 코드 리팩토링
후기
교육 신청 당시에는 6주 안에 모든 미션들을 통과할 수 있을까 하는 생각이 들었다. 온라인 후기들을 찾아보면 시간이 부족하여 모든 미션을 완료하지 못했다는 여러 글이 있었다.
다행히 6주의 교육 기간을 꽉 채워서 모든 미션을 완수하고 수료할 수 있었다.
교육을 들으면서 여러 이점을 얻을 수 있었다.
우선, Stream API에 익숙해질 수 있었다.
그전까지는 반복문이 필요할 때는 for문을 먼저 쓰되 조금씩 Stream을 섞어서 사용했다면, 미션을 진행할 때는 반강제적으로 Stream을 우선적으로 사용하게 되면서 이제는 Stream을 우선적으로 쓰게 되었다.
두 번째로는, 서비스 단에 도메인 로직을 넣는 빈도가 줄어들었다.
가끔 도메인 로직을 도메인 내부에 넣는 게 좋다는 얘기를 들어보긴 했지만, 감을 잡지 못하여 이전에 개발하던 대로 서비스 단에 모든 로직을 넣었었다.
미션을 진행하면서 도메인에 도메인 로직을 넣으라는 의미를 체화할 수 있었다.
세 번째로는, 테스트 작성의 중요성을 알게 되었다.
지금까지 경력을 쌓으면서 테스트 코드를 작성할 기회가 많이 없었고, 있더라도 시간이 많이 드는 테스트 코드 작성을 왜 해야 하는지 크게 와닿지 않았다. 하지만 미션을 진행하면서 테스트 케이스를 먼저 작성하고, 이 케이스가 성공하기 위한 도메인 코드를 작성하는 것을 반복해 보면서 테스트 코드 작성의 중요성을 깨달을 수 있었다.
바로, 요구사항 변경에 따른 유연한 대처 능력이다.
요구사항이 바뀌면서 로직이 수정되게 되면 기존 기능들이 잘 작동될까 하는 두려움을 갖기 마련인데, 테스트 케이스들이 잘 작성되어 있으면 이를 통해 편한 테스트가 가능하여 두려움을 갖지 않아도 된다는 점에서 매우 중요하다고 느꼈다.
이 외에도 리뷰어분들의 꼼꼼한 피드백을 받으면서 내가 자주 하는 실수나 안티패턴들을 알 수 있었고, 여러 디자인 패턴에 대해서도 생각해 볼 수 있어서 좋았다.
해당 강의를 통해 나 자신이 발전할 수 있어서 좋았고, 나를 발전시킬 더 좋은 강의를 찾아볼 생각이다.