본문 바로가기

전체 글187

2. 단위 테스트란 무엇인가 2.1 '단위 테스트'의 정의 런던파 작은 코드 조각을 검증 빠르게 수행 격리된 방식으로 처리고전파 단일 동작 단위를 검증 빠르게 수행 다른 테스트와 별도로 처리 2.2 단위 테스트의 고전파와 런던파 세번째 속성인 격리 문제의 차이가 고전파와 런던파를 구분할 수 있게 해주는 근원 격리 주체 단위의 크기 테스트 대역 사용 대상 런던파 단위 단일 클래스 불변 의존성 외 모든 의존성 고전파 단위 테스트 단일 크랠스 또는 클래스 세트 공유 의존성 2.3 고전파와 런던파의 비교 2.3.1 런던파의 특징 입자성이 좋다. 테스트가 세밀해서 한 번에 한 클래스만 확인한다. 서로 연결된 클래스의 그래프가 커져도 테스트하기 쉽다. 모든 협력자는 테스트 대역으로 대체되기 때문에 테스트 작성 시 걱정할 필요가 없다. 테스트가.. 2023. 2. 5.
1. 단위 테스트의 목표 단위 테스트의 목표 단위 테스트의 목표는 소프트웨어 프로젝트의 지속 가능한 성장을 가능하게 하는것이다. 지속성과 확장성이 핵심이며, 이를 통해 장기적으로 개발 속도를 유지할 수 있다. 코드를 단위 테스트하기 어렵다면 코드 개선이 반드시 필요하다는것을 의미한다. 테스트는 안전망 역할을 하며, 대부분의 회귀(regression)에 대한 보험을 제공한느 도구라 할 수 있다. 회귀는 특정 사건(일반적으로 코드 수정) 후에 기능이 의도한 대로 작동하지 않는 경우다. 소프트웨어 버그와 회귀라는 용어는 동의어이며 바꿔서 사용할 수 있다. 테스트의 가치와 유지 비용을 모두 고려해야 한다. 기반 코드를 리팩터링할 때 테스트도 리팩터링하라. 각 코드 변경 시 테스트를 실행하라. 테스트가 잘못된 경고를 발생시킬 경우 처리하.. 2023. 2. 5.
05. 책임과 메시지 책임과 메시지 자율적인 책임 설계의 품질을 좌우하는 책임 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미한다. '어떻게'가 아니라 '무엇'을 자율적인 책임의 특징은 객체가 '어떻게(how)' 해야 하는가가 아니라 '무엇(what)'을 해야 하는가를 설명한다는 것이다. 책임을 자극하는 메시지 책임이라는 말 속에는 어떤 행동을 수행한다는 의미가 포함돼 있다. 객체가 자신에게 할당된 책임을 수행하도록 만드는 것은 외부에서 전달되는 요청이다. 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 요청을 전송하는 것뿐이다. 그리고 이 요청을 우리는 메시지라고 부른다. 메시지는 객체로 하여금 자신의 책임, 즉 행동을 수행하게 만드.. 2020. 10. 7.
04. 역할, 책임, 협력 역할, 책임, 협력 협력 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다. 책임 어떤 대상에 대한 요청은 그 대상이 요청을 처리할 책임이 있음을 암시한다. 객체지향 설계의 예술은 적절한 객체에게 적절한 책임을 할당하는 데 있다. 명확한 책임이 애플리케이션의 미래를 결정짓는다는 것을 명심하라. 객체지향 설계는 협력에 참여하기 위해 어떤 객체가 어떤 책임을 수행해야 하고 어떤 객체로부터 메시지를 수신할 것인지를 결정하는 것으로부터 시작된다. 역할 역할의 가장 큰 가치는 하나의 협력 안에 여러 종류의 객체가 참여할 수 있게 함으로써 협력을 추상화 할 수 있다는 것이다. 역할의 대체 가능성은 행위 호환성을 의미하고, 행위 호환성은 동일한 책임의 수행을 의.. 2020. 10. 7.