예시 답변 1
TDD 실천 경험
팀 프로젝트에서 기능 구현 전에 테스트 코드를 먼저 작성하는 방식을 시도했습니다. 처음엔 익숙하지 않아 속도가 느려졌지만, 테스트를 먼저 짜면서 요구사항을 더 명확히 정리하게 됐고, 실제로 구현 중간에 애매했던 예외 케이스를 미리 발견할 수 있었습니다. 속도는 느려도 후반부 버그 수정 시간이 줄어 전체적으로는 효율적이었습니다.
초기 속도 저하와 후반 효율 개선을 균형 있게 설명했다
면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.
팀 프로젝트에서 기능 구현 전에 테스트 코드를 먼저 작성하는 방식을 시도했습니다. 처음엔 익숙하지 않아 속도가 느려졌지만, 테스트를 먼저 짜면서 요구사항을 더 명확히 정리하게 됐고, 실제로 구현 중간에 애매했던 예외 케이스를 미리 발견할 수 있었습니다. 속도는 느려도 후반부 버그 수정 시간이 줄어 전체적으로는 효율적이었습니다.
2주 단위 스프린트마다 기능 개발과 동시에 테스트 코드를 작성하는 것을 완료 조건에 포함시켜 운영했습니다. 테스트 없이는 스프린트 완료로 인정하지 않는 팀 규칙을 정했더니, 이전에는 릴리스 직전에 몰아서 테스트하다 놓치던 케이스들이 개발 단계에서 먼저 드러나기 시작했습니다.
Jest로 단위 테스트를 작성하고, Pull Request마다 CI에서 자동 실행되도록 연결해 테스트 통과 없이는 병합이 불가능하도록 프로세스를 만들었습니다. 처음엔 번거롭다는 의견도 있었지만, 병합 후 발생하던 회귀 버그가 눈에 띄게 줄면서 팀 전체가 이 프로세스의 필요성에 공감하게 됐습니다.
같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.
진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.