워밍업 클럽 4기 BE 클린코드&테스트 1주 차 발자국

'읽기 쉬운 코드'가 중요한 이유는

코드를 작성한 나 뿐만 아니라 다른 사람의 시간과 에너지를 절약해줍니다.

 

읽기 쉬운 코드를 위해 핵심 로직을 추상화 시켜 표현하고 그 것을 구현한 구체는 감추어 코드를 나눕니다.

 

핵심 로직을 추상화 시킨다는 것은 데이터를 직접 비교하며 코드를 읽는 것이 아닌

메서드 시그니처를 읽는 순간 우리가 그 기능이 무엇을 하는지 이해하는 것을 의미합니다.

 

구현 중 상수, Early Return 과 중첩 반복문 회피, 사용 변수의 위치 및 공백 라인 등

코드를 읽는 사람이 쉽게 이해하기 위한 여러 요소가 사용됩니다.

 

하나의 클래스가 점차 많은 기능을 맡게 된다면 읽기와 작성 모두 어려워집니다.

관심사에 따른 객체로 추출하여 사용하는 곳에서 구현에 신경쓰지 않고 도메인 로직을 다룰 수 있게 합니다.

 

객체는 한 개의 관심사로 책임을 정의해야 하며 파라미터를 직접 넣고 사용하는 것 보다

응집도를 위해 캡슐화 및 추상화된 메서드 사용 및 객체 내부 필드를 이용해 내용을 구체화하고

SOLID 원칙을 준수하기 위한 상속과 조합, Value Object, 일급 컬렉션과 다형성 등 여러 구현 수단이 존재합니다.

 

1주차를 진행하면서 마음 속에 가장 와 닿았던 말은

"객체에게 객체를 존중하는 마음으로 물어봐라" 였습니다.

객체를 존중하는 마음을 가지려 하다보니 수업의 방향성을 한 번에 찾은 듯 했고

수업 이해에 많은 도움이 되었고 1주차 내내 워밍업 클럽에 신청하길 잘 했다는 생각을 했습니다.

 

처음 만나는 스트림 API 와 구현 도구를 이해하는데 어려움이 있었습니다.

스트림 API 의 경우 AI 도구를 이용해 배열을 스트림화 하는 등 여러 문제를 풀어보며 급하게 공부를 했지만

급히 공부한 만큼 여전히 어색함이 있고 객체 지향 적용 수업은 꼭 틈틈히 복습을 해야겠다는 생각이 들었습니다.

수업이 끝나는 대로 나름 정리를 바로 했지만 두서 없이 정리 되어 다음 주에는 Readable 하게 정리해야겠습니다.

 

추상과 구체 미션은 일상에서 쉽게 경험하는 일을 선택해 진행했습니다.

일상의 경험을 추상으로 표현하고 포괄적으로 표현된 내용을 구체적으로 표현하며 구현의 예시를 적었습니다.

단계 별로 메서드가 하나씩 진행하듯 이후 실제 코드에서 진행되는 수업을 생각하며 구현을 표현하려고 했습니다.

 

리팩토링 및 SOLID 미션은 읽는 사람이 읽고 바로 이해할 수 있는 정도를 고려하며 작성했습니다.

중복된 메서드는 통합했고 Optional 을 사용해 수업에서 배운 NPE 방지를 어떻게 하는지 알 수 있었습니다.

자신만의 언어로 SOLID에 대해서 설명하는 과정은 설명을 위해 제 스스로 이해를 먼저 했어야 했고 구현하는 과정은 힘들 수 있겠지만 개념을 이해하는 것에 많은 도움이 되었습니다.

댓글을 작성해보세요.

채널톡 아이콘