AI 시대, 개발자로 살아간다는 것
AI 코딩 도구가 개발의 일상에 깊이 스며들었습니다. 기능을 설명하면 바로 코드가 생성되고, 개발 속도와 생산성은 눈에 띄게 향상됐습니다. 이제 '코드를 짜는 일' 자체는 더 이상 개발자의 핵심 업무가 아니게 된 것이다. 하지만 그만큼 이제 우리는 개발자로서 더 본질적인 질문에 마주하게 됩니다.
우리는 지금 무엇을 만들고 있는가 -> 문제 정의
이 코드가 정말 우리가 기대한 대로 동작하고 있는가 -> 결과 검증
문제가 생겼을 때, 어디서부터 점검하고 어떻게 개선할 수 있는가 -> 리팩터링
AI가 많은 것을 대신하고 있지만, 무엇을 만들지 정의하고, 결과를 검증하는 책임은 여전히 개발자의 몫입니다. AI와 협업하는 지금, 개발자의 역할은 더 명확해졌고, 그 책임을 현실적이고 신뢰할 수 있는 방식으로 실천하는 방법이 필요해졌습니다.
왜 지금 TDD일까요 ?
첫째, 기능을 구현하기 전에 테스트를 먼저 작성하면, '무엇을 만들지' 더 정확히 정의하게 되고, AI에게도 명확한 목표를 전달할 수 있습니다.
둘때, AI가 코드를 빠르게 만들어준다 해도, 그 코드가 기대한 대로 동작하는지는 또 다른 문제입니다. 자동화된 테스트는 이를 반복적으로 검증할 수 있는 가장 확실한 방법입니다.
셋째, 무엇보다 이제는 테스트 코드도 AI가 제안해줍니다. TDD를 시작하는 문턱은 낮아졌고, 예전보다 훨씬 쉽게 실천할 수 있는 환경이 만들어졌습니다.
-> Inflearn `강의 소개` 발췌
TDD 절차


LLM 코딩 관점에서의 TDD 효과
- 구현 코드의 설계보다 제품의 가치에 집중하게 된다.
- 충분한 테스트 코드를 자연스럽고 점진적으로 확보한다.

느낀점
AI 시대에 개발자의 언어는 '코드'에서 '테스트'로 변한다는 말이 크게 와닿았다. AI 시대에서 어쩌면 개발자보다, 아니 이미 개발자보다 구현 능력은 더 뛰어나다. AI가 나보다 코드를 더 빠르고 정확하게 짤 수 있다는 사실은 이제 겸허히 받아들여야 할 현실이다. 하지만 역설적으로 개발자의 본질이 더 뚜렷해졌다고 생각한다.
AI에게 '로그인 기능 구현해줘' 라고 막연하게 묻는 개발자와 '이러한 조건을 모두 만족하는 로그인 함수를 만들어줘' 라고 묻는 개발자의 결과물은 천차만별이다. 테스트 코드는 AI에게 던지는 가장 수준 높은 질문이자 명령이다. 자연어는 모호하지만, 테스트 코드는 명확하다. AI가 엉뚱한 코드를 생성하지 않도록 가이드라인 역할을 하는 것이다.
구체적인 알고리즘이나 기능 구현 로직은 AI에게 맡기고, 개발자들은 이 제품이 사용자에게 어떤 가치를 주어야 하는가에 더 많은 에너지를 쓸 수 있다. AI가 짜준 코드가 마음에 들지 않아도, 탄탄한 테스트 코드가 있다면 언제든 자신 있게 코드를 갈아 엎고 최적화도 가능한 것이다.