Skip to content

Commit

Permalink
add : ch03 #9
Browse files Browse the repository at this point in the history
  • Loading branch information
PicturePark1101 committed Apr 30, 2024
1 parent 9bd945e commit 79a208a
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion seojin/ch03.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,28 @@ public class PasswordStrengthMeter {

이 때 메서드 추출은 구현 흐름이 명확해졌을 때 진행해야한다.구현 흐름이 모호한 상태에서 진행하면 코드 구조를 잘 못 잡을 가능성이 있고, 다음 구현이 어려워질 수 있다.

리팩토링은 코드 가독성이 높아지고, 개발자가 더욱 빠르게 코드를 분석하고 유지보수가 수월해 진다는 장점이 있다.
리팩토링은 코드 가독성이 높아지고, 개발자가 더욱 빠르게 코드를 분석하고 유지보수가 수월해 진다는 장점이 있다.

## 예제

교재의 예제는 매달 비용을 지불해야하는 유료서비스에서 납부한 금액을 기준으로 서비스 만료일을 계산하는 기능을 구현하였다,

코드를 자세하게 뜯어볼 필요는 없을 것 같아 흐름을 대략 정리하였다.

### 코드 구현 흐름

1. Test Class 파일 이름 정하고 생성
2. 테스트 메소드를 추가
- 구현하기 쉬운 것 혹은 예외 상황을 먼저 테스트해야한다. 이 상황에서 가장 구현하기 쉬운 것을 택한다.
- 이 경우 외국인 작업자가 없다면 메소드 명을 한글로 해도 괜찮다.
3. 테스트를 실행해서 통과되는지 확인한다.
4. 성공한다면 동일한 조건을 추가하여 구현을 일반화한다.(위의 비밀번호 예제 참고)
5. 리팩토링을 할 단계로, 중복 제거한다. (메소드로 묶는다)
- 이 단계에선 고민이 필요하다.
- 구현 중복을 기계적으로 제거하면 검증 내용을 명확히 알기 어려워질 수 있다.
- 일단 중복 제거를 해보고, 검증 내용을 잘 설명하고 있는지 확인해본다.
6. 앞서 구현한 기능의 예외 상황처리
7. 이제 다른 테스트 내용을 선택한다.
- 이 때, 리팩토링이 필요하다면 진행한 후 추가하도록 한다.

이제 2번부터 계속 반복하여 점진적으로 기능을 추가하면 된다.

0 comments on commit 79a208a

Please sign in to comment.