[워밍업 클럽 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. 리팩토링 미션 회고

'스터디 카페 이용권 선택 시스템' 프로젝트를 리팩토링하는 미션을 진행하였다. 생각보다 변수명, 메서드명을 생각하는 게 쉽지 않았다. 어떻게 이름을 지어야 의도를 잘 드러낼 수 있을지 고민이 많았다.

객체를 어떻게 나눌 건지, 추상화 레벨은 어느 정도로 할 건지도 고민을 해보았고, 일급 컬렉션도 적용해보았다.

이번 리팩토링 미션을 하면서 내가 처음부터 설계해서 짜는 코드보다, 기존 레거시 코드를 리팩토링하는 게 더 어렵다고 느꼈다. 많은 연습을 해야겠다고 생각했다.

그리고 중간점검 때 다른 분들의 코드 피드백도 많은 도움이 되었다.

 

 

 

 

 

 


출처

Readable Code: 읽기 좋은 코드를 작성하는 사고법

Practical Testing: 실용적인 테스트 가이드

댓글을 작성해보세요.

채널톡 아이콘