개발 문화 · 협업 · 중급
TDD의 Red-Green-Refactor 사이클을 설명하고, 각 단계에서 개발자가 수행해야 할 주요 활동과 그 중요성에 대해 이야기해주세요.
힌트 · 실패하는 테스트 작성, 최소한의 코드 구현, 그리고 코드 구조 개선을 통해 견고한 코드와 설계 발전을 목표로 합니다.
실패하는 테스트최소한의 코드테스트 통과코드 개선중복 제거
모범답안
TDD의 Red-Green-Refactor 사이클은 견고한 코드를 만들기 위한 핵심적인 방법론입니다.
Red 단계에서는 실패하는 테스트 케이스를 먼저 작성합니다. 아직 구현되지 않은 기능을 명확하게 정의하고, 무엇을 테스트해야 하는지 구체화하는 단계입니다. 이 단계가 중요한 이유는 요구사항을 명확히 하고, 테스트 가능한 코드를 설계하도록 강제하기 때문입니다.
Green 단계에서는 Red 단계에서 실패한 테스트를 통과시키는 최소한의 코드를 작성합니다. 완벽한 코드를 만드는 것보다 테스트를 통과하는 데 집중하며, 빠른 피드백을 얻는 것이 목표입니다.
Refactor 단계에서는 코드의 가독성을 높이고, 중복을 제거하며, 설계를 개선합니다. 테스트를 통과하는 상태를 유지하면서 코드의 품질을 향상시키는 단계입니다. 이 단계를 통해 코드의 유지보수성을 높이고, 장기적인 관점에서 개발 효율성을 향상시킬 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 테스트 (TDD / BDD) 면접 질문
- TDD를 적용했을 때 얻을 수 있는 주요 이점들은 무엇인가요?
- BDD(Behavior-Driven Development)는 무엇이며, TDD와 비교했을 때 어떤 특징이 있나요?
- 테스트 더블(Test Double)이란 무엇이며, 왜 사용하는지 설명해주세요.
- TDD를 프로젝트에 적용했을 때 얻을 수 있는 주요 이점과 발생할 수 있는 잠재적인 어려움은 무엇인가요?
- BDD(Behavior-Driven Development)는 TDD와 어떤 점에서 차이가 있으며, BDD가 강조하는 주요 가치는 무엇인가요?
- BDD 시나리오 작성 시 사용되는 Given-When-Then 구조에 대해 설명하고, 이 구조가 협업에 어떤 도움을 주는지 이야기해주세요.