<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>GitOps - 태그 - lee's blog</title><link>https://ken-0913.github.io/myblog/tags/gitops/</link><description>GitOps - 태그 - lee's blog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><managingEditor>hyeonjae0913@gmail.com (ken-0913)</managingEditor><webMaster>hyeonjae0913@gmail.com (ken-0913)</webMaster><lastBuildDate>Thu, 16 Jul 2026 08:00:00 +0900</lastBuildDate><atom:link href="https://ken-0913.github.io/myblog/tags/gitops/" rel="self" type="application/rss+xml"/><item><title>CNPA 시험 정리 (3) Continuous Delivery — 배포 전략, GitOps, Argo CD, 인시던트 대응</title><link>https://ken-0913.github.io/myblog/posts/cnpa/cnpa-03-continuous-delivery/</link><pubDate>Thu, 16 Jul 2026 08:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>https://ken-0913.github.io/myblog/posts/cnpa/cnpa-03-continuous-delivery/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/cnpa-03-continuous-delivery-91a293f7.png" referrerpolicy="no-referrer">
            </div><p>이번 편은 <strong>Domain 3: Continuous Delivery &amp; Platform Engineering (16%)</strong> 를 정리한다.
핵심은 플랫폼 엔지니어가 CI/CD를 직접 구현하는 것이 아니라 개발팀에게 <strong>CI/CD를 서비스로(as a Service)</strong> 제공한다는 것이다.
4대 요구사항은 속도와 안전의 균형, 내장 보안, 관측성, 일관성이다.</p>
<h2 id="파이프라인-아키텍처" class="headerLink">
    <a href="#%ed%8c%8c%ec%9d%b4%ed%94%84%eb%9d%bc%ec%9d%b8-%ec%95%84%ed%82%a4%ed%85%8d%ec%b2%98" class="header-mark"></a>파이프라인 아키텍처</h2><p>파이프라인은 <strong>Commit → Build → Test → Security Scan → Package → Deploy → Post-deployment Validation</strong> 순서로 진행된다.
각 단계는 <strong>품질 게이트(quality gate)</strong> 이며, 어느 단계든 실패하면 파이프라인을 중지하는 <strong>Fail Fast</strong> 원칙을 따른다.</p>]]></description></item><item><title>CNPA 시험 정리 (1) Platform Engineering Core Fundamentals — 선언적 관리, GitOps, 8대 역량</title><link>https://ken-0913.github.io/myblog/posts/cnpa/cnpa-01-platform-engineering-fundamentals/</link><pubDate>Tue, 14 Jul 2026 08:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>https://ken-0913.github.io/myblog/posts/cnpa/cnpa-01-platform-engineering-fundamentals/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/cnpa-01-platform-engineering-fundamentals-ca73458d.png" referrerpolicy="no-referrer">
            </div><h2 id="선언적-vs-명령적-declarative-vs-imperative" class="headerLink">
    <a href="#%ec%84%a0%ec%96%b8%ec%a0%81-vs-%eb%aa%85%eb%a0%b9%ec%a0%81-declarative-vs-imperative" class="header-mark"></a>선언적 vs 명령적 (Declarative vs Imperative)</h2><p><strong>Imperative(명령적)</strong> 는 레시피처럼 단계별로 <strong>How</strong>를 지시한다.
<strong>Declarative(선언적)</strong> 는 메뉴 주문처럼 원하는 결과, 즉 <strong>desired state(원하는 상태)</strong> 만 선언한다.</p>
<p>플랫폼 엔지니어링은 <strong>선언적 접근을 선호(preferred)</strong> 한다.
선언된 상태는 <strong>control loop(제어 루프)</strong> 가 감시하며 실제 상태를 원하는 상태로 <strong>reconcile(조정)</strong> 한다.</p>
<table>
	<thead>
			<tr>
					<th>구분</th>
					<th>Imperative</th>
					<th>Declarative</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>초점</td>
					<td>How (어떻게)</td>
					<td>What (원하는 상태)</td>
			</tr>
			<tr>
					<td>재실행</td>
					<td>중복 생성 위험</td>
					<td>멱등성(idempotency)</td>
			</tr>
			<tr>
					<td>예시</td>
					<td><code>kubectl create deployment</code></td>
					<td>Kubernetes YAML, Terraform HCL</td>
			</tr>
			<tr>
					<td>장점</td>
					<td>직접 제어, 빠른 실험</td>
					<td>버전 관리, 반복 가능, 감사 가능</td>
			</tr>
	</tbody>
</table>
<p>Imperative가 여전히 유효한 경우는 <strong>디버깅, 긴급 핫픽스(emergency hotfix), 긴급 스케일링, 실험</strong> 정도다.
단, 이후 반드시 선언적 정의로 반영(backfill)해야 한다.</p>]]></description></item></channel></rss>