![[워밍업 클럽 4기 백엔드] 2주 차 발자국 👣](https://cdn.inflearn.com/public/files/blogs/5cfb889b-00d0-493b-88ff-2ca136b74757/워밍업 클럽 이미지.png)
[워밍업 클럽 4기 백엔드] 2주 차 발자국 👣
학습 내용 요약
Readable Code
코드 다듬기
디테일한 부분까지 리팩토링하며 읽기 좋은 코드를 작성하는 방법을 배웠습니다.
주석, 패키지를 이용한 맥락 제공, 변수와 메서드 배치 순서 등에 대해 고민하며 리팩토링 연습을 진행했습니다.
리팩토링 연습
리팩토링에 필요한 지식을 갖춘 상태에서 StudyCafe 예제를 리팩토링해보며,
실제로 적용하는 연습을 했습니다.
Day7 미션을 수행하면서 리팩토링의 어려움과 중요성을 체감할 수 있었습니다.
기억하면 좋은 조언들
능동적인 코드 읽기의 중요성을 느꼈습니다.
특정 개념을 배운 뒤 그 개념만 맹신하거나 추종하지 말아야 한다는 점을 배웠습니다.
좋은 리팩토링은 결국 경험에서 비롯된다는 사실을 알게됐습니다. 다양한 예제를 통해 경험을 쌓을 계획입니다.
Practical Testing
테스트는 왜 필요할까?
테스트가 필요한 이유를 예시를 통해 이해할 수 있었습니다.
단위 테스트
수동 테스트와 자동 테스트를 비교하며, 테스트 코드의 중요성을 체감했습니다.
테스트 케이스라는 개념을 통해, 케이스를 어떻게 나눌지 고민할 수 있는 시야를 조금이나마 갖게 됐습니다.
TDD
TDD의 핵심 가치를 배웠고,
TDD를 도입하는 것 만으로도 관점에 변화가 생김을 알 수 있었습니다.
테스트는 []다.
테스트도 읽기 좋아야 한다는 메시지가 인상 깊었습니다.
결국 개발자는 팀으로 일하기 때문에 팀원들과의 협업이 수월하도록
항상 읽기 좋은 코드 작성에 신경 써야 함을 배웠습니다.
학습 내용 회고
🌱성취
StudyCafe 예제를 통해 리팩토링 경험을 쌓았습니다.
코드 리뷰를 통해 부족한 점을 파악하고 개선할 수 있었습니다.
오버 엔지니어링 여부를 고민하고 더 나은 방향이 없을지 생각할 수 있게 됐습니다.
단위 테스트 작성법을 익혔습니다.
TDD를 설명할 수 있게 됐습니다.
읽기 좋은 테스트 코드에 대해 고민할 수 있게 됐습니다.
⚠발견한 약점 및 보완이 필요한 부분
출력 로직과 패스의 책임 분리를 인지하지 못했습니다.
isFixedType(selectedPass)처럼 매개변수로 객체를 넘기면서도,
해당 구조의 문제점을 인지하지 못했습니다.
boolean 메서드명을 무조건 is로 시작하는 습관이 있었습니다.
테스트 코드 작성이 아직 익숙하지 않습니다.
📄보완 계획
출력 로직과 패스 예시를 통해, 책임 분리가 제대로 되었는지 끊임없이 의심하는 시야를 갖도록 노력하겠습니다.
이상적으로는 좋은 개발자 분에게 꾸준히 코드 리뷰를 받아 시야를 확장해나가는 것이 가장 좋겠지만, 현실적으로 어려움이 있어 이를 보완할 방안을 고민 중입니다.selectedPass.isFixedType()처럼 객체에게 묻는 방식에 익숙해지기 위해, 객체 중심 사고를 염두에 두고 리팩토링을 연습할 계획입니다.
boolean 메서드라고 해서 무조건 is로 시작하기보다는, 자동사/타동사의 구분을 통해 명확한 이름을 짓는 연습을 하겠습니다. 헷갈리는 경우에는 검색을 통해 확인하며 감각을 익힐 예정입니다.
TDD를 바로 시도하기보다는, 먼저 테스트 코드 작성 자체에 익숙해지는 것을 목표로 하고 있습니다.
이를 위해, Readable Code 예제로 단위 테스트를 연습할 계획입니다.
(Day11 미션은 둘 중 하나만 골라서 단위 테스트를 작성하면 되지만, 저는 둘 다 해볼 예정입니다!)
미션 내용 회고
Day7 미션 🌱
🏃첫 번째 미션
[섹션 7. 리팩토링 연습]의 "연습 프로젝트 소개" 강의를 보고, '스터디 카페 이용권 선택 시스템' 프로젝트에서 지금까지 배운 내용을 기반으로 리팩토링을 진행해 봅시다.
🔗작업 브랜치 링크
https://github.com/sonic8-8/readable-code/tree/day7-mission
미션 과정
어떤 클래스부터 접근할지, 리팩토링의 최적 순서가 있는지, 어떤 기준을 세워야 좋을지 등 많은 고민이 있었습니다.
책임과 응집도, 적절한 메서드명까지 생각하다 보니 점점 복잡해지고 혼란도 생겼습니다.
하지만 강의에서 제시된 키워드를 따라가며 하나씩 풀어 나가니, 리팩토링을 차근차근 시도해볼 수 있었고 좋은 훈련이 되었습니다.
처음엔 낯설고 어려웠지만, 혼자 시도해보는 경험 자체가 큰 배움이 되었습니다.
리팩토링하며 사고한 모든 과정은 Notion에 정리해 두었습니다.
(부끄럽지만 리팩토링하며 혼란스러워하는 흔적도 곳곳에 남아있습니다 😅)
리팩토링 사고 과정
🔗https://able-brick-82b.notion.site/Day-7-studycafe-2062947a96118052949be0ae38983e68?source=copy_link
느낀점
읽기 쉬운 코드를 작성하는 것 자체가 생각보다 훨씬 어렵다는 사실을 느꼈습니다.
더 좋은 표현과 적절한 동사를 익히기 위해서는 결국 많이 접해보고 직접 써보는 수밖에 없다는 것도 알게 되었습니다.
만약 더 디테일한 코드 리뷰를 받을 수 있는 기회가 있다면 적극 참여하고 싶다는 생각이 들었습니다.
리팩토링은 결국 경험을 통해 길러야하는 영역이기에, 더 많은 예제를 통해 리팩토링을 연습할 계획입니다.
충분히 연습한 후에는 지금의 코드와 사고 과정을 돌아보며 스스로 피드백도 해보고 싶습니다.
함께 스터디에 참여하시는 분들 덕분에 많은 동기부여를 받았고, 의지도 더 다져지는 것 같습니다.
모두 완주까지 힘내봐요! 🏃
마지막으로 코드 리뷰를 해주신 우빈 코치님께 감사드립니다!
온라인 세션을 통해 궁금했던 점과 고민을 해결하고, 부족한 점을 돌아볼 수 있는 정말 뜻깊은 시간이었습니다.
귀중한 시간을 내어 코드 리뷰 해 주셔서 진심으로 감사합니다! 🙂↕
강의
댓글을 작성해보세요.