컨테이너 기반 테스트 환경
Docker Compose로 테스트용 데이터베이스와 애플리케이션 서버를 함께 띄우는 환경을 구성해, 로컬과 CI 어디서든 동일한 조건으로 테스트가 실행되도록 만들었습니다. 이전에는 개발자마다 로컬 DB 상태가 달라 같은 테스트가 사람마다 다르게 통과하거나 실패하는 문제가 있었는데, 컨테이너화 이후 이 문제가 사라졌습니다.
면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.
Docker Compose로 테스트용 데이터베이스와 애플리케이션 서버를 함께 띄우는 환경을 구성해, 로컬과 CI 어디서든 동일한 조건으로 테스트가 실행되도록 만들었습니다. 이전에는 개발자마다 로컬 DB 상태가 달라 같은 테스트가 사람마다 다르게 통과하거나 실패하는 문제가 있었는데, 컨테이너화 이후 이 문제가 사라졌습니다.
서비스 트래픽 증가에 대비해 k6로 부하 테스트 환경을 구축한 적이 있습니다. 초당 요청 수를 단계적으로 늘리며 응답 시간이 500ms를 넘어서는 지점을 찾았고, 이 임계점을 기준으로 오토스케일링 설정을 조정했습니다. 기능이 맞는지 확인하는 테스트와 얼마나 버티는지 확인하는 테스트는 목적이 다르다는 것을 명확히 구분해 접근했습니다.
테스트 피라미드 개념을 적용해 단위 테스트를 가장 많이, 통합 테스트를 중간, E2E 테스트를 최소한으로 구성하는 방향을 팀에 제안했습니다. 기존엔 E2E 테스트 비중이 지나치게 높아 전체 실행 시간이 길고 실패 원인 파악도 어려웠는데, 비중을 재조정한 뒤 테스트 실행 시간이 절반으로 줄고 실패 원인도 더 빠르게 특정할 수 있게 됐습니다.
같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.
진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.