Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1장 - 테스트주도개발 Test Driven Development #6

Open
doortts opened this issue Jul 18, 2018 · 7 comments
Open

1장 - 테스트주도개발 Test Driven Development #6

doortts opened this issue Jul 18, 2018 · 7 comments

Comments

@doortts
Copy link
Owner

doortts commented Jul 18, 2018

@doortts (doortts) 님이 작성한 이슈입니다.
---

이전: "TDD 실천법과 도구" 책 전체를 PDF 공개합니다
다음: 2장 - JUnit and Hamcrest

안내: 본문을 읽지 않고 아래의 코멘터리만 읽는 걸 가정해서 작성하진 않았습니다.

1장 본문

01-테스트주도개발.pdf

읽기전에

우선 목차에 있던 어떻게 읽을 것인가를 보고 자신이 어떤식으로 읽어야 시간절약이 될 지 확인 필요합니다.

269-20187-18-1916-38.png
33-20187-18-1916-56.png

  • 편하고 빠르게 읽기를 바랍니다.
  • TDD에 대한 필요성과 의욕이 확실하다면 skip scan 으로 읽으세요.
  • TDD를 배우는 사람 입장이라면 1장의 계좌(Account) 예제는 눈으로 그냥 읽는 것과 실제 타이핑해가면서 실행해서 보는것과의 차이가 극단적으로 매우 큰 예제입니다.

도전과제

  • Javascript나 TypeScript로 실습을 따라갑니다

보충 설명

각 장마다 첫 페이지에 실패에 관한 격언들을 담았습니다. 그 당시 좋아했던 문장이었던 지금은 흑역사의 감독이 되어버린 우디 앨런의 문장으로 시작했습니다.

만일 당신이 때때로 실패하지 않는다면, 그건 안이하게 살고 있다는 확실한 증거다.
- 우디 앨런

이 장에서는 TDD의 아주 기본적인 접근 법을 소개 하고 있습니다.

현재의 흔한 개발방식의 문제점과 TDD가 좋다는 식으로 표현하고 있는데, 어떻게 보면 이 인간 약을 팔고 있구나!라고 생각이 들 수도 있습니다.
좋다는 이야기와 약판다는 이야기 둘 다 틀린이야기는 아닌데요 다시 쓴다면 강조하는 관점을 좀 다르게 둘 것 같습니다.

이를테면..

좀 더 개발을 잘 하기 위해 우리는 다양한 노력을 하고 있습니다. 그리고 개발자 자신도 스스로를 다양한 방식으로 진화시키기 위해 노력하고 있죠.

그 와중에 소위 발하는 개발 실천법(practice)이라는 이름으로 여러가지 기법이나 방식들이 등장했습니다.
익숙해짐과는 별개로 우선 바로 배워서 시작할 수 있는 실천법들로는

  • 디자인패턴(Design Patterns)
  • 리팩터링(Refactoring)
  • 객체지향 설계분석(OOAD, Object-oriented analysis and design)
  • CI(Continuous Integration)
  • 코드리뷰(Code Review)
  • 짝 프로그래밍(Pair Programming)
  • 종이 프로토타이핑(Paper Prototyping)
  • 종이와 연필 설계(Pen & Paper design)

등등이 있습니다. 그리고 그 중간 어딘가쯤에 마찬가지로 자동화된 유닛테스트(Automated Unit Test)와 TDD(Test Driven Development)가 포함되어 있다고 생각하시면 좋겠습니다.

즉, TDD를 (잘) 한다는 것이 곧 좋은 SW를 만들어 낸다던가 뛰어난 개발자가 되는/된 척도가 되는건 아니라는 거죠. 그냥 practice 중 하나이고 다른것보다 좀 더 어렵고 대신 조금 더 강력하게 동작할 수 있는 기법일 뿐입니다.

좀 더 강조 되었어야 했다고 생각하는 부분

  • 아주 간단한 sum 에 대한 예제에서도 사전설계가 먼저 되었고 요구사항을 확인해서 무언가 문서로 만들었다는 점에 주목해주세요
    • 이 부분에 관한 이야기는 뒷 챕터에서 좀 더 자세히 이야기 할게요
  • TDD의 목표는 TDD 하는 개발자가 아니다.
    704-20187-18-1923-47.png
  • 은행잔고 예제가 너무 쉽고 비현실적이라고 생각하실 수 있습니다만 목표를 보셔야 합니다.
    830-20187-18-1925-40.png
    • 개인적으로 지금은 IntelliJ로 전환한지 오래되었.
  • 작성된 테스트를 기반으로 계속 정제하고 있다는 점
  • 그리고 테스트가 만들어졌으면 더럽더라도 무조껀! 최대한! 빨리! 테스트를 통과시키는 연습을 해야 합니다.
    • 그래야 리팩터링과 다음 코드 작성으로 이어지는 부분을 더 리듬감 있게 진행할 수 있습니다.
  • 저자 한마디를 놓치지 마세요. TDD를 떠나 매우 중요한 내용입니다.
    919-20187-18-1929-24.png

생각이 살짝 바뀐 부분

246-20187-18-1933-35.png

  • 자신이 얼마나 설계를 못하고 의존적이며 즉흥적인 코딩을 하고 있는지 (=엉터리 개발자인지) 알게 된다.

깨알

306-20187-18-1932-50.png

2장 예고. JUnit과 Hamcrest

83-20187-18-1946-10.png
889-20187-18-1947-12.png

--- attachments ---
01-테스트주도개발.pdf
269-20187-18-1916-38.png
33-20187-18-1916-56.png
704-20187-18-1923-47.png
830-20187-18-1925-40.png
919-20187-18-1929-24.png
246-20187-18-1933-35.png
306-20187-18-1932-50.png
83-20187-18-1946-10.png
889-20187-18-1947-12.png

@doortts
Copy link
Owner Author

doortts commented Jul 24, 2018

@mjpark03-yona (박미정) 님이 작성한 코멘트입니다.
---

  • 디자인패던 > 디자인패턴
  • 자신이 얼마나 설계를 못하고 의존적이며 즉흥적인 코딩을 하고 있는지 (=엉터리 개발자인지) 알게 된다. 많이 찔렸습니다! pdf 업데이트 감사합니다 :))

@doortts
Copy link
Owner Author

doortts commented Jul 25, 2018

@skystarmin (황보민) 님이 작성한 코멘트입니다.
---

감사합니다. 잘 보겠습니다. :)

@doortts
Copy link
Owner Author

doortts commented Apr 11, 2019

@ahn.assari (Taejoon Ahn) 님이 작성한 코멘트입니다.
---

귀중한자료 감사드립니다! 잘 보겠습니다!

@doortts
Copy link
Owner Author

doortts commented Sep 14, 2019

@psy099 (박상영) 님이 작성한 코멘트입니다.
---

읽고 더 나은 개발자가 되겠습니다. 귀중한 자료 감사드립니다

@doortts
Copy link
Owner Author

doortts commented Oct 4, 2019

@comseong (JJ Lee) 님이 작성한 코멘트입니다.
---

한국 개발문화 성숙과 확산을 위해 기끼어 자기 자산을 나누시는 귀하께 감사와 존경을 드립니다!

@doortts
Copy link
Owner Author

doortts commented Sep 15, 2020

@ssoju2827 (thiporia) 님이 작성한 코멘트입니다.
---

자신이 얼마나 설계를 못하고 의존적이며 즉흥적인 코딩을 하고 있는지 (=엉터리 개발자인지) 알게 된다.
가슴에 와닿았습니다. 글 감사합니다. pdf 감사히 보겠습니다!

@doortts
Copy link
Owner Author

doortts commented Feb 4, 2022

@tkrk1226 (정의진) 님이 작성한 코멘트입니다.
---

좋은 책을 공유해주셔서 정말 감사합니다 TDD가 어떤 것인지 몰라 찾던 중 올리신 자료를 보게 됐습니다.

저 또한 제 지식을 아낌없이 나눠줄 수 있는 개발자가 되기 위해 노력하겠습니다.

다시 한 번 자료를 올려주심에 감사드립니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant