🚀 강의 목적

돌아가는 코드 - 읽을 수 있는 코드
기계가 이해할 수 있는 코드는 어느 바보도 작성할 수 있다. 하지만 인간이 이해할 수 있는 코드는 잘 훌련되 소프트웨어 엔지니어만이 작성할 수 있다. by.마틴 파울러
- 지금 작성하는 코드가 사람을 위한 코드인가, 기계를 위한 코드인가
- 리팩토링, 리뷰, 테스트 ... ❌
- 통계적으로 1개의 버그 수정이 3개의 버그를 생성한다.
- 거의 대부분의 버그는 버그 수정중에 발생한다.
- 개발 사이클에서 뒷 부분에 무언가 수행하려고 하면 작게는 10배, 크게는 100배의 노력이 요구된다.
- 앞부분에서 요구되는 시간은 시간이 많이 소요되는 것 처럼 느껴지지만, 뒷 부분에 가서 요구되는 시간을 많이 아껴줄 수 있다.
- 결국 토탈로 요구되는 시간은 동일하다. 오히려 뒷부분에 들이는게 더 많을 수 있다.
- 내가 구현하려고 하는 것을 그려보는 사람은 (그리는데 시간이 걸리겠지만) 더 잘 할 수 있다.
- 💭 구현먼저 하고 시간을 남겨서 리팩토링을 해야지
- 높은 확률로 시간 안 남는다.
- 그리고 이런건 리팩토링이 아니라, 리스트럭처링이라고 한다.
IDE를 활용한 리팩토링
- 이미 돌아가고 있는 코드가 있는데, 그 코드가 테스트 코드가 없어서, 공격적 개발 혹은 변경이 안될 때
- Intelli-J의 Refactoring 기능들을 이용해 공격적인 변경을 시도할 수 있다.
TDD를 이용한 새로운 기능 개발
- 진짜 TDD를 하면 느려지는지 아니면 더 빨라지는지 알아보자
- 기존 프로그램이 TDD가 아닐 때, 어떻게 새로운 기능을 TDD로 구현할 수 있는지 알아보자.
OOP/SOLID에 기반한 설계
- 객체지향의 개념들. 로버트 C 마틴이 이야기하는 SOLID 5가지 개념에 대해 알아보자.
- 이 조각조각의 개념을 시스템 개발 시 어떤 것을 적용해 어떻게 설계할지 알아보자.
Reference