후기

[후기] Goorm Training 쿠버네티스 과정 14회차 후기

IT록흐 2024. 1. 6. 23:08
반응형

 

 

 

Goorm 사에서 주관한

쿠버네티스 교육과정이 마무리 되었다.

 

23.09.08부터 24.01.05까지

4개월 간의 힘든 여정이었다.

 

 

 

 

 

결과도 좋았다.

 

우수 프로젝트와 우수 수료생으로 뽑혔다.

65만원 상당의 제주도 호텔 펜트하우스 

1박권도 부상으로 받았다.

 

우리가 만든 프로젝트는 아래 링크를 참고하면 된다.

 

 

Dokcer-DevLink

Dokcer-DevLink has 14 repositories available. Follow their code on GitHub.

github.com

( 참고로 Dokcer는 오타가 아니다 ㅎㅎ.. )

 


 

 

 

결론부터 말하면, 

4개월 동안 고통스러웠고 고통스러운 만큼 많은 성장을 하여 정말 만족스럽다.

 

인프라에 대한 기반지식이 없는 상태에서 쿠버네티스라는 러닝커브가 높은 기술을 이해하기 쉽지 않았다. 그래서 스터디가 정말 중요했다. 나는 운이 좋게도 쿠버네티스 교육과정에 진심인 분들을 만나 스터디와 프로젝트를 진행하였다.  구름 트레이닝 측에서 내주는 쿠버네티스 과제의 난이도가 높았기에, 시간이 흐를수록 과정을 포기하는 사람이 늘어갔다. 그분들이 실력이 없었다기 보다는 과제 난이도가 높아 교육과정과 다른 일( 직장, 대학, 취업준비 )을 병행하기 힘들어 포기한 것 같았다. 결국, 20명으로 시작해서 수료는 9명뿐이었다.

 

4개월 과정 중 2개월은 이론 기간이고 2개월은 프로젝트 기간이다. 

 

 

1. 이론기간 ( 2개월 )

 

이론 기간동안 과제를 내주는데 인프라 지식이 높은 사람을 제외하면, 혼자서 해결하기 힘든 난이도이다. 쿠버네티스 멘토님이 계시지만 그분도 직장인이라 주구장창 우리만 보고 있을 수 없었다. 결국은 스터디를 하며 서로의 문제상황을 공유하며 함께 해결할 수 밖에 없었다. 우리 스터디는 5명이 똘똘 뭉쳐 주어진 과제를 100% 마무리 하였다. 

 

 

 

 

 

쿠버네티스 철학을 이해하기 힘들었지만 아키텍처를 그리며 쿠버네티스 동작원리를 파악하는데 최선을 다했고 콘솔로 EC2도 못 만들었던 내가 IaC를 활용하여 VPC, 서브넷, 라우팅테이블, 게이트웨이, EKS 등을 구성하려고 노력했다. 그 결과, 어느새 기초적인 시스템 하나 정도는 구성할 수 있게 되었다.  

 

 

 

 

 

 

 

정리하면 이론기간은 스터디와 멘토링이 전부인 것 같다. 어떻게든 똘똘 뭉쳐서 문제를 해결하고 도움을 받았다. Goorm 측에서 인프런과 제휴하여 인프라 관련 강의도 빵빵하게 지원해주니 성장하기 좋은 시간이었다.

 

 

2. 프로젝트 기간 ( 2개월 )

 

프로젝트 기간은 2개월이지만 기획 및 설계 단계를 제외하면 실제 개발할 수 있는 기간은 5주뿐이었다. 

 

이 부분이 쿠버네티스 과정에서 가장 아쉬웠다.

 

쿠버네티스 기술은 서비스를 잘게 나누는 MSA 아키텍처에 유용하다. 서비스가 많으면 많을수록 쿠버네티스 기술이 적합하다. 그런데 개발기간이 5주뿐이니 많은 서비스를 만들 수 없었다. 서비스는 많지 않은데 쿠버네티스 기술을 사용한다면 오버엔지니어링이 되어 버리는 것이다. 그렇다고 모놀로식으로 진행하자니 쿠버네티스 과정의 의미가 사라져 버렸다.

 

결국 어떤 선택을 하든 문제가 되는 것이다.

 

실제로 기획 멘토링 시간에 쿠버네티스가 오버엔지니어링이 되면 안 된다고 하여 서비스를 여러 개로 나누었더니 프로젝트 기간 안에 만들 수 없다고 지적을 받았다. 우리가 MSA로 프로젝트를 구현할 수 있는지도 의문인 상황에서 불확실성이 너무 많았다. 그래도 어쩔 수 없었다. 쿠버네티스 과정이니 MSA로 갈 수 밖에 없었고 5주 뿐이더라도 서비스를 여러 개를 만들어야만 했다. 서비스 8개를 기획했고 그정도면 MSA 프로젝트로 적합하다는 말은 들었지만 역시나 시간 안에 못 만들 것이라는 말을 들었다. 

 

 

 

 

 

 

결론부터 말하면 프로젝트는 어느정도 성공적으로 마무리 되었다.

 

MSA라고 하기에는 실제로 MSA 개발하시는 분들에게 부끄럽지만 기획했던 서비스를 모두 만들어내었고 처음하는 MSA 프로젝트 치고는 좋은 성과를 만들어냈다고 생각한다. 프로젝트를 하며 만났던 가장 큰 문제는 MSA에 대한 지식 부족이었다. 

 

Spring Cloud를 이용하여 개발을 시작하였는데, Spring Cloud Nexflix Eureka 서버를 서비스 디스커버리로 사용하였다. 그런데 쿠버네티스는 쿠버네티스 전용 서비스 디스커버리가 존재한다. 다시말하여, 우리가 로컬환경에서 만들어 놓은 서비스들을 쿠버네티스에 올릴 수 있는 방법을 다시 찾아야 했다. 이 과정을 담당한 팀장님은 잠도 제대로 자지 못했다. 쿠버네티스에 Spring 서비스를 올릴 수 있는지 여부에 따라 프로젝트 향방이 결정되었기 때문이다. 힘든 사투 끝에 팀장님은 답을 찾았고 MSA의 길이 열렸다.

 

 

 

 

 

설정 파일은 2개로 나누어 로컬환경에서는 Eureka 서버 설정을, 운영환경에서는 Kubernetes 환경을 사용할 수 있도록 구성하였다. 이 과정에서 Kubernetes 환경에서 서비스간 통신이 안 되는 문제가 있었는데, 내가 팀장님을 지원하여 Spring 라이브러리 종속성에 문제가 있음을 발견하고 해결하는데 일조하였다. 

 

쿠버네티스를 배우며 DevOps에 관심이 생긴 나는 프로젝트를 하면 쿠버네티스 구성을 담당하고 싶었지만 백엔드 개발자가 되고 싶어 퇴사까지 한 입장에서 BackEnd 개발이 우선이었다. 8개 서비스 중 5개 서비스를 담당하였고 밤낮없이 개발을 진행하였다.  그 과정에서 웹소켓 통신, JPA, QueryDSL, Kafka, 유효성 검사, 예외처리 등 실제 개발하면 만날 수 있는 다양한 문제를 경험하였다. 4-5 개월간 김영한 강의를 수강하며 배운 지식을 거의 전부 쏟아 부었다. 확실히 강의만 들었을때보다 실제로 프로젝트를 해봐야 기술이 마음 깊이 와닿는 것 같다. 보이지 않던 부분들도 보이기 시작했고 스스로가 어떤 방향으로 나아가야 할지도 보였다.   

 

 

정리

 

Goorm Training 쿠버네티스 과정을 하며 정말 많은 성장을 하였다. 처음에는 단순히 CICD를 구현이 목표였지만 이제는 CICD를 넘어서 기초적인 시스템 정도는 혼자서 설계할 수 있게 되었다. 짧은 시간동안 많은 기술을 배우다보니 깊이를 다져야 하는 부분도 늘어났지만 웹서비스 전반을 이해할 수 있게 되었다. 단순히 쿠버네티스 기술만이 아니라 기획, 협업, 소통 및 마인드 까지 배울 수 있었고 좋은 사람들을 알게 되어 더욱 값진 시간이었다.  이런 좋은 시간을 갖도록 지원해준 고용노동부와 Goorm 측에 감사하고 수료까지 함께 달려 간 팀원들과 멘토분들에게 깊은 감사를 느낀다.

 

 

 

 

 

 

 

 

 

 

반응형