메인 콘텐츠로 건너뛰기
OpenAI

OpenAI가 Codex를 사용하는 방법

소개

Codex는 OpenAI의 보안, 제품 엔지니어링, 프런트엔드, API, 인프라, 성능 엔지니어링 등 여러 기술팀에서 매일 사용되고 있습니다. 이들은 Codex를 활용해 복잡한 시스템을 이해하고, 대규모 코드베이스를 리팩터링하고, 새 기능을 출시하고, 촉박한 마감 기한 내에 인시던트를 해결하는 등 다양한 엔지니어링 작업을 가속화하고 있습니다.

OpenAI 엔지니어와의 인터뷰 및 내부 사용 데이터를 바탕으로, Codex가 업무 속도를 높이고, 작업 품질을 향상하며, 대규모 환경에서 복잡성을 관리하는 데 어떻게 도움이 되는지 보여주는 사용 사례와 모범 사례를 정리했습니다.


사용 사례 1: 코드 이해

Codex는 온보딩, 디버깅 또는 인시던트 조사 시 익숙하지 않은 코드베이스 영역을 빠르게 파악할 수 있도록 도와줍니다.

팀원들은 Codex를 사용해 기능의 핵심 로직을 찾고, 서비스 또는 모듈 간의 관계를 파악하며, 시스템 전반의 데이터 흐름을 추적하곤 합니다. 또한 아키텍처 패턴이나 문서에서 누락된 내용을 파악하는 데도 도움이 됩니다. Codex가 없었다면 상당한 수작업이 필요했을 것입니다.

인시던트 대응 중에는 Codex가 구성 요소 간의 상호작용을 드러내거나 장애 상태가 시스템 전반에 어떻게 전파되는지 추적합니다. 그 덕분에 엔지니어는 새로운 영역을 빠르게 파악할 수 있습니다.

OpenAI 팀의 사례

“버그를 수정할 때 질문 모드를 사용해 코드베이스의 다른 위치에도 같은 문제가 나타날 수 있는지 확인합니다.”
성능 엔지니어, 검색 시스템
다음 샘플 프롬프트를 사용해 Codex로 코드를 이해해 보세요.
  • Where is the authentication logic implemented in this repo?

  • Summarize how requests flow through this service from entrypoint to response.

  • Which modules interact with [insert module name] and how are failures handled?

사용 사례 2: 리팩터링 및 마이그레이션

Codex는 여러 파일이나 패키지에 걸쳐 변경 작업을 수행하는 데 자주 사용됩니다. 예를 들어 엔지니어가 API를 업데이트하거나, 패턴의 구현 방식을 변경하거나, 새로운 종속성으로 마이그레이션할 때 Codex를 사용하면 변경 사항을 일관되게 적용할 수 있습니다.

수십 개의 파일에 동일한 업데이트를 적용해야 하거나, 구조와 종속성에 대한 이해가 필요해 정규식이나 찾기 및 바꾸기만으로는 업데이트 사항을 손쉽게 파악하기 어려운 경우 특히 유용합니다.

또한 지나치게 큰 모듈을 분할하고, 오래된 패턴을 최신 패턴으로 교체하며, 테스트하기 쉬운 구조로 코드를 개선하는 등 코드 정리하는 작업에도 Codex가 활용되고 있습니다.

OpenAI 팀의 사례

“Codex가 모든 레거시 getUserById()를 새로운 서비스 패턴으로 교체하고 PR을 열었어요. 몇 시간이 걸렸을 일이 몇 분 만에 끝났습니다.”
백엔드 엔지니어, ChatGPT 웹
다음 샘플 프롬프트를 사용해 Codex로 리팩터링 및 마이그레이션을 시도해 보세요.
  • Split this file into separate modules by concern and generate tests for each one.

  • Convert all callback-based database access to async/await.

사용 사례 3: 성능 최적화

Codex를 사용해 성능 병목 현상을 파악하고 해결하기도 합니다.

튜닝이나 안정성 개선 작업 과정에서 엔지니어는 Codex에 비효율적인 루프, 중복 연산, 비용이 큰 쿼리처럼 느리거나 메모리를 많이 사용하는 코드 경로를 분석하고 최적화된 대안을 제안해 달라고 요청합니다. 이를 통해 효율성과 신뢰성이 유의미하게 개선되는 경우가 많습니다.

Codex는 현재도 활발히 사용되고 있는 위험한 패턴이나 더 이상 권장되지 않는 패턴을 식별하여 코드 상태를 개선하는 데도 사용됩니다. OpenAI 팀은 Codex를 활용해 장기적인 기술 부채를 줄이고 회귀를 사전에 방지합니다.

OpenAI 팀의 사례

“반복되는 고비용 DB 호출을 찾을 때 Codex를 사용합니다. Codex는 핫 패스를 찾아내고 배치 쿼리 초안을 작성하는 데 특히 유용합니다. 이후 제가 세부 조정을 할 수 있고요.”
인프라 엔지니어, API 안정성
다음 샘플 프롬프트를 사용해 Codex로 성능을 최적화해 보세요.
  • Optimize this loop for memory efficiency and explain why your version is faster.

  • Find repeated expensive operations in this request handler and suggest caching opportunities.

  • Suggest a faster way to batch DB queries in this function.

사용 사례 4: 테스트 커버리지 개선

Codex는 엔지니어가 테스트를 더 빠르게 작성하도록 돕습니다. 특히 커버리지가 부족하거나 완전히 누락된 부분에서 더욱 유용합니다.

버그 수정이나 리팩터링 작업을 할 때 엔지니어는 엣지 케이스나 발생 가능성이 높은 실패 경로를 포괄하는 테스트를 제안해 달라고 Codex에게 요청하곤 합니다. 새 코드의 경우 함수 시그니처와 주변 로직을 기반으로 단위 테스트 또는 통합 테스트를 생성할 수 있습니다.

Codex는 초기 테스트에서 자주 놓치는 빈 입력값, 최대 길이, 특이하지만 유효한 상태와 같은 경계 조건을 식별하는 데 특히 유용합니다.

OpenAI 팀의 사례

“테스트 커버리지가 낮은 모듈을 밤사이 Codex에 맡겨 두면, 아침에는 실행 가능한 단위 테스트 PR이 올라와 있습니다.”
프런트엔드 엔지니어, ChatGPT 데스크톱
다음 샘플 프롬프트를 사용해 Codex로 성능을 최적화해 보세요.
  • Write unit tests for this function, including edge cases and failure paths.

  • Generate a property-based test for this sorting utility.

  • Extend this test file to cover missing scenarios around null inputs and invalid states.

사용 사례 5: 개발 속도 향상

Codex는 개발 주기의 시작과 끝 단계를 모두 가속화하여 팀이 더 빠르게 작업할 수 있도록 돕습니다.

새 기능을 시작할 때 엔지니어는 Codex를 사용해 보일러플레이트를 스캐폴딩합니다. 즉, 모든 부분을 일일이 수동으로 연결하지 않고도 실행 가능한 코드를 빠르게 작성할 수 있도록 폴더와 모듈, API 스텁을 생성합니다.

프로젝트가 릴리스를 앞두면 Codex는 버그 분류, 구현의 단계의 마지막 공백 메우기, 롤아웃 스크립트, 텔레메트리 훅, 구성 파일 생성처럼 작지만 필수적인 작업을 처리해 촉박한 마감 기한을 맞출 수 있도록 돕습니다.

또한 제품 피드백을 초기 코드로 전환하는 데도 사용됩니다. 엔지니어는 사용자 요청이나 명세를 붙여 넣고 Codex가 대략적인 초안을 작성하게 한 후 이를 살펴보고 수정하는 경우가 많습니다.

“하루 종일 회의를 했는데도 PR 4개를 병합할 수 있었습니다. Codex가 백그라운드에서 작업하고 있었거든요.”
제품 엔지니어, ChatGPT Enterprise
다음 샘플 프롬프트를 사용해 Codex로 개발을 더 빠르게 진행해 보세요.
  • Scaffold a new API route for POST /events with basic validation and logging.

  • Generate a telemetry hook for tracking success/failure of the new onboarding flow, using this template [insert example of your telemetry code].

  • Create a stub implementation based on this spec: [insert spec or product feedback].

사용 사례 6. 흐름 유지

Codex는 일정이 자주 끊기고 방해가 많은 상황에서도 엔지니어가 생산성을 유지할 수 있도록 돕습니다.
Codex로 미완료 작업을 기록하고, 메모를 작동 가능한 프로토타입으로 바꾸고, 나중에 다시 살펴볼 수 있도록 탐색 작업으로 분리할 수 있습니다. 이를 통해 작업을 일시적으로 중단했다가도 컨텍스트를 잃지 않고 다시 이어가기가 더 쉬워집니다. 특히 온콜 근무 중이거나 회의가 많은 경우 더욱 유용합니다.

“가볍게 처리할 수 있는 수정 사항이 보이면 브랜치를 바꾸는 대신 Codex 작업을 실행하고, 시간이 날 때 PR을 검토합니다.”
백엔드 엔지니어, ChatGPT API
다음 샘플 프롬프트를 사용해 Codex로 작업 흐름을 유지해 보세요.

사용 사례 7: 탐색 및 아이디어 구상

Codex는 대안을 찾거나 설계 결정을 검증하는 것과 같은 개방형 작업에도 유용합니다. 프롬프트를 작성해 다양한 문제 해결 방법을 요청하거나, 익숙하지 않은 패턴을 탐색하거나, 가정을 검증해 볼 수 있습니다. 이러한 과정은 트레이드오프를 드러내고, 설계 옵션을 확장하며, 구현 방식을 정교화하는 데 도움이 됩니다.

관련 버그를 식별하는 데도 사용됩니다. 알려진 문제나 더 이상 사용되지 않는 메서드가 있는 경우, Codex가 코드의 다른 위치에서 유사한 패턴을 식별하므로 회귀를 포착하거나 정리 작업을 마무리하기가 더 쉬워집니다.

“Codex는 콜드 스타트 문제를 해결하는 데 도움을 줍니다. 명세와 문서를 붙여 넣으면 코드의 기본 구조를 만들어 주거나 제가 놓친 부분을 보여줘요.”
제품 엔지니어, ChatGPT 데스크톱
다음 샘플 프롬프트를 사용해 Codex로 탐색과 아이디어 구상을 시도해 보세요.
  • How would this work if the system were event-driven instead of request/response?

  • Find all modules that manually build SQL strings instead of using our query builder.

  • Rewrite this in a more functional style, avoid mutation and side effects.


모범 사례

Codex는 구조와 컨텍스트, 반복적으로 개선할 여지가 주어질 때 가장 효과적으로 작동합니다. 다음은 OpenAI 팀이 일상 업무에서 Codex를 통해 꾸준한 가치를 얻기 위해 쌓아가고 있는 몇 가지 습관입니다.

질문 모드로 시작하기

대규모 변경 작업의 경우 먼저 질문 모드에서 Codex에 구현 계획을 요청하세요. 그런 다음 코드 모드로 전환하면 그 계획을 후속 프롬프트의 입력으로 사용할 수 있습니다. 이러한 2단계 흐름을 통해 Codex는 컨텍스트를 기반으로 작업하게 되며, 출력 오류를 줄이는 데 도움이 됩니다. Codex는 본인이나 팀원이 완료하는 데 약 1시간 정도가 걸리거나, 구현에 수백 줄의 코드가 필요한, 범위가 잘 정의된 작업에서 가장 유용합니다. 모델이 개선됨에 따라 Codex가 처리할 수 있는 작업의 규모도 커질 것으로 예상됩니다.

점진적으로 Codex의 개발 환경 개선하기

시작 스크립트, 환경 변수, 인터넷 액세스를 설정하면 Codex의 오류율을 크게 줄일 수 있습니다. 작업을 실행하면서 Codex의 환경 구성에서 수정할 수 있는 빌드 오류를 찾아보세요. 몇 차례 반복이 필요할 수 있지만, 장기적으로는 효율성이 크게 향상됩니다.

GitHub 이슈를 작성하듯 프롬프트 구성하기

프롬프트가 PR이나 이슈에서 변경 사항을 설명하는 방식과 비슷할수록 Codex가 더 잘 응답합니다. 즉, 관련이 있는 경우 파일 경로, 컴포넌트 이름, diff, 문서 스니펫을 포함해야 합니다. “Implement this the same way it’s done in [module X]”와 같은 패턴으로 프롬프트를 작성하면 결과가 개선됩니다.

Codex 작업 대기열을 간단한 백로그로 사용하기

곁가지 아이디어나 진행 중인 작업, 사소한 수정 사항을 기록하기 위한 작업을 실행하세요. 한 번에 전체 PR을 생성해야 한다는 부담을 가질 필요는 없습니다. 나중에 그 부분으로 돌아와 집중할 수 있으니까요. Codex는 이러한 임시 작업 공간으로도 유용합니다.

AGENTS.md를 사용해 지속적 컨텍스트 제공하기

AGENTS.md 파일을 관리하면 여러 프롬프트에 걸쳐 Codex가 리포지토리에서 더 효과적으로 작동하는 데 도움이 됩니다. 이러한 파일에는 일반적으로 Codex가 코드만으로는 추론할 수 없는 명명 규칙, 비즈니스 로직, 알려진 특이 사항, 종속성 등이 포함됩니다. 문서에서 AGENTS.md 파일을 구성하는 방법을 자세히 알아보세요.

“Best of N”을 활용해 출력 개선하기

Best-of-N 기능을 사용하면 하나의 작업에 대해 여러 응답을 동시에 생성하여 여러 해결 방법을 빠르게 살펴보고 가장 적합한 것을 선택할 수 있습니다. 더 복잡한 작업의 경우, 여러 반복 결과를 검토하고 서로 다른 응답의 일부를 결합해 더 나은 결과를 얻을 수 있습니다.


향후 과제

Codex는 아직 리서치 프리뷰 단계에 있지만, 이미 OpenAI가 제품을 빌드하는 과정에서 실질적인 영향을 미치고 있습니다. 더 빠르게 작업하고, 더 나은 코드를 작성하며, Codex가 없었다면 우선순위에 오르지 못했을 작업까지 처리할 수 있도록 지원하고 있습니다.

앞으로의 가능성도 기대됩니다. 모델이 더 발전하고 Codex가 OpenAI의 워크플로에 더 깊이 통합될수록, Codex를 통한 소프트웨어 개발 방식도 한층 더 강력해질 것입니다. 그 과정에서 얻은 배움도 계속 공유하겠습니다.

비즈니스에 AI 도입을 고민하고 계신가요?

OpenAI와 함께 확장 가능하고 책임감 있는 AI 전략을 구축하는 방법을 자세히 알아보세요.