인프런 워밍업 클럽 스터디 2기 - 백엔드 클린 코드, 테스트 코드 1주차 발자국
[ Readable Code: 읽기 좋은 코드를 작성하는 사고법 ] 강의를 들으며 작성한 1주차 회고록입니다.
1주차 학습 내용
논리, 사고의 흐름
보통 부정어구에 대해서는 항상 !를 붙여서 아무 생각 없이 사용해왔는데, isNot ~~ 메소드명을 명확하게 작성함으로써 내 의도를 보여줄 수 있는 부분이 아하 모먼트였던 것 같다.
해피케이스와 예외처리
아무 생각없이 null을 반환했었는데, NullPointerException을 방지하는 방향으로 경각심을 가지게 되었고 Optional을 고려 하는 부분이 인상 깊었다.
orElse -> 대체 값이 무조건 실행되므로, 계산 비용이 큰 경우 비효율적일 수 있다.
orElseGet -> 대체 값의 생성 비용이 클 경우, 효율적으로 사용할 수 있다.
orElseThrow -> 값이 없을 때 예외를 발생시켜야 할 경우 사용한다.
객체 지향 패러다임
SOLID 원칙을 코드에 적용하는 것을 보고 많이 배웠다.
항상 SOLID에 대해 고민하지 않고 무작정 코드를 작성 하였는데, 코드에 적용하는걸 보고 어떻게 작성하는지 시야가 트인 느낌이다.
1주차 강의 회고
칭찬하고 싶은점
강의에서 Stream API를 사용해서 코드를 더욱 간결하게 작성하는데, Stream API에 대해 모르는것이 많아서 따로 시간을 내서
퀴즈를 풀면서 공부 강의와 더불어 같이 Stream에 대해 학습을 했다.
보완하고 싶은점
추상을 하는 부분에 있어서 언제 어디까지 추상을 해야하는지 결정하는게 어려운데, 이 부분은 프로젝트를 많이 해보면서 경험을 해봐야 할 것 같다.
1주차 미션
Day2 미션 - 카페에서 커피를 산다'라는 과정을 구체 레벨에서 표현한다면?
메뉴판을 본다.
점원에게 시킬 커피를 키오스크 또는 구두로 주문 한다.
커피 준비가 완료되면 점원이 커피가 나왔다고 안내를 해준다.
커피를 받는다.
와 같이 같이 작성했다.
1주차 미션 회고
Keep (프로젝트에서 만족했고, 앞으로의 업무에서 지속하고 싶은 부분)
코드가 길고 읽기 어려운 코드를, Early return과 부정 연산자(!)를 긍정어로 수정해서 명확하게 코드로 의도를 전달할 수 있었고, 읽기 좋은 코드로 리팩토링 한 것에 대해 만족 했다.
Problem (프로젝트에서 부정적인 요소로 작용했거나 아쉬웠던 점)
아직 어떤 부분에 대해 추상을 해야할지 바로 떠오르지 않는데, 이 부분은 프로젝트를 경험해보면서 느껴야 할 것 같다.
Try (Problem에 대한 해결 방식으로 다음 프로젝트에서 시도해볼 점)
다음 프로젝트에서는 가독성 좋은 읽기 쉬운 코드를 작성하며, 확장성 있게 설계를 진행해보고 싶다.
댓글을 작성해보세요.