서비스 등록
KIWI 플랫폼에 서비스를 등록하여 빌드와 배포를 관리할 수 있습니다. KIWI는 GitLab, GitHub, Docker Hub 세 가지 소스 타입을 지원하며, 소스 타입에 따라 등록 절차가 다릅니다.

왜 서비스를 등록하나요?
서비스를 등록하면 다음과 같은 DevSecOps 워크플로우를 자동화할 수 있습니다:
코드 푸시 → 자동 빌드 → 보안 스캔 → 테스트 → 배포
- Git 저장소와 연동하여 코드 변경 시 자동 빌드
- SAST, SCA, DAST 등 보안 취약점 자동 분석
- 클릭 한 번으로 Kubernetes 또는 Docker에 배포
DevSecOps는 개발(Development), 보안(Security), 운영(Operations)을 통합한 접근 방식입니다. 개발 초기 단계부터 보안을 고려하여 더 안전한 소프트웨어를 빠르게 제공할 수 있습니다.
사전 요구사항
서비스를 등록하기 전에 다음 조건이 충족되어야 합니다:
- 소스 타입에 따라 준비물이 다릅니다:
- GitLab: GitLab 저장소 URL과 접근 권한
- GitHub: GitHub Personal Access Token (PAT)
- Docker Hub: 사용할 이미지 이름 (공개 이미지는 인증 불필요, 프라이빗 이미지는 Docker Hub Access Token 필요)
- 서비스를 배포할 **런타임(K8s 클러스터 또는 Docker)**이 이미 등록되어 있어야 합니다.
서비스를 등록하기 전에 런타임을 먼저 등록해야 합니다:
등록 절차
Step 1: 서비스 관리 페이지 이동
- 좌측 메뉴에서 [서비스 관리] 페이지를 클릭합니다.
- 우측 상단의 추가하기 버튼을 클릭합니다.
Step 2: 소스 타입 선택
서비스 등록 모달이 열리면 소스 타입을 선택합니다:
- GitLab: GitLab 저장소의 프로젝트를 등록합니다. 기존 프로젝트 등록, 새 프로젝트 생성, URL 직접 입력을 지원합니다.
- GitHub: GitHub 리포지토리를 등록합니다. Personal Access Token으로 인증하여 리포지토리 목록에서 선택합니다.
- Docker Hub: Docker Hub의 공개/프라이빗 이미지를 직접 배포합니다. 소스코드 빌드 없이 이미지를 바로 사용할 수 있습니다.
- 직접 개발한 코드가 있으면 → GitLab 또는 GitHub (코드가 있는 저장소 선택)
- 이미 만들어진 이미지를 배포하려면 → Docker Hub (MySQL, Redis 같은 공개 이미지나 직접 빌드한 이미지)
GitLab 서비스 등록
등록 방식 선택
GitLab을 선택하면 다음 방식 중 하나를 선택합니다:
- 기존 프로젝트 등록: 이미 GitLab에 있는 프로젝트를 KIWI에 연결합니다.
- 새 프로젝트 생성: GitLab에 새 프로젝트를 생성하고 KIWI에 등록합니다.
- URL 설정: Git 저장소 URL을 직접 입력합니다.
기본 정보 입력
- 서비스명 (필수): 서비스를 식별할 수 있는 고유한 이름입니다. 영문 소문자, 숫자, 하이픈(-)만 사용하는 것을 권장합니다.
- Git URL (필수): 저장소 주소입니다 (예:
https://gitlab.com/org/repo.git) - 브랜치 (필수): 빌드에 사용할 기본 브랜치입니다 (예:
main,develop) - 인증 토큰: 프라이빗 저장소의 경우 GitLab Personal Access Token (
glpat-xxxx...)을 입력합니다.
GitLab → Settings → Access Tokens에서 토큰을 생성할 때 다음 권한을 선택하세요:
api(필수): KIWI의 전체 기능(빌드, 배포, Auto CI, 프로젝트 생성 등)을 사용하기 위해 필요합니다.read_repository(필수): 소스코드를 가져와 빌드하기 위해 필요합니다.read_api(Auto CI 사용 시 필요): Webhook을 통한 자동 빌드에 필요합니다.
GitHub 서비스 등록
Step 1: GitHub 연결
- Personal Access Token (필수): GitHub에서 발급한 PAT를 입력합니다 (
ghp_xxxx...)- GitHub → Settings → Developer settings → Personal access tokens에서 생성합니다.
repo스코프 권한이 필요합니다.
- PAT를 입력하고 연결 버튼을 클릭하면 리포지토리 목록이 조회됩니다.
Step 2: 리포지토리 선택
- 연결된 GitHub 계정의 리포지토리 목록에서 등록할 리포지토리를 선택합니다.
- 선택하면 해당 리포지토리의 브랜치 목록이 자동으로 조회됩니다.
Step 3: 브랜치 및 서비스명 입력
- 브랜치 (필수): 빌드에 사용할 브랜치를 선택합니다.
- 서비스명 (필수): KIWI에서 사용할 서비스 이름을 입력합니다.
Step 4: 등록 완료
등록 버튼을 클릭하면 GitHub 리포지토리가 KIWI 서비스로 등록됩니다.
Docker Hub 서비스 등록
Docker Hub 서비스 등록은 소스코드 빌드 없이 이미 빌드된 Docker 이미지를 직접 배포할 때 사용합니다.
Step 1: 배포 인프라 선택
- 배포 인프라 (필수): 이미지를 배포할 런타임을 선택합니다 (K8s 또는 Docker)
- 서비스명 (필수): 서비스 이름을 입력합니다.
Step 2: 이미지 구성
하나의 서비스에 여러 컨테이너 이미지를 포함할 수 있습니다. 각 이미지별로 다음 정보를 입력합니다:
- 컨테이너 이름 (필수): 컨테이너를 식별할 이름입니다 (예:
web,db) - 이미지 (필수): Docker Hub 이미지 이름입니다. 검색 기능으로 공개 이미지를 찾거나 직접 입력할 수 있습니다.
- 공식 이미지:
mysql,nginx,redis,postgres - 사용자 이미지:
username/repo
- 공식 이미지:
- 태그 (필수): 이미지 버전입니다. 선택한 이미지의 사용 가능한 태그가 자동으로 조회됩니다 (예:
latest,8.0,alpine) - 포트 (선택): 컨테이너가 사용하는 포트 번호입니다.
- 환경 변수 (선택): 컨테이너에 전달할 환경 변수입니다 (키-값 형식)
- 볼륨 (선택): 영구 저장소 마운트 설정입니다 (마운트 경로, 크기)
웹 애플리케이션 + 데이터베이스를 하나의 서비스로 구성할 수 있습니다:
- 이미지 1:
nginx:alpine(웹 서버, 포트 80) - 이미지 2:
mysql:8.0(데이터베이스, 포트 3306, 볼륨/var/lib/mysql)
Step 3: Docker Hub 인증 (선택)
프라이빗 리포지토리의 이미지를 사용하는 경우에만 인증 정보를 입력합니다:
- Username: Docker Hub 사용자명
- Access Token: Docker Hub Access Token
공개 이미지(mysql, nginx 등)를 사용하는 경우 인증 정보는 필요하지 않습니다.
Step 4: 등록 완료
등록 버튼을 클릭하면 Docker Hub 서비스가 등록됩니다. Docker Hub 서비스는 빌드 단계 없이 바로 배포할 수 있습니다.
소스 타입별 기능 비교
-
GitLab/GitHub (Git 소스)
- 소스코드 빌드 (Dockerfile 또는 Build Wizard)
- Auto CI (Git Push 시 자동 빌드)
- 보안 스캔 (SAST, SCA, DAST)
- 빌드된 이미지를 K8s/Docker에 배포
-
Docker Hub (이미지 소스)
- 빌드 없이 이미지 직접 배포
- 다중 컨테이너 구성 가능
- 공개/프라이빗 이미지 모두 지원
- K8s/Docker에 배포
등록 후 사용 가능한 기능
서비스 등록이 완료되면 다음 기능을 사용할 수 있습니다:
-
수동 빌드: 버튼 클릭으로 즉시 Docker 이미지를 빌드합니다.
-
Auto CI: Git Push 이벤트 발생 시 자동으로 빌드를 실행합니다.
- Webhook을 통해 코드 푸시를 감지합니다.
- 설정한 브랜치에 푸시될 때만 빌드가 트리거됩니다.
-
Build Wizard: Dockerfile이 없는 프로젝트를 위해 자동으로 Dockerfile을 생성합니다.
- Node.js, Python, Java, Go 등 다양한 언어/프레임워크 지원
-
보안 스캔: SAST, SCA, DAST 등 다양한 보안 분석을 실행합니다.
- 코드 취약점 분석 (SAST)
- 오픈소스 라이브러리 취약점 분석 (SCA)
- 실행 중인 애플리케이션 취약점 분석 (DAST)
-
배포: 빌드된 이미지를 Kubernetes 또는 Docker 환경에 배포합니다.
- 무중단 배포 (Rolling Update) 지원
- 배포 이력 관리 및 롤백 기능
다음 단계
서비스 등록이 완료되었습니다! 이제 CI/CD 파이프라인을 구축할 차례입니다:
- Auto CI 설정 - Git Push 시 자동 빌드 설정하기
- Build Wizard - Dockerfile 자동 생성하기
- 보안 스캔 설정 - SAST/SCA/DAST 분석 설정하기