# 코드 서빙 생성

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

***

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

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

<figure><img src="/files/7Hdf1wqt23GHUHRVt3eU" alt=""><figcaption></figcaption></figure>

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

목록 좌측 상단의 \[+ 코드 서빙 생성] 버튼을 클릭하시면 생성 모달이 표시됩니다.

<figure><img src="/files/HChYus9DhZq07Q5l4zdA" alt=""><figcaption></figcaption></figure>

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

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

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

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

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

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

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

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

<figure><img src="/files/ExkB0mc9hcov2PdiRIQC" alt=""><figcaption></figcaption></figure>

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

3개 항목을 모두 입력하신 뒤 우하단 **\[검증]** 버튼을 클릭해 인증을 확인해 주세요.

* 검증 중에는 입력란이 비활성화되며 "검증 중…"이 표시됩니다.
* 성공 시 \[검증] 버튼이 **\[인증 완료]** 상태로 변경됩니다.
* 실패 시 사유별 메시지가 노출되며, 입력값을 확인 후 재시도하실 수 있습니다.

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

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

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

> **언어·빌드/시작 커맨드·환경 변수는 생성 모달에 없습니다.** 생성 후 코드 서빙 상세의 \[환경 설정] 탭에서 함께 설정해 주세요.

***

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

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

***

### 4. 코드 서빙 상세 페이지

상세 페이지는 다음 탭으로 구성됩니다.

#### a. 기본 정보

코드 서빙의 메타 정보와 저장소 주소를 확인하실 수 있는 탭입니다.

<figure><img src="/files/1HyPOQrVB6lTyDnXC98Q" alt=""><figcaption></figcaption></figure>

* **좌측**: 제작자 · 관리 그룹 · 등록일시 · 저장소 · 저장소 URL · 코드서빙 연결 · 확장 서비스 · 배포 상태
* **우측**: 제목 · 상세 설명 · 외부 Git ID (외부 Git 사용 시)

우상단의 \[이관] · \[배포] · \[중지] · \[삭제] 버튼으로 코드 서빙을 관리하실 수 있습니다.

#### 수정 흐름

우하단 \[수정] 버튼 → "수정 하시겠습니까?" 재확인 모달 → \[예] → 편집 모드로 진입합니다.

편집 모드에서는 다음 항목이 수정 가능합니다.

* 제목 · 상세 설명
* 저장소 URL (외부 Git의 경우만 / 내부 Gitea는 시스템 자동 생성으로 수정 불가)
* 외부 Git ID
* 새 크레덴셜 (PAT) — 변경 시에만 입력. 비워두시면 기존 PAT이 유지됩니다.

외부 Git ID가 변경되었거나 새 PAT을 입력하신 경우 \[검증]을 통과한 뒤에만 \[저장]이 활성화됩니다.

#### b. 환경 설정&#x20;

**언어 · 빌드(Build) 커맨드 · 시작(Run) 커맨드 · 환경 변수**를 함께 설정하는 탭입니다.

<figure><img src="/files/4BPVLIdA1kokPrYZbids" 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개). 암호화된 값은 다시 조회되지 않으며 새 값으로만 덮어쓸 수 있습니다.

> 언어에 따라 빌드/시작 커맨드 기본값이 달라지므로 함께 묶어 관리합니다.

#### c. 커밋 목록

연결된 저장소의 커밋 이력을 확인하실 수 있습니다.

<figure><img src="/files/uHlgixPQZiic9tHRn7Em" alt=""><figcaption></figcaption></figure>

* 상단의 **Branch 드롭다운**으로 조회할 브랜치를 선택하실 수 있습니다. 기본값은 저장소의 기본 브랜치(예: `main (default)`)입니다.
* 표 컬럼: 커밋 해시 · 커밋 메시지 · 커밋 유저 · 등록일시

#### d. 인증 키

코드 서빙 API 호출에 사용할 인증 키를 발급·관리하실 수 있습니다.

#### e. 컨테이너 상태

<figure><img src="/files/PoZmFH9XVCPLJBGF77Po" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/PhVXn8sy66txeo6LPxMt" alt=""><figcaption></figcaption></figure>

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

#### f. 컨테이너 서비스

배포된 코드 서빙을 워크플로우 / 전처리기 / MCP 서버로 노출할지 설정하실 수 있습니다.

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

***

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

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

VSCode로 접속해보겠습니다.

<figure><img src="/files/0hVV8oQvJmzU0XPyMWiu" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/rF6yTi2EAVbODfCNgrGj" alt=""><figcaption></figcaption></figure>

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

를 입력하시면 됩니다.

<figure><img src="/files/M4hOgFFVyYrBwrXlAqSG" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/cyKA8Dm7HktxzT6N9s8z" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/cQKCt1eUAV6euZALpzZi" 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

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

The question should be specific, self-contained, and written in natural language.
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.
