나는 아닌데…

아니긴 뭐가 아닌가.

개발자라면 누구나 다 코드를 써내려가기 전 머리 속에서 간단한 테스트가 휘리릭 만들어진다. 이런 조건을 가진 경우 이렇게 액션이 일어나면 이런 결과가 나오겠구나. 그리고 코드를 몇줄 써내려 가고, 코드를 눈으로 따라 보면서 역시 머리 속에서 테스트가 돌아간다. OK. 이러면 잘 돌아가겠다. 생각이 들면 다음 기능으로. 아니면, 이거 좀 이상한데, 여기서 잘못된 값이 나오겠다라고 생각하고 수정으로 들어간다.

매우 짧고, 매우 불안정하며, 실수하기 쉽고, 용량이 감당이 안되서 결국 엉망으로 테스트가 돌아가게 되서 그렇지, 모든 코딩과정에는 머리 속에서 함께 테스트가 일어나기 마련이다.

사람의 두뇌라는게 매우 빠르게 복잡한 사고를 할 수 있기는 하지만, 양이 늘어나면 감당이 안되고 병렬로 처리도 잘 안되고 오류도 잘 나기 마련이다. 그래서 그 머리 속에서 일어나는 그런 코드를 보면서 하는 인간지능 TDD를, 밖으로 끄집어 내서 코드로 만들어버리면, 실수도 안하고 아무리 길고 복잡해도 불평한번 없이 알아서 수행해주는 컴퓨터가 그 귀찮은 일을 대신 해주는 것이다. 그런 사이 개발자는 맘편히 다른 문제에 더 집중할 수 있고.

어짜피 테스트코드를 사용하는 TDD를 못하는 사람이라면, 머리 속으로도 비슷한 작업이 그다지 잘 돌아갈 것이라고 생각되지 않는다. 그나마 두뇌의 스트레스를 줄여주는 쪽으로 하는게 결국 결과가 낫지 않을까?

코딩이란 걸 시작한 이후로 쭉 해온 습관이라 그럭저럭 돌아가는 인간지능 TDD를, 별로 안만들어봐서 어색한 코드로 표현하는 불편이 있긴 하지만 자꾸 노력해서 인간-컴퓨터 협력 TDD로 바꾸면 인생이 편해질 거다. 켄트 벡의 얘기대로 "맘편하게 잠자리에 들 수 있다". 맘편하게 데이트에 나갈 수 있고, 맘편히 휴가를, 맘편하게 가족과 시간을…

 

책에 들어갈 TDD 내용 좀 쉽게 설명하려고 생각해 본건데.. 좀 억지스러운가?

영회한테 배운 제목 낚시 연습으로는 뭐 괜찮은 듯.

Related posts:

  1. 테스트 주도 개발 TDD 실천법과 도구 – 채수원
  2. 알면서 왜 안할까? TDD
  3. 유쾌한 이슈처리 재촉 메일
  4. TDD와 TLP
  5. 오픈소스 소프트웨어에서 오픈소스 코드가 가지는 의미는?
  6. TDD 안티 패턴

Facebook comments:

to “모든 개발자는 사실 TDD를 하고 있다”

  1. 생각해 보니까 맞는 말이신듯 합니다.. ㅎ

  2. 한 수 더 가르쳐주지.. ㅋㅋ

    형이 말한 논리대로라면
    자동화 도구를 써서 명시적으로 TDD를 하는 경우와 암산(?)으로 하는 묵시적 TDD가 있겠군.
    차이는 묵시적이냐 암시적이냐 차이겠지.

    기록을 남길 경우
    - 다시 써 먹을 수 있고
    - 다시 써 먹다 보니 전보다 더 나은 형태로 발전이 가능하고…

    위 두 가지 측면은 묵시적으로도 가능하지만, 아무래도 기록을 해두는게 유리할 듯

    - 남도 써 먹을 수 있고

    이건 묵시적일 땐 불가능하고…

    지식 경영이나 집단 지성도 명시적인 재사용과 진화, 확산의 흔적 아닌가?

  3. 영회/ 묵시적은 뭐지?

    머리에서 꺼내서 다른 형태로 재구성하는 과정에서 그 아이디어가 명확해진다는 장점도 있지,
    반면에 실제화 시키는데 서투르면 혼란에 빠질 가능성도.

    내가 말하고자하는 것은 결국

    “부디 TDD 한번 해보세요…”

  4. 전두엽 자체가 아직 일어나지 않은 사건에 대한 시뮬레이션을 위해 진화된 기관이니까요.
    http://www.ted.com/talks/lang/kor/dan_gilbert_asks_why_are_we_happy.html

  5. narusas/ 처음 들어보는 얘기인데.. 흥미롭네요.

  6. 영회싸한테 제목 낚는 법을 좀 배워야 겠네요. ㅎㅎ
    글 잘 읽었습니다. 맞는 내용이네요.
    TDD 쉬운 것 같으면서 막상 적용할려면 먼산을 보게 되는 데…
    정말 큰 맘 먹고 한번 해봐야겠네요. ㅎㅎ

  7. 잇츠굳/ 제목 낚시는 신문기사에서 배우심이~

  8. 마침, 며칠전에 회사 사람들에게 이야기 한 것과 비슷한 맥략의 이야기라서….
    개발자들은 자기 만의 방법들을 가지고 테스트 코드를 작성한다는 이야기를 누군가 하더라구,
    나도 거기에는 동의하지만, 단 한순간만을 위한 테스트 코드를 작성하면, 결국 버려지는
    코드를 만드는 것이데, 이런 경우라면 시간이 흘러갈 수록 효과는 반감하게 되겠지.
    TDD는 코드 작성시 뿐만 아니라, 개발하고, 유지 보수하고, 리펙토링과 테스트 할때도
    유지되어야 누적 효과적인 측면에서 효율 적인 것 같아.

    하지만 결국은 개발자에게 도움이 되어야, 끈기 있게 이루어 질텐데… 아직은 이런 예를
    못찾아서 아쉽네.

  9. Hello! bdbdedf interesting bdbdedf site! I’m really like it! Very, very bdbdedf good!

  10. Hello! gdegcgb interesting gdegcgb site! I’m really like it! Very, very gdegcgb good!

  11. Hey verу interеsting blog!

  12. Fоr ѕomе it is a lieutenant’s war, and as far from the truth as one can possibly get to everything. While we all understand with some sense of disconnection, that these many wonderful benefits come at it sideways so that they may suffer from PTSD or something similar.

  13. This is both seetrt smart and intelligent.

  14. Never before I had crossed over like an informative post like this. I was totally sick with your post you shared.

  15. mbt the anti shoe 모든 개발자는 사실 TDD를 하고 있다 » Toby’s Epril

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha