- 스터디
- 개발/데이터
환급챌린지 : Kubernetes 자격증 마스터 클래스 : CKA/CKAD/CKS 강의 최종 후기
1. 환급챌린지에 참여한 이유는 무엇이었는지?
패스트캠퍼스에서 환급챌린지는 자주 봤고 2022년에도 패스트캠퍼스 캐시백 챌린지에 참여했었다. 이때는 게임 개발에 대한 강의였는데 실제로 나에게 필요한 것이 아닌 관심만 갖고 있던 주제라 선택했고 결국 완주를 하지 못했다. kubernetes 자격증 과정에 대한 강의를 봤을 때 실제로 실무에서 사용해보려고 시도했던 주제였던터라 최근에는 kubernets에 대한 열망도 커지고 있었다. 또한, kubernetes 관련 지식은 개발 커리어에 도움이 된다고 생각했기에 눈여겨보고 있던 와중에 환급챌린지가 나와서 참여하게 되었다.
2. 왜 이 강의를 선택하게 되었는지? (무엇을 얻고 싶었는지, 실제로 얻은 것은 무엇인지)
개발자로 일하면서 Docker와 kubernetes라는 단어는 많이 들어왔다. k8s라는 약어도 자주 봤는데 kubernetes에 관심을 가지기 전에는 왜 k8s일까 궁금하기도 했다. 강의를 통해 kubernetes를 공부하기 전에는 직접 실무에서 도입하고자 인터넷에 있는 정보를 활용했지만 kubernetes의 전체적인 구조(System Architecture)를 모르던 상태였기 때문에 도입에 실패했다. 이후 패스트캠퍼스에서 이 강의를 접했고 상세 커리큘럼을 통해 kubernetes를 공부하기 위해 이 강의를 선택했다. kubernetes와 함께 많이 들었던 단어가 Container Orchestration Tool이다. Container라는 것이 익숙하지 않을 때는 뜬구름 잡는 단어였고 kubernetes 강의를 반 이상 들었을 때도 kuberentes의 Resource를 생성할 때 대부분 kubernetes 명령어를 사용하기 때문에 Container와의 접점을 알지 못했다. 챌린지 후반이 되어서야 Container가 기본이라는 것을 깨달았고 Docker Container가 기본이라는 것을 알 수 있었다. 이전 회사에는 Docker를 사용하면 데이터가 전부 날라가기 때문에 사용하지 말고 직접 서버를 구축해라라고 들어서 Docker를 사용하기 전에는 Docker를 사용하는 것은 위험하다고 생각했다. 하지만, Docker를 활용하여 웹 서비스를 구축했을 때 단점보다 장점이 훨씬 많았다. 회사에서 위험하다고 했던 것은 Docker를 잘 모르고 사용했을 때의 결과였다. Docker를 처음 접했을 때 인터넷에 있는 자료를 참고하면서 유튜브 영상을 통해 실습을 진행했다. 처음에는 Docker의 전반적인 시스템에 익숙하지 않아 Container 내부에서 작업했는데 이후 Container를 삭제하자 내부에 있는 데이터가 모두 삭제되었다. 이런 경험을 통해 volume과 bind mount가 매우 중요하다는 것을 알게 되었고 이후 Docker를 공부하면서 환경 독립성, 선언형, 이식성 등 여러 장점을 알게 되었다. 하지만, 이 강의를 들으면서 서버가 많아질수록 Docker로 배포된 시스템은 운영자의 리소스가 커진다는 것을 알게 되었고, kuberentes가 왜 필요한지 알게 되었다.
3. 이 강의만의 장점 (ex. 강사님의 강의력, 커리큘럼 등)
이 강의는 필요한 내용만 담고 있어서 좋았다. 다른 여러 강의를 구매해 소장하고 있는데 대부분 범위가 광범위하기 때문에 내용도 매우 많고 어디서부터 시작해야 할지 막막해 초반에 듣다가 지쳐서 잘 듣지 않았다. 하지만, 이 강의는 CKA => CKAD => CKS라는 kubernetes 관련 자격증을 따기 위한 클립만 있고 이론 내용도 시험에 나오는 내용만 다루기 때문에 너무 깊게 들어가지 않아서 쉽게 받아들일 수 있었다. 또한, 전체적인 kubernetes의 구조(Architecture)를 먼저 설명하고 강의를 진행하기 때문에 이전에 실무에 도입하려고 공부했던 Pod, Deployment, Service 등 여러 kubernetes Resource들의 관계를 명확히 파악할 수 있었다. 그리고, 이론과 실습의 균형이 잘 맞아 지루하지 않게 완주할 수 있었다. 개인적으로 아쉬운 점이 있다면, 강의에서 제공하는 실습 환경은 학습에 큰 도움이 되었지만 실습 환경을 직접 구축해보는 과정이 포함되었다면 더 큰 도움이 되었을 것 같다고 생각했다. 또한, 강의 녹화 시점에서 2~3년이 지난터라 현재 시험 버전과 달라 자격증을 취득하기 위해서는 추가적인 학습이 필요하다.
4. 강의를 추천하고 싶은 사람은 누구인지?
이 강의를 듣는다고 kubernetes의 전부를 알 수 있는 것은 아니다. kubernetes 사이트의 공식문서만 보더라도 내용이 방대해서 어디부터 시작해야 할지 감이오지 않는다. 일단, 공식문서가 한국어를 지원하긴 하지만 번역이 완벽하지 않아 영어 문서를 참고해야 하며 이 때문에 처음부터 시작하기에는 쉽지 않다. 따라서, 현재 버전 기준으로는 자격증을 취득하기 위해서보다는 kubernetes에 관한 전체적인 구조와 개념을 잡고 싶은 사람이 들으면 큰 도움이 된다고 생각한다. DevOps 관련 강의를 보면 강의 중간에 kubernetes 관련 클립이 포함되어 있는데 모르는 사람이 보면 kubernetes를 이해하려면 처음부터 들어야 하는지, 중간부터 들어야 하는지, 아니면 kubernetes 관련 강의만 들어도 되는지 헷갈릴수도 있다고 생각한다. kubernetes 관련 클립 전 파트들과 관련된 kubernetes 내용일 확률이 높기 때문에 전 파트(클립들)를 우선 수강해야 해서 계획한 시간보다 오래 걸릴수도 있다. 따라서, kubernetes 내용에 집중하기 위해서는 이 강의가 좋다고 생각한다. 이 강의에서 제공하는 이론과 실습을 통해 kubernetes의 전체적인 구조를 파악하고 kubernetes Resource에 대한 개념과 함께 실무적인 감각을 익히게 되면 이후 실무에서 kubernetes를 사용할 때 이 강의에 없는 내용이 나오더라도 공식문서에서 필요한 부분을 찾아서 충분히 적용할 수 있을 것이다.
5. 다음으로 듣고 싶은 강의는 무엇인지?
최근에 클라우드 네이티브와 MSA(Micro Service Architecture)란 단어를 자주 접하고 있다. 지금까지는 Django를 활용한 Monolitic Architecture 기반의 Service만 개발해 왔기에 MSA와 클라우드 네이티브란 단어를 들어도 와닿지 않았다. 하나의 큰 시스템이기 때문에 Docker를 사용하기 이전에는 클라우드에 서버를 하나(또는 두 개 이상)를 생성하고 서버에 접속해서 직접 코드를 받아 배포해왔다. 이는 환경(클라우드 벤더, 서버 OS 등)이 달라지면 시스템을 새로 구축해야 하고 OS 별로 의존성이 달라 다른 서버에서 발생하지 않은 에러도 발생했으며 이를 해결하기 위해서는 시간이 오래 걸렸다. 최근에는 Java/Spring을 이용해 개발을 하고 있는데 MSA에 익숙하지 않다보니 서버를 나눠서 개발(인증 로직과 관련된 서버, 비즈니스 로직과 관련된 서버 등)해도 하나의 DB를 사용하고 있다. kubernetes를 공부하면서 실무에 적용하기 위해서는 기존에 개발해왔던 Monolithic Architecture보다는 MSA가 더 효과적이라고 생각했다. 따라서, MSA 관련 강의를 수강하여 MSA의 개념과 실제 구현 방식, 그리고 이를 kubernetes와 함께 어떻게 운영할 수 있는지를 공부할 예정이다.
6. 앞으로의 계획 (ex. 커리어 목표, 이직 목표, 자기계발 목표 등)
최근에 AI를 활용하여 개발을 진행하고 있는데 AI를 사용하기 전보다는 생산성이 매우 높아졌다는 것을 느낀다. 직접 코드를 짜면서 개발을 하는 것보다 AI를 활용하여 개발을 하는 것이 코드 품질도 높고 더 빠르다. 하지만, AI가 있더라도 "내가 아는 만큼 보이며 지금보다 더 많이 알아야 AI를 더 잘 활용할 수 있다"고 생각한다. 일례로 ChatGPT가 출시된 2022년 말 당시에는 개발자로 일한 지 얼마 되지 않았기에 본격적으로 사용하기 시작한 2023년 4~5월 까지는 구글 검색을 통해 일과 학습을 병행했다. ChatGPT를 사용하기 시작했을 때는 1년 차 개발자로 Python, Django 등 익숙한 기술에 대해서만 질문할 수 있었고, 그 범위 내에서 많은 도움을 받았지만 2년차 부터는 DevOps(Cloud, CI/CD 등)와, CS, 알고리즘 등에 관심을 가지기 시작하여 전에는 모르던 단어들을 검색하고 실제로 사용해 보면서 내가 모르던 분야를 이해하기 위해 AI를 더 잘 활용할 수 있었다. 물론, 지금도 내가 정확히 뭘 모르고 있는지조차 모를 때가 있다. 모르는 것을 알아야 질문을 할텐데 무엇을 모르는지 모르기 때문이다. 따라서, 앞으로의 목표는, 내가 무엇을 모르는지 알 수 있는 수준에 도달하고, 알고 있는 내용을 더 깊이 이해함으로써 AI를 더 정확하고 효과적으로 활용할 수 있도록 성장하는 것이다. 이를 위해 지속적으로 공부하고, 부족한 부분을 스스로 찾아내고 보완해 나갈 예정이다.