[인프런 워밍업 스터디 클럽 2기 백엔드(클린코드, 테스트코드)] 2주차 발자국
강의 수강
학습 내용 요약
리팩토링 기법, 리팩토링 시 지켜야할 객체지향 원칙, 추상과 구체의 트레이드 오프
학습 내용 회고
추상이란 사물이나 표상의 성질을 추출하는 것이고, 그것은 필요없는 것을 '버리는 것'이다.
과도한 추상은 오히려 복잡도만 증가시킬 수 있다. 현 단계에서 필요한 정도의 추상을 해야 한다.
개발을 진행하면서 우리는 도메인 지식을 획득하게 된다. 도메인 지식을 획득하면 그때 좋은 구조로 변경할 수 있다.
추상과 구체를 넘나들면서 더 잘 이해할 수 있게 된다.
미션
코드를 리팩토링하는 미션이었다.
리팩토링 후에 강의를 들으면서 나의 코드와 비교해보았다.
그리고 중간점검 라이브에서 피드백도 받았다.
if 문 분기에서 분기에 들어가기 전에 처리할 수 있는 코드를 놓치면서, switch case 문으로 과도하게 리팩토링하게 된 것 같다. 메소드를 추출하기 전에 if 문 로직을 잘 살펴보아야 좋은 리팩토링을 할 수 있음을 명심하자.
일급 컬렉션의 개념은 알고 있었는데, 적용하지 못했다. 앞으로는 더 신경 써서 적용하려고 노력해야겠다.
추상화 레벨에 관해서는 단순히 메소드를 추출하는 것이 중요한 것이 아니라, 적절한 이름을 붙이면서 높은 추상화 레벨을 획득할 수 있음이 중요한 것이다.
읽는 사람이 직관적으로 해석할 수 있을 정도로 코드의 의도를 분명하게 드러내야 한다.
상태를 가지지 않고, 앞으로도 가지지 않을 확률이 높다면 VO로 만드는 것이 좋다.
마무리하며
어떠한 지식을 한 번 들어본 것과 실제로 적용할 수 있음이 다르다는 것을 새삼 느꼈다. 반복 숙달, 의식적인 노력을 통해 머리로만 알고 있는 것을 체화해야겠다.
2개의 강의 중 한 개를 완료했다. 내가 생각했던 것보다 더 많은 것을 얻을 수 있었다. 다음 강의가 더 기대된다.
댓글을 작성해보세요.