본문 바로가기

Personal/Notes

[구름톤 딥다이브 후기] - 클라우드 네이티브 엔지니어링, 1차 프로젝트 회고 #7

최근 5~6주 동안 헬스장이랑 컴퓨터 앞 말고는 다른 동선이 일체 없었다.

주말 하루하루씩 못 보던 지인들도 겨우 보는 정도인데, 스트레스 받을 때도 있었지만, 생각보다 재미난 날들의 연속인 것 같다.

주변 사람들이 하나 둘씩 좋은 기업에 취업해 가는 것을 보면서도, 옛날의 나였다면 부러웠을텐데 전혀 그렇지도 않다.

내가 하고싶은 공부이고, 내가 하고싶은 방향에만 집중하면서 하니 기술의 트렌드에 구애받지 않고 재밌게 잘하고 있는 것 같다.

계속해 보고 안 되면 다른 직무를 해도 상관 없고, 인생이 길다는 생각을 하고나니 요즘에는 부담감도 많이 사라지고 즐기면서 취업 준비 생활을 하고있다.

 

1차 프로젝트 회고

내가 프론트라니

  • 프로젝트 시작 초기에 프론트엔드 희망하시는 분들이 없고, 다들 기피하셔서 맡아서 했다.
  • 우리 프로젝트는 OpenAPI 서버에서 제공해 주는 WebSocket 을 활용해 약 200~300개의 실시간 데이터들을 핸들링 해야해서 생각보다 기술적인 챌린지도 많았다.
  • 내가 기억하는 재밌던 프론트엔드 영역에서의 챌린지들 …
    • NextJS 프록시를 활용한 OpenAPI 호출횟수 제한 우회
    • 전역 컴포넌트에서 WebSocket Connection 관리
    • 네트워킹 속도 최적화를 위한 API 호출 횟수 최적화
    • V0(AI)를 활용한 퍼블리싱
    • 첫 React 라이브러리를 활용한 프로젝트 → 처음 보는 개념이 너무 많아 끔찍했다.

 

4번의 아키텍처 설계와 EKS 클러스터까지

처음에는 Vercel 등 MVP 배포를 위해 마구잡이로 설계한 아키텍처였다.

애자일하게 개발해 보자라는 욕심과 함께 프로젝트 시작한지 8~9일만에 배포했다.

 

두 번째는 Amplify 클라우드 리소스들을 활용하여 서버리스 서비스들을 활용했다.

특히 Vercel 처럼 Github 저장소를 알아서 추적해서 배포까지 다 해주는 게 기가 막혔다.

졸업 프로젝트에서 Github Actions 로 일일이 파이프라인을 작성했던 내가 바보가 된 기분.

물론 이걸 프로덕트로 사용하기에는 비용이 만만치 않다.

 

세 번째는 ECS 클러스터를 활용한 아키텍처였다.

우리 서비스의 경우, MSA 환경에서 동작하므로 ECS나 EKS로의 전환은 불가피했다.

다만 EKS 클러스터를 사용하냐 ECS 클러스터를 사용하냐로 정말 많은 이야기들이 오갔다.

특히 EKS 클러스터의 경우, 시간당 0.01$ 가 부과되기도 하고 오버엔지니어링 이라는 이야기도 나왔다.

나도 오버 엔지니어링 이라는 생각을 하고 있었는데, 팀원분 중 한 분이 EKS를 꼭 사용해 보고 싶다고 하셔서 갑자기 방향을 틀었다.

 

네 번째는 EKS 클러스터를 활용한 아키텍처이고 구성에 성공했다.

주어진 시간은 단 3~4일 정도였고, EKS 클러스터 위에 Kubernetes Resource 들을 배포하면서도 수많은 에러들을 만났다.

가장 아쉬운 점은 시간에 너무 부족해서 트러블슈팅 리포트조차 제대로 작성하지 못한 것이다.

정말 후회되고, 오늘을 기점으로 만나는 트러블슈팅을 모두 기록해야겠다..

최종 아키텍처(4주 동안 개발)는 아래와 같다.

 

그외에 내가 한 일

  • 자잘한 백엔드 오류 수정
  • Github Actions CI 파이프라인 부분 구성
  • Kiali 대시보드 및 Prometheus 샘플 구성 등

전반적으로 역할에 집중하기 보다는 우리 프로젝트에서 발생하는 모든 문제를 적극적으로 해결해 나가려고 했다.

 

좋았던 점

  • 정말 짧은 일정 속에서도 산출물을 뽑아낸 것
  • 마인드가 완전 바뀌었다. 과거에는 내가 맡은 일을 진짜 잘 해내야지! 였다면, 지금은 내가 속한 팀의 진짜 문제가 뭔지, 어떻게 해결할 것인지, 팀원들과 소통을 어떻게 할 것인지 등을 진짜 많이 배웠다.

 

2차 프로젝트에서 하고 있는 것들

  • 코드 정적 분석 도구 Github Actions CI 연동
  • 코드 동적 분석 도구 Github Actions CI 연동
  • ArgoCD를 활용한 GitOps 환경 구축
  • 각종 모니터링 추가
  • 프론트엔드, 백엔드 연동 과정에서 발생한 이슈 해결
  • 프론트엔드 메모리 최적화
  • 컨테이너 이미지 최적화
  • 분석 보안 취약점 기반 보완

 

3차 프로젝트에서 할 일들

  • Terraform 을 활용한 AWS 인프라 관리
  • 필요에 따라 Ansible 도입 → 온프레미스 환경과 연동 고려
  • 재밌는 AI 모델 개발 (Kaggle 에서 정제된 데이터셋을 활용하면 시간을 많이 절약할 수 있다고 판단) → 온프레미스 환경에서 배포 → 우리 서비스를 하이브리드 클라우드 아키텍처로! (나의 욕심)

 

이번 회고도 생각보다 늦게 작성하게 돼서 조금 아쉽다.

진짜 블로그를 생각할 시간도 없었다 ㅠㅠ..

사실 이 글도 Terraform 을 활용하여 EKS 테스트 중인데, 생성하고 삭제할 때마다 기본 10~15분은 걸려서 오랜만에 들어오다가 끝까지 작성해 버렸다.