[워밍업 클럽 2기 BE - 클린코드&테스트] 2주차 발자국
이번 주차에는 다음과 같은 내용을 수강했습니다.
코드 다듬기
클린코드 리팩토링 실습
기억하기 좋은 조언들
1주차와는 달리 스터디카페 이용권을 예시로 진행을 했는데요.
코드 다듬기
코드 다듬기에서는 주석의 양면성이 가장 인상 깊었습니다. 주석은 클린 코드에서 가장 많은 논란이 있는 주제인데요. 최근에 개인적으로 느끼기에는 주석을 사용하는 걸 무조건적으로 죄악시하는 풍조가 있다고 느꼈고, 오히려 주석을 달지 않아서 문제가 생기는 경우가 많았습니다. 개인적으로 주석을 무조건적으로 지양하기보다는 과연 내가 주석이 필요 없을 정도로 남이 보기에 쉽게 이해할 수 있는 코드를 작성했는지를 먼저 스스로에게 되묻는 자세가 필요하다고 생각합니다. 결국 내가 짠 코드도 누군가가 보기에는 어려울 수도 있고 꽤나 코드의 클린함이라는게 자의적인 판단이 많이 들어갈 수 있는 영역이라고 생각하기 때문입니다.
변수나 메서드의 나열 순서 파트에서도 좋은 팁을 얻었습니다. 늘 private
메서드를 따로 빼고나서 걱정이었는데 우빈님께서 사용하시는 상태의 변경 / 판별 / 값 조회 순서를 따르면 좋을 것 같다는 생각을 했습니다.
리팩토링 연습
리팩토링 실습 편에서는 지뢰찾기에서 배웠던 것들을 스터디카페 이용권을 발급하는 프로그램을 리팩토링했는데요. 우빈님께서 접근하는 방식 자체가 굉장히 좋았습니다. 처음엔 중복을 제거하는 관점에서 리팩토링을 수행하고, 일급 컬렉션을 적용할 수 있는 부분을 찾고, 객체의 책임을 분리하고, 새로운 도메인 개념을 도출해내는 단계적인 절차를 밟아가면서 리팩토링을 하는 법을 배울 수 있었습니다. 저는 이전에 이러한 명확한 관점 없이 리팩토링을 수행했던 경험이 있던지라 하나의 커밋에 너무 여러 수정과정이 섞여서 정확히 무얼 했는지 스스로도 알아보기 힘들었는데, 새로운 접근법을 얻어간다는 느낌을 받아 좋았습니다.
기억하면 좋은 조언들
기억하면 좋은 조언들에서는 오버 엔지니어링을 경계하자는 챕터가 가장 인상 깊었습니다. 사실 얼마전 만든 백오피스 프로그램에서 너무 이르게 추상화한 것 때문에 오히려 새로운 기능을 구현하는 것보다 기존 코드를 고치는데 시간이 너무 많이 들었던 경험이 있습니다. 단순한 문제를 괜히 복잡하게 풀어보려는 욕심이 앞섰기 때문에 발생한 문제였는데, 구체적인 구현체들을 미리 만든다음에 그 구체들로부터 추상화할 수 있는 부분을 뽑아내어 추상화를 하는 것이 더 낫다는 것을 다시 한번 깨달았습니다.
금주에는 과제도 있었고 지뢰찾기에서 배운 것을 적용도 해보는 시간이었는데 개인적으로 코드를 작성하는 시간에 건강 이슈로 인해서 스스로 고민하고 코드를 작성하는 과정이 빈약했습니다. 그래서 과제도 사실 거의 제 생각은 없은 채로 제출했는데 좀 부끄러웠습니다. 최근에는 많이 좋아져서 다시 심신을 가다듬고 테스트 코드 주차에는 이를 만회해보도록 노력해야겠다는 생각을 했습니다.
댓글을 작성해보세요.