pile·
백엔드·한글과컴퓨터한글과컴퓨터·

AI 시대에 테스트 코드를 잘 쓰는 기준이 달라진다.

한컴에서 Claude Code로 개발하며 세션이 끊길 때마다 같은 설명을 반복하게 되는 문제를 겪고, 테스트 코드를 "미래 세션의 AI가 읽는 실행 가능한 프롬프트"로 다시 정의한 글이다. 맥락 전달 수단으로 주석과 문서를 검토했지만 코드와의 동기화가 강제되지 않는다는 점에서 테스트 코드가 가장 적합하다고 본다. 다만 테스트가 보장하는 것의 한계도 분명히 짚는다.

핵심 포인트
  • AI는 세션이 종료되면 작업 맥락을 안정적으로 보존한다고 보기 어렵고, 다음 세션에서 맥락을 다시 전달하는 비용이 반복 발생한다.
  • 주석은 코드가 바뀌어도 그대로 남는 경우가 많아 동기화가 강제되지 않지만, 테스트는 기대와 구현이 어긋나면 깨져 신호를 보낸다.
  • 그렇다고 항상 최신 정책을 보장하는 것은 아니다. 정책이 바뀌었는데 테스트와 구현이 모두 이전 정책에 묶여 있으면 테스트는 그대로 통과한다.
  • 테스트가 강제하는 것은 과거에 합의한 기댓값을 현재 코드가 유지하는지까지다.
  • 새 세션의 AI에게 테스트 파일을 컨텍스트로 제공하는 것만으로 상당 부분 맥락이 복원된다.
상세 정리
  • 반복되는 질문들: 이 엔드포인트가 어떤 케이스를 커버하는지, 특정 값이 없을 때 어떻게 처리하기로 했는지 같은 것들을 세션이 바뀔 때마다 다시 설명해야 했다.
  • 이 문제는 멀티테넌트 백엔드 서비스를 개발하며 반복적으로 떠올랐고, 그 과정에서 테스트 코드의 역할을 다시 생각하게 됐다.
  • 테스트가 담는 정보: 테스트 이름과 @DisplayName은 그 함수가 다뤄야 하는 상황을, 실패 케이스는 어떤 예외가 어떤 상황에서 발생하는지를 전달한다.
  • 글이 제시하는 실천 항목으로 @DisplayName에 구현이 아니라 비즈니스 의도와 왜(Why)를 담는 방법, 인간이 명세를 확정하고 AI가 구현하는 협업 방식, 교차 검증과 역 추론 루프를 든다.
  • 멀티테넌트 서비스의 격리 정책을 사례로 삼아 이름 짓기 방법을 구체적으로 다룬다.
  • 한계도 함께 짚는다. 과잉 명세처럼 테스트 코드가 지닌 근본적인 문제를 실무 관점에서 살펴본다고 밝힌다.
  • 기존에 알려진 테스트의 역할인 "이미 만든 기능이 망가지지 않게 지키는 안전장치"에 더해, AI 협업 시대의 맥락 동기화 장치라는 역할을 하나 더한 것이 이 글의 논지다.
  • "AI가 소스 코드를 직접 읽을 수 있는데 왜 굳이 테스트가 필요한가"라는 반문을 스스로 던지고 답하는 구성을 취한다.
왜 읽나AI 코딩 도구와 일하며 세션마다 같은 배경을 다시 설명하고 있는 개발자에게, 테스트를 문서가 아니라 동기화가 강제되는 명세로 다루는 관점과 그 한계를 정리해 준다.
한글과컴퓨터
한글과컴퓨터 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·twilio-engTwilio Engineering·

    Programmable Messaging에서 Verify API로 마이그레이션하기

    Twilio의 Programmable Messaging API로 자체 OTP 솔루션을 운영하던 서비스가 Verify API로 전환하는 방법을 코드 예시와 함께 설명한다. Verify는 OTP 전송·검증을 위한 전용 API로, 전화번호 구매, 토큰 생성, DB 저장·만료 관리를 내부에서 처리해 개발자가 직접 구현할 코드를 크게 줄인다.

    요약 이어보기
    #authentication#twilio#sms+2
  2. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 2부

    포스타입 백엔드 엔지니어가 벡터 기반 개인화 추천 시스템을 실제 운영하며 맞닥뜨린 성능 장애와 용량 문제를 해결한 과정을 담은 2부다. 수백만 개의 벡터 KNN 검색이 피크 시간대에 전체 Elasticsearch 검색 성능을 흔드는 문제부터 클러스터 OOM 사태까지, 쿼리 최적화와 인프라 분리 두 가지 경로로 근본 해결에 이른다.

    요약 이어보기
    #elasticsearch#vector-search#recommendation-system+2
  3. 백엔드·포스타입포스타입·

    포스타입이 개인화 추천을 하는 방법 1부

    포스타입이 태그 기반 추천의 한계를 극복하고 벡터 임베딩 기반 개인화 추천 시스템을 구축한 과정을 담은 1부다. 유사한 콘텐츠가 다른 용어를 쓰거나 동일한 태그가 전혀 다른 톤의 콘텐츠를 가리키는 문제를 임베딩 벡터로 해결하고, OpenSearch의 HNSW ANN 검색으로 수백만 벡터를 실시간 검색하는 시스템을 구축해 구매율 15% 향상을 달성했다.

    요약 이어보기
    #opensearch#vector-search#recommendation-system+2