우문현답
愚 問 賢 答
회사별 면접직군별진행 방식
    홈›회사별›토스›모바일›질문 상세
    問
    토토스모바일경험·이력2026년 출제

    Testable한 코드를 작성하는 데 어떤 접근 방식을 사용하나요?

    답변 미리보기

    테스트 가능한 코드를 위해 가장 먼저 신경 쓰는 건 의존성이 코드 안에 박혀 있지 않은 것입니다. 특정 외부 서비스나 데이터베이스를 코드 내부에서 직접…

    예상 답변 시간
    60~90초
    예상 꼬리질문
    3회
    난이도
    난이도 중상
    출제 빈도
    높음
    INTERVIEWER'S INTENT · 면접관의 의도

    이 질문, 네 갈래로 뜯어봅니다.

    면접관이 이 한 문장으로 확인하려는 것들. 각 갈래를 알면 답의 뼈대가 잡혀요.

    問
    01
    어떤 기법을 사용하는가?
    Testable한 코드를 작성하기 위한 기법의 흔적이 답에 있어야 합니다. 없으면 면접관이 '구체적으로 어떤 기법인가요?'를 추가로 묻는 경우가 자주 보입니다.
    骨
    02
    도구는 무엇인가?
    Testable한 코드를 위한 도구에 대한 언급이 답에 있어야 합니다. 없으면 면접관이 '어떤 도구를 활용했나요?'라는 질문을 던지는 자리가 자주 보입니다.
    語
    03
    접근 방식은 어떤가?
    Testable한 코드 작성을 위한 접근 방식이 언급된 흔적이 있어야 합니다. 없으면 면접관이 '어떤 접근 방식이었나요?'를 추가로 묻는 경우가 많습니다.
    本
    04
    테스트 전략은 무엇인가?
    Testable한 코드 작성을 위한 테스트 전략의 흔적이 답에 있어야 합니다. 없으면 면접관이 '테스트 전략은 어떻게 되나요?'를 질문하는 자리가 자주 보입니다.
    말로 해봐야 는다
    읽는 것과 말하는 건 다릅니다.
    이 질문, 소리 내어 답해 볼까요?
    토스 면접관 페르소나가 이 질문을 던지고, 당신의 답에 꼬리질문으로 되물어요.
    음성으로 답해보기
    테스트 어려운 코드를 의존성 주입으로 개선한 경험을 이야기한다약 84초단위 테스트를 어떻게 작성하고, 어떤 케이스를 챙기는지 경험으로 설명한다약 82초테스트를 먼저 쓰고 코드를 짜는 방식을 직접 시도해본 경험을 이야기한다약 86초
    의존성 주입으로 테스트 가능한 구조
    약 84초

    테스트 어려운 코드를 의존성 주입으로 개선한 경험을 이야기한다

    테스트 가능한 코드를 위해 가장 먼저 신경 쓰는 건 의존성이 코드 안에 박혀 있지 않은 것입니다. 특정 외부 서비스나 데이터베이스를 코드 내부에서 직접 생성하면, 테스트할 때 그것 없이는 코드가 실행이 안 됩니다. 학부 프로젝트에서 클래스 내부에서 직접 DB 연결을 생성하는 코드를 작성했는데, 테스트를 짜려고 보니 DB 없이는 아무것도 실행이 안 됐습니다. 그때 의존성을 외부에서 주입하는 방식으로 바꾸고 나서야 테스트에서 목(mock) 객체를 쓸 수 있게 됐습니다. 처음엔 구조가 복잡해 보였는데, 실제로 테스트를 짜기 시작하니까 코드의 역할 분리가 훨씬 명확해진다는 걸 느꼈습니다. 테스트 가능한 코드가 곧 좋은 구조의 코드라는 걸 이 경험으로 이해했습니다. 아직 실무 수준과는 차이가 있지만, 이 방향을 계속 발전시키고 싶습니다.

    이 결의 특징
    DB 연결이 코드 내부에 박혀 테스트가 불가능했던 상황을 구체적으로 짚고, 의존성 주입으로 구조를 바꾼 전환점이 담겨 있습니다. 테스트 가능성이 곧 구조 품질이라는 깨달음이 실패 경험에서 나온 흔적이 보입니다.
    이 결이 통하는 자리
    이론적 설명에 그치지 않고 실제로 막혔던 프로젝트 장면이 구체적으로 살아 있을 때 통합니다. 아직 실무 수준과 차이가 있다는 겸손함이 과잉 확신을 걷어내는 자리에서 면접관의 신뢰가 쌓이는 결이 보입니다.
    단위 테스트 습관 + 경계 케이스 검증
    약 82초

    단위 테스트를 어떻게 작성하고, 어떤 케이스를 챙기는지 경험으로 설명한다

    테스트 가능한 코드를 쓰기 위해 함수나 메서드 단위를 작게 유지하는 것을 가장 먼저 합니다. 한 함수가 너무 많은 일을 하면 어느 부분을 테스트해야 하는지 불명확해집니다. 학부 프로젝트에서 입력 검증 + 데이터 가공 + 저장을 한 함수에서 처리하는 코드를 작성했다가, 테스트 하나가 실패했을 때 어디서 실패한 건지 파악하기가 너무 어려웠습니다. 그 이후로 각 역할을 분리하고, 각각 독립적으로 테스트하는 방식으로 바꿨습니다. 테스트를 짤 때는 경계 케이스를 먼저 생각합니다. 빈 값, 최대/최소값, 예상치 못한 타입 등을 의도적으로 넣어봤을 때 코드가 어떻게 반응하는지 확인합니다. 한 번은 문자열이 들어올 줄 몰랐던 숫자 처리 함수에서 예외 없이 통과됐다가 런타임 에러가 난 적이 있었고, 그 이후로 타입 체크 테스트를 추가했습니다.

    이 결의 특징
    함수 하나에 여러 역할이 뒤섞여 테스트 실패 지점을 찾기 어려웠던 경험을 역할 분리로 해결한 흔적이 있습니다. 경계 케이스를 의도적으로 넣어보는 습관이 실제 런타임 에러에서 비롯된 결이 담겨 있습니다.
    이 결이 통하는 자리
    타입 체크 누락으로 실패했던 구체적 사례가 이후 습관으로 이어질 때 통합니다. 경계값 검증 사고방식이 실제 코드 개선으로 연결된 자리에서 면접관의 꼬리질문이 줄어드는 결이 보입니다.
    TDD 시도 경험
    약 86초

    테스트를 먼저 쓰고 코드를 짜는 방식을 직접 시도해본 경험을 이야기한다

    테스트 주도 개발 방식을 한 번 직접 시도해봤습니다. 기능을 짜기 전에 테스트를 먼저 쓰고, 그 테스트가 통과되도록 코드를 만드는 흐름입니다. 처음엔 테스트를 먼저 쓰는 게 어색했습니다. 코드가 없는데 어떻게 테스트를 쓰냐는 느낌이었습니다. 익숙해지니까 테스트를 먼저 쓰는 것이 기능 요구사항을 정리하는 과정이기도 하다는 걸 알게 됐습니다. 무엇을 만들어야 하는지가 더 명확해지는 효과가 있었습니다. 실패한 부분도 있습니다.

    처음 짠 테스트가 너무 구체적이어서, 구현 방식을 조금만 바꿔도 테스트가 깨졌습니다. 테스트는 동작을 검증해야지 구현을 검증하면 안 된다는 피드백을 받고 나서 방식을 수정했습니다. 아직 완전히 익숙하지 않지만, 테스트를 먼저 생각하는 습관이 코드 품질을 높인다는 방향은 맞다고 생각합니다.

    이 결의 특징
    테스트를 먼저 쓰는 낯섦을 숨기지 않고, 구현이 아닌 동작을 검증해야 한다는 피드백을 받아 방식을 수정한 전환점이 담겨 있습니다. 요구사항을 정리하는 과정으로서의 테스트라는 재해석이 보입니다.
    이 결이 통하는 자리
    완전히 익숙하지 않다는 한계 인정과 함께 구체적 실패 지점이 살아 있을 때 통합니다. 습관이 코드 품질로 이어진다는 결론이 추상론 없이 경험으로 닫힐 때 통하는 결이 보입니다.
    !
    위 답변은 여러 풀이 중 한 가지 예시입니다. 정답이 아니며, 외워서 그대로 말하면 면접관이 다음 질문을 그 자리에서 시작하는 경우가 많습니다. 본인의 프로젝트·기준·숫자로 다시 짜는 자리로만 쓰세요.
    ✕자주 빠지는 자리

    같은 실수가 반복돼요. 이것만 피해도 절반은 갑니다.

    • ✕떨어뜨린 옵션이 1개라도 있는가? "이게 답이었어요"만으로는 의사결정이 아니라 그냥 선택입니다.
    • ✕선택 기준이 그 프로젝트에 한정되는가? "성능이 좋아서"는 일반론, "우리 트래픽이 X 패턴이라서"가 본인의 답입니다.
    • ✕결과 숫자 1개를 정확히 말할 수 있는가? P95·QPS·적중률 — 무엇이든 1개. 숫자가 없으면 직감으로 한 일처럼 들리기 쉽습니다.
    • ✕지금 다시 한다면 어떻게 할지 답할 수 있는가? "잘했다"보다 "이건 다르게 했을 것 같다"가 더 깊은 인상을 남깁니다.
    ▶이어질 꼬리질문

    진짜 면접은 두 번째 질문부터예요. 이 답 뒤에 따라올 법한 것들.

    壹어떤 기법이 가장 효과적이었다고 생각하시나요?
    貳테스트 도구를 선택한 이유는 무엇인가요?
    參테스트 과정에서 어려웠던 점은 무엇이었나요?
    이제, 직접 답해볼 차례예요.
    눈으로 읽은 답은 면접장에서 나오지 않아요. 토스 면접관과 이 질문으로 한 번 대화해 보세요.
    이 질문으로 모의면접 해보기
    또는, 다음 질문으로

    같은 흐름에서 자주 이어지는 질문들이에요.

    당근마켓 · 모바일
    Testable한 코드를 작성하기 위해 어떤 기법이나 도구를 사용하나요?
    이 질문 보기
    당근마켓 · 모바일
    Testable 한 코드를 작성하기 위해 어떤 방법이나 도구를 활용하시나요?
    이 질문 보기
    마켓컬리 · 프론트엔드
    단위 테스트를 작성할 때 어떤 접근 방식을 사용하며, 경험한 사례가 있다면 공유해 줄 수 있어?
    이 질문 보기
    에코마케팅 · 백엔드
    테스트 코드 작성의 필요성을 이해하고 있다고 하셨는데, 실제로 작성해 본 경험이 있다면 어떤 상황이었는지 설명해 주세요.
    이 질문 보기
    안내 · 이 페이지의 질문·답변·꼬리질문은 유사 직군 채용 시장의 공개된 면접 후기·커뮤니티 게시물을 분석해 구성한 학습 자료입니다. 실제 출제·회사 공식 입장과는 무관하며, 정정 요청 시 24시간 내 반영합니다. 자세히
    개인정보처리방침이용약관문의
    © 2026 우문현답. All rights reserved.
    이 페이지 목차
    01면접관의 의도02답변의 결03실수·꼬리질문04관련 질문
    말로 해봐야 는다
    이 질문, 토스 면접관과
    음성으로 답해볼까요?
    모의면접 해보기
    첫 회 무료 · 종료 즉시 음성 폐기