[워밍업 클럽 4기 백엔드] 2주차 발자국
Readable Code: 읽기 좋은 코드를 작성하는 사고법
Practical Testing: 실용적인 테스트 가이드 강의를 수강하고 작성한 회고입니다.
1. 학습한 내용 및 회고
Readable Code
좋은 주석을 달자
의도를 최대한 코드로 표현해야 한다.
변수와 메서드 순서도 중요하다.
중요도가 높은 변수 또는 메서드를 먼저 배치한다.
Practical Testing
단위 테스트
작은 코드 단위를 독립적으로 검증하는 테스트
클래스나 메서드를 검증하는 테스트이다.
테스트 케이스
해피 케이스와 예외 케이스 모두를 생각해 테스트 케이스를 세분화해야 한다.
외부로 분리할수록 테스트하기 쉬워진다.
TDD: Test Driven Development
프로덕션 코드보다 테스트 코드를 먼저 작성한다.
테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하게 한다.
red(실패하는 테스트 코드 작성) -> green(테스트 통과 최소한의 코딩) -> refactor(구현 코드를 개선하여 테스트 통과) 순서로 구현한다.
쉽게 발견하기 어려운 엣지 케이스를 놓치지 않게 해준다.
테스트는 프로덕션 기능을 설명하는 문서가 될 수 있다.
DisplayName에 도메인 용어를 사용해서 테스트에 대한 설명을 적는다.
BDD: Bdehavior Driven Development
Given : 시나리오 진행 준비 과정
When : 시나리오 행동 진행
Then : 결과 명시 및 검증
2주차 회고
지금까지 개인적으로 프로젝트를 진행할 때마다 기능 구현이 급했기 때문에 테스트 코드는 꼭 나중으로 미루게 되었다. '예외 케이스를 충분히 생각해서 기능 구현을 했고, 실제로 잘 돌아가는데 테스트 코드가 꼭 필요한 건가?' 라는 생각을 했었다.
강의를 들으면서 이러한 나의 생각이 많이 바뀌었다. 테스트는 프로덕션 기능을 설명하는 문서가 될 수 있다는 말을 들었을 때 '아 이래서 테스트 코드를 작성해야 하는 구나!'라고 생각했고, 기능 구현만큼 테스트도 참 중요하다는 걸 알게 되었다.
2. 리팩토링 미션 회고
'스터디 카페 이용권 선택 시스템' 프로젝트를 리팩토링하는 미션을 진행하였다. 생각보다 변수명, 메서드명을 생각하는 게 쉽지 않았다. 어떻게 이름을 지어야 의도를 잘 드러낼 수 있을지 고민이 많았다.
객체를 어떻게 나눌 건지, 추상화 레벨은 어느 정도로 할 건지도 고민을 해보았고, 일급 컬렉션도 적용해보았다.
이번 리팩토링 미션을 하면서 내가 처음부터 설계해서 짜는 코드보다, 기존 레거시 코드를 리팩토링하는 게 더 어렵다고 느꼈다. 많은 연습을 해야겠다고 생각했다.
그리고 중간점검 때 다른 분들의 코드 피드백도 많은 도움이 되었다.
출처
댓글을 작성해보세요.