Wiz, Claude Code로 50,000줄 코드베이스를 마이그레이션하고, 성능 2배 향상

Claude 사용해 보기
도입 문의
업종:
소프트웨어
회사 규모:
대기업
제품
Claude Code
파트너
AWS
위치:
EMEA
약 20시간 만에 50,000줄의 Python을 Go로
2~3개월의 전문적인 엔지니어링 인력이 필요할 것으로 예상되는 마이그레이션
PR 병합 1.5배 증가
상위 100명의 기여자 중 한 명이며, 90% 이상의 엔지니어가 매일 Claude Code를 사용하고 있습니다.

자세히 보기
다음

비디오 캡션
다음

이전
다음

Wiz는 2,000명 이상의 직원을 보유한 클라우드 보안 플랫폼으로, 보안팀이 클라우드 환경을 가시화하고, 보안 상태를 관리하며, 전체 개발 라이프사이클 전반에서 수정 조치를 수행할 수 있도록 지원합니다. Wiz의 DSPM(데이터 보안 상태 관리) 팀은 모든 환경에서 고객 파일을 스캔하고, 해당 내용을 읽어서 노출된 자격 증명이나 민감한 데이터와 같은 보안 문제를 식별하는 역할을 담당합니다.

Claude를 통해 Wiz는 다음과 같은 성과를 달성했습니다.

  • 50,000줄 규모의 Python 라이브러리를 Go로 마이그레이션하는 데 실질적인 개발 기간 약 1일이 소요되었습니다. 수동으로 진행할 경우 2~3인월(human months)이 소요될 것으로 추정되는 프로젝트입니다.
  • 샌드박스 기반 Python 솔루션을 완전히 대체하는 새로운 Go 라이브러리로 실제 운영 환경에서 PDF 처리 속도가 2배 이상 향상되었습니다.
  • 코드베이스에 대한 완전한 소유권을 확보하여, 기존 오픈 소스 라이브러리에서는 불가능했던 버그 수정 및 커스터마이징이 가능합니다(히브리어 언어 지원 포함).
  • 20,000 줄짜리 C++ 라이브러리를 2일 만에 Go로 마이그레이션했으며, 이 과정에서 Claude Code가 Go 어셈블리 코드를 생성했습니다.
  • 팀이 엔지니어링 워크플로우 전반에서 Claude Code를 통합함에 따라 예상 출력 증가율은 20~30배입니다

과제: 대규모 PDF 파일 구문 분석

Wiz의 전체 코드베이스는 메모리 안전성 및 보안 특성으로 잘 알려진 프로그래밍 언어인 Go로 작성되었습니다. 하지만 PDF 파일 구문 분석이라는 중요한 작업 하나를 수행하기에 적절한 Go 라이브러리가 존재하지 않았습니다. PDF 사양은 수십 년 전에 만들어졌으며, 애플리케이션과 기기 전반에 걸쳐 수백 가지의 서로 다른 구현이 이루어져 있기 때문에, 종합적인 구문 분석은 매우 복잡합니다. DSPM 팀의 소프트웨어 엔지니어인 리론 레빈이 설명했듯이 "Reddit이나 다른 블로그를 방문하면 'Go에서 이 문제를 어떻게 해결해야 하나요?'와 같은 질문을 수없이 볼 수 있을 것입니다. 그러면 사람들은 불가능하다고 말할 것입니다."

신뢰할 수 있는 유일한 솔루션은 20년 이상의 개발 기간과 50,000줄 이상의 코드로 구성된 Python 라이브러리인 pypdf였습니다. 하지만 Go 환경에서 Python을 실행하려면 리소스 집약적인 샌드박스(본질적으로 미니 가상 머신)로 래핑해야 했는데, 이는 성능을 저하시키고 모든 곳에서 실행할 수 없었습니다. 일부 환경에서는 샌드박스형 Python 접근 방식을 사용했고, 다른 환경에서는 불완전한 Go 패키지에 의존했습니다. 결과는 일관성이 없었습니다. 서로 다른 도구가 동일한 파일에 대해 서로 다른 결과를 산출했습니다.

"큰 차이가 있었습니다." 레빈은 말했습니다. "코드를 더 복잡하게 만들었고, 실행하는 것만으로도 안전하다고 느끼지 못했습니다. 저는 2년 동안 이 문제를 해결하고 싶어했지만, 20년 된 Python 라이브러리의 코드 50,000줄을 Go 언어로 수동으로 옮기려면 고도로 전문화된 엔지니어가 2~3개월 작업해야 했을 것입니다. 어떤 제품 매니저도 이를 우선시하지 않았을 것입니다." 프로젝트는 백로그 상태로 남아 있었습니다.

해결책: 20시간 만에 실험에서 프로덕션으로 전환

팀이 Claude Code를 처음 사용한 계기는 단순했습니다. 익숙하지 않은 코드를 더 빨리 이해하는 것이었습니다. 하지만 얼마 지나지 않아 사용 사례가 확대되었습니다. 코드를 검토하고, 아키텍처를 계획하며, 지금까지 접해 본 적이 없는 코드베이스를 빠르게 파악하는 데 활용합니다.

레빈이 마이그레이션 프로젝트에 맞는 도구를 평가했을 때, Claude Code의 맥락 이해가 차별화된 요소였습니다. "이 도구의 문제 해결 능력은 다른 도구와 비교할 수 없을 정도로 차원이 다릅니다"라고 그는 말했습니다.

레빈은 토요일에 마이그레이션을 시도했습니다. 프롬프트를 입력한 지 1시간 이내에 기본 기능이 수백 개의 테스트 PDF에서 정상 작동했습니다. 약 10시간의 반복적인 개발 끝에, 새로운 Go 라이브러리는 500개의 까다로운 테스트 케이스를 모두 처리했습니다. "정말 놀랐습니다" 레빈은 말했습니다. "세계 최고의 개발자 같습니다."

Claude Code는 약 20시간 만에 50,000줄 짜리 Python 라이브러리를 18,413줄 짜리 Go 코드베이스로 마이그레이션했습니다. 10시간은 실제 개발하고 10시간은 테스트했습니다. DSPM 팀 리더인 Liran Benodis는 간단히 말했습니다. "Claude Code가 없었다면 이 프로젝트는 절대 불가능했을 것입니다. 투자해야 했을 노력과 시간을 생각하면, 그냥 하지 않았을 겁니다."

하지만 코드 마이그레이션은 도전 과제의 일부에 불과했습니다. 레빈이 새로운 라이브러리를 기능 플래그와 함께 프로덕션 환경에 배포했을 때, 결과의 99%는 원래 결과와 일치했고, 나머지 1%는 실제 고객 데이터를 바탕으로 디버깅해야 했습니다. 이 민감한 데이터는 온프레미스로 유지되어야 했기 때문에, 레빈은 팀이 'polymorphic zero-knowledge debugging(원본 데이터를 드러내지 않은채 다양한 환경에서 디버깅)'이라고 부르는 기술을 개발했습니다. 그는 Claude Code에게 문제 있는 파일에 대한 구조적이고 민감하지 않은 정보만 추출하는 진단 도구를 생성하도록 요청하고, 안전한 샌드박스 환경에서 이 도구를 실행한 뒤, 삭제 처리된 결과물을 Claude에 다시 전달합니다.

Claude는 파일당 5~10번의 반복 작업을 거치면서 고객 데이터를 보지 않고도 버그를 식별하고 수정할 수 있었습니다. 팀은 이러한 방식으로 20~30개의 다양한 문제를 해결했습니다.

결과: 엔지니어링 조직 전반에 걸친 영향

새로운 라이브러리는 며칠 만에 프로덕션 환경에 배포되었고, 이제 기존 Python 구현 방식보다 최소 2배 빠른 속도로 PDF를 처리할 수 있으며, 팀을 제약했던 리소스 집약적인 샌드박싱도 제거했습니다. Anthropic과의 파트너십은 여러 계층에 걸쳐 진행됩니다. 팀은 엔지니어링 작업에 Claude Code를 사용하고, Wiz의 광범위한 AI 플랫폼(ASKI 에이전틱 플랫폼과 Mikaii 어시스턴트 포함)은 Amazon Bedrock을 통해 Claude 모델을 기반으로 구축됩니다. 

마이그레이션을 통해 팀은 처음으로 PDF 구문 분석에 대한 완전한 소유권을 갖게 되었습니다. 단편화된 구현을 CLI 도구, 클라우드 버킷, 가상 머신을 포함한 모든 환경에서 일관되게 실행되는 하나의 코드베이스로 통합했습니다. 고객에게 이는 파일의 위치와 관계없이 일관되고 빠른 스캔 결과를 얻을 수 있음을 의미하며, 이는 DSPM의 핵심 약속입니다. 부적절한 히브리어 지원과 같이 이전에는 오픈 소스 라이브러리에서 해결할 수 없었던 문제도 이제는 직접 패치가 가능합니다.

그런 다음 레빈은 두 번째 마이그레이션을 완료했습니다. 20,000줄 C++ 데이터 분류 라이브러리인 fastText를 단 2일 만에 Go로 변환했으며, 여기에는 Claude Code가 Go 어셈블리 코드를 작성하는 것도 포함되었습니다. 그 결과 5,434줄의 검증된 Go 코드는 모델 검증 테스트에서 100%를 통과했습니다. 보다 광범위하게 Wiz 전반에서 보면, AI 코딩 도구 도입 이후 상위 100명의 기여자들의 병합된 PR이 1.5배 증가했으며, 엔지니어의 90% 이상이 이제 Claude Code를 일상 워크플로우의 일부로 사용하고 있습니다.

Benodis는 말했습니다. "덕분에 생각지도 못했던 것들을 할 수 있게 되었습니다." "요즘 워크로드를 계획할 때는 그냥 곱하기만 합니다. 이전보다 20~30배 더 많은 일을 할 수 있게 되었습니다."

이제 Wiz의 엔지니어는 동료에게 연락하기 전에 Claude Code에 문의하고, 새로운 기능을 계획 및 실행하는 데 사용하며, 워크플로우의 표준적인 부분으로 Claude Code와 함께 코드를 검토합니다. 일부 개발자는 기존 IDE에서 완전히 벗어나, Claude Code를 중심으로 작업하는 방식으로 개발하고 있습니다. 또한 팀은 모니터링 시스템을 위한 맞춤형 MCP 커넥터를 구축하여 Claude Code가 프로덕션 및 테스트 환경에서 문제를 탐지하고 디버깅하는 데 도움을 줄 수 있도록 했습니다.

Benodis는 Claude Code를 개발 프로세스의 모든 부분에 포함하는 것이 현재의 임무라고 생각합니다. 또한 팀은 프로덕션 코드를 모니터링하고, 버그와 비정상 현상을 탐지하며, 문제가 확산되기 전에 이를 드러내는 Claude 기반 에이전트를 구축하고 있습니다. 이제 개발자는 여러 Claude Code 인스턴스를 동시에 실행하며, 각 인스턴스는 별도의 기능을 병렬로 수행합니다. 레빈은 말했습니다. "너무나도 좋습니다." "불가능했던 것을 가능하게 만듭니다."

자세히 보기
다음

비디오 캡션
다음

"Claude Code 없이는 이 프로젝트는 결코 이루어지지 않았을 것입니다. 투자해야 했을 노력과 시간을 생각하면, 그냥 하지 않았을 겁니다."
리란 베노디스
팀 리드, 데이터 보안 상태 관리, Wiz

다음

비디오 캡션
다음

이전
다음