이번 시간은 이 코드 분해에 대한 이야기이며,
학습 내용에 개인적인 생각도 덧붙인거라
자세한 내용이 궁금하면 이규원님의 TDD 수강을 신청하는걸 권장한다.
The RED : 이규원의 현실 세상의 TDD : 안정감을 주는 코드 작성 방법 | 패스트캠퍼스
그동안 우리나라에는 TDD를 제대로 다루는 책도 강의도 없었죠. 그래서 제가 개발 현장에서 활용하는 TDD를 정확하게 알려드리고자 강의를 만들었습니다. 이제 TDD에 대한 잘못된 인식은 버리고, '
www.fastcampus.co.kr
모든 개발자가 클래스, 메소드 등 코드를 잘게 쪼개 분해해서 사용한다.
개발자는 문제를 마주하고 코딩으로 문제를 해결하면서 계속 지속한다.
문제의 크기
1) 개발자가 한 번에 다룰 수 있는 문제의 크기는 한계가 존재
-> 다양한 문제를 한번에 다룰 순 없다. 사람은 누구라도 하나의 일을 차례대로 진행하지, 여러개의 일을 동시에 못한다. 문제가 너무 커도 마찬가지이다.
2) 프로그래머는 더 큰 문제를 자주 접함
-> 일하다보면 개발자는 예상치 못한 상황을 접하게 된다.
3) 시스템은 점점 커진다
-> 처음엔 작게 시작했지만 점점 시간이 지나면서 서비스가 고도화되고, 추가 기능이 붙으면서 시간에 따라 비대해진다.
4) 큰 문제는 작은 문제로 분해 가능
-> 대체적으로 마주하는 문제들은 작은 요소로 쪼개질 수 있다. 예로 들어, 새로운 기능 구축이 필요하면 해당 요구사항을 분석해서 구현에 필요한 작은 기능을 하나씩 정리하여 구현한다.
5) 작은 문제의 일부는 반복됨
-> 발생한 문제는 이전에 발생한 반복된 문제일 수도 있다. 히스토리를 파악해서 해결방법을 찾을 수 있다.
문제는 앞으로 계속 발생할 것이며, 어떤 것들은 이전부터 반복되는 문제일 수도 있다.
이런 경우 코드를 재사용하여 수정할 수 있다.
코드 재사용
1) 반복되는 문제의 풀이는 재사용 가능
: 재사용하려는 코드의 아주 작은 코드를 수정해도 이게 따른 의도하지 않은 사이드 이펙트를 파악하기 힘들다. 가능한 그대로 사용하는 것이 중요하다. 이미 작성된 코드를 패키지로 만들어서 재사용하는 방식과 산출물을 라이브러리라고 부른다.
2) 소프트웨어 개발 비용 절감 (엔지니어링)
: 코드 재사용은 새롭게 코드 작성으로 해결하는 것보다 비용절감 효과가 있고, 앞으로 강의에서 계속 엔지니어링에 맞대어 있다.
모듈화
분해
- 큰 시스템은 더 작은 하위 시스템으로 분해 가능
- 교체 가능
조립
- 작은 시스템은 더 큰 시스템으로 조립 가능
- 모듈 재사용
- 라이브러리
단위 테스트
- 모듈을 테스트할 때 단위 테스트를 많이 사용한다. 클라이언트에게 신뢰도를 줄 수 있는 좋은 수단이다.
'교육 및 인강 > 이규원의 현실 세상의 TDD' 카테고리의 다른 글
이규원님의 현실 세상의 TDD 기초, 6편 : 정리된 코드(리팩토링) (0) | 2021.04.14 |
---|---|
이규원님의 현실 세상의 TDD 기초, 5편 : 테스트 우선 개발 (0) | 2021.04.13 |
이규원님의 현실 세상의 TDD 기초, 4편 : 단위테스트 (2) | 2021.04.13 |
이규원님의 현실 세상의 TDD 기초, 2편 : 테스트 기법 (0) | 2021.03.10 |
이규원님의 현실 세상의 TDD 기초, 1편 : 코드 기능 명세 (2) | 2021.03.10 |