인프런 워밍업 스터디 클럽 2기 - 백엔드(클린코드, 테스트코드) 2주차 발자국
워밍업 클럽을 엊그저께 시작한 것 같은데 벌써 절반에 다다랐다.
2주차의 다룬 내용은 주로 코드 리팩토링과 유지보수에 관련된 주제들이었다.
코드 다듬기 파트
먼저 주석의 존재 의의부터 시작하여 변수와 메서드 나열 순서로 이어졌다.
주석 같은 경우, 필요한 경우에만 쓰는 것이 좋다. 모든 방법을 동원해 코드에 의도를 녹여냈지만 그럼에도 전달해야 할 정보가 남았을때 사용하는 것이 주석이다.
클린 코드에서도 주석에 대해서 '나쁜 코드를 보완하지 못한다'라고 설명하는데 이보다 적합한 표현은 없다고 생각한다.
이어서 '논리, 사고의 흐름'의 연장선이라고 볼 수 있는 변수와 메서드의 나열 순서도 다룬다.
변수는 사용하는 순서대로 나열하며, 항상 객체 입장에서 생각하자는 것이 핵심이다. 상태가 변경되는 변수 및 메서드를 우선으로 배치하고 판별, 조회 로직이 있는 메서드들 순으로 하는 기준을 배우고 코드에 원칙을 적용하는 리팩토링 하는 과정을 거쳤다.
컨벤션에 대한 정답은 없는 법이지만 협업과 가독성 관점에서 전적으로 동의하는 내용이 주를 이루었다.
리팩토링 연습 파트
객체 지향 원칙을 적용하고 여태 배웠던 것을 전체적으로 리팩토링 하는 파트이다.
먼저 추상화 레벨에 관한 부분이다. 이번 파트는 이미 예제로 작성되어있는 코드를 리팩토링 하는 과정을 거치는 것이어서 살짝 어려웠다.
StudyCafePassMachine 클래스에서 코드 중복부분을 제거하고 일급 컬렉션을 적용할 수 있는 부분을 찾아내 변경한 것 까지는 좋았지만 객체에 메시지를 던진다는 것이 익숙하지 않아 많이 해맸다.
강의에서는 Order 객체를 만들어 책임을 분리하는 접근 방법같이 내가 생각하지 못했던 여러 관점을 엿볼 수 있었는데, 확실히 코드는 돌려보면서 평가받아야 문제점과 개선점을 찾을 수 있다는 점을 다시 한번 크게 느끼게 되었다.
강의를 쫓아가느라 바빴지만 개인적으로 가장 유익한 파트였으며 미션으로 여태 학습한 것을 동원하여 코드에 대한 고민을 할 수 있는 시간이었다.
다른 시험이 겹쳐서 코드 리팩토링에 시간을 많이 투자하지 못해서 아쉬웠지만, 시간을 내서 내 방식으로 다시 리팩토링하여 개선해 볼 예정이다.
맺음
강의에서 다루는 내용이 상당히 많았지만 결국 '추상'이라는 키워드에 입각하여 이에 벗어나지 않은채 클린 코드의 정수를 학습할 수 있는 시간이었다.
무작정 답을 알려준다기 보다는 답을 찾아가는 방법을 유도해주는 우빈님의 방식덕에 워밍업 클럽에 몰입할 수 있었다.
3주차부터는 테스트 코드에 관한 내용이다. 이미 한 번 완강했지만 스터디 클럽의 커리큘럼을 통해 다시 돌아보는 좋은 시간이 될 것 같다.
이번엔 시험이 있어서 시간 분배에 실패했지만 남은 2주 잘 마무리하도록 시간을 적절히 투자하여 우수러너 욕심을 한 번 내볼 생각이다.
러너들 화이팅~
출처
댓글을 작성해보세요.