OpenAI가 Codex를 사용하여 엔지니어링을 가속화하는 방법

OpenAI는 보안, 제품 엔지니어링, 프론트엔드, API, 인프라 및 성능 엔지니어링 팀에서 Codex를 매일 사용하여 시스템 이해, 코드베이스 리팩토링, 기능 배포 및 장애 대응에 이르는 엔지니어링 작업을 가속화합니다.

코드 이해 및 온보딩 가속화

Codex는 엔지니어가 온보딩, 디버깅 또는 장애 대응 중에 코드베이스의 익숙하지 않은 부분을 빠르게 탐색할 수 있게 해줍니다. 핵심 기능 로직을 찾고, 서비스와 모듈 간의 관계를 매핑하며, 시스템을 통한 데이터 흐름을 추적하는 데 사용됩니다. 활성 장애 중에 Codex는 엔지니어가 구성 요소 간의 상호 작용을 식별하고 실패 상태가 어떻게 전파되는지 추적하는 데 도움을 줍니다.

'버그를 수정할 때 Ask 모드를 사용하여 코드베이스의 다른 곳에서 동일한 문제가 나타날 수 있는지 확인합니다'

— 성능 엔지니어, 검색 시스템

리팩토링 및 마이그레이션 간소화

Codex는 특히 정규식이나 찾기 및 바꾸기 기능을 초과하는 업데이트의 경우 여러 파일 또는 패키지에 걸쳐 일관된 변경 사항을 적용하는 데 사용됩니다. 여기에는 API 업데이트, 종속성 마이그레이션, 과도하게 큰 모듈 분할 또는 레거시 패턴을 현대적인 패턴으로 교체하여 코드 정리가 포함됩니다.

'Codex는 모든 레거시 getUserById( )를 우리의 새 서비스 패턴으로 교체하고 PR을 열었습니다. 몇 시간이 걸릴 작업을 몇 분 만에 해냈습니다.'

— 백엔드 엔지니어, ChatGPT 웹

성능 최적화 및 기술 부채 감소

Codex는 비효율적인 루프와 비용이 많이 드는 쿼리와 같은 느리거나 메모리 집약적인 코드 경로를 분석하여 성능 병목 현상을 식별합니다. 또한 위험하거나 더 이상 사용되지 않는 패턴을 플래그하여 장기적인 기술 부채를 줄이고 회귀를 방지함으로써 전반적인 코드 건강을 지원합니다.

'Codex를 사용하여 반복되는 비싼 DB 호출을 스캔합니다. 핫 경로를 플래그하고 나중에 조정할 수 있는 배치 쿼리를 초안 작성하는 데 탁월합니다.'

— 인프라 엔지니어, API 신뢰성

테스트 커버리지 및 신뢰성 향상

Codex는 특히 커버리지가 얇거나 누락된 모듈에 대한 테스트 생성을 가속화합니다. 함수 시그니처와 주변 로직을 기반으로 단위 및 통합 테스트를 생성하며, 빈 입력, 최대 길이 및 비정상적인 유효 상태와 같은 경계 조건을 식별하는 데 특히 중점을 둡니다.

'Codex를 밤새 낮은 커버리지 모듈에 지정하고 실행 가능한 단위 테스트 PR과 함께 깨어납니다.'

— 프론트엔드 엔지니어, ChatGPT 데스크톱

개발 속도 및 흐름 증가

Codex는 개발 주기의 시작과 끝에서 마찰을 줄입니다. 보일러플레이트(폴더, 모듈, API 스텁)를 스캐폴딩하고, 버그를 분류하고, 롤아웃 스크립트를 생성하고, 텔레메트리 훅을 만드는 데 사용됩니다. 또한 엔지니어는 Codex를 사용하여 제품 피드백이나 사양을 직접 스타터 코드로 전환합니다.

단편화된 일정 동안 생산성을 유지하기 위해 엔지니어는 Codex를 사용하여 완료되지 않은 작업을 캡처하거나 탐색적 작업을 분기하여 컨텍스트를 잃지 않고 작업을 재개할 수 있습니다.

'하루 종일 회의에 참석했지만 Codex가 백그라운드에서 작업하고 있었기 때문에 여전히 4개의 PR을 병합했습니다.'

— 제품 엔지니어, ChatGPT 엔터프라이즈

탐색 및 아이디어 생성

Codex는 설계 결정 검증, 대체 구현 패턴 탐색(예: 요청/응답에서 이벤트 기반으로 전환), 코드베이스 전체에서 유사한 패턴을 검색하여 관련 버그 식별과 같은 개방형 설계 작업에 사용됩니다.

Codex를 위한 엔지니어링 모범 사례

OpenAI 팀은 Codex의 가치를 극대화하기 위해 몇 가지 특정 습관을 사용합니다:

  • 2단계 워크플로우: "Ask 모드"로 시작하여 구현 계획을 생성한 다음 실행을 위해 "코드 모드"로 전환합니다. 이렇게 하면 모델이 근거를 유지하고 오류를 줄일 수 있습니다.
  • 환경 최적화: 오류율을 줄이기 위해 시작 스크립트, 환경 변수 및 인터넷 액세스를 반복적으로 개선합니다.
  • 이슈 기반 프롬프팅: 파일 경로, 구성 요소 이름, diff 및 문서 스니펫을 포함하여 GitHub 이슈와 같은 구조로 프롬프트를 구성합니다.
  • 백로그로서의 작업 큐: Codex 작업 큐를 사용하여 즉각적인 전체 PR 없이 부수적인 아이디어나 우연한 수정을 캡처합니다.
  • AGENTS.md를 통한 지속적인 컨텍스트: AGENTS.md 파일을 유지하여 코드에서 추론할 수 없는 명명 규칙, 비즈니스 로직 및 종속성을 Codex에 제공합니다.
  • Best of N: 단일 작업에 대해 여러 응답을 생성하여 다양한 솔루션을 탐색하거나 더 강력한 결과를 위해 다른 반복의 일부를 결합합니다.

요약

OpenAI는 여러 기술 팀에서 Codex를 활용하여 코드 이해, 리팩토링, 성능 최적화 및 개발 속도를 가속화합니다.

Sources