> For the complete documentation index, see [llms.txt](https://genos-docs.gitbook.io/default/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://genos-docs.gitbook.io/default/v1.9.5/basic-tutorials/guides/development/code_serving/create_code_serving.md).

# 코드 서빙 생성

코드 서빙을 생성하고 어떻게 만들어졌는지 확인한 후 실제로 사용해 보겠습니다.

***

### 1. 메뉴에서 \[서빙 > 코드 서빙] 진입

사이드바에서 \[서빙 > 코드 서빙]으로 진입하시면 코드 서빙 목록이 표시됩니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-864b7b86716e97a3494c8cc8434cfac9373812db%2Fcode_serving_list.png?alt=media" alt=""><figcaption></figcaption></figure>

### 2. \[코드 서빙 생성] 버튼 클릭

목록 우측 상단, \[카탈로그 보기] 옆의 \[+ 코드 서빙 생성] 버튼을 클릭하시면 생성 모달이 표시됩니다.

<figure><img src="https://content.gitbook.com/content/Va1tsb4kzRuGbCJsMdPX/blobs/O09Q86fbU3ph0yI5viv4/create_code_serving_02.png" alt=""><figcaption></figcaption></figure>

#### 2-1. 기본 정보 입력

모달에서 다음 항목을 입력해 주세요.

* **제목 \***: 코드 서빙을 식별할 수 있는 이름
* **상세 설명**: 코드 서빙의 용도나 특이사항
* **관리 그룹 \***: 코드 서빙을 소속시킬 그룹 선택

#### 2-2. 저장소 유형 선택 \*

코드를 어디에 보관할지 선택하시면 됩니다.

* **내부 Gitea (기본)** — 플랫폼 내장 Gitea에 저장소가 자동 생성됩니다. 별도 설정 없이 바로 사용할 수 있습니다.
* **외부 Git** — 외부 Git 저장소와 연결합니다. 운영망에 Gitea가 없는 환경(예: 네트워크 분리 고객)에서는 외부 Git을 선택해 주세요. 이관 시 외부 Git으로 푸시됩니다.

#### 2-3. 외부 Git을 선택한 경우 — 인증 정보 입력

\[외부 Git]을 선택하시면 「외부 Git 인증 정보」 영역이 추가로 노출됩니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-7a2369ede9fd84254ca60df10b00fb9c7486a7c1%2Fcreate_code_serving_03.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Git 호스트 \***: 저장소가 있는 Git 호스트를 선택합니다. 선택할 수 있는 호스트는 GitHub · Bitbucket입니다.
* **외부 Git URL \***: 외부 Git 저장소 주소 (예: `https://github.com/your-org/your-repo.git`)
* **외부 Git ID \***: 해당 저장소에 접근 권한이 있는 계정 ID
  * GitHub는 임의 값을 입력하셔도 무관합니다.
  * Bitbucket은 실제 계정 ID가 필요합니다.
* **크레덴셜 (PAT) \***: 해당 계정의 Personal Access Token

4개 항목을 모두 입력하신 뒤 **\[검증]** 버튼을 클릭해 인증을 확인해 주세요. 하나라도 비어 있으면 \[검증]이 활성화되지 않습니다.

* 검증 중에는 입력란이 비활성화되며 "검증 중…"이 표시됩니다.
* 성공 시 \[검증] 버튼이 **\[인증 완료]** 상태로 변경됩니다.
* 실패 시 사유별 메시지가 노출되며, 입력값을 확인 후 재시도하실 수 있습니다.
* 검증 후 4개 항목 중 하나라도 바꾸면 검증 결과가 풀리므로 다시 검증해 주세요.

> **PAT 보안**: PAT은 백엔드에 안전하게 저장되며 UI에서는 다시 조회되지 않습니다. 변경하실 때는 코드 서빙 상세 \[기본 정보] 탭의 \[수정]에서 새 PAT을 입력해 주시면 됩니다.

#### 2-4. \[생성] 클릭

필수 항목 입력과 (외부 Git의 경우) 검증을 완료하신 뒤 \[생성] 버튼을 클릭하시면 코드 서빙이 생성됩니다.

> **언어·빌드/시작 커맨드·환경 변수는 생성 모달에 없습니다.** 리비전을 추가한 뒤 리비전 상세의 \[환경 설정] 탭에서 설정해 주세요. (아래 4-c 참고)

***

### 3. 코드 서빙 생성 확인

생성이 완료되면 목록에서 새 코드 서빙을 확인하실 수 있습니다. 행을 **더블클릭**하면 상세 페이지로 이동합니다.

***

### 4. 코드 서빙 상세와 리비전 상세

코드 서빙은 **코드 서빙 상세**와 **리비전 상세** 두 화면으로 나뉩니다.

* **코드 서빙 상세**: 저장소·제목·트래픽 분배 등 코드 서빙 전체 정보와, 그 아래 리비전 목록·커밋 목록·인증 키를 관리합니다.
* **리비전 상세**: 커밋 하나를 도커 이미지·인스턴스 타입과 묶은 실행 단위(리비전)를 다룹니다. 환경 설정·배포·중지·컨테이너 로그·컨테이너 서비스는 리비전 상세에 있습니다.

#### a. 코드 서빙 상세 — 기본 정보

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-95d811fc069d68dca9b82ff86e9696c583b194d1%2Fc30.png?alt=media" alt=""><figcaption></figcaption></figure>

코드 서빙 상세는 다음 탭으로 구성됩니다.

* 기본 정보 · 연결 관계 · 리비전 목록 · 커밋 목록 · 인증 키 · 이용 로그 · 데이터 소스
* \[인증 키] · \[이용 로그] 탭은 해당 코드 서빙의 쓰기 권한이 있을 때만 보입니다.

\[기본 정보] 탭 항목은 다음과 같습니다.

* **좌측**: 제작자 · 관리 그룹 · 등록일시 · 저장소 · 코드서빙 연결 · 저장소 URL · 이관 수신 URL · 확장 서비스 · 카탈로그 상태(카탈로그에 등록한 경우) · API 호출
* **우측**: 제목 · 상세 설명 · 외부 Git 정보(외부 Git 사용 시) · 트래픽 분배 설정
* **하단**: 코드 서빙 배포 이력

**트래픽 분배 설정**은 배포된 리비전 사이에 호출을 나누는 비율입니다. 리비전마다 0\~100 사이 가중치를 넣으면 가중치 합으로 분배 비율이 계산되며, 가중치가 0인 리비전에는 트래픽이 가지 않습니다.

우상단 버튼은 다음과 같습니다.

* **\[+ 리비전 추가]**: 커밋을 골라 새 리비전을 만듭니다. ([코드 서빙 배포](/default/v1.9.5/basic-tutorials/guides/development/code_serving/deploy_code_serving.md) 참고)
* **\[+ 카탈로그 등록]**: 코드 서빙을 카탈로그에 게시합니다.
* **삭제**(휴지통 아이콘)
* **\[이관]**: 개발망에서만 보입니다. 이관이 진행 중이면 \[이관 취소]가 함께 표시됩니다. ([코드 서빙 이관](/default/v1.9.5/basic-tutorials/guides/development/code_serving/promotion_code_serving.md) 참고)

#### 수정 흐름

하단 \[수정] 버튼을 누르면 편집 모드로 진입합니다. 편집 모드에서는 다음 항목을 수정할 수 있습니다.

* 제목 · 상세 설명
* 트래픽 분배 가중치
* (외부 Git의 경우) 저장소 URL · 외부 Git ID · 새 크레덴셜 (PAT) — 새 PAT은 변경 시에만 입력합니다. 비워두시면 기존 PAT이 유지됩니다.

외부 Git 정보를 바꾸셨다면 \[검증]을 통과한 뒤에 \[저장]하실 수 있습니다.

#### b. 코드 서빙 상세 — 리비전 목록 · 커밋 목록 · 인증 키

**리비전 목록**에는 이 코드 서빙의 리비전이 ID · 커밋 해시 · 제작자 · 등록일시 · 연결 상태 · 배포 상태와 함께 표시됩니다. 행을 더블클릭하면 리비전 상세로 이동합니다.

**커밋 목록**에서는 연결된 저장소의 커밋 이력을 확인하실 수 있습니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-5a4fd5869057f57f8c194c4661fb5ff2550c12f0%2Fcode_serving_detail_2.png?alt=media" alt=""><figcaption></figcaption></figure>

* 상단의 브랜치 선택란으로 조회할 브랜치를 고를 수 있습니다. 기본값은 저장소의 기본 브랜치입니다.
* 표 컬럼: 커밋 해시 · 커밋 메시지 · 커밋 유저 · 등록일시

**인증 키**에서는 코드 서빙 API 호출에 사용할 인증 키를 발급·관리하실 수 있습니다. 인증 키 없이 호출을 열고 싶다면 [인증 키 없이 호출](/default/v1.9.5/admin-management/settings/anonymous-call.md)을 참고해 주세요.

#### c. 리비전 상세 — 환경 설정

리비전 상세는 기본 정보 · 컨테이너 상태 · 환경 설정 · 컨테이너 서비스 탭으로 구성됩니다. \[환경 설정] · \[컨테이너 서비스] 탭은 쓰기 권한이 있을 때만 보입니다.

\[환경 설정] 탭에서는 **언어 · 빌드(Build) 커맨드 · 시작(Run) 커맨드 · 환경 변수**를 함께 설정합니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-36f2535ac5505f50b827e8ba04ece9f0e0efa33d%2Fcreate_code_serving_05.png?alt=media" alt=""><figcaption></figcaption></figure>

* **언어 \***: 리비전의 실행 언어 (Python / Node.js / Go / Java / C# 등)
* **빌드 커맨드**: 예) `pip install -r requirements.txt` — 비워두시면 언어별 디폴트가 사용됩니다.
* **시작 커맨드**: 예) `uvicorn main:app --host 0.0.0.0 --port $PORT` — 비워두시면 언어별 디폴트가 사용됩니다.
* **환경 변수**: 변수명 · 값 · 잠금/초기화/삭제 (최대 32개). 암호화된 값은 다시 조회되지 않으며 새 값으로만 덮어쓸 수 있습니다.

> 환경 설정은 **리비전마다 따로** 저장되며, 리비전이 배포 중이 아닐 때(미배포·중지됨·오류 등)만 수정할 수 있습니다. 수정한 값은 다음 배포 때 적용됩니다. 카탈로그에 등록된 리비전은 환경 설정을 수정할 수 없습니다.

#### d. 리비전 상세 — 컨테이너 상태

<figure><img src="https://content.gitbook.com/content/Va1tsb4kzRuGbCJsMdPX/blobs/BJWWB27pciTF2Jn4Nubt/create_code_serving_07.png" alt=""><figcaption></figcaption></figure>

* **이벤트 로그**: 배포·중지 등 컨테이너 이벤트 이력

<figure><img src="https://content.gitbook.com/content/Va1tsb4kzRuGbCJsMdPX/blobs/3IpjVMjMJjsLRiXfuQL4/create_code_serving_08.png" alt=""><figcaption></figcaption></figure>

* **컨테이너 로그**: 실행 중인 컨테이너의 표준 출력 로그

#### e. 리비전 상세 — 컨테이너 서비스

배포된 리비전을 워크플로우 / 전처리기 / MCP 서버로 노출할지 설정하실 수 있습니다. 자세한 내용은 [코드 서빙 컨테이너 서비스](/default/v1.9.5/basic-tutorials/guides/development/code_serving/container_service.md)를 참고해 주세요.

> 컨테이너 서비스는 리비전이 배포된 상태에서만 활성화/비활성화하실 수 있습니다.

***

### **5. 코드 서빙 이용**

기존에 만드신 코드 스페이스에서 코드 서빙을 통해 형상 관리를 할 있습니다.

VSCode로 접속해보겠습니다.

<figure><img src="https://content.gitbook.com/content/Va1tsb4kzRuGbCJsMdPX/blobs/jQm0TRbNzMJLqhBtowMv/c28.png" alt=""><figcaption></figcaption></figure>

VSCode 접속화면입니다. 터미널로 접속해 코드 서빙에 있었던 저장소 주소로 **git clone**을 해보겠습니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-f15bfba71a5007027321d93df4ca58f16c0b5941%2Fimage%20(166).png?alt=media" alt=""><figcaption></figcaption></figure>

```
git clone {코드 서빙 저장소 주소}
```

를 입력하시면 됩니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-7003e1ff6697dbb6234e9216530c718edfc75855%2Fimage%20(167).png?alt=media" alt=""><figcaption></figcaption></figure>

**username**을 입력하라고 나옵니다. **username**은 **GenOS의 아이디**와 일치합니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-daa030b5b5e27735d8ca75be781139872dfe5031%2Fimage%20(168).png?alt=media" alt=""><figcaption></figcaption></figure>

**패스워드**를 입력하라고 나옵니다. **패스워드**는 GenOS의 패스워드입니다.

<figure><img src="https://1442180325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVa1tsb4kzRuGbCJsMdPX%2Fuploads%2Fgit-blob-934b71abe85e9bfbc258da8425224c89ca80c3f5%2Fimage%20(169).png?alt=media" alt=""><figcaption></figcaption></figure>

정상적으로 clone이 된 걸 확인할 수 있습니다. 이제 Git 명령어들을 통해 형상 관리를 할 수 있습니다.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://genos-docs.gitbook.io/default/v1.9.5/basic-tutorials/guides/development/code_serving/create_code_serving.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
