저도공부를하긴한답니다?

깃티 젠킨스 비교

쟉트 2025. 3. 6. 16:06
728x90

네 프로젝트 특성을 바탕으로 가장 적합한 CI/CD 솔루션을 추천해줄게.
아래 내용을 기반으로 Jenkins, Gitea Actions, GitHub Actions, GitLab CI/CD, Azure DevOps 등과 비교해볼게.


📌 프로젝트 특성 요약 (기반 정보)

백엔드: .NET 8.0 + C#
프론트엔드: React.js
저장소: Gitea (자체 호스팅 Git 사용)
배포 대상: Windows Server (IIS 기반 배포 가능성 높음)
CI/CD 요구사항: .NET 빌드 및 테스트, 코드 품질 검사, 자동 배포 (IIS or Docker 가능성)
선호 방식: 기존 Stored Procedure와의 연계 가능성 고려
개발 환경: 자체 Git 서버(Gitea)를 활용하고 있음


🔹 1. 추천할 만한 CI/CD 솔루션 3가지

네 프로젝트에 적합한 CI/CD 솔루션을 가장 추천할 순서대로 3가지 정리해볼게.

CI/CD 솔루션 장점 단점 추천 이유
1️⃣ Jenkins (추천 1위) 강력한 플러그인 지원 (.NET, Windows, Docker 등)
자체 호스팅 가능 (보안성 높음)
GUI 지원 (편리한 파이프라인 관리)
설정이 복잡하고 유지보수 부담 있음
리소스 소비가 많음
Gitea와 연동 가능하며, .NET 빌드와 IIS 배포에 최적화 가능
2️⃣ Gitea Actions + Gitea Runner Gitea와 완벽한 연동 가능
GitHub Actions와 유사한 YAML 기반 설정
경량 CI/CD 솔루션 (설정 간단)
Jenkins보다 기능이 제한적
GUI가 약하고, 설정이 YAML 기반
Gitea를 사용 중이라면, 추가 설정 없이 쉽게 연동 가능
3️⃣ Azure DevOps Pipelines .NET + Windows Server 배포에 최적화
GUI 및 YAML 지원
클라우드 기반 사용 가능 (서버 부담 없음)
유료 서비스 (비용 고려 필요)
Gitea 연동 시 추가 설정 필요
Windows Server 기반의 배포 환경이라면 Azure DevOps가 강력한 옵션

💡 Jenkins가 가장 추천되는 이유:

  • Gitea와 통합 가능하며 .NET 관련 플러그인이 많음
  • GUI 기반으로 관리가 쉬움
  • Windows Server + IIS 배포 자동화를 쉽게 구현 가능

👉 하지만, Gitea를 중심으로 운영할 계획이라면 Gitea Actions도 좋은 대안!


🔹 2. 각 솔루션의 .NET 빌드 & 배포 지원 여부 비교

CI/CD 솔루션 .NET 빌드 지원 Windows Server 배포 지원 Gitea 연동 가능 여부
Jenkins ✅ O (MSBuild, .NET SDK 지원) ✅ O (IIS 배포 가능) ✅ O
Gitea Actions ✅ O (Docker 기반 .NET 빌드 가능) ❌ 직접 지원 없음 (스크립트 필요) ✅ O
Azure DevOps ✅ O (MSBuild, .NET SDK 지원) ✅ O (IIS 배포 가능) ❌ 직접 지원 없음 (GitHub 권장)
GitHub Actions ✅ O (MSBuild, .NET SDK 지원) ❌ 직접 지원 없음 (스크립트 필요) ❌ 직접 지원 없음 (Gitea 연동 불가)

결론:

  • Jenkins와 Azure DevOps는 .NET 빌드 및 Windows Server 배포 지원이 가장 강력함
  • Gitea Actions는 자체적으로 Windows 배포 지원이 부족하지만, Gitea 환경과의 연동이 간편함

🔹 3. 추천 CI/CD 솔루션 사용 시 파이프라인 예시

1️⃣ Jenkins (.NET 빌드 & IIS 배포 예시)

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git 'http://gitea.example.com/repo.git'
            }
        }
        stage('Build') {
            steps {
                bat 'dotnet restore'
                bat 'dotnet build --configuration Release'
            }
        }
        stage('Deploy to IIS') {
            steps {
                bat 'powershell.exe -ExecutionPolicy Bypass -File deploy.ps1'
            }
        }
    }
}

Jenkins는 GUI 기반 관리 가능 + Windows Server 배포 자동화 가능


2️⃣ Gitea Actions (.NET 빌드 예시)

name: .NET Build

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Install .NET
        uses: actions/setup-dotnet@v2
        with:
          dotnet-version: '8.0.x'

      - name: Restore dependencies
        run: dotnet restore

      - name: Build project
        run: dotnet build --configuration Release

Gitea Actions는 YAML 기반 설정 → Jenkins보다 간결하지만 GUI 관리가 불편할 수 있음
Windows Server 배포 자동화가 필요할 경우 추가 스크립트 작성 필요


🔹 4. 최종 추천 (이 프로젝트에서 가장 적합한 CI/CD 솔루션)

우선순위 추천 솔루션 이유
1위 Jenkins ✅ .NET 빌드 및 Windows 배포 지원 최강
✅ Gitea 연동 가능
✅ GUI 지원
2위 Gitea Actions ✅ Gitea와 완벽한 연동
✅ YAML 기반 설정 (경량)
❌ Windows Server 배포 지원 부족
3위 Azure DevOps ✅ .NET + Windows 배포 최적화
❌ Gitea 연동이 어려움 (GitHub 연동 권장)

💡 최종 결론:

  • Gitea를 사용 중이고, Windows Server 배포를 원한다면 "Jenkins"가 가장 추천됨
  • Gitea Actions는 간단한 CI/CD 구축에는 적합하지만, Windows Server 배포 자동화는 어렵기 때문에 Jenkins가 더 나은 선택
  • Azure DevOps도 좋은 옵션이지만, Gitea를 직접 지원하지 않아 추가 설정이 필요함

🔹 5. iPad 환경에서 테스트하는 방법

iPad에서는 직접 Jenkins 또는 Gitea Runner를 실행할 수 없지만, 아래 방법으로 테스트 가능:

  1. 원격 서버 접속: Windows Server 또는 클라우드 VM에서 Jenkins/Gitea를 실행하고, iPad에서 RDP(Remote Desktop) 또는 SSH로 접속하여 테스트.
  2. 클라우드 기반 CI/CD 사용: GitHub Actions 또는 Azure DevOps를 사용하여 Gitea 저장소에서 빌드를 트리거.
  3. Docker Playground 활용: DockerHub에서 Gitea/Jenkins 컨테이너를 실행하고 테스트.

🔹 마무리

이 프로젝트에서는 Jenkins가 가장 적합
Gitea Actions는 보조적인 CI 역할로 활용 가능
Windows Server + .NET 배포 자동화를 고려한다면 Jenkins가 더 나은 선택
iPad에서는 원격 서버를 활용하여 CI/CD 환경을 테스트하는 것이 현실적

이제 PPT 보고서를 작성할 수 있을 것 같은데, 추가로 궁금한 점이 있으면 언제든 질문해 줘! 😊🚀