본문 바로가기

북스터디5

TDD 스터디 #4 - 화폐 예제 (유연한 통화 구현) 지난 포스트에서 이어집니다. 저번 시간까지 우리는 Dollar 하나만 존재했던 돈의 단위를 Dollar와 Franc 두 가지로 나누었고, Money 클래스를 통해 공통 부분을 상속받도록 하였습니다. 이번 시간에는 좀 더 유연한 통화 클래스를 구현해 보도록 하겠습니다. Dollar vs Franc 우선 지난 시간의 마지막 테스트 코드를 보겠습니다. example.test.js it("equals() 테스트", () => { expect(new Dollar(5).equals(new Dollar(5))).toBe(true); expect(new Dollar(5).equals(new Dollar(6))).toBe(false); expect(new Franc(5).equals(new Franc(5))).toBe(.. 2023. 8. 22.
TDD 스터디 #3 - 화폐 예제 (다중 통화 구현 & 중복 제거) 지난 포스트에서 이어집니다. 우리는 지난 시간에 화폐의 곱을 계산할 수 있도록 하는 times() 메서드를 TDD를 통하여 구현해보았습니다. 화폐의 가치를 다루는 기능을 만들어보았으니, 다음으로는 이 화폐들을 비교하는 로직을 구현해보겠습니다. equals() 우리는 지금까지 화폐를 Dollar라고 하는 값 객체를 통해 다루었습니다. 값 객체는 동일한 값의 다른 객체를 조작했을때 기존 객체의 값이 함께 변하는 별칭 문제로부터 자유로움을 보장하지만, 값이 동일하더라도 인스턴스가 다르면 다른것으로 취급하는 프로그램의 특성 때문에 값을 기반으로 비교하는 별개의 메서드가 필요합니다. 그것이 지금부터 만들 equals() 메서드입니다. 우선 TDD 답게 테스트를 먼저 작성해봅니다. example.test.js it.. 2023. 7. 21.
TDD 스터디 #2 - 화폐 예제 (다중 통화 지원하기) 지난 포스트에서는 저자와 역자의 말을 읽고, 테스트를 진행할 수 있는 환경을 구성해 보았습니다. 이제부터는 책을 읽으며 본격적으로 흐름을 따라가 보겠습니다. 책에서 마주하는 첫 번째 상황은 다중 통화를 지원하는 Money 객체를 구성하는 예제입니다. 통화 단위 추가하기 기존의 Money 객체는 화폐의 단위로 달러(USD)를 사용하였습니다. 그러나 사용자의 필요에 의해서 스위스 프랑(CHF)을 추가로 지원해야 했는데요, 이렇게 새로운 단위가 추가되는 상황이라면 어떤 기능들이 더 필요할까요? 먼저 필요한 기능들을 리스트업 하는 것부터 시작합니다. 필요한 기능 다른 통화끼리의 연산이 가능해야한다. 하나의 통화 사이의 연산이 가능해야한다. 이 기능을 테스트 할 수 있는 명제로 나타내면 다음과 같겠네요. 통과해야.. 2023. 7. 2.
TDD 스터디 #1 - 역·저자의 글, 테스트 준비 이 글은 동아리원들과 Test-Driven Development : By Example 을 함께 읽고 나눈 의견들과, 책의 내용들을 보며 개인적으로 정리한 글입니다. 테스트는 쉽지 않습니다. 좋은 테스트를 작성하는 것은 더욱 그렇습니다. 때문에 이번 TDD 북스터디를 통해 테스트를 어떻게 작성하면 좋을지에 대한 인사이트를 얻고, TDD를 잘 활용하는 방법에 대해 의견을 나누며 공부해보았습니다. 이 글은 책과 스터디원들의 의견들을 바탕으로, 개인의 생각을 정리한 글입니다. 기본적으로는 제가 책을 이해한 바에 따라 작성하기 때문에, 실제로 사용되지 않는 비공식적인 용어들이 사용될 수 있습니다. (주로 모호한 상황에서 등장할 것으로 보이는데, 그를 칭하는 명확한 단어가 있다면 댓글로 알려주시면 감사하겠습니다... 2023. 6. 28.
TDD 스터디 #0 - 스터디에 들어가며 오랜만에 작성하는 북스터디 포스팅입니다. 지난 리팩토링 포스팅 이후로도 꾸준히 진행되고 있던 북스터디가 어느덧 리스트에 있던 모든 책을 함께 읽었고, 얼마 전부터는 한 바퀴를 돌아 2회독으로 접어들었습니다. 그러던 중 드디어 테스트 주도 개발 책을 다시 읽을 차례가 되었는데, 정말 좋은 내용과 인사이트를 가진 책임에도 불구하고 초회독 당시의 역량 부족으로 인해 블로그에 정리하지 못했다는 사실을 문득 깨달았습니다. 그렇지 않아도 내내 아쉬움이 남던 차였는데, 2회독에 접어들면서 이전과 비교할 수 없이 수월하게 읽히는 책을 보고 스스로 어느정도 준비가 되었다는 생각이 들어 이렇게 TDD 글을 작성하고 있습니다. 2년동안 열심히 작성하던 테스트들이 머릿속을 스쳐가는걸 보면 마냥 놀지는 않았던것 같네요 :) 물.. 2023. 6. 17.