코드 생성

코드 생성 (Code generation)

코드를 작성하고, 검토하고, 편집하고, 코드에 대한 질문에 답하는 것은 오늘날 OpenAI 모델의 주요 사용 사례 중 하나예요. 이 가이드는 gpt-6-astra와 Codex를 사용한 코드 생성 옵션을 안내해요.

출처: 문서

본문

시작하기 (Get started)

Codex 사용하기 (Use Codex)

Codex는 소프트웨어 개발을 위한 OpenAI의 코딩 에이전트예요. 코드 작성, 검토, 디버깅을 도와 줘요. IDE, CLI, 웹·모바일 사이트, 또는 SDK로 CI/CD 파이프라인 등 다양한 인터페이스에서 Codex와 상호작용할 수 있어요. Codex는 프로젝트에 에이전틱 소프트웨어 엔지니어링을 적용하는 최고의 방법이에요.

Codex는 gpt-6-sol 같은 최신 범용 모델과 가장 잘 맞아요. gpt-5.3-codex처럼 코딩 에이전트에 맞게 특별히 설계된 다양한 모델도 제공하지만, 대부분의 코드 생성 작업에는 최신 범용 모델을 권장해요.

설정 가이드, 레퍼런스 자료, 가격 등은 ChatGPT 문서를 참고하세요.

코딩 모델과 통합하기 (Integrate with coding models)

대부분의 API 기반 코드 생성에는 **gpt-6-astra**부터 시작하세요. 범용 작업과 코딩을 모두 처리해서, 애플리케이션이 코드를 작성하고, 요구 사항을 추론하고, 문서를 검사하고, 더 넓은 워크플로를 한곳에서 다뤄야 할 때 강력한 기본값이 돼요.

이 예시는 코드 생성 사용 사례에 Responses API를 사용하는 방법을 보여 줘요:

대부분의 코딩 작업용 기본 모델

import OpenAI from "openai";
const openai = new OpenAI();

const result = await openai.responses.create({
  model: "gpt-6-astra",
  input: `Find the null pointer exception in this code:

def display_name(user):
    return user.profile.name

print(display_name(None))
`,
  reasoning: { effort: "high" },
});

console.log(result.output_text);
from openai import OpenAI

client = OpenAI()

result = client.responses.create(
    model="gpt-6-astra",
    input="""Find the null pointer exception in this code:

def display_name(user):
    return user.profile.name

print(display_name(None))

""",
    reasoning={"effort": "high"},
)

print(result.output_text)
package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go/v3"
	"github.com/openai/openai-go/v3/responses"
	"github.com/openai/openai-go/v3/shared"
)

func main() {
	client := openai.NewClient()
	response, err := client.Responses.New(context.Background(), responses.ResponseNewParams{
		Model: "gpt-6-astra",
		Input: responses.ResponseNewParamsInputUnion{OfString: openai.String(`Find the null pointer exception in this code:

def display_name(user):
    return user.profile.name

print(display_name(None))`)},
		Reasoning: shared.ReasoningParam{Effort: shared.ReasoningEffortHigh},
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(response.OutputText())
}
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.Reasoning;
import com.openai.models.ReasoningEffort;
import com.openai.models.responses.ResponseCreateParams;

String code =
    """
    def display_name(user):
        return user.profile.name

    print(display_name(None))
    """;

ResponseCreateParams params =
    ResponseCreateParams.builder()
        .model("gpt-6-astra")
        .input("Find the null pointer exception in this code:\\n\\n" + code)
        .reasoning(Reasoning.builder().effort(ReasoningEffort.HIGH).build())
        .build();

client.responses().create(params).output().stream()
    .flatMap(item -> item.message().stream())
    .flatMap(message -> message.content().stream())
    .flatMap(content -> content.outputText().stream())
    .forEach(text -> System.out.println(text.text()));
using OpenAI.Responses;
#pragma warning disable OPENAI001

string key = Environment.GetEnvironmentVariable("OPENAI_API_KEY")!;
ResponsesClient client = new(key);

CreateResponseOptions options = new()
{
    Model = "gpt-6-astra",
    ReasoningOptions = new ResponseReasoningOptions
    {
        ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
    },
};
options.InputItems.Add(
    ResponseItem.CreateUserMessageItem(
        """
        Find the null pointer exception in this code:

        def display_name(user):
            return user.profile.name

        print(display_name(None))
        """
    )
);

ResponseResult response = await client.CreateResponseAsync(options);
Console.WriteLine(response.GetOutputText());
require "openai"

client = OpenAI::Client.new
code = <<~PYTHON
  def display_name(user):
      return user.profile.name

  print(display_name(None))
PYTHON

response = client.responses.create(
  model: "gpt-6-astra",
  input: "Find the null pointer exception in this code:\\n\\n#{code}",
  reasoning: { effort: :high }
)

puts(response.output_text)
curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "gpt-6-astra",
    "input": "Find the null pointer exception in this code:\\n\\ndef display_name(user):\\n    return user.profile.name\\n\\nprint(display_name(None))\\n",
    "reasoning": { "effort": "high" }
  }'

프론트엔드 개발 (Frontend development)

GPT-5 계열 모델은 프론트엔드 개발, 특히 Codex 같은 코딩 에이전트 하네스와 결합할 때 특히 강력해요.

아래 데모 애플리케이션은 원샷 생성, 즉 손으로 쓴 코드 없이 단일 프롬프트에서 생성된 것이에요. UI가 많은 코드 생성 워크플로에서 프론트엔드 생성 품질과 프롬프트 패턴을 평가하는 데 사용하세요.

다음 단계 (Next steps)

  • ChatGPT 문서를 방문해 Codex로 무엇을 할 수 있는지 배우거나, 선택한 인터페이스에 Codex를 설정하거나, 더 많은 세부 정보를 찾아보세요.
  • 모델 가이드를 읽어 모델 선택, 기능, 마이그레이션 지침, 코딩 및 에이전틱 작업에서 잘 작동하는 프롬프팅 패턴을 확인하세요.
  • 모델 페이지에서 gpt-6-astra와 gpt-5.3-codex를 비교하세요.

더 알아보기 (Learn more)