출처: 클라우드 서비스 개발자를 위한 AWS로 구현하는 CI/CD 배포 입문
DevOps
소프트웨어 개발(Dev)과 IT 운영(Ops) 팀 간의 협업을 강화하고, 자동화와 지속적인 통합/배포(CI/CD)를 통해 소프트웨어 개발 프로세스를 효율적으로 개선하는 방법론
On-Demand와 On-Premiss의 차이
📌 1. 온프레미스(On-Premise)
- 온프레미스는 “자체 구내(premises)”에 라는 뜻 그대로, 기업이 직접 서버, 스토리지, 네트워크 장비 등의 하드웨어와 소프트웨어를 구매하여 자사의 물리적 시설(데이터 센터 또는 서버실) 내에 설치하고, 운영하며, 관리하는 방식
- 직접 장비를 구매·설치하고, 회사 내부에 서버 인프라를 구축하여 사용하는 방식
특징
- 서버, 스토리지, 네트워크 장비 등을 기업이 직접 소유
- 유지보수, 백업, 보안 등도 기업이 직접 관리
- 초기 비용(구매, 구축 비용)이 크고, 설치 시간도 오래 걸림
- 커스터마이징에 유리하지만, 확장성은 떨어짐
- 예: 사무실 내 전산실에 물리 서버를 설치하고, 내부 직원만 사용할 수 있는 그룹웨어를 운영하는 경우
📌 2. 온디맨드(On-Demand) = 클라우드
- 온디맨드는 "요구가 있을 때마다"라는 뜻. 이는 IT 자원(서버, 스토리지, 데이터베이스, 소프트웨어 등)을 인터넷을 통해 필요한 만큼만 빌려 쓰고, 사용한 만큼만 비용을 지불하는 방식을 의미
- 온디맨드는 클라우드 컴퓨팅의 핵심적인 특성 중 하나
- 필요할 때만 인터넷을 통해 서버·저장공간 등을 빌려 쓰는 방식 (주로 클라우드 서비스)
특징
- AWS, Azure, GCP 같은 클라우드 제공자가 인프라를 제공
- 필요한 만큼만 사용하고 비용을 지불 (종량제)
- 신속한 확장, 자동화, 유지보수 편리
- 보안·신뢰성은 클라우드 업체의 SLA에 의존
- 예: AWS EC2에서 서버를 몇 분 만에 생성해 웹 서비스를 올리는 경우
🔍 요약 비교
구분 | 온프레미스 (On-Premise) | 온디맨드 (On-Demand) |
위치 | 회사 내부 | 클라우드 제공자 서버 |
초기 비용 | 높음 (장비 구매) | 낮음 (필요한 만큼만 지불) |
유지보수 | 자체 인력 필요 | 클라우드 업체가 관리 |
확장성 | 제한적 | 유연하고 빠름 |
보안 | 내부 통제 가능 | 외부에 위탁 (보안 서비스는 우수함) |
도입 속도 | 느림 (설치 필요) | 빠름 (몇 분 안에 가능) |
🧠 정리 한 줄 요약
- 온프레미스: “직접 서버 사서 내가 다 관리”
- 온디맨드: “필요할 때만 클라우드에서 빌려서 써”
CI / CD
- 소프트웨어 개발에서 지속적 통합(Continuous Integration)과 지속적 배포/전개(Continuous Delivery / Deployment)를 말한다
- 자동화된 개발·배포 프로세스를 의미
✅ CI (Continuous Integration) — 지속적 통합
- 개발자가 코드 변경사항을 자주(하루에도 여러 번) 공유 저장소에 병합(Push)
- 자동 빌드 및 테스트를 통해 코드가 잘 작동하는지 빠르게 확인
- 예: 개발자 A가 로그인 기능을, 개발자 B가 게시글 기능을 만들고 동시에 작업 → 코드를 Git에 Push → 자동으로 빌드 & 테스트 → 충돌/에러 확인
✅ CD (Continuous Delivery / Deployment)
1. Continuous Delivery — 지속적 전달
- 테스트까지 통과한 코드를 스테이징 서버에 자동 배포
- 실제 서비스 배포는 사람이 버튼 한 번 누르면 가능
2. Continuous Deployment — 지속적 배포
- 테스트 통과 후, 실제 운영 서버에도 자동으로 배포
- 완전한 자동화
📌 차이 요약
항목 | Continuous Delivery | Continuous Deployment |
운영 배포 | 수동 (승인 후 배포) | 자동 (테스트 통과 시 바로) |
🛠 도구 예시
- CI/CD 도구: GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis CI
- 배포 도구: Docker, Kubernetes, Ansible 등과 함께 사용
📈 왜 쓰는가?
- 코드 품질 향상: 테스트 자동화로 버그 조기 발견
- 빠른 배포: 신기능/수정사항을 빠르게 사용자에게 전달
- 자동화: 사람이 수동으로 하는 빌드/테스트/배포 작업을 줄임
🧱 CI/CD 기본 흐름 요약
[코드 작성]
↓
[Git Push]
↓
[CI: 자동 빌드 & 테스트]
↓
[CD: 스테이징 또는 운영 서버 자동 배포]
Share article