<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://jyje.github.io/profile-2/blog/</id>
    <title>jyje.online Blog</title>
    <updated>2026-02-22T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://jyje.github.io/profile-2/blog/"/>
    <subtitle>jyje.online Blog</subtitle>
    <icon>https://jyje.github.io/profile-2/img/favicon-32.png</icon>
    <entry>
        <title type="html"><![CDATA[🔄 Recap. 2025]]></title>
        <id>https://jyje.github.io/profile-2/blog/recap-2025/</id>
        <link href="https://jyje.github.io/profile-2/blog/recap-2025/"/>
        <updated>2026-02-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[2025년 한 해를 돌아보며 경험한 것, 부족했던 것, 실수에서 배운 것들을 정리합니다.]]></summary>
        <content type="html"><![CDATA[<p>안녕하세요. 2024년부터 2025년까지 정말 많은 일들이 있었습니다. 제 나름대로 회고를 해보려고 합니다.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-2024년-팀과-공동체의-위기">1. 2024년, 팀과 공동체의 위기<a href="https://jyje.github.io/profile-2/blog/recap-2025/#1-2024%EB%85%84-%ED%8C%80%EA%B3%BC-%EA%B3%B5%EB%8F%99%EC%B2%B4%EC%9D%98-%EC%9C%84%EA%B8%B0" class="hash-link" aria-label="1. 2024년, 팀과 공동체의 위기에 대한 직접 링크" title="1. 2024년, 팀과 공동체의 위기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="추웠던 거리" src="https://jyje.github.io/profile-2/assets/images/35f5d345-8953-4216-b2de-a0063ca69a80-a96af809abf181b871da39bbdb32085b.png" width="646" height="158" class="img_ev3q"></p>
<p>2024년 프로젝트 와이더스를 출시하면서 바쁘게 성장하던 와중에 <a class="" href="https://jyje.github.io/profile-2/tags/maxst/">회사(맥스트)</a>가 힘들어져 팀을 나오게 되었습니다. 지금 팀에서 좀 더 성장하고 싶었지만, 여러 사정을 숙고해 나가게 되었습니다.
수년간 함께 일하던 동료들과 흩어지게 되었고 다른 팀을 구해야 하는 큰 숙제를 안게 되었습니다.
그래도 오랜만에 찾아온 휴식기를 활용해 건강을 챙기며 여유를 갖고 지원과 인터뷰에 열중했습니다.</p>
<ul>
<li class=""><strong>경력</strong>: 2024년 10월 맥스트 퇴사 / (MLOps/DevOps 엔지니어)</li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/blog/widearth-digital-twins-platforms-at-maxst/">프로젝트</a>: 디지털 트윈 플랫폼 와이더스 출시 / (MLOps/DevOps 리드)</li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/tags/certifications/">자격증</a>: CKA, CKAD, CAPA, GitHub Foundations 취득</li>
<li class=""><strong>도전</strong>: 퇴사 후 재취업 준비 · 회사도 어지러운데, 나라도 어지러운 상황</li>
</ul>
<p>그리고 12월 한국에 비상계엄이 일어났습니다. 짐작으로는 이 일을 계기로 많은 채용이 중단되고, 불합격 통보를 많이 받게 되었습니다. 제 역량도 부족했지만 정세에 영향도 컸다고 생각합니다. 부족한 부분을 채우기 위해 항상 공부했습니다. 또, 공동체를 지키기 위해 할 수 있는 모든 노력을 다했습니다. 살면서 겪어보지 못할 것 같은--21세기에는 절대 일어나지 않고, 한국사 책에서만 볼 수 있었던--일을 겪으면서 안정적인 나라와 경제력이 없다는 상황이 얼마나 힘든 것인지를 피부로 느끼게 되었습니다.</p>
<p>다행히 소중한 사람들과 가족들이 힘이 되어주어 포기하지 않고 재취업을 위해 힘썼습니다. 12월 마지막 날까지 제가 할 수 있는 일에 최선을 다하였습니다. 거리에서 할 수 있는 최선을 다하였고, 집에서는 회고보다는 이력서를 다듬었습니다. 그렇게 첫 직장에서 퇴사한 해를 마무리하였습니다. 그래도 가족들과 지인들의 도움으로 잘 버티면서 좋은 소식을 기대했습니다.</p>
<p>2024년은 살면서 제일 힘겨웠던 해였습니다. 또한 가장 많은 도움을 받은 해이기도 합니다. 우리를 지켜주신 모든 분들께 감사드립니다. 모두 고생하셨습니다 🤝</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-2025년-새로운-팀과-성장">2. 2025년, 새로운 팀과 성장<a href="https://jyje.github.io/profile-2/blog/recap-2025/#2-2025%EB%85%84-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%8C%80%EA%B3%BC-%EC%84%B1%EC%9E%A5" class="hash-link" aria-label="2. 2025년, 새로운 팀과 성장에 대한 직접 링크" title="2. 2025년, 새로운 팀과 성장에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="현대오토에버 삼성사옥" src="https://jyje.github.io/profile-2/assets/images/d621ffbf-b1bf-478a-ac78-7a53972da45a-281b342f2504e2606a89e83c3a4f69e4.png" width="1093" height="238" class="img_ev3q"></p>
<p>2025년은 저에게 회복의 해였습니다. 신기하게도 많은 것들이 빠르게 안정되었습니다.
이렇게 지난 날을 회고할 수 있음에 감사합니다.</p>
<ul>
<li class=""><strong>경력</strong>: 2025년 2월 현대오토에버 개발환경플랫폼팀 합류 / (AI/MLOps 엔지니어)</li>
<li class=""><strong>프로젝트</strong>: 코드비머 AI 어시스턴트 PoC / (AI 아키텍트)</li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/tags/certifications/">자격증</a>: KCNA, KCSA 취득 / (CKS는 26년 상반기 취득 목표)</li>
<li class=""><strong>도전</strong>: 첫 이직 후 적응하면서 성과내기 · 생성형 AI 프로젝트 실무 및 테크 리드 · 향후 생성형 AI 프로젝트 확장 추진</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="21-새로운-팀-새로운-동료들">2.1. 새로운 팀, 새로운 동료들<a href="https://jyje.github.io/profile-2/blog/recap-2025/#21-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%8C%80-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%8F%99%EB%A3%8C%EB%93%A4" class="hash-link" aria-label="2.1. 새로운 팀, 새로운 동료들에 대한 직접 링크" title="2.1. 새로운 팀, 새로운 동료들에 대한 직접 링크" translate="no">​</a></h3>
<p>2월 초 합격 통보 및 합류 결정을 하고 나서야 숨을 돌릴 수 있었습니다. 저의 경험과 잠재력을 높이 평가해주셔서 감사합니다.</p>
<p>2025년 2월 <strong><a title="현대오토에버 관련 글" class="" href="https://jyje.github.io/profile-2/tags/hyundai-autoever/">현대오토에버</a> 개발환경플랫폼팀</strong>에 합류했습니다. 현대자동차 그룹의 ICT 회사로, 기쁘게도 대학원에서 몰입했던 오토모티브 분야로 다시 돌아오게 되었습니다. 우리 팀은--제가 연구원 시절 경험했던--자동차 기술개발에 대한 소프트웨어 개발환경을 지원하는 부서입니다.</p>
<p>대기업이라 안정적인 체계 위에서 새롭고 과감한 시도를 할 수 있습니다. 다만 과제가 성숙해지면서 개인이 업무에 종속되는 락인 효과가 강하게 발생합니다. 성장을 위해서는 안정성을 올리면서도 스타트업에 있을 때 보다 더 많은 도전을 해야 합니다.</p>
<p>좋은 동료들을 만나게 되었습니다. 전 직장은 비슷한 경력과 나이의 동료들이 많았지만, 새 팀은 모든 구간의 동료들이 있어 다양한 경험을 공유할 수 있었습니다. 모두 여유 있고 전문성이 높은 동료들이었습니다. 동료들의 도움으로 빠르게 적응할 수 있었습니다. 커피를 정말 많이 마셨습니다 ☕️.</p>
<p>개발환경플랫폼팀은 현대자동차그룹에서 차량용 SW 개발을 위한 협업도구를 공급하는 조직입니다.</p>
<ul>
<li class="">Codebeamer와 같은 요구사항과 이슈, 테스트를 통합관리하는 Application Lifecycle Management(ALM) 상용 도구,</li>
<li class="">GitLab, Jira, Confluence와 같은 대중적인 SW 협업 상용 도구,</li>
<li class=""><a href="https://blog.naver.com/hyundai-autoever/223405344548" target="_blank" rel="noopener noreferrer" class="">BitWinHub</a>라는 SW 개발 플랫폼 연계 자동화 도구 (자체 개발)</li>
</ul>
<p>등의 툴체인을 제공합니다.</p>
<p>제가 대학원 시절부터 많이 접했던 차량분야와 사람과 플랫폼을 지원하는 DevOps 분야를 함께 접할 수 있게 되었습니다. 다른 면접에서는 조각조각 평가받던 경험들이 여기서는 모두 현업에 도움이 되는 경력으로 잘 정리되었습니다. 인정해 주신 만큼 새로운 회사에 잘 기여하고 싶어졌습니다.</p>
<p>지금까지 10개월 동안 수천 명이 함께 일하는 그룹사의 문화를 익힐 수 있었고, 저의 경험을 공유하며 팀에 나름 기여할 수 있었습니다. 오랜 역사의 제조업 기반 회사이기 때문에 기민하게 움직이는 스타트업과 다른 스케일과 장단점이 있었습니다. 팀원들의 자부심과 고충도 많이 듣게 되었습니다. 제가 제안하는 아이디어와 인사이트를 잘 들어주셔서 매우 뿌듯했습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="22-새로운-역할-새로운-프로젝트">2.2. 새로운 역할, 새로운 프로젝트<a href="https://jyje.github.io/profile-2/blog/recap-2025/#22-%EC%83%88%EB%A1%9C%EC%9A%B4-%EC%97%AD%ED%95%A0-%EC%83%88%EB%A1%9C%EC%9A%B4-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8" class="hash-link" aria-label="2.2. 새로운 역할, 새로운 프로젝트에 대한 직접 링크" title="2.2. 새로운 역할, 새로운 프로젝트에 대한 직접 링크" translate="no">​</a></h3>
<p>저는 <strong>중간급 엔지니어</strong>로 합류하였습니다. DevOps와 생성형 AI의 경험을 바탕으로 팀의 플랫폼 유지/개선의 역할을 맡게 되었습니다. 약간의 적응기간 이후에 실무조정을 하는 과정에서 <strong>생성형 AI 프로젝트</strong>에 집중하는 것으로 역할을 구체화했습니다. 또한 라이브 서비스를 지향하고 있기 때문에 이미 보유한 DevOps 역량도 유용하게 쓰였습니다. (이후에 1인 다역을 해주어서 좋았다는 피드백을 받았습니다)</p>
<p>10명이 넘는 파트, 4명으로 된 그룹에 합류했습니다. 처음으로 맡은 프로젝트는 '<strong>코드비머를 지원하는 AI 어시스턴트의 PoC 추진</strong>'이었습니다.
4인 그룹으로 다음의 업무를 함께 진행했습니다:</p>
<ul>
<li class="">대상 플랫폼과 생성형 AI 기술 검토</li>
<li class="">AI 에이전트 개발 및 UI 설계</li>
<li class="">데이터 전처리 및 지식기반 학습 파이프라인 구성</li>
<li class="">코드리뷰, CI/CD 및 모니터링 구성</li>
</ul>
<p>저는 AI 아키텍트로서 생성형 AI 프로젝트 경험이 적은 팀원들과 함께 프로젝트를 진행하면서 팀원들에게 제 경험을 공유하고 함께 성장할 수 있었습니다. 이 과정에서 프로젝트 추진의 어려움, 기술적 어려움을 잘 극복하였습니다. 6개월 정도 실무 진행을 하고 사내 베타테스트까지 진행하였고 PoC를 잘 마무리 했습니다. 2026 진행할 AI 프로젝트의 추진을 위한 기획 능력과 기술 스택을 확보했습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="23-첫-이직의-부담감">2.3. 첫 이직의 부담감<a href="https://jyje.github.io/profile-2/blog/recap-2025/#23-%EC%B2%AB-%EC%9D%B4%EC%A7%81%EC%9D%98-%EB%B6%80%EB%8B%B4%EA%B0%90" class="hash-link" aria-label="2.3. 첫 이직의 부담감에 대한 직접 링크" title="2.3. 첫 이직의 부담감에 대한 직접 링크" translate="no">​</a></h3>
<p>입사 초기부터 너무 잘하려고 하지 말아라고 조언해주시던 동료도 있었고, 저도 가면 증후군에 빠지기 쉬운 사람이란 걸 알고 있었습니다. 하지만 어느새 무리한 루틴을 반복하고 있었습니다. 새벽에 일어나 버스에서 공부하면서 출근했고, 여러 일을 제안하고 추진했습니다. 좋은 동료가 되기 위해 소통하고 피드백을 요청했습니다. 퇴근하고도 집에서 할 수 있는 일거리를 찾아서 했습니다.</p>
<p>이건 성장하는 직장인이 하기 좋은 루틴이지만 정도가 심했던 것 같습니다. 2025년 상반기를 이렇게 생활하고 나니 좋은 첫인상을 남길 수 있었고 성과도 안정적으로 나왔습니다. 연말에도 긍정적인 피드백을 받았지만 짧은 기간 몸이 다소 망가져 있었습니다. 갈수록 참여 프로젝트와 업무 요청은 더 많아질 것이므로, 힘조절이 꼭 필요합니다.</p>
<p>최근에는 생성형 AI를 활용한 업무 자동화로 같은 시간에 더 많은 일을 하려고 노력하고 있습니다. 일찍 출근하고, 일찍 퇴근해야죠.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="24-아쉬운-점과-나아갈-점">2.4. 아쉬운 점과 나아갈 점<a href="https://jyje.github.io/profile-2/blog/recap-2025/#24-%EC%95%84%EC%89%AC%EC%9A%B4-%EC%A0%90%EA%B3%BC-%EB%82%98%EC%95%84%EA%B0%88-%EC%A0%90" class="hash-link" aria-label="2.4. 아쉬운 점과 나아갈 점에 대한 직접 링크" title="2.4. 아쉬운 점과 나아갈 점에 대한 직접 링크" translate="no">​</a></h3>
<p>작년 AI 프로젝트를 진행하면서 단기간에 성공적인 GenAI 서비스 개발 사이클을 구현할 수 있었습니다. 물론 약간의 아쉬운 점들이 있었습니다.</p>
<ul>
<li class=""><strong>⏩ 속도가 생명</strong>: AWS 'innovate faster'</li>
<li class=""><strong>📝 결과로 검증</strong>: 기술적인 기술 검증은 포트폴리오로 확보하겠습니다</li>
<li class=""><strong>🤝 협업</strong>: 과감하게 협업에 필요한 일회용 도구를 개발하겠습니다</li>
</ul>
<p>개인 역량에서 이 점들을 보완한다면 훌륭한 프로젝트 수행과 협업을 할 수 있을 것이라 생각합니다:</p>
<ol>
<li class=""><strong>실행은 빨랐지만 완성도에 집착했습니다.</strong>
<ul>
<li class=""><strong>이슈:</strong> 초기 기획의 구현은 빠르게 완성되었지만, 결과 개선을 위해 기존 프레임워크를 고도화시키는 것에 고수했습니다.</li>
<li class=""><strong>해결책:</strong> 유연한 기획을 만들고 데이터를 기반으로 빠르게 기획을 수정합니다.</li>
<li class=""><strong>예시:</strong> 지식기반 재구성, 기술 스택 변경 등</li>
<li class=""><strong>앞으로의 방향:</strong> AWS의 'innovate faster'를 참고하며 빠르게 개선할 수 있는 기획과 구현을 수행합니다.</li>
</ul>
</li>
<li class=""><strong>결과를 통해 설득하는 과정이 부족했습니다.</strong>
<ul>
<li class=""><strong>이슈:</strong> 기존 기획을 넘어서는 기술적인 의사결정이 필요한 순간에 팀원들에게 보여줄 구현체가 없었습니다. 이를 미리 준비하지 않아 의사결정에 시간이 많이 소요되었습니다.</li>
<li class=""><strong>해결책:</strong> RAG, MCP, A2A 등의 AI 기술들을 접할 때 미리 예시를 확보합니다.</li>
<li class=""><strong>예시:</strong> 사내 클라우드에서 실제 동작하는 기술 포트폴리오 구성</li>
<li class=""><strong>앞으로의 방향:</strong> 기술 포트폴리오를 구성하고 꾸준히 갱신합니다. 그럼 의사 결정의 도구로 쓸 수 있고, 온보딩 자료로도 쓸 수 있습니다.</li>
</ul>
</li>
<li class=""><strong>협업을 위한 UX를 더 잘할 수 있었습니다.</strong>
<ul>
<li class=""><strong>이슈:</strong> 데이터 처리 및 평가를 위한 코드는 잘 작성했지만, 이를 공유하고 피드백을 받을 수 있는 UI를 제작하지 않았습니다. 따라서 결과 리포트에만 의존하고 실시간으로 결과를 공유하기 어려운 구조가 되었습니다. 작은 공유에도 소스코드를 새로 빌드하는 시간이 소요되었습니다.</li>
<li class=""><strong>해결책:</strong> AI로 쉽게 일회용 앱을 만들 수 있습니다. 빠른 협업과 의사결정을 위해 FE/BE/DB를 설계할 수 있습니다.</li>
<li class=""><strong>예시:</strong> 지식기반 검색성능 평가 UI, 전문가 평가를 위한 UI, AI</li>
<li class=""><strong>앞으로의 방향:</strong> 과감하게 협업에 필요한 일회용 도구를 개발하겠습니다. 기존보다 생산성이 3~4배 오를 것이라 기대합니다.</li>
</ul>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-마무리-앞으로-이렇게-성장할-거예요">3. 마무리: 앞으로 이렇게 성장할 거예요<a href="https://jyje.github.io/profile-2/blog/recap-2025/#3-%EB%A7%88%EB%AC%B4%EB%A6%AC-%EC%95%9E%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%A0%87%EA%B2%8C-%EC%84%B1%EC%9E%A5%ED%95%A0-%EA%B1%B0%EC%98%88%EC%9A%94" class="hash-link" aria-label="3. 마무리: 앞으로 이렇게 성장할 거예요에 대한 직접 링크" title="3. 마무리: 앞으로 이렇게 성장할 거예요에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="휴가때 찍은 사진" src="https://jyje.github.io/profile-2/assets/images/325b4b02-7169-4f66-b9bd-247358dc971d-258b0c869a1e51941ff52b99d1d8032f.png" width="921" height="171" class="img_ev3q"></p>
<p>작년(2025년)에 했던 것을 계속 반복할 계획입니다. 새로 합류한 팀에서 차량 SW 도메인 지식을 익히고 실무와 협업에 더 노련해지는 것입니다. 또 생성형 AI를 팀과 회사에 더 알리고 업무에 적용해서 능률을 무한히 확장할 계획입니다.</p>
<ul>
<li class=""><strong>💪 업무 숙달</strong>: 차량SW개발 도메인에서 생성형 AI와 LLMOps 플랫폼에 전문성을 키우고, 실무와 협업 능력을 더 키우고 싶습니다.</li>
<li class=""><strong>🦾 생성형 AI 활용</strong>: 생성형 AI 활용법을 팀과 회사에 더 알리고 업무에 적용해서 능률을 무한히 확장합니다.</li>
<li class=""><strong>🤝 협업</strong>: 매일 매일 함께 일하기 좋은 동료가 되려고 노력하겠습니다.</li>
<li class=""><strong>🏥 건강 관리</strong>: 오래 일하기 위해 꾸준한 운동을 꼭 하겠습니다.</li>
</ul>
<p>저는 항상 일하고 기술적 문제를 직접 해결하는 스태프 엔지니어를 꿈꾸기 때문에 꾸준히 학습하고 교류하여 실무능력을 유지할 것입니다. 저에게 오는 기회를 감사히 잘 수행하겠습니다. 또 좋은 기회를 나누고 함께 성장하겠습니다. 혼자 일할 수는 없으니까요. 매일 매일 함께 일하기 좋은 동료가 되려고 노력하겠습니다. 그러기 위해서는 건강도 잘 챙겨야겠죠. 올해(2026년)는 꾸준한 운동을 꼭 하겠습니다.</p>
<p>읽어주셔서 감사합니다.</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Recap" term="Recap"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🛡️ KCSA: Kubernetes and Cloud Native Security Associate (2025)]]></title>
        <id>https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/</id>
        <link href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/"/>
        <updated>2025-10-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Kubernetes 및 클라우드 네이티브 생태계 보안을 위한 기초 지식.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>Kubernetes and Cloud Native Security Associate (KCSA)는 Kubernetes와 클라우드 네이티브 생태계의 보안에 대한 기초 지식을 평가하는 자격증입니다. CNCF(Cloud Native Computing Foundation)와 The Linux Foundation이 함께 만들었고, 클라우드 네이티브 보안의 기본기를 다지고 싶은 분들에게 적합합니다.</p>
<!-- -->
<p>시험은 온라인 감독 방식으로 진행되며, 90분 동안 60개의 4지선다형 문제를 풉니다. 핸즈온 없이 순수하게 이론 문제로만 구성되어 있어요. 합격 커트라인은 75%이고, 자격증 유효기간은 2년입니다. 시험 범위는 다음과 같습니다:</p>
<ul>
<li class=""><strong>Kubernetes 보안 기초</strong>: 핵심 보안 개념, Pod 보안, 네트워크 정책, RBAC</li>
<li class=""><strong>컨테이너 보안</strong>: 컨테이너 이미지 보안, 스캐닝, 런타임 보안</li>
<li class=""><strong>클라우드 네이티브 보안 도구</strong>: CNCF 생태계의 보안 도구 및 실무</li>
<li class=""><strong>보안 모범 사례</strong>: 보안 구성, 시크릿 관리, 컴플라이언스</li>
<li class=""><strong>위협 탐지 및 대응</strong>: 클라우드 네이티브 환경의 모니터링, 로깅, 인시던트 대응</li>
</ul>
<p>CKS(Certified Kubernetes Security Specialist)처럼 실제로 클러스터 보안을 구성하는 시험이 아니라, 개념과 이론 위주로 출제됩니다. 그래서 클라우드 네이티브 보안을 처음 시작하는 분들에게 좋은 출발점이 될 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="KCSA 자격증" src="https://jyje.github.io/profile-2/assets/images/8f52ead9-2648-4bac-a881-ef8e8bf866dd-a11d0e9e05e22d73546242de371296c4.png" width="6875" height="5317" class="img_ev3q"></p>
<p><em>KCSA 자격증 2025. 2025년 10월 27일 발급. 2027년 10월 27일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/1206ad1c-e348-4328-934d-72e44ca434be" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<p>2025년 10월 27일에 KCSA 시험을 보고 합격했습니다. 이미 CKA와 CKAD를 취득한 상태였는데, KCSA는 그동안 실무에서 접했던 보안 관련 지식을 이론적으로 정리해볼 수 있는 좋은 기회였습니다.</p>
<p>시험 형식은 생각보다 단순합니다:</p>
<ul>
<li class="">60문제 전부 4지선다형 객관식 (터미널 작업 없음)</li>
<li class="">실제 구현보다는 보안 개념, 원칙, 모범 사례 위주</li>
<li class="">Kubernetes뿐 아니라 클라우드 네이티브 보안 전반을 다룸</li>
</ul>
<p>문제는 Kubernetes 보안 정책, 컨테이너 보안, 시크릿 관리, 네트워크 보안, 컴플라이언스, CNCF 보안 도구 등 꽤 넓은 범위에서 출제됩니다. Kubernetes를 실무에서 다뤄본 경험이 분명 도움이 됐지만, 그것만으로는 부족하고 보안 원칙이 클라우드 네이티브 환경에서 어떻게 적용되는지 전반적으로 이해하고 있어야 합니다.</p>
<p>저는 KodeKloud의 <a href="https://learn.kodekloud.com/user/courses/kubernetes-and-cloud-native-security-associate-kcsa" target="_blank" rel="noopener noreferrer" class="">Kubernetes and Cloud Native Security Associate (KCSA)</a> 강좌로 준비했습니다. 강사는 Mumshad Mannambeth와 Nimesha Jinarajadasa입니다. Basic 플랜만 구매해도 충분히 수강할 수 있어요 (Pro는 굳이 필요 없습니다). 총 6.78시간 분량으로 클라우드 네이티브 보안 개요, Kubernetes 클러스터 구성 요소 보안, 보안 기초, 위협 모델, 플랫폼 보안, 컴플라이언스 프레임워크까지 시험 범위 전체를 커버합니다. 핸즈온 랩과 인터랙티브 콘텐츠가 잘 되어 있고, 보안 트렌드에 맞춰 콘텐츠도 자주 업데이트됩니다. 다만 KodeKloud가 핸즈온 랩을 제공하긴 하는데, 정작 KCSA 시험에는 핸즈온이 없으니 참고하세요. 강좌에 포함된 퀴즈와 모의 시험이 실제 시험 형식에 익숙해지는 데 꽤 도움이 됐습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-시험-준비-팁">3. 시험 준비 팁<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#3-%EC%8B%9C%ED%97%98-%EC%A4%80%EB%B9%84-%ED%8C%81" class="hash-link" aria-label="3. 시험 준비 팁에 대한 직접 링크" title="3. 시험 준비 팁에 대한 직접 링크" translate="no">​</a></h2>
<p>직접 시험을 치르면서 느낀 점들을 정리해봤습니다.</p>
<p><strong>꼭 챙겨야 할 리소스:</strong></p>
<ul>
<li class=""><strong>공식 CNCF 커리큘럼</strong>: 시험 영역별 비중이 명확하게 나와 있으니 반드시 확인하세요</li>
<li class=""><strong>CNCF 보안 랜드스케이프</strong>: <a href="https://landscape.cncf.io/" target="_blank" rel="noopener noreferrer" class="">CNCF Landscape</a>에서 보안 관련 프로젝트를 훑어보세요. 각 보안 도구가 무슨 역할을 하는지, Graduated/Incubating/Sandbox 중 어디에 속하는지 파악해두면 좋습니다</li>
<li class=""><strong>CNCF 블로그</strong>: <a href="https://www.cncf.io/blog/" target="_blank" rel="noopener noreferrer" class="">CNCF 블로그</a>는 정기적으로 확인하는 게 좋아요. 최신 보안 업데이트나 새로운 프로젝트 발표가 시험에 출제되기도 합니다</li>
<li class=""><strong>최근 CNCF 보안 프로젝트</strong>: 시험 2-3개월 전에 새로 합류한 보안 프로젝트가 출제되는 경우가 있습니다. 최신 동향을 놓치지 마세요</li>
<li class=""><strong>Kubernetes 보안 문서</strong>: 공식 문서에서 Pod 보안, 네트워크 정책, RBAC, 시크릿 관리 부분은 꼭 읽어보세요</li>
</ul>
<p><strong>학습 전략:</strong></p>
<ul>
<li class="">CKS가 있거나 보안 관련 실무 경험이 있다면 준비 시간을 단축할 수 있습니다</li>
<li class="">"어떻게 구성하는가"보다 "왜 이렇게 하는가", "이게 뭔가"에 집중하세요. KCSA는 보안 개념 이해를 묻는 시험입니다</li>
<li class="">모의 시험을 꼭 풀어보세요. 실제 시험에는 핸즈온이 없고 객관식뿐이라 형식에 익숙해지는 게 중요합니다</li>
<li class="">클라우드 네이티브 환경에서 흔히 발생하는 보안 취약점과 모범 사례를 정리해두세요</li>
<li class="">CNCF 보안 프로젝트들이 생태계에서 각각 어떤 역할을 하는지 감을 잡아두세요</li>
</ul>
<p><strong>중요한 팁:</strong>
KCSA는 Kubernetes 보안 시험이 아니라 클라우드 네이티브 보안 전체를 다루는 시험입니다. Kubernetes만 공부하면 안 되고, 컨테이너 보안, 시크릿 관리, 컴플라이언스, 위협 탐지, 보안 도구까지 시간을 투자해야 합니다. 시험 전에 CNCF 블로그도 꼭 읽어보세요. 2주 전의 따끈따끈한 소식도 시험에 나올 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-요약">4. 요약<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#4-%EC%9A%94%EC%95%BD" class="hash-link" aria-label="4. 요약에 대한 직접 링크" title="4. 요약에 대한 직접 링크" translate="no">​</a></h2>
<p>KCSA는 클라우드 네이티브 보안의 큰 그림을 잡기에 좋은 자격증입니다. 저처럼 CKA/CKAD/CKS를 먼저 딴 경우에는 흩어져 있던 보안 지식을 정리하는 계기가 되고, 처음 시작하는 분들에게는 체계적인 보안 학습 로드맵이 되어줍니다.</p>
<p>KCSA의 특징을 정리하면:</p>
<ul>
<li class=""><strong>입문 수준</strong>: 클라우드 네이티브 보안을 처음 접해도 도전할 수 있음</li>
<li class=""><strong>넓은 범위</strong>: Kubernetes만이 아니라 클라우드 네이티브 보안 생태계 전체를 다룸</li>
<li class=""><strong>이론 중심</strong>: 보안 개념과 원칙에 대한 이해를 평가</li>
<li class=""><strong>보완적 성격</strong>: CKS 같은 핸즈온 자격증이나 실무 보안 경험과 함께 갖추면 시너지가 남</li>
</ul>
<p>클라우드 네이티브 보안 분야에서 기본기를 다지고 싶거나, 이미 알고 있는 보안 지식을 체계적으로 정리하고 싶다면 KCSA를 고려해보세요.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="관련-위키">관련 위키<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#%EA%B4%80%EB%A0%A8-%EC%9C%84%ED%82%A4" class="hash-link" aria-label="관련 위키에 대한 직접 링크" title="관련 위키에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/k8s/">쿠버네티스</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/container/">컨테이너</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/cncf/">CNCF</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/linux-foundation/">리눅스 재단</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="함께-읽기">함께 읽기<a href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/#%ED%95%A8%EA%BB%98-%EC%9D%BD%EA%B8%B0" class="hash-link" aria-label="함께 읽기에 대한 직접 링크" title="함께 읽기에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/">KCNA: Kubernetes and Cloud Native Associate</a></li>
</ul>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="Linux_Foundation" term="Linux_Foundation"/>
        <category label="Security" term="Security"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🎓 KCNA: Kubernetes and Cloud Native Associate (2025)]]></title>
        <id>https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/</id>
        <link href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/"/>
        <updated>2025-10-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Kubernetes 및 클라우드 네이티브 생태계에 대한 기초 지식.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>Kubernetes and Cloud Native Associate (KCNA)는 Kubernetes와 클라우드 네이티브 생태계에 대한 기초 지식을 평가하는 자격증입니다. CNCF(Cloud Native Computing Foundation)와 The Linux Foundation이 함께 만들었고, 클라우드 네이티브 기술의 기본기를 다지고 싶은 분들에게 적합합니다.</p>
<!-- -->
<p>시험은 온라인 감독 방식으로 진행되며, 90분 동안 60개의 4지선다형 문제를 풉니다. 핸즈온 없이 순수하게 이론 문제로만 구성되어 있어요. 합격 커트라인은 75%이고, 자격증 유효기간은 2년입니다. 시험 범위는 다음과 같습니다:</p>
<ul>
<li class=""><strong>Kubernetes 기초</strong>: 46% - 핵심 개념, 아키텍처, 기본 운영</li>
<li class=""><strong>컨테이너 오케스트레이션</strong>: 22% - 컨테이너 개념, 오케스트레이션 원칙, 컨테이너 런타임</li>
<li class=""><strong>클라우드 네이티브 아키텍처</strong>: 16% - 클라우드 네이티브 원칙, 패턴, 설계</li>
<li class=""><strong>클라우드 네이티브 옵저버빌리티</strong>: 8% - 모니터링, 로깅, 옵저버빌리티 도구</li>
<li class=""><strong>클라우드 네이티브 애플리케이션 딜리버리</strong>: 8% - CI/CD, GitOps, 배포 전략</li>
</ul>
<p>CKA나 CKAD처럼 실제로 클러스터를 만지는 시험이 아니라, 개념과 이론 위주로 출제됩니다. 그래서 클라우드 네이티브 세계에 첫 발을 딛는 분들에게 좋은 출발점이 될 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="KCNA 자격증" src="https://jyje.github.io/profile-2/assets/images/8984032a-6f68-4aa6-bd7d-2c786141fc80-6720374a184b05ee50a5ed6eb46adb7d.png" width="6875" height="5317" class="img_ev3q"></p>
<p><em>KCNA 자격증 2025. 2025년 10월 22일 발급. 2028년 10월 22일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/759e92f0-7b3b-4788-8eff-c20ad1e2c645" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<p>2025년 10월 22일에 KCNA 시험을 보고 합격했습니다. 이미 CKA와 CKAD를 취득한 상태였는데, KCNA는 그동안 실무에서 익힌 지식을 이론적으로 정리해볼 수 있는 좋은 기회였습니다.</p>
<p>시험 형식은 생각보다 단순합니다:</p>
<ul>
<li class="">60문제 전부 4지선다형 객관식 (터미널 작업 없음)</li>
<li class="">실제 구현보다는 개념과 원칙 위주</li>
<li class="">Kubernetes뿐 아니라 클라우드 네이티브 전반을 다룸</li>
</ul>
<p>문제는 CNCF 프로젝트, 클라우드 네이티브 아키텍처, 옵저버빌리티 도구, 애플리케이션 딜리버리 등 꽤 넓은 범위에서 출제됩니다. Kubernetes를 실무에서 다뤄본 경험이 분명 도움이 됐지만, 그것만으로는 부족하고 생태계 전반에 대한 이해가 필요했습니다.</p>
<p>저는 KodeKloud의 <a href="https://learn.kodekloud.com/user/courses/kubernetes-and-cloud-native-associate-kcna" target="_blank" rel="noopener noreferrer" class="">Kubernetes and Cloud-Native Associate (KCNA)</a> 강좌로 준비했습니다. 강사는 Mumshad Mannambeth인데, CKA/CKAD 강의로도 유명한 분이죠. Basic 플랜만 구매해도 충분히 수강할 수 있습니다 (Pro는 굳이 필요 없어요). 총 9시간 분량으로 클라우드 네이티브 아키텍처, 컨테이너 오케스트레이션, Kubernetes 기초, 애플리케이션 딜리버리, 옵저버빌리티까지 시험 범위 전체를 커버합니다. KodeKloud가 핸즈온 랩 환경을 제공하긴 하는데, 정작 KCNA 시험에는 핸즈온이 없으니 참고하세요. 강좌에 포함된 퀴즈와 모의 시험이 실제 시험 형식에 익숙해지는 데 꽤 도움이 됐습니다. Kubernetes를 어느 정도 아는 상태라면 일주일 정도면 강좌를 다 들을 수 있을 거예요.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-시험-준비-팁">3. 시험 준비 팁<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#3-%EC%8B%9C%ED%97%98-%EC%A4%80%EB%B9%84-%ED%8C%81" class="hash-link" aria-label="3. 시험 준비 팁에 대한 직접 링크" title="3. 시험 준비 팁에 대한 직접 링크" translate="no">​</a></h2>
<p>직접 시험을 치르면서 느낀 점들을 정리해봤습니다.</p>
<p><strong>꼭 챙겨야 할 리소스:</strong></p>
<ul>
<li class=""><strong>공식 CNCF 커리큘럼</strong>: 시험 영역별 비중이 명확하게 나와 있으니 반드시 확인하세요</li>
<li class=""><strong>CNCF 랜드스케이프</strong>: <a href="https://landscape.cncf.io/" target="_blank" rel="noopener noreferrer" class="">CNCF Landscape</a>는 한 번쯤 훑어보는 게 좋습니다. 프로젝트가 Graduated인지, Incubating인지, Sandbox인지 구분할 줄 알아야 하고, 각 프로젝트가 어떤 문제를 해결하는지 파악해두세요</li>
<li class=""><strong>최근 CNCF 추가 프로젝트</strong>: 시험 2-3개월 전에 새로 합류한 프로젝트가 출제되는 경우가 있습니다. 최신 동향을 놓치지 마세요</li>
</ul>
<p><strong>학습 전략:</strong></p>
<ul>
<li class="">CKA/CKAD가 있다면 KodeKloud 강좌는 일주일이면 충분합니다</li>
<li class="">"어떻게 하는가"보다 "왜 이렇게 하는가", "이게 뭔가"에 집중하세요. KCNA는 개념 이해를 묻는 시험입니다</li>
<li class="">모의 시험을 꼭 풀어보세요. 실제 시험에는 핸즈온이 없고 객관식뿐이라 형식에 익숙해지는 게 중요합니다</li>
<li class="">CNCF 프로젝트 공식 문서를 읽어보면서 각 프로젝트가 생태계에서 어떤 역할을 하는지 감을 잡아두세요</li>
</ul>
<p><strong>중요한 팁:</strong>
KCNA는 Kubernetes 시험이 아니라 클라우드 네이티브 전체를 다루는 시험입니다. Kubernetes만 공부하면 안 되고, 옵저버빌리티 도구, CI/CD, GitOps, 클라우드 네이티브 아키텍처 패턴까지 시간을 투자해야 합니다. 시험치기 전에 CNCF 블로그도 읽어보시는 것을 추천합니다. 2주 전의 따끈따끈한 소식도 시험에 나올 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-요약">4. 요약<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#4-%EC%9A%94%EC%95%BD" class="hash-link" aria-label="4. 요약에 대한 직접 링크" title="4. 요약에 대한 직접 링크" translate="no">​</a></h2>
<p>KCNA는 클라우드 네이티브 생태계의 큰 그림을 잡기에 좋은 자격증입니다. 저처럼 CKA/CKAD를 먼저 딴 경우에는 흩어져 있던 이론 지식을 정리하는 계기가 되고, 처음 시작하는 분들에게는 체계적인 학습 로드맵이 되어줍니다.</p>
<p>KCNA의 특징을 정리하면:</p>
<ul>
<li class=""><strong>입문 수준</strong>: 클라우드 네이티브를 처음 접해도 도전할 수 있음</li>
<li class=""><strong>넓은 범위</strong>: Kubernetes만이 아니라 클라우드 네이티브 생태계 전체를 다룸</li>
<li class=""><strong>이론 중심</strong>: 개념과 원칙에 대한 이해를 평가</li>
<li class=""><strong>보완적 성격</strong>: CKA, CKAD 같은 핸즈온 자격증과 함께 갖추면 시너지가 남</li>
</ul>
<p>클라우드 네이티브 분야에서 기본기를 다지고 싶거나, 이미 알고 있는 내용을 체계적으로 정리하고 싶다면 KCNA를 고려해보세요.</p>
<p>이 자격증은 <a href="https://www.linkedin.com/posts/jyje_the-linux-foundation-%EC%9E%90%EA%B2%A9%EC%88%98%EB%A3%8C%EC%A6%9Dkcna-kubernetes-activity-7388695644942684160-Nw_Y" target="_blank" rel="noopener noreferrer" class="">LinkedIn 게시물</a>에서 공유했습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="관련-위키">관련 위키<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#%EA%B4%80%EB%A0%A8-%EC%9C%84%ED%82%A4" class="hash-link" aria-label="관련 위키에 대한 직접 링크" title="관련 위키에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/k8s/">쿠버네티스</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/container/">컨테이너</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/cncf/">CNCF</a></li>
<li class=""><a class="" href="https://jyje.github.io/profile-2/wiki/d/linux-foundation/">리눅스 재단</a></li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="함께-읽기">함께 읽기<a href="https://jyje.github.io/profile-2/blog/kcna-kubernetes-and-cloud-native-associate/#%ED%95%A8%EA%BB%98-%EC%9D%BD%EA%B8%B0" class="hash-link" aria-label="함께 읽기에 대한 직접 링크" title="함께 읽기에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><a class="" href="https://jyje.github.io/profile-2/blog/kcsa-kubernetes-and-cloud-native-security-associate/">KCSA: Kubernetes and Cloud Native Security Associate</a></li>
</ul>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="Linux_Foundation" term="Linux_Foundation"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🎉 현대오토에버에 AI/MLOps 엔지니어로 합류했습니다]]></title>
        <id>https://jyje.github.io/profile-2/blog/hae-joined-hyundai-autoever-as-ai-mlops-engineer/</id>
        <link href="https://jyje.github.io/profile-2/blog/hae-joined-hyundai-autoever-as-ai-mlops-engineer/"/>
        <updated>2025-02-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[현대오토에버 AI/MLOps 엔지니어로 합류하여, 자동차 도메인을 위한 엔터프라이즈 AI 플랫폼과 ML 파이프라인을 담당합니다. <br/><b>2025년 2월 24일부터</b>]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-aimlops-엔지니어-역할-소개">1. AI/MLOps 엔지니어 역할 소개<a href="https://jyje.github.io/profile-2/blog/hae-joined-hyundai-autoever-as-ai-mlops-engineer/#1-aimlops-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4-%EC%97%AD%ED%95%A0-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. AI/MLOps 엔지니어 역할 소개에 대한 직접 링크" title="1. AI/MLOps 엔지니어 역할 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>현대오토에버의 AI/MLOps 엔지니어는 자동차 산업을 위한 엔터프라이즈 규모의 AI 플랫폼과 ML 인프라 개발을 담당합니다. 주요 업무는 다음과 같습니다:</p>
<!-- -->
<ul>
<li class="">자동차 도메인 지식을 활용한 엔터프라이즈 AI 플랫폼 및 LLM+RAG 시스템 구축</li>
<li class="">소프트웨어 정의 차량(SDV)을 위한 ML 파이프라인 인프라 개발</li>
<li class="">MLOps 방법론을 활용한 자율주행 개발 지원</li>
<li class="">확장 가능한 AI 서비스를 위한 클라우드 네이티브 솔루션 구현</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-저의-경험과-역량">2. 저의 경험과 역량<a href="https://jyje.github.io/profile-2/blog/hae-joined-hyundai-autoever-as-ai-mlops-engineer/#2-%EC%A0%80%EC%9D%98-%EA%B2%BD%ED%97%98%EA%B3%BC-%EC%97%AD%EB%9F%89" class="hash-link" aria-label="2. 저의 경험과 역량에 대한 직접 링크" title="2. 저의 경험과 역량에 대한 직접 링크" translate="no">​</a></h2>
<p>이 역할은 제 커리어의 세 가지 핵심 역량이 교차하는 지점에 있습니다:</p>
<ul>
<li class=""><strong>자동차 도메인 전문성</strong>: 8년 이상의 컴퓨터 비전 및 ADAS(첨단 운전자 보조 시스템) 연구 개발 경험</li>
<li class=""><strong>인프라 및 DevOps 역량</strong>: 비용 효율적인 하이브리드 Kubernetes 클러스터 기반의 시스템 설계 및 운영</li>
<li class=""><strong>GenAI 및 MLOps 기술력</strong>: LLM+RAG 시스템, 머신러닝 파이프라인 및 자동화 솔루션 구축 경험</li>
</ul>
<p>이러한 도메인 지식과 탄탄한 인프라 엔지니어링, 최신 AI 기술력의 융합을 바탕으로 소프트웨어 정의 차량(SDV)의 혁신에 기여하고자 합니다.</p>
<ul>
<li class=""><strong>기술 스택</strong>:
<ul>
<li class="">MLOps: Kubeflow, Katib, Training Operator, JupyterHub</li>
<li class="">LLMOps: RAG, Vector DBs, Ollama</li>
<li class="">인프라: Kubernetes, AWS EKS, Terraform, Argo Projects</li>
<li class="">컴퓨터 비전: SLAM, SfM, Supervised/Unsupervised Learning, Object Detection</li>
<li class="">소프트 스킬: 좋은 동료가 되려는 마음가짐 ☺️</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-share-to-the-world">3. Share to the World<a href="https://jyje.github.io/profile-2/blog/hae-joined-hyundai-autoever-as-ai-mlops-engineer/#3-share-to-the-world" class="hash-link" aria-label="3. Share to the World에 대한 직접 링크" title="3. Share to the World에 대한 직접 링크" translate="no">​</a></h2>
<p>LinkedIn 게시물에서 자세한 내용을 확인하세요: <a href="https://www.linkedin.com/posts/jyje_ko-hyundai-autoever-%ED%98%84%EB%8C%80%EC%98%A4%ED%86%A0%EC%97%90%EB%B2%84-%EC%97%90%EC%84%9C-aimlops-activity-7301174374303158272-Lh5X?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAADjDTcIBdoOgl5sAEp4PtSRYd0bwmxg3mVM" target="_blank" rel="noopener noreferrer" class="">New Role: AI/MLOps Engineer at Hyundai AutoEver</a></p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Careers" term="Careers"/>
        <category label="AI" term="AI"/>
        <category label="MLOps" term="MLOps"/>
        <category label="Hyundai_AutoEver" term="Hyundai_AutoEver"/>
        <category label="LLM" term="LLM"/>
        <category label="LinkedIn" term="LinkedIn"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🐙 GitHub Foundations (2024)]]></title>
        <id>https://jyje.github.io/profile-2/blog/github-foundations/</id>
        <link href="https://jyje.github.io/profile-2/blog/github-foundations/"/>
        <updated>2024-11-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[GitHub 기본 구조와 협업을 위한 핵심 역량.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/github-foundations/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>GitHub Foundations 자격증은 기본 Git 작업부터 CodeSpaces 같은 엔터프라이즈 협업 기능까지, GitHub의 기본 구조와 사용법에 대한 핵심 역량을 검증합니다. 이 자격증은 2024년 개발자라면 반드시 알아야 할 필수 GitHub 지식을 다룹니다:</p>
<!-- -->
<ul>
<li class="">기본 Git 및 GitHub 사용법</li>
<li class="">GitHub 고급 기능: Issues, Pull Requests, Projects, Team Management</li>
<li class="">최신 GitHub 제품: CodeSpaces, Copilot</li>
<li class="">엔터프라이즈 기능 및 관리</li>
</ul>
<p>시험은 120분 안에 75개의 객관식 문제를 풀어야 합니다. 이 중 60문제는 채점 대상이고, 15문제는 미채점 실험 문항입니다. 합격 시 자격증 유효기간은 3년입니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/github-foundations/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="GitHub Foundations 자격증" src="https://jyje.github.io/profile-2/assets/images/587c064f-166f-4a37-8cd6-ac21c080b40c-6acea0269fadbcf6bb2167740131963b.png" width="1650" height="1275" class="img_ev3q"></p>
<p><em>GitHub Foundations 자격증 2024. 2024년 11월 19일 발급. 2027년 11월 18일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/876fa6b3-0b27-4ddf-bbb3-a9d853918566" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<p>주로 두 가지 자료를 활용해 시험을 준비했습니다:</p>
<ol>
<li class="">
<p><a href="https://learn.microsoft.com/en-us/training/paths/github-foundations" target="_blank" rel="noopener noreferrer" class="">Microsoft Learn - GitHub Foundations</a> (무료)</p>
<ul>
<li class="">풍부한 핸즈온 랩</li>
<li class="">최신 GitHub 기능이 항상 반영됨</li>
<li class="">GitHub Skills 플랫폼을 통한 실전 연습</li>
</ul>
</li>
<li class="">
<p><a href="https://www.linkedin.com/learning/paths/prepare-for-the-github-foundations-certification" target="_blank" rel="noopener noreferrer" class="">LinkedIn Learning - Prepare for the GitHub Foundations Certification</a> (유료)</p>
<ul>
<li class="">영상 기반 학습</li>
<li class="">복습과 내용 정리에 적합</li>
<li class="">엔터프라이즈 기능을 꼼꼼히 다룸</li>
</ul>
</li>
</ol>
<p>그 외에도 freeCodeCamp에서 시험 내용과 실전 팁을 함께 다루는 훌륭한 무료 종합 영상이 있습니다:</p>
<p align="center">
  <iframe width="100%" height="500" src="https://www.youtube.com/embed/Jdc0i7RcBv8" frameborder="0" allowfullscreen=""></iframe>
</p>
<p>이 영상은 시험 형식을 전반적으로 잘 설명해주고, 핵심 개념을 상세하게 풀어줍니다. 특히 시험에서 무엇을 예상해야 할지 파악하는 데 도움이 됩니다.</p>
<p>시험은 GitHub에 대한 기초와 고급 지식을 함께 묻습니다. 대부분의 문제는 GitHub를 익숙하게 사용하는 사람이라면 무난했지만, 엔터프라이즈 관련 문제들은 까다로웠습니다. 시험 인터페이스에서는 다음과 같은 기능을 제공합니다:</p>
<ul>
<li class="">나중에 검토할 문제 플래그 표시</li>
<li class="">단일 선택 및 복수 선택 문제</li>
<li class="">효율적인 탐색을 위한 키보드 단축키</li>
</ul>
<p>엔터프라이즈 및 팀 관리 섹션이 특히 어려웠는데, 엔터프라이즈 접근 권한 없이는 이 기능들을 연습하기 어렵기 때문입니다. 그러나 Microsoft Learn 랩을 통한 핸즈온 경험이 자격증의 실무적인 부분에서 큰 도움이 됐습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-요약">3. 요약<a href="https://jyje.github.io/profile-2/blog/github-foundations/#3-%EC%9A%94%EC%95%BD" class="hash-link" aria-label="3. 요약에 대한 직접 링크" title="3. 요약에 대한 직접 링크" translate="no">​</a></h2>
<p>GitHub Foundations 자격증은 GitHub 역량을 검증하고 싶은 개발자에게 좋은 출발점입니다. 경험 많은 사용자에게는 기초적으로 느껴질 수도 있지만, GitHub Copilot, CodeSpaces, 엔터프라이즈 협업 도구처럼 많은 개발자가 놓치기 쉬운 GitHub의 최신 기능들을 폭넓게 다룹니다.</p>
<p>이 자격증을 준비하는 분들에게 권합니다:</p>
<ul>
<li class="">Microsoft Learn 무료 리소스를 최대한 활용하세요</li>
<li class="">GitHub Skills 핸즈온 랩으로 실습하세요</li>
<li class="">엔터프라이즈 기능과 팀 관리 개념에 집중하세요</li>
<li class="">자격증 할인 기회를 노려보세요 (가끔 50~100% 할인이 있습니다)</li>
</ul>
<p>당장 다른 GitHub 자격증을 취득할 계획은 없지만, GitHub Copilot과 GitHub Models를 중심으로 한 GitHub AI 자격증에 관심을 갖고 지켜보고 있습니다. 지금은 검증된 이 역량들을 실제 프로젝트에 적용하고, 다른 분들의 GitHub 여정을 돕는 데 집중하겠습니다.</p>
<p>GitHub Foundations 자격증을 고려하는 분들께 이 글이 도움이 되길 바랍니다. 효과적인 버전 관리와 협업 능력은 현대 소프트웨어 개발의 기본입니다. 이 자격증을 취득하든 안 하든, 이러한 역량을 갖추는 것은 모든 개발자의 커리어 성장에 필수적입니다.</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="GitHub" term="GitHub"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🏙️ Widearth: AR 및 디지털 트윈 플랫폼 @ MAXST]]></title>
        <id>https://jyje.github.io/profile-2/blog/widearth-digital-twins-platforms-at-maxst/</id>
        <link href="https://jyje.github.io/profile-2/blog/widearth-digital-twins-platforms-at-maxst/"/>
        <updated>2024-11-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[실제 공간 기반 AR 및 디지털 트윈 서비스를 위한 완전 관리형 플랫폼. ML/인프라 리드 엔지니어로서 플랫폼 개발에 기여했습니다.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="요약">요약<a href="https://jyje.github.io/profile-2/blog/widearth-digital-twins-platforms-at-maxst/#%EC%9A%94%EC%95%BD" class="hash-link" aria-label="요약에 대한 직접 링크" title="요약에 대한 직접 링크" translate="no">​</a></h2>
<ul>
<li class=""><strong>제목</strong>: <strong>AR &amp; 디지털 트윈 플랫폼 <a href="https://widearth.world/" target="_blank" rel="noopener noreferrer" class="">Widearth</a> 개발</strong></li>
<li class=""><strong>웹사이트</strong>: <a href="https://widearth.world/" target="_blank" rel="noopener noreferrer" class="">https://widearth.world</a></li>
<li class=""><strong>기간</strong>: <strong>2024년 1월 – 2024년 10월 (10개월)</strong></li>
<li class=""><strong>역할</strong>: <strong>ML/인프라 리드 ~ MLOps/DevOps + ML 백엔드 + SRE [기여도 75%]</strong>
<ul>
<li class=""><strong>DevOps &amp; SRE</strong>
<ul>
<li class="">IaC, GitOps, CI/CD 파이프라인, 모니터링, 로깅, 알림, 다중 배포 시나리오, 긴급 대응</li>
</ul>
</li>
<li class=""><strong>하이브리드 클러스터</strong>
<ul>
<li class="">AWS EKS + Bare Metal Kubernetes, API 게이트웨이 패턴, 동적 인스턴스 관리, GPU 비용 최적화</li>
</ul>
</li>
<li class=""><strong>ML 워크로드</strong>
<ul>
<li class="">ML API, ML 파이프라인, 데이터 레이크, 도커화, 모델 CI/CD</li>
</ul>
</li>
</ul>
</li>
<li class=""><strong>결과: 서비스 성공 출시 ~ 소규모 팀, 전 기능 구현, 가용성 개선, 비용 절감</strong>
<ul>
<li class=""><strong>서비스 출시</strong>
<ul>
<li class="">총 15명(개발자 8명, 인프라 담당 1명)이 기획 및 개발에 참여하여 플랫폼 출시와 운영에 기여</li>
</ul>
</li>
<li class=""><strong>고효율 ML</strong>
<ul>
<li class="">하이브리드 클러스터의 온프레미스 인프라에서 ML 파이프라인을 실시간으로 실행. 운영 환경에서 300개 이상의 공간 맵을 생성했으며, 기존 서비스 대비 월간 클라우드 비용을 70%, 약 1,500만원 절감</li>
</ul>
</li>
<li class=""><strong>고가용성 인프라</strong>
<ul>
<li class="">하이브리드 클러스터와 장애 대응을 통해 연간 가용률 96%, 다운타임 14일 이내의 서비스를 구현</li>
</ul>
</li>
</ul>
</li>
<li class=""><strong>사용 기술</strong>
<ul>
<li class="">AWS EKS</li>
<li class="">Kubespray</li>
<li class="">Python/FastAPI</li>
<li class="">Argo Workflows</li>
<li class="">Argo CD</li>
<li class="">Bitbucket Pipelines</li>
<li class="">Karpenter</li>
</ul>
</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="상세-내용">상세 내용<a href="https://jyje.github.io/profile-2/blog/widearth-digital-twins-platforms-at-maxst/#%EC%83%81%EC%84%B8-%EB%82%B4%EC%9A%A9" class="hash-link" aria-label="상세 내용에 대한 직접 링크" title="상세 내용에 대한 직접 링크" translate="no">​</a></h2>
<p>디지털 트윈 플랫폼을 위한 하이브리드 아키텍처를 구성했습니다.</p>
<blockquote>
<p>내부 보안 규정에 따라 일부 내용은 생략하거나 간략히 서술했습니다.</p>
</blockquote>
<p><img decoding="async" loading="lazy" alt="Widearth의 운영 흐름 및 사용자 행동 패턴" src="https://jyje.github.io/profile-2/assets/images/964ffa59-e690-4b3b-b52a-a16e69728246-c5436186b7f57c54d638ef0f0fba457f.png" width="2560" height="1440" class="img_ev3q">
<em>Widearth의 운영 흐름 및 사용자 행동 패턴</em></p>
<p>Widearth는 디지털 트윈 기술을 활용하여 공간 맵을 생성하는 <strong>B2B2C</strong> 비즈니스입니다. 일반 소비자에게 서비스를 제공하기 전에 주요 고객사를 거치는 플랫폼 비즈니스 형태입니다.</p>
<!-- -->
<ul>
<li class="">사용자 구분
<ul>
<li class=""><strong>사용자 A (디지털 트윈 콘텐츠 제공자)</strong>
<ul>
<li class=""><strong>사용자 A</strong>는 보유한 워크스페이스(1)를 이용해 공간 맵(2)을 생성할 수 있습니다.</li>
<li class="">생성된 공간 맵은 클라우드에 저장되며, <strong>사용자 A</strong>는 콘텐츠 스튜디오(3)를 통해 이를 공유할 수 있습니다. 공유 대상은 **사용자 B(디지털 트윈 콘텐츠 소비자)**입니다.</li>
<li class=""><strong>사용자 A</strong>는 콘텐츠(4)를 수정하거나 추가하고, 개인정보 보호를 위해 개인정보를 처리할 수도 있습니다.</li>
<li class=""><strong>사용자 A</strong>의 대표 후보군은 **'소통을 통한 공간 공유로 수익을 창출하는 주체'**이며, 예시는 다음과 같습니다:
<ul>
<li class="">부동산 / 여행 / 미술관 / 음식점 / 중공업 / 가상 공간 / 장애인 편의시설</li>
<li class="">이들의 목표는 **'현장을 방문하지 않은 고객의 니즈를 충족하는 것'**입니다.
<ul>
<li class="">현장 방문 전 / 방문 후 / 방문이 불가능한 경우 / 현장이 바뀐 경우</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class=""><strong>사용자 B (디지털 트윈 콘텐츠 소비자)</strong>
<ul>
<li class=""><strong>사용자 B</strong>는 <strong>사용자 A</strong>가 제공하는 공간 맵 서비스를 이용하는 주체입니다.</li>
<li class=""><strong>사용자 B</strong>의 대표 후보군은 **'소통을 통한 공간 소비로 수익을 창출하는 주체'**이며, 예시는 다음과 같습니다:
<ul>
<li class="">잠재적 부동산 소비자 / 잠재적 여행자 / 잠재적 미술관 방문객 / 잠재적 음식점 고객 / 잠재적 입사 지원자 / 가상 공간 이용자 / 장애인 및 보호자</li>
<li class="">이들은 <strong>사용자 A</strong>로부터 공간 정보를 얻고 서비스를 이용하는 <strong>고객</strong>입니다.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<hr>
<hr>
<p><img decoding="async" loading="lazy" alt="사용자가 상호작용하는 퍼블릭 클라우드 영역에 해당하는 Widearth 아키텍처" src="https://jyje.github.io/profile-2/assets/images/61a39148-4f5a-4424-862c-26a0adcda660-de78f58c3d2aa58c0406112a84a23019.png" width="2560" height="1440" class="img_ev3q">
<em>사용자가 상호작용하는 퍼블릭 클라우드 영역에 해당하는 Widearth 아키텍처</em></p>
<ul>
<li class="">사용자가 상호작용하는 영역으로, 주로 플랫폼의 퍼블릭 클라우드 영역입니다.</li>
<li class="">FE/BE/파이프라인을 분리한 MSA(마이크로서비스 아키텍처, 또는 미니 서비스 아키텍처)로 구성되어 있습니다. 각 서비스의 데이터베이스가 엄격하게 분리되어 있지 않으므로 **'미니 서비스 아키텍처'**라고 부르는 것이 더 적절합니다.</li>
<li class="">단일/멀티 클러스터로 운영 가능하며, 모든 서버는 사용량과 환경에 따라 수평 확장이 가능하도록 설계되었습니다.</li>
<li class="">파이프라인은 아래의 하이브리드 아키텍처에서 상세히 설명합니다.</li>
</ul>
<hr>
<hr>
<p><img decoding="async" loading="lazy" alt="파이프라인이 동작하는 하이브리드 클라우드 영역에 해당하는 Widearth 아키텍처" src="https://jyje.github.io/profile-2/assets/images/7e09a770-db47-4ae1-8fce-346220ac39ff-591ce79adce9817829ddf027193efdb0.png" width="2560" height="1440" class="img_ev3q">
<em>파이프라인이 동작하는 하이브리드 클라우드 영역에 해당하는 Widearth 아키텍처</em></p>
<ul>
<li class="">파이프라인이 동작하는 영역으로, 온프레미스와 퍼블릭 클라우드를 함께 사용합니다.</li>
<li class="">파이프라인은 온프레미스와 퍼블릭 클라우드에 동일한 스펙으로 구성됩니다. 이를 위해 각 클라우드에 '파일 스토리지'와 '오브젝트 스토리지'를 별도로 구성했습니다.</li>
<li class="">백오피스용 로깅 및 메타데이터 데이터베이스는 가용성과 관리 편의를 위해 퍼블릭 클라우드에만 구성했습니다.</li>
<li class="">파이프라인은 온프레미스 데이터센터의 가용 영역에 우선 할당됩니다. 온프레미스가 응답하지 않거나 모든 영역이 할당된 경우에는 퍼블릭 클라우드에 차순위로 할당하여 파이프라인을 활성화합니다.
<ul>
<li class="">온프레미스 데이터센터에 장애/재해가 발생한 경우</li>
<li class="">요청이 온프레미스 데이터센터의 가용 용량을 초과한 경우</li>
</ul>
</li>
<li class="">퍼블릭 클라우드에는 FE/BE를 서비스하는 클러스터에 파이프라인을 위한 최소한의 자원만 할당합니다. 파이프라인이 퍼블릭 클라우드에 할당되면 노드가 프로비저닝되어 활성화됩니다.</li>
</ul>
<p>이 하이브리드 아키텍처를 통해 고성능, 고효율, 고가용성을 갖춘 플랫폼을 운영할 수 있었습니다.</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Achievements" term="Achievements"/>
        <category label="MAXST" term="MAXST"/>
        <category label="Digital_Twins" term="Digital_Twins"/>
        <category label="DevOps" term="DevOps"/>
        <category label="MLOps" term="MLOps"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="On_Premise" term="On_Premise"/>
        <category label="AWS" term="AWS"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🎓 CAPA: Certified Argo Project Associate (2024)]]></title>
        <id>https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/</id>
        <link href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/"/>
        <updated>2024-09-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[실무에서 쓰던 유용한 Argo 프로젝트, 정말 잘 알고 쓰는 게 맞는지 자격증으로 점검해봤습니다. CAPA 합격 후기와 함께, 실무에 바로 적용했던 공식 문서 링크들을 모았어요.]]></summary>
        <content type="html"><![CDATA[<p>지난 주말에 합격한 <a href="https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/" target="_blank" rel="noopener noreferrer" class="">CAPA (Certified Argo Project Associate)</a> 자격증 취득 후기를 공유드립니다. CAPA는 2024년 상반기에 신설된 따끈따끈한 자격증으로, <a href="https://argoproj.github.io/" target="_blank" rel="noopener noreferrer" class="">Argo 프로젝트</a>를 다루는 역량을 검증하는 Associate 수준의 시험입니다. 이 글은 Argo 프로젝트와 CAPA 자격증에 대한 간단한 소개, 그리고 제 취득 과정에 대한 기록입니다. CAPA에 도전하시거나 관심이 있는 분들에게 도움이 되기를 바랍니다 🚀</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="argo-프로젝트란">Argo 프로젝트란?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#argo-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%9E%80" class="hash-link" aria-label="Argo 프로젝트란?에 대한 직접 링크" title="Argo 프로젝트란?에 대한 직접 링크" translate="no">​</a></h3>
<figure class="figure_iPK5"><img src="https://jyje.github.io/profile-2/img/legacy/capa-octopus-mascot.jpg" alt="공식 마스코트는 아니에요 - 닮은꼴인 문어 인형 사진입니다" loading="lazy"><figcaption>공식 마스코트는 아니에요 - 문어(혹은 쭈꾸미)를 닮은 인형 사진이에요.<br>Photo by<!-- --> <a href="https://unsplash.com/@cosiela?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Cosiela Borta</a> <!-- -->on<!-- --> <a href="https://unsplash.com/photos/a-pink-octopus-stuffed-animal-sitting-on-top-of-a-table-S3VKHlvBfMA?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a></figcaption></figure>
<p><a href="https://argoproj.github.io/" target="_blank" rel="noopener noreferrer" class="">Argo 프로젝트</a>는 쿠버네티스 클러스터와 결합해 클러스터를 하나의 DevOps 플랫폼처럼 동작하게 만드는 도구 모음으로, 쿠버네티스 활용 사례가 늘어나면서 점점 더 주목받고 있습니다. 4개의 구성 요소로 이루어져 있습니다:</p>
<ul>
<li class=""><strong>Argo Workflows</strong>: ML 파이프라인, CI/CD 파이프라인 등 범용 워크플로우를 위한 오케스트레이션 엔진</li>
<li class=""><strong>Argo CD</strong>: 선언형 지속적 배포 도구 (4개 도구 중 가장 유명합니다)</li>
<li class=""><strong>Argo Rollouts</strong>: 다양한 배포 전략을 지원하는 업데이트 관리 도구</li>
<li class=""><strong>Argo Events</strong>: 코드 변경 등 다양한 이벤트를 감지하는 이벤트 기반 자동화 도구</li>
</ul>
<p>겉보기에는 CI/CD 도구 모음 같지만, 실제로는 쿠버네티스와 결합해 범용으로 쓸 수 있도록 설계되었습니다. Argo Workflows로 CI 대신 데이터·ML 파이프라인을 구성할 수 있고, Argo CD로 웹서버 대신 쿠버네티스 리소스를(심지어 Argo CD 스스로도) 배포할 수 있습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="capa-자격증이란">CAPA 자격증이란?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#capa-%EC%9E%90%EA%B2%A9%EC%A6%9D%EC%9D%B4%EB%9E%80" class="hash-link" aria-label="CAPA 자격증이란?에 대한 직접 링크" title="CAPA 자격증이란?에 대한 직접 링크" translate="no">​</a></h3>
<p><a href="https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/" target="_blank" rel="noopener noreferrer" class="">CAPA (Certified Argo Project Associate)</a>는 Argo 프로젝트의 4가지 앱(Workflows, CD, Events, Rollouts)에 대한 이해와 사용법을 검증하는 시험입니다. 특징은 다음과 같습니다:</p>
<ul>
<li class="">CNCF와 Linux Foundation이 시행하는 국제 기술 자격증입니다.</li>
<li class="">입문-중급 난도의 Associate 시험으로, 아직 더 높은 난도의 자격증은 없습니다.</li>
<li class="">감독관과 소통하며 응시하는 라이브 시험으로, <a href="https://test-takers.psiexams.com/" target="_blank" rel="noopener noreferrer" class="">PSI 시큐어 브라우저</a> 환경에서 진행됩니다.</li>
<li class="">90분 동안 60문항(4지선다 객관식)을 풀어야 하며, 75/100점을 얻으면 합격입니다. 최대 2회 응시할 수 있습니다.</li>
<li class="">합격 시점부터 2년간 유효하며, 제출 후 약 10분 안에 합격 여부를 알 수 있습니다.</li>
</ul>
<p>CKA, CKAD, CKS 같은 쿠버네티스 자격증에 응시해보신 분들에게는 익숙한 시험 환경입니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="CAPA 자격증" src="https://jyje.github.io/profile-2/assets/images/capa-certificate-27cac62e4346b6f918ae69bbcfa207c2.png" width="1200" height="928" class="img_ev3q"></p>
<p><em>CAPA 자격증 2024. 2024년 9월 14일 발급, 2026년 9월 15일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/ee42c2c7-2ac3-411f-8713-cc26cbec8022" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="왜-취득했나요">왜 취득했나요?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#%EC%99%9C-%EC%B7%A8%EB%93%9D%ED%96%88%EB%82%98%EC%9A%94" class="hash-link" aria-label="왜 취득했나요?에 대한 직접 링크" title="왜 취득했나요?에 대한 직접 링크" translate="no">​</a></h3>
<p><strong>1. 2년간 회사 업무에서 Argo 프로젝트를 적극 사용해왔고, 이에 대한 중간 점검을 하고 싶었습니다.</strong></p>
<ul>
<li class="">데이터 파이프라인과 CI/CD 파이프라인의 엔진으로 Argo Workflows를 사용했습니다.</li>
<li class="">웹 배포와 쿠버네티스 리소스 배포에 Argo CD를 사용했습니다.</li>
<li class="">여러 배포 전략을 코드로 관리하기 위해 Argo Rollouts를 도입했습니다.</li>
<li class="">커스텀 CI/CD를 위한 이벤트 소싱으로 Argo Events를 사용했습니다.</li>
</ul>
<p><strong>2. Argo 프로젝트의 국내 도입 사례가 늘어나고 있어, 업계 트렌드를 잘 따라가고 싶었습니다.</strong></p>
<p>당근, 토스, 데브시스터즈, 사이오닉AI 등 IT 대기업과 유니콘 AI 기업에서 Argo 프로젝트를 사용하는 사례가 점차 늘고 있습니다. 트렌디한 기술을 제대로 소화하고, 사용 경험을 기록하는 것을 넘어 공인 자격증으로 예측 가능한 역량을 확보하고 싶었습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="도움이-됐나요">도움이 됐나요?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#%EB%8F%84%EC%9B%80%EC%9D%B4-%EB%90%90%EB%82%98%EC%9A%94" class="hash-link" aria-label="도움이 됐나요?에 대한 직접 링크" title="도움이 됐나요?에 대한 직접 링크" translate="no">​</a></h3>
<p>많은 도움이 되었습니다. Argo Workflows와 Argo CD는 거의 매일 사용했지만, 막상 체계적으로 정리해본 적은 없었거든요. 이번 기회에 배운 내용을 정리하고, 부족했던 부분도 채울 수 있었습니다.</p>
<p><strong>자격증 취득 전</strong>에는 4가지 Argo 앱의 기획 의도와 사용처에 대한 개념을 확실히 정리할 수 있었고, 상대적으로 덜 사용했던 Argo Rollouts와 Argo Events의 숨은 기능들을 알게 되었습니다. Argo Rollouts의 모든 배포 전략(canary, blue/green, delayed rolling, 커스텀 업데이트 등)과 Argo Events의 다양한 트리거(쿠버네티스 리소스 트리거, S3 트리거, 커스텀 웹훅 트리거 등)를 직접 테스트해봤습니다. 업무에 필요한 기능만 쓰고 있었는데, 많은 기여자들이 만들어 둔 기능을 비로소 제대로 활용할 수 있게 되었습니다.</p>
<p><strong>자격증 취득 후</strong>에는 공식 문서를 더 꼼꼼히 보게 되었고, 자주 쓰던 Argo Workflows와 Argo CD에서도 몰랐던 기능을 발견하면서 리팩터링하고 싶은 부분이 많이 떠올랐습니다. 몇 가지 예를 들면:</p>
<ul>
<li class=""><a href="https://argo-workflows.readthedocs.io/en/stable/argo-server-sso/" target="_blank" rel="noopener noreferrer" class="">Argo Workflows의 SSO 게스트 계정</a>
<ul>
<li class="">"신규 입사자가 워크플로우를 모니터링은 하되 리소스를 삭제하지 못하게 할 수 있을까?" → SSO + RBAC으로 초기 권한을 최소화해서 관리할 수 있습니다. (이 부분은 CKA에서 다루는 스킬과도 맞닿아 있었습니다)</li>
</ul>
</li>
<li class=""><a href="https://argo-cd.readthedocs.io/en/stable/user-guide/sync_windows/" target="_blank" rel="noopener noreferrer" class="">Argo CD의 싱크 윈도우(Sync Windows)</a>
<ul>
<li class="">"정기 점검하는 목요일 새벽에는 오토싱크를 꺼둘 수 있을까?" → <code>syncWindows</code>에 목요일만 <code>deny</code>로 설정하면, 원하는 시간대에 동기화가 일어나지 않게 할 수 있습니다.</li>
</ul>
</li>
<li class=""><a href="https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Git/" target="_blank" rel="noopener noreferrer" class="">Argo CD의 ApplicationSet Git Generator</a>
<ul>
<li class="">"운영 중에 부수적으로 생기는 리소스도 함께 동기화하고 제어할 수 있을까?" → <code>ApplicationSet</code>을 이용하면 git 리포지토리의 하위 디렉토리와 쿠버네티스 파생 리소스를 동기화할 수 있습니다.</li>
</ul>
</li>
</ul>
<p>결국 모든 오픈소스 활용의 공통 역량은 <strong>공식 문서를 잘 읽고 활용하는 것</strong>이라는 사실을 다시 한번 깨달았습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="시험은-어떻게-준비했나요">시험은 어떻게 준비했나요?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#%EC%8B%9C%ED%97%98%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A4%80%EB%B9%84%ED%96%88%EB%82%98%EC%9A%94" class="hash-link" aria-label="시험은 어떻게 준비했나요?에 대한 직접 링크" title="시험은 어떻게 준비했나요?에 대한 직접 링크" translate="no">​</a></h3>
<p>신생 시험이라 자료가 충분하지 않습니다. Argo Workflows와 Argo CD는 한국어 자료도 꽤 있지만, Argo Rollouts와 Argo Events는 거의 공식 문서에만 의존해야 했습니다.</p>
<p>사설 강의는 거의 없고, 공식 강의인 <a href="https://training.linuxfoundation.org/training/devops-and-workflow-management-with-argo-lfs256/" target="_blank" rel="noopener noreferrer" class="">DevOps and Workflow Management with Argo (LFS256)</a>가 있습니다. 이 강의를 정주행하면 시험 범위를 충분히 커버할 수 있을 거라 생각합니다. 저는 무슨 생각이었는지 강의 없이 시험만 구매했는데, 현업에서 사용 중이니 큰 공부 없이도 패스할 수 있을 거라 생각했나 봅니다. 그리고 꽤 고생했습니다. 여러분의 정신 건강을 위해 할인 기간에 강의도 함께 구매하시는 걸 추천드립니다.</p>
<p>저는 결국 <a href="https://argo-cd.readthedocs.io/" target="_blank" rel="noopener noreferrer" class="">공식 문서</a>와 GitHub 소스 코드로 독학했습니다. 시험 범위는 <a href="https://github.com/cncf/curriculum/blob/master/CAPA_Curriculum.pdf" target="_blank" rel="noopener noreferrer" class="">CAPA Curriculum PDF</a>에 정리되어 있는데, 어떤 게 시험에 나올지 가늠하기 어려워서 모든 항목을 공부했습니다. 1회차는 문서를 정독하는 겉핥기, 2회차는 나올 법한 부분을 직접 구현해보는 식으로 진행했습니다. Hands-on이 아닌 객관식 시험이라 오픈북도, 실행하며 검증하기도 어려우니 미리 실험해보는 게 좋습니다. 실험에는 docker-desktop, kind, microk8s, orbstack 같은 쿠버네티스 시뮬레이터를 사용했는데, macOS에서는 빠른 클러스터 초기화를 위해 orbstack을 가장 많이 썼습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="시험은-어떻게-진행되나요">시험은 어떻게 진행되나요?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#%EC%8B%9C%ED%97%98%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A7%84%ED%96%89%EB%90%98%EB%82%98%EC%9A%94" class="hash-link" aria-label="시험은 어떻게 진행되나요?에 대한 직접 링크" title="시험은 어떻게 진행되나요?에 대한 직접 링크" translate="no">​</a></h3>
<p><a href="https://training.linuxfoundation.org/certification/certified-argo-project-associate-capa/" target="_blank" rel="noopener noreferrer" class="">시험 페이지</a>에서 시험을 구매(이벤트 쿠폰이 있다면 저렴하게 구매 가능)하고, <a href="https://trainingportal.linuxfoundation.org/learn/dashboard" target="_blank" rel="noopener noreferrer" class="">Training &amp; Certification 대시보드</a>에서 원하는 날짜로 예약하면 됩니다. 시험 당일에는 같은 대시보드에서 아래와 같은 준비 체크리스트를 확인한 뒤 <strong>Take Exam</strong>을 누르면 시작됩니다.</p>
<p><img decoding="async" loading="lazy" alt="시험 준비 체크리스트" src="https://jyje.github.io/profile-2/assets/images/capa-exam-portal-checklist-04d6fa74868d16e8c0c66260fd5a71b0.jpg" width="1200" height="1131" class="img_ev3q"></p>
<p><em>Linux Foundation Training &amp; Certification 대시보드의 CAPA 시험 준비 체크리스트 화면.</em></p>
<p>진행 방식에서 기억해둘 만한 점들:</p>
<ul>
<li class=""><strong>4지선다 객관식</strong>입니다. 오답인 티가 나는 보기가 의외로 많아 체감 난도는 낮은 편이지만, 정답과 헷갈리는 보기가 꼭 하나씩 있어 영문 설명을 꼼꼼히 읽어야 합니다.
<ul>
<li class="">체감 난이도는 <strong>CKAD와 비슷</strong>했습니다. 관련 시험과 비교하면 대략 <a href="https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/" target="_blank" rel="noopener noreferrer" class="">KCNA</a> &lt; <a href="https://training.linuxfoundation.org/certification/certified-kubernetes-application-developer-ckad/" target="_blank" rel="noopener noreferrer" class="">CKAD</a> = CAPA &lt; <a href="https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/" target="_blank" rel="noopener noreferrer" class="">CKA</a> &lt; <a href="https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/" target="_blank" rel="noopener noreferrer" class="">CKS</a> 순서 정도로 느껴졌습니다.</li>
<li class="">75점은 4가지 Argo 앱의 주요 기능을 익숙하게 다룰 줄 알면 충분하지만, 100점을 노린다면 잘 안 쓰는 세부 기능의 이름과 사용법, 그리고 헷갈리는 오답까지 구분할 수 있어야 합니다.</li>
</ul>
</li>
<li class=""><a href="https://test-takers.psiexams.com/" target="_blank" rel="noopener noreferrer" class="">PSI 시큐어 브라우저</a> 환경에서 응시합니다. CKA·CKAD·CKS에 응시해보셨다면 익숙한 환경일 거예요. 다만 지원 OS는 꼭 미리 확인하세요 — 저는 macOS 개발자 베타를 쓰다가 시험 직전에 급히 롤백한 적이 있습니다.</li>
<li class=""><strong>오픈북이 아닙니다.</strong> 공식 문서도 CLI도 사용할 수 없어서, 현장에서 찾아보거나 직접 검증하며 풀 수는 없습니다.</li>
<li class="">60문항을 다 푼 뒤에 다시 검토할 수 있고, <code>review</code> 토글로 헷갈리는 문항을 표시해둘 수 있습니다.</li>
<li class="">중간에 최대 15분 정도 휴식(화장실)을 요청할 수 있지만, 이때도 시험 시간은 계속 흐르는 것처럼 보였으니 가능하면 미리 다녀오는 게 좋습니다.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="시험-내용은-어땠나요">시험 내용은 어땠나요?<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#%EC%8B%9C%ED%97%98-%EB%82%B4%EC%9A%A9%EC%9D%80-%EC%96%B4%EB%95%A0%EB%82%98%EC%9A%94" class="hash-link" aria-label="시험 내용은 어땠나요?에 대한 직접 링크" title="시험 내용은 어땠나요?에 대한 직접 링크" translate="no">​</a></h3>
<blockquote>
<p>시험 약관에 따라 구체적인 문항은 언급하지 않습니다.</p>
</blockquote>
<ul>
<li class="">Argo Workflows의 YAML을 보고 어떤 순서로 실행되는지 맞히는 문항이 몇 개 나옵니다. 보기 중에 "실행 불가능"이라는 선택지도 있으니 유심히 봐야 합니다.</li>
<li class="">CLI뿐 아니라 GUI 관련 질문도 생각보다 많이 나옵니다. 최신 버전 Argo Workflows·Argo CD의 GUI도 한 번씩 살펴보고 가시는 걸 추천합니다.</li>
<li class="">원하는 기능이 YAML의 <code>spec.a.b</code>인지 <code>spec.b.a</code>인지 <code>spec.c</code>인지 구분하는 문항도 나옵니다.</li>
<li class="">전반적인 난도는 어렵지 않은 편이라, 현업에서 사용해보신 분들이라면 무난히 통과하실 수 있을 것 같습니다.</li>
</ul>
<p>추가로 도움이 됐던 팁들:</p>
<ul>
<li class="">애매한 문제는 일단 <code>review</code>로 표시하고 넘어가세요. 다른 문제의 보기에서 힌트(예: 올바른 YAML 문법)를 얻을 수 있는 경우가 있습니다.</li>
<li class="">객관식이니 확실히 아닌 보기를 먼저 거르면, 모르는 문제도 찍을 확률을 높일 수 있습니다.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-요약">3. 요약<a href="https://jyje.github.io/profile-2/blog/capa-certified-argo-project-associate/#3-%EC%9A%94%EC%95%BD" class="hash-link" aria-label="3. 요약에 대한 직접 링크" title="3. 요약에 대한 직접 링크" translate="no">​</a></h2>
<p>제출 버튼을 누른 지 1분 만에 합격 메일을 받았습니다. 결과를 받기까지 24시간이 걸리는 쿠버네티스 시험에 익숙해서 조금 당황했지만, 그만큼 합격의 기쁨도 빨리 찾아왔습니다 😊 이번 시험을 계기로 Argo 프로젝트를 더 잘, 더 많이 활용해야겠다는 생각이 들었습니다.</p>
<ul>
<li class="">Hands-on을 요구하는 상위 자격증이 나온다면, 난도는 훨씬 올라갈 것 같습니다. 그때도 도전해볼 생각입니다.</li>
<li class="">본문의 소제목 구성은 <a href="https://medium.com/imweb-tech/cka-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%B7%A8%EB%93%9D-%ED%9B%84%EA%B8%B0-e68f945ae77c" target="_blank" rel="noopener noreferrer" class="">이 기술 블로그</a>를 참고했습니다. 좋은 글 감사합니다.</li>
<li class="">Argo 프로젝트를 처음 소개해주신 팀의 파트장님과, 함께 공부한 동료 개발자에게도 감사 인사를 전합니다.</li>
<li class="">CAPA 자격증에 대해 궁금한 점이 있으시면 언제든 편하게 댓글 남겨주세요.</li>
</ul>
<p>Argo 프로젝트는 쿠버네티스 생태계에서 점점 더 중요해지고 있고, CAPA는 이에 대한 전문성을 검증하는 좋은 방법이라고 생각합니다. CAPA를 고민하고 계신 분들께 이 글이 도움이 되었으면 합니다. 우리 귀여운 쭈꾸미를 많이 사랑해주세요 🐙</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="Linux_Foundation" term="Linux_Foundation"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🤖 MLOps: 오픈소스 프로젝트로 구축한 온프레미스 MLOps]]></title>
        <id>https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/</id>
        <link href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/"/>
        <updated>2024-06-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[GPU 자원 효율을 높이기 위해, Kubeflow, Argo Workflows 등 오픈소스 프로젝트를 활용한 온프레미스 MLOps 클러스터 구축 사례입니다.]]></summary>
        <content type="html"><![CDATA[<blockquote>
<p>Photo by <a href="https://unsplash.com/@nampoh?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash" target="_blank" rel="noopener noreferrer" class="">Maxim Hopman</a> on <a href="https://unsplash.com/photos/a-group-of-people-standing-around-a-display-of-video-screens-IayKLkmz6g0?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash" target="_blank" rel="noopener noreferrer" class="">Unsplash</a></p>
</blockquote>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-개요">1. 개요<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#1-%EA%B0%9C%EC%9A%94" class="hash-link" aria-label="1. 개요에 대한 직접 링크" title="1. 개요에 대한 직접 링크" translate="no">​</a></h2>
<p>저희 팀은 Kubeflow, JupyterHub, 데이터 파이프라인 등 최신 오픈소스 프로젝트를 활용하여 온프레미스 MLOps 클러스터를 구축했습니다. 한정된 GPU 자원 환경에서 GPU 유휴 시간을 줄이고 ML 워크로드 운영 비용을 최적화하도록 설계된 아키텍처입니다. 또한 단일 학습 작업을 여러 GPU에 병렬 분산함으로써, 단일 GPU 서버의 한계를 넘어 클러스터 전체 GPU를 활용할 수 있습니다.</p>
<!-- -->
<p>온프레미스 자원 기반의 MLOps 클러스터는 다음과 같은 이점을 제공합니다:</p>
<ul>
<li class=""><strong>자원 활용</strong>: 클러스터의 모든 GPU 자원을 효율적으로 활용하여 GPU 유휴 시간을 줄입니다. <strong>GPU 24시간 가동</strong>으로 기존 환경 대비 GPU 활용률을 3배 향상시켰습니다.</li>
<li class=""><strong>AutoML</strong>: 자동화된 모델 선택 및 하이퍼파라미터 튜닝을 지원하는 AutoML 워크플로우를 제공합니다. 2주 동안 <strong>800회 이상의 실험</strong>을 수행했으며, 이 결과는 상용화에 활용되었습니다.</li>
<li class=""><strong>병렬 학습</strong>: 단일 학습 작업을 여러 GPU에 병렬 분산하여 클러스터 전체 GPU를 활용할 수 있습니다.</li>
<li class=""><strong>원격 노트북</strong>: 연구자들에게 온디맨드 Jupyter 노트북을 제공하여 ML 연구 자원을 분산합니다. 자원 제약 없이 클러스터에 접속하고 실험을 실행할 수 있습니다.</li>
</ul>
<p>다음 다이어그램은 MLOps를 위한 온프레미스 클러스터 아키텍처를 나타냅니다:</p>
<p><img decoding="async" loading="lazy" alt="MLOps를 위한 온프레미스 클러스터 아키텍처 다이어그램" src="https://jyje.github.io/profile-2/assets/images/05ebb39f-ab74-400b-ae25-7c63f36629c9-0f4a1c981cbf80a5339be8c7f4aa7be0.png" width="2087" height="1568" class="img_ev3q"></p>
<p><strong>MLOps를 위한 온프레미스 Kubernetes 아키텍처 다이어그램;</strong> 사용자는 <a href="https://www.kubeflow.org/" target="_blank" rel="noopener noreferrer" title="Kubeflow: Machine Learning Toolkit for Kubernetes" class="">Kubeflow</a>를 통해 ML 워크플로우를 관리하고 자동화합니다. <a href="https://www.kubeflow.org/docs/components/katib/overview" target="_blank" rel="noopener noreferrer" title="Kubeflow Katib: Hyperparameter Tuning" class="">Kubeflow/Katib</a>은 하이퍼파라미터 튜닝을 위해 Argo Workflows를 워크플로우 엔진으로 활용하고, <a href="https://www.kubeflow.org/docs/components/training/overview" target="_blank" rel="noopener noreferrer" title="Kubeflow Training Operator: Distributed Training" class="">Kubeflow/Training Operator</a>는 분산 학습 작업을 관리합니다. <a href="https://argoproj.github.io/workflows" target="_blank" rel="noopener noreferrer" title="Workflow Engine in Argo Projects" class="">Argo Workflows</a>가 이 ML 파이프라인들을 오케스트레이션합니다. MySQL 클러스터는 워크플로우 메타데이터와 결과를 저장하고, MinIO 클러스터는 아티팩트 스토리지를 담당합니다. 클러스터의 GPU 서버가 모델 학습에 필요한 연산 능력을 제공합니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-문제-정의">2. 문제 정의<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#2-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98" class="hash-link" aria-label="2. 문제 정의에 대한 직접 링크" title="2. 문제 정의에 대한 직접 링크" translate="no">​</a></h2>
<p>저희 조직의 AI 연구자들은 한정된 GPU 자원으로 인한 어려움을 겪고 있었습니다. 연구자마다 GPU 서버 한 대씩 배정받는 구조였기 때문에, 서버가 유휴 상태일 때는 GPU가 낭비되고 대규모 실험을 수행할 때는 자원이 부족한 문제가 있었습니다.</p>
<p>이러한 문제를 해결하기 위해, GPU 서버를 클러스터로 통합하고 오픈소스 프로젝트 기반의 MLOps 플랫폼을 도입하는 방안을 제안했습니다. 구체적인 목표는 다음과 같습니다:</p>
<ul>
<li class=""><strong>자원 공유</strong>: 연구자들이 클러스터의 GPU 자원을 공유하고 실험에 모든 가용 GPU를 활용할 수 있도록 합니다.</li>
<li class=""><strong>편리한 개발 환경</strong>: 연구자들이 ML 실험을 쉽게 개발하고 실행할 수 있는 환경을 제공합니다.</li>
<li class=""><strong>AutoML 지원</strong>: 모델 선택, 하이퍼파라미터 튜닝, 모델 평가를 자동화하는 AutoML 워크플로우를 구현합니다.</li>
<li class=""><strong>병렬 학습</strong>: 클러스터의 여러 GPU를 활용한 병렬 학습을 지원합니다.</li>
<li class=""><strong>원격 노트북</strong>: ML 연구 자원 분산을 위한 온디맨드 Jupyter 노트북을 제공합니다.</li>
</ul>
<p>프로젝트는 MLOps 플랫폼의 효과와 AI 연구에 미치는 영향을 검증하기 위한 개념 검증(PoC)부터 시작했습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-구현-방법">3. 구현 방법<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#3-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95" class="hash-link" aria-label="3. 구현 방법에 대한 직접 링크" title="3. 구현 방법에 대한 직접 링크" translate="no">​</a></h2>
<p>위에서 설명한 아키텍처를 구현하기 위해 다음 단계를 진행했습니다:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="31-온프레미스-클러스터-구성">3.1. 온프레미스 클러스터 구성<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#31-%EC%98%A8%ED%94%84%EB%A0%88%EB%AF%B8%EC%8A%A4-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EA%B5%AC%EC%84%B1" class="hash-link" aria-label="3.1. 온프레미스 클러스터 구성에 대한 직접 링크" title="3.1. 온프레미스 클러스터 구성에 대한 직접 링크" translate="no">​</a></h3>
<p>기존에 GPU 서버가 갖춰진 온프레미스 클러스터가 있었습니다. GPU 서버를 클러스터에 통합하고 MLOps 워크플로우를 지원하도록 구성했습니다. 클러스터에 배포한 핵심 컴포넌트는 다음과 같습니다:</p>
<ul>
<li class=""><strong>Argo Workflows</strong>:
Kubernetes에서 ML 파이프라인을 실행하는 범용 워크플로우 컨트롤러입니다. Argo Workflows를 통해 연구자들에게 별도의 인프라 설정 없이도 유연하고 확장 가능한 워크플로우 시스템을 제공할 수 있었습니다.</li>
<li class=""><strong>GPU Operator</strong>:
클러스터의 GPU 자원을 관리하고 연구자들이 모든 가용 GPU를 실험에 활용할 수 있도록 지원하는 오퍼레이터입니다.</li>
<li class=""><strong>Kubeflow</strong>:
ML 모델의 실행, 학습, 배포를 위한 Kubernetes 기반 머신러닝 툴킷입니다. 학습 작업 및 실험 관리에 활용했습니다.</li>
</ul>
<p>라이선스 비용 없이 자유롭게 커스터마이징할 수 있는 환경을 구축하기 위해 이 오픈소스 프로젝트들을 선택했습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="32-argo-workflows로-데이터-파이프라인-구현">3.2. Argo Workflows로 데이터 파이프라인 구현<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#32-argo-workflows%EB%A1%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EA%B5%AC%ED%98%84" class="hash-link" aria-label="3.2. Argo Workflows로 데이터 파이프라인 구현에 대한 직접 링크" title="3.2. Argo Workflows로 데이터 파이프라인 구현에 대한 직접 링크" translate="no">​</a></h3>
<ul>
<li class="">
<p><strong>이번에는 Kubeflow가 아닙니다</strong>:
Kubeflow는 ML 모델의 실행, 학습, 배포를 위한 Kubernetes 기반 머신러닝 툴킷입니다. 학습 작업 및 실험 관리에는 Kubeflow를 사용했지만, 데이터 파이프라인 관리에는 Argo Workflows를 선택했습니다. 데이터 파이프라인에서의 Kubeflow에 대한 특이사항은 다음과 같습니다:</p>
<ul>
<li class="">
<p><strong>즉시 정적 그래프 제공</strong>:
Kubeflow Pipeline은 파이프라인의 정적 그래프를 내장 시각화로 보여줍니다. 파이프라인 구조를 시각적으로 파악하기 쉽다는 장점이 있습니다.</p>
</li>
<li class="">
<p><strong>사전 빌드 필요</strong>:
Kubeflow는 파이프라인을 사전에 빌드해야 하므로 시간이 걸리고 유연성이 떨어집니다. Kubeflow Pipeline의 작업에는 학습 및 추론을 위한 이미지가 미리 빌드되어 있어야 해서, 파이프라인을 빠르게 수정하기 어렵습니다. CI/CD 파이프라인으로 보완할 수 있지만 여전히 추가 작업이 필요합니다. 이 점이 Argo Workflows를 선택하게 된 핵심 이유였습니다.</p>
</li>
</ul>
</li>
<li class="">
<p><strong>다시, Argo Workflows</strong>:
Argo Workflows는 클라우드 네이티브 환경을 위한 범용 워크플로우 컨트롤러입니다. GPU Operator와 함께 사용하면 다양한 그래프 구조의 데이터 파이프라인을 구성할 수 있습니다. 일반적으로 Argo Workflows는 YAML로 정의하지만, 저희는 Python 스크립트로 워크플로우를 정의할 수 있는 Argo Workflows SDK인 Hera를 사용했습니다. 이 방식 덕분에 ML 연구자들이 워크플로우를 더 쉽게 작성하고 수정할 수 있었습니다. 데이터 파이프라인에서의 Argo Workflows 특이사항은 다음과 같습니다:</p>
<ul>
<li class="">
<p><strong>사전 빌드 불필요</strong>:
Argo Workflows는 데이터 파이프라인에 별도의 이미지 사전 빌드가 필요 없습니다. 연구자들은 Python 스크립트로 파이프라인을 정의하고 바로 실행할 수 있습니다. 덕분에 파이프라인을 손쉽게 수정하고 빠르게 실험을 돌릴 수 있습니다.</p>
<p>학습 단계에서는 사전 빌드된 이미지에 스크립트를 추가하는 방식이나, Hera SDK로 환경을 구성하는 CUDA scratch 이미지를 사용하는 방식 모두 선택할 수 있습니다.
추론 단계도 마찬가지입니다.</p>
</li>
<li class="">
<p><strong>내장 그래프 없음 — 모든 것을 직접 구성</strong>:
Argo Workflows는 파이프라인 그래프를 기본으로 제공하지 않습니다. 연구자가 Python 스크립트에서 직접 그래프 구조를 정의해야 합니다. 이 유연성 덕분에 특정 요구에 맞는 커스텀 파이프라인을 만들 수 있지만, 장단점이 될 수 있습니다. 시각화가 필요하다면 Grafana나 TensorBoard 같은 도구를 별도로 활용할 수 있습니다.</p>
</li>
</ul>
<p>클러스터에 Argo Workflows가 있다면, Argo Workflows와 Hera SDK만으로 데이터 파이프라인 시스템을 바로 구성할 수 있습니다.</p>
</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="33-kubeflow에서-katib-automl-구성">3.3. Kubeflow에서 Katib AutoML 구성<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#33-kubeflow%EC%97%90%EC%84%9C-katib-automl-%EA%B5%AC%EC%84%B1" class="hash-link" aria-label="3.3. Kubeflow에서 Katib AutoML 구성에 대한 직접 링크" title="3.3. Kubeflow에서 Katib AutoML 구성에 대한 직접 링크" translate="no">​</a></h3>
<p>Katib AutoML은 ML 모델의 하이퍼파라미터 튜닝과 병렬 좌표 그래프 시각화를 제공합니다. Katib를 활용하여 하이퍼파라미터 최적화와 최적 모델 선택 과정을 자동화했습니다. Katib는 Argo Workflows 같은 외부 엔진을 지원하므로, Katib와 Argo Workflows를 연동하여 AutoML 프로세스를 관리했습니다.</p>
<p>Katib의 핵심 기능은 지속적인 하이퍼파라미터 튜닝입니다. 연구자들은 탐색할 하이퍼파라미터 공간과 최적화 목표 지표를 정의하면, Katib가 여러 실험을 병렬로 실행하며 목표 지표를 기준으로 하이퍼파라미터를 조정합니다. 실험 진행 상황을 모니터링하고 결과를 바탕으로 최적 모델을 선택할 수 있으며, GPU 자원을 24시간 AutoML 실험에 활용할 수 있습니다. 2주 동안 <strong>800회 이상의 실험</strong>을 수행했고, 이 결과는 상용화에 활용되었습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="34-kubeflow에서-training-operator-구성">3.4. Kubeflow에서 Training Operator 구성<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#34-kubeflow%EC%97%90%EC%84%9C-training-operator-%EA%B5%AC%EC%84%B1" class="hash-link" aria-label="3.4. Kubeflow에서 Training Operator 구성에 대한 직접 링크" title="3.4. Kubeflow에서 Training Operator 구성에 대한 직접 링크" translate="no">​</a></h3>
<p>분산 학습 환경 관리를 위해 Kubeflow Training Operator를 선택했습니다. Training Operator는 학습 작업에 대한 고수준 추상화를 제공하여, 연구자들이 클러스터의 모든 가용 GPU를 병렬 학습에 활용할 수 있도록 합니다. 다만 저희가 사용한 v1.6 버전에서는 Argo Workflows 같은 외부 엔진을 지원하지 않아, Kubeflow Training Operator 자체만으로 분산 학습 환경을 관리했습니다.</p>
<p>Training Operator를 통해 GPU 수, 메모리, CPU 코어 수 등 커스텀 자원으로 학습 작업을 정의할 수 있습니다. <strong>2대의 GPU 서버에서 GPU 8개를 사용하는 학습 작업</strong>을 구성하여 GPU 전체에 병렬 분산했습니다. 덕분에 연구자들은 추가 인프라 설정 없이 학습 속도를 높이고 클러스터의 모든 GPU 자원을 최대한 활용할 수 있었습니다.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="35-연구자를-위한-jupyterhub-배포">3.5. 연구자를 위한 JupyterHub 배포<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#35-%EC%97%B0%EA%B5%AC%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-jupyterhub-%EB%B0%B0%ED%8F%AC" class="hash-link" aria-label="3.5. 연구자를 위한 JupyterHub 배포에 대한 직접 링크" title="3.5. 연구자를 위한 JupyterHub 배포에 대한 직접 링크" translate="no">​</a></h3>
<p>처음에는 JupyterLab을 검토했지만, 클러스터 자원 현황을 확인할 수 있는 JupyterHub를 최종 선택했습니다. JupyterHub는 현재 클러스터 상태와 가용 자원을 연구자들에게 직관적으로 보여줍니다.</p>
<p>TensorFlow, PyTorch, scikit-learn 등 ML 연구에 필요한 라이브러리와 도구가 포함된 사전 빌드 노트북 이미지를 제공했습니다. 연구자들은 프로비저닝된 NFS 스토리지의 데이터 레이크에 쉽게 접근하고, 자원 제약 없이 실험을 실행할 수 있었습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-결론">4. 결론<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#4-%EA%B2%B0%EB%A1%A0" class="hash-link" aria-label="4. 결론에 대한 직접 링크" title="4. 결론에 대한 직접 링크" translate="no">​</a></h2>
<p>이 프로젝트에서 Kubeflow, Argo Workflows, JupyterHub 등 최신 오픈소스 프로젝트를 활용하여 온프레미스 MLOps 클러스터를 구축했습니다. 연구자들에게 ML 실험을 개발하고 실행할 수 있는 유연하고 확장 가능한 환경을 제공합니다. 한정된 GPU 자원 환경에서도 클러스터의 모든 GPU를 효율적으로 활용하여 GPU 유휴 시간을 줄이고 ML 워크로드 운영 비용을 최적화했습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-향후-계획">5. 향후 계획<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#5-%ED%96%A5%ED%9B%84-%EA%B3%84%ED%9A%8D" class="hash-link" aria-label="5. 향후 계획에 대한 직접 링크" title="5. 향후 계획에 대한 직접 링크" translate="no">​</a></h2>
<p>앞으로는 사용자 경험 개선을 계획하고 있습니다. ML 연구자들이 요청한 편의 기능 두 가지는 다음과 같습니다:</p>
<ul>
<li class=""><strong>모니터링</strong>:
연구자들이 실험 진행 상황을 모니터링하고 결과를 실시간으로 시각화하고 싶다는 요청이 있었습니다. Grafana를 연동하여 연구자용 모니터링 대시보드를 제공할 계획입니다.</li>
<li class=""><strong>노트북 SSH 접속</strong>:
연구자들이 Jupyter 노트북에 SSH로 접속하고 싶다는 요청도 있었습니다. SSH 접속을 지원하는 JupyterHub 커스텀 스포너를 구현하거나, 챗봇이 노트북 스택을 직접 생성하는 방식을 도입할 예정입니다.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-사용-기술">6. 사용 기술<a href="https://jyje.github.io/profile-2/blog/mlops-onpremise-mlops-with-open-source-projects/#6-%EC%82%AC%EC%9A%A9-%EA%B8%B0%EC%88%A0" class="hash-link" aria-label="6. 사용 기술에 대한 직접 링크" title="6. 사용 기술에 대한 직접 링크" translate="no">​</a></h2>
<p>이 프로젝트에서 활용한 주요 기술:</p>
<ul>
<li class=""><a href="https://argoproj.github.io/workflows" target="_blank" rel="noopener noreferrer" title="Workflow Engine in Argo Projects" class="">Argo Workflows</a></li>
<li class=""><a href="https://www.kubeflow.org/" target="_blank" rel="noopener noreferrer" title="Kubeflow: Machine Learning Toolkit for Kubernetes" class="">Kubeflow</a></li>
<li class=""><a href="https://www.kubeflow.org/docs/components/katib/overview" target="_blank" rel="noopener noreferrer" title="Kubeflow Katib: Hyperparameter Tuning" class="">Kubeflow/Katib</a></li>
<li class=""><a href="https://www.kubeflow.org/docs/components/training/overview" target="_blank" rel="noopener noreferrer" title="Kubeflow Training Operator: Distributed Training" class="">Kubeflow/Training Operator</a></li>
<li class=""><a href="https://jupyter.org/hub" target="_blank" rel="noopener noreferrer" title="JupyterHub: Multi-user Jupyter Notebook Server" class="">JupyterHub</a></li>
<li class=""><a href="https://grafana.com/grafana" target="_blank" rel="noopener noreferrer" title="Grafana: The Observability Platform for Metrics and Logs" class="">Grafana</a></li>
</ul>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Achievements" term="Achievements"/>
        <category label="MLOps" term="MLOps"/>
        <category label="DevOps" term="DevOps"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="On_Premise" term="On_Premise"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🎓 CKAD: Certified Kubernetes Application Developer (2024)]]></title>
        <id>https://jyje.github.io/profile-2/blog/ckad-certified-kubernetes-application-developer/</id>
        <link href="https://jyje.github.io/profile-2/blog/ckad-certified-kubernetes-application-developer/"/>
        <updated>2024-06-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Kubernetes 워크로드 개발을 위한 핵심 역량.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/ckad-certified-kubernetes-application-developer/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>Certified Kubernetes Application Developer (CKAD) 프로그램은 Kubernetes 생태계 발전을 위해 CNCF(Cloud Native Computing Foundation)와 The Linux Foundation이 공동으로 만들었습니다. CKAD 프로그램을 통해 Kubernetes용 클라우드 네이티브 애플리케이션을 설계, 구축, 배포하는 역량을 입증할 수 있습니다. 일반적으로 개발자는 Kubernetes에서 워크로드를 구성하고 운영하는 역할을 담당합니다.</p>
<!-- -->
<p>CKA 시험과 마찬가지로, CKAD 시험도 Kubernetes가 실행 중인 커맨드라인에서 여러 문제를 직접 해결해야 하는 핸즈온 방식의 감독 시험입니다. 시험은 실제 업무 환경에서 Kubernetes 애플리케이션 개발자로서 필요한 역량에 초점을 맞춥니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/ckad-certified-kubernetes-application-developer/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="CKAD 자격증" src="https://jyje.github.io/profile-2/assets/images/87b974ec-14cc-4f82-b252-c71deef28ee8-498c74b385637636631472116e023936.svg" width="1651" height="1277" class="img_ev3q"></p>
<p><em>CKAD 자격증 2024. 2024년 6월 1일 발급. 2026년 6월 1일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/9e072a3a-57d0-403e-8bef-5831d618675c" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<p>2024년 5월 31일에 CKAD 시험을 보고 합격했습니다. 쉽지 않은 시험이었지만 합격 기준을 충족했습니다. Kubernetes 공식 문서를 꼼꼼히 읽고, 온라인 강좌를 수강하면서 KodeKloud에서 Kubernetes 클러스터를 직접 다루며 준비했습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-share-to-the-world">3. Share to the World<a href="https://jyje.github.io/profile-2/blog/ckad-certified-kubernetes-application-developer/#3-share-to-the-world" class="hash-link" aria-label="3. Share to the World에 대한 직접 링크" title="3. Share to the World에 대한 직접 링크" translate="no">​</a></h2>
<p align="center">
  <iframe src="https://www.linkedin.com/embed/feed/update/urn:li:share:7202975037543317506" height="700px" width="90%" frameborder="0" allowfullscreen="" title="Again, I'm thrilled to share that I've successfully completed the Certified Kubernetes Application Developer (CKAD) program from The Linux Foundation"></iframe>
</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="Linux_Foundation" term="Linux_Foundation"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[🎓 CKA: Certified Kubernetes Administrator (2024)]]></title>
        <id>https://jyje.github.io/profile-2/blog/cka-certified-kubernetes-administrator/</id>
        <link href="https://jyje.github.io/profile-2/blog/cka-certified-kubernetes-administrator/"/>
        <updated>2024-03-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Kubernetes 클러스터 관리를 위한 핵심 역량.]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-자격증-소개">1. 자격증 소개<a href="https://jyje.github.io/profile-2/blog/cka-certified-kubernetes-administrator/#1-%EC%9E%90%EA%B2%A9%EC%A6%9D-%EC%86%8C%EA%B0%9C" class="hash-link" aria-label="1. 자격증 소개에 대한 직접 링크" title="1. 자격증 소개에 대한 직접 링크" translate="no">​</a></h2>
<p>Certified Kubernetes Administrator (CKA) 프로그램은 Kubernetes 생태계 발전을 위해 CNCF(Cloud Native Computing Foundation)와 The Linux Foundation이 공동으로 만들었습니다. 가장 빠르게 성장하는 오픈소스 프로젝트 중 하나인 Kubernetes의 사용이 폭발적으로 늘어나고 있습니다. CKA 프로그램을 통해 핸즈온 커맨드라인 환경에서 실제 역량을 입증할 수 있습니다.</p>
<!-- -->
<p>CKA 시험은 Kubernetes가 실행 중인 커맨드라인에서 여러 문제를 직접 해결해야 하는 핸즈온 방식의 감독 시험입니다. 시험은 실제 업무 환경에서 Kubernetes 관리자로서 필요한 역량에 초점을 맞춥니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-시험-후기">2. 시험 후기<a href="https://jyje.github.io/profile-2/blog/cka-certified-kubernetes-administrator/#2-%EC%8B%9C%ED%97%98-%ED%9B%84%EA%B8%B0" class="hash-link" aria-label="2. 시험 후기에 대한 직접 링크" title="2. 시험 후기에 대한 직접 링크" translate="no">​</a></h2>
<p><img decoding="async" loading="lazy" alt="CKA 자격증" src="https://jyje.github.io/profile-2/assets/images/925c52cf-4e04-4992-82b4-faa372fcb139-d0ea6ab86f9b7a9650ae898b6c440edf.svg" width="1651" height="1277" class="img_ev3q"></p>
<p><em>CKA 자격증 2024. 2024년 3월 16일 발급. 2027년 3월 15일 만료. 자격증 확인은 <a href="https://www.credly.com/badges/d944bde7-222a-4ce5-b4e6-4e6c84df0ef8" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 할 수 있습니다.</em></p>
<!-- -->
<p>2024년 3월 15일에 CKA 시험을 보고 첫 시도에 합격했습니다. 쉽지 않은 시험이었지만 준비한 덕분에 통과할 수 있었습니다. Kubernetes 공식 문서를 꼼꼼히 읽고, 온라인 강좌를 수강하면서 Kubernetes 클러스터를 직접 다루며 준비했습니다.</p>
<p>시험 준비를 위해 Udemy의 <a href="https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests" target="_blank" rel="noopener noreferrer" class="">Certified Kubernetes Administrator (CKA) with Practice Tests</a> 강좌를 수강하며 Kubernetes 핵심 개념을 이해했습니다. 또한 <a href="https://learn.kodekloud.com/user/courses/udemy-labs-certified-kubernetes-administrator-with-practice-tests" target="_blank" rel="noopener noreferrer" class="">KodeKloud</a> 플랫폼을 통해 Kubernetes 클러스터 실습과 핸즈온 랩을 진행했습니다. 아래는 KodeKloud 강좌 수료증입니다:</p>
<p><img decoding="async" loading="lazy" alt="KodeKloud 강좌 수료증" src="https://jyje.github.io/profile-2/assets/images/3ca76e29-fec9-4b5d-9fad-dd7e0b33b1dc-0de560f071780fecdb02d58b8d3ec123.jpg" width="2339" height="1654" class="img_ev3q"></p>
<p>이 강좌 수료증은 <a href="https://kodekloud.com/certificate-verification/2D0D53315009-2D0D590835C9-2D0D4CFE3F61" target="_blank" rel="noopener noreferrer" class="">여기</a>에서 확인할 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-share-to-the-world">3. Share to the World<a href="https://jyje.github.io/profile-2/blog/cka-certified-kubernetes-administrator/#3-share-to-the-world" class="hash-link" aria-label="3. Share to the World에 대한 직접 링크" title="3. Share to the World에 대한 직접 링크" translate="no">​</a></h2>
<p align="center">
  <iframe src="https://www.linkedin.com/embed/feed/update/urn:li:share:7175108596026781696" height="700px" width="90%" frameborder="0" allowfullscreen="" title="Excited to share that I've successfully completed the Certified Kubernetes Administrator (CKA) program from The Linux Foundation"></iframe>
</p>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Certifications" term="Certifications"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="Linux_Foundation" term="Linux_Foundation"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[☁️ DevOps: 온프레미스 x AWS EKS 하이브리드 클러스터 사례]]></title>
        <id>https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/</id>
        <link href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/"/>
        <updated>2023-12-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[고가용성과 비용 최적화를 위해, 온프레미스와 퍼블릭 클라우드를 결합한 하이브리드 클러스터 구축 사례입니다. Photo by <a href="https://unsplash.com/@mike_kiev?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Photobank Kiev</a> on <a href="https://unsplash.com/photos/3-men-standing-on-rocky-shore-during-daytime-Opzk_hvwO9Q?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="1-개요">1. 개요<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#1-%EA%B0%9C%EC%9A%94" class="hash-link" aria-label="1. 개요에 대한 직접 링크" title="1. 개요에 대한 직접 링크" translate="no">​</a></h2>
<p>저희 팀은 온프레미스와 퍼블릭 클라우드 자원을 결합한 하이브리드 Kubernetes 클러스터를 구축했습니다. 이 아키텍처를 통해 온프레미스 자원의 한계를 극복하고 퍼블릭 클라우드 사용 비용을 최적화할 수 있었습니다.</p>
<!-- -->
<p>저희 애플리케이션은 웹 애플리케이션과 머신러닝(ML) 파이프라인, 두 가지로 구성되어 있습니다. 웹 애플리케이션은 퍼블릭 클라우드에서 운영하고, ML 워크로드는 온프레미스 GPU 서버에서 실행합니다. 이 하이브리드 클러스터 아키텍처는 다음과 같은 이점을 제공합니다:</p>
<ul>
<li class=""><strong>신뢰성</strong>: 웹 애플리케이션과 데이터베이스를 퍼블릭 클라우드에 호스팅함으로써 24/7 고가용성과 안정성을 확보했습니다.</li>
<li class=""><strong>비용 최적화</strong>: ML 워크로드를 온프레미스 GPU 서버에서 처리함으로써 퍼블릭 클라우드 비용을 50% 이상 절감했습니다.</li>
<li class=""><strong>확장성</strong>: 온프레미스 클러스터의 자원이 부족해질 경우 퍼블릭 클라우드로 손쉽게 스케일 아웃할 수 있습니다. 온프레미스 클러스터에 장애가 발생하더라도 퍼블릭 클라우드가 백업 노드를 제공하여 ML 워크로드의 고가용성을 보장합니다.</li>
</ul>
<p>다음 다이어그램은 하이브리드 클러스터의 아키텍처를 나타냅니다:</p>
<p><img decoding="async" loading="lazy" alt="하이브리드 클러스터 아키텍처 다이어그램" src="https://jyje.github.io/profile-2/assets/images/10393250-4f16-43e6-856b-c4fa7515fdce-ed5222d49cbcc9344b1ac31aa35ec9a2.png" width="1700" height="1290" class="img_ev3q"></p>
<p><strong>DevOps를 위한 하이브리드 클러스터 아키텍처 다이어그램;</strong> 사용자는 <a href="https://aws.amazon.com/eks" target="_blank" rel="noopener noreferrer" class="">AWS EKS</a> 기반 퍼블릭 클라우드에 호스팅된 웹 애플리케이션과 상호작용하며, ML 파이프라인은 온프레미스 클러스터에서 실행됩니다. 워크플로우 컨트롤러로는 <a href="https://argoproj.github.io/workflows" target="_blank" rel="noopener noreferrer" title="Workflow Engine in Argo Projects" class="">Argo Workflows</a>를 사용합니다. 메트릭 수집기는 온프레미스 클러스터의 가동 상태와 가용성을 모니터링하며, 필요 시 퍼블릭 클라우드의 백업 파이프라인을 자동으로 스케일 아웃합니다. 메트릭 서버는 <a href="https://fastapi.tiangolo.com/" target="_blank" rel="noopener noreferrer" title="FastAPI: Python API Framework" class="">FastAPI</a>로 구현되었습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="2-문제-정의">2. 문제 정의<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#2-%EB%AC%B8%EC%A0%9C-%EC%A0%95%EC%9D%98" class="hash-link" aria-label="2. 문제 정의에 대한 직접 링크" title="2. 문제 정의에 대한 직접 링크" translate="no">​</a></h2>
<p>처음에는 웹 애플리케이션과 ML 파이프라인을 모두 AWS EKS 퍼블릭 클러스터에 배포했습니다. 그러나 AWS EC2의 GPU 인스턴스(예: g4dn)는 비용이 매우 높아, 월 수천 달러에 달하는 비용이 발생하면서 ML 워크로드를 퍼블릭 클라우드에서 운영하는 것은 비용 효율이 낮았습니다.</p>
<p>이 비용 문제를 해결하기 위해, ML 파이프라인을 GPU 서버가 갖춰진 온프레미스 클러스터로 전환했습니다. 퍼블릭 클라우드와 온프레미스 클러스터 간 통신을 위해 온프레미스 클러스터의 엔드포인트를 외부에 노출해야 했습니다.</p>
<p>퍼블릭 클라우드의 메트릭 수집기는 온프레미스 클러스터의 가동 상태와 가용성을 모니터링하도록 구성했습니다. 온프레미스 클러스터에 장애가 발생하거나 응답이 지연될 경우, 메트릭 수집기가 자동으로 퍼블릭 클라우드 자원을 스케일 아웃하여 ML 파이프라인의 고가용성을 유지합니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="3-구현-방법">3. 구현 방법<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#3-%EA%B5%AC%ED%98%84-%EB%B0%A9%EB%B2%95" class="hash-link" aria-label="3. 구현 방법에 대한 직접 링크" title="3. 구현 방법에 대한 직접 링크" translate="no">​</a></h2>
<p>위에서 설명한 아키텍처를 구현하기 위해 다음 단계를 진행했습니다:</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="31-퍼블릭-클러스터-aws-eks">3.1. 퍼블릭 클러스터: AWS EKS<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#31-%ED%8D%BC%EB%B8%94%EB%A6%AD-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-aws-eks" class="hash-link" aria-label="3.1. 퍼블릭 클러스터: AWS EKS에 대한 직접 링크" title="3.1. 퍼블릭 클러스터: AWS EKS에 대한 직접 링크" translate="no">​</a></h3>
<p>웹 애플리케이션과 데이터베이스를 호스팅하기 위해 AWS EKS 퍼블릭 클러스터를 배포했습니다. EKS 클러스터에는 다음 컴포넌트를 배포했습니다:</p>
<ul>
<li class=""><strong>웹 애플리케이션</strong>: 사용자를 위한 프론트엔드 및 CMS 역할을 하는 웹 애플리케이션</li>
<li class=""><strong>데이터베이스</strong>: 사용자 데이터와 애플리케이션 로그를 저장하는 PostgreSQL 및 MySQL 데이터베이스</li>
<li class=""><strong>메트릭 수집기</strong>: 온프레미스 및 퍼블릭 클러스터의 가동 상태와 파이프라인 가용성을 모니터링하는 메트릭 수집기</li>
<li class=""><strong>백업 ML 파이프라인</strong>: 온프레미스 클러스터를 사용할 수 없을 때 자동으로 스케일 아웃되는 백업 파이프라인</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="32-온프레미스-클러스터-bare-metal-kubernetes">3.2. 온프레미스 클러스터: Bare-Metal Kubernetes<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#32-%EC%98%A8%ED%94%84%EB%A0%88%EB%AF%B8%EC%8A%A4-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-bare-metal-kubernetes" class="hash-link" aria-label="3.2. 온프레미스 클러스터: Bare-Metal Kubernetes에 대한 직접 링크" title="3.2. 온프레미스 클러스터: Bare-Metal Kubernetes에 대한 직접 링크" translate="no">​</a></h3>
<p>GPU 서버가 탑재된 온프레미스 Bare-Metal Kubernetes 클러스터를 배포했습니다. 온프레미스 클러스터에는 다음 컴포넌트를 배포했습니다:</p>
<ul>
<li class=""><strong>ML 파이프라인</strong>: 데이터를 처리하고 모델을 학습하는 머신러닝 파이프라인. GPU 서버에서 실행하여 학습 속도를 가속화합니다. 파이프라인 컨트롤러로 <a href="https://argoproj.github.io/workflows" target="_blank" rel="noopener noreferrer" title="Workflow Engine in Argo Projects" class="">Argo Workflows</a>를 사용했습니다.</li>
<li class=""><strong>메트릭 서버</strong>: 온프레미스 클러스터의 가동 상태와 가용성을 퍼블릭 클라우드에 노출하는 서버. <a href="https://fastapi.tiangolo.com/" target="_blank" rel="noopener noreferrer" title="FastAPI: Python API Framework" class="">FastAPI</a>와 <a href="https://github.com/prometheus/client_python" target="_blank" rel="noopener noreferrer" title="Python Package for Prometheus Client" class="">Prometheus SDK</a>를 활용해 구현했습니다.</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="33-ml-파이프라인-스케줄링">3.3. ML 파이프라인 스케줄링<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#33-ml-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81" class="hash-link" aria-label="3.3. ML 파이프라인 스케줄링에 대한 직접 링크" title="3.3. ML 파이프라인 스케줄링에 대한 직접 링크" translate="no">​</a></h3>
<p>온프레미스 클러스터에 장애가 발생하거나 응답이 지연될 경우, 퍼블릭 클라우드의 메트릭 수집기가 자동으로 백업 ML 파이프라인을 스케일 아웃하여 ML 워크로드의 고가용성을 보장합니다. 온프레미스 클러스터가 복구되면 백업 파이프라인을 다시 스케일 인합니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="4-결론">4. 결론<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#4-%EA%B2%B0%EB%A1%A0" class="hash-link" aria-label="4. 결론에 대한 직접 링크" title="4. 결론에 대한 직접 링크" translate="no">​</a></h2>
<p>이 프로젝트는 온프레미스와 퍼블릭 클라우드 자원을 느슨하게 결합한 하이브리드 클러스터의 구축 사례입니다. 이 아키텍처는 고가용성, 비용 최적화, 확장성을 동시에 제공합니다.</p>
<p>ML 워크로드를 온프레미스 GPU 서버에서 처리함으로써 퍼블릭 클라우드 비용을 50% 이상 절감했습니다. 퍼블릭 클라우드는 웹 애플리케이션과 데이터베이스의 고가용성 및 안정성을 보장합니다.</p>
<p>메트릭 수집기는 온프레미스 클러스터를 사용할 수 없을 때 알림을 발송하고, 백업 파이프라인을 자동으로 스케일 아웃하여 ML 워크로드의 고가용성을 유지합니다. 덕분에 온프레미스 클러스터의 가용 상태에 따라 퍼블릭 클라우드 자원 규모를 유연하게 조정할 수 있습니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="5-향후-계획">5. 향후 계획<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#5-%ED%96%A5%ED%9B%84-%EA%B3%84%ED%9A%8D" class="hash-link" aria-label="5. 향후 계획에 대한 직접 링크" title="5. 향후 계획에 대한 직접 링크" translate="no">​</a></h2>
<p>최근에는 AWS EKS Anywhere를 활용하여 온프레미스와 퍼블릭 노드를 단일 EKS 클러스터로 통합하는 사례가 늘고 있습니다. 온프레미스 클러스터를 EKS Anywhere로 마이그레이션하는 개념 검증(PoC)을 진행하여 하이브리드 클러스터 관리를 단순화할 계획입니다.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="6-사용-기술">6. 사용 기술<a href="https://jyje.github.io/profile-2/blog/devops-hybrid-clusters-with-onpremise-baremetal-k8s-and-aws-eks/#6-%EC%82%AC%EC%9A%A9-%EA%B8%B0%EC%88%A0" class="hash-link" aria-label="6. 사용 기술에 대한 직접 링크" title="6. 사용 기술에 대한 직접 링크" translate="no">​</a></h2>
<p>이 프로젝트에서 활용한 주요 기술:</p>
<ul>
<li class=""><a href="https://aws.amazon.com/eks" target="_blank" rel="noopener noreferrer" title="Amazon Elastic Kubernetes Service" class="">AWS EKS</a></li>
<li class=""><a href="https://kubernetes.io/" target="_blank" rel="noopener noreferrer" title="Kubernetes: Production-Grade Container Orchestration" class="">Kubernetes</a></li>
<li class=""><a href="https://kubespray.io/" target="_blank" rel="noopener noreferrer" title="Kubespray: Kubernetes Cluster Deployment Tool" class="">Kubespray</a></li>
<li class=""><a href="https://argoproj.github.io/workflows" target="_blank" rel="noopener noreferrer" title="Workflow Engine in Argo Projects" class="">Argo Workflows</a></li>
<li class=""><a href="https://fastapi.tiangolo.com/" target="_blank" rel="noopener noreferrer" title="FastAPI: Python API Framework" class="">FastAPI</a></li>
<li class=""><a href="https://github.com/prometheus/client_python" target="_blank" rel="noopener noreferrer" title="Python Package for Prometheus Client" class="">Prometheus SDK</a></li>
</ul>]]></content>
        <author>
            <name>전제영</name>
            <uri>https://github.com/jyje</uri>
        </author>
        <category label="Achievements" term="Achievements"/>
        <category label="DevOps" term="DevOps"/>
        <category label="Kubernetes" term="Kubernetes"/>
        <category label="AWS" term="AWS"/>
        <category label="On_Premise" term="On_Premise"/>
    </entry>
</feed>