개요
이번에 GCP Professional Cloud Architect(PCA) 자격증을 취득하면서, 왜 클라우드를 공부하게 되었고, 이를 통해 어떤 활용을 할 수 있었는지에 대해 공유하려 합니다.
프론트엔드 개발자로서 클라우드 기술의 중요성과, 이를 활용해 어떻게 개선과 최적화를 이뤄냈는지 경험을 바탕으로 설명해 보려 합니다.
클라우드를 활용하게 되면서
저는 주로 프론트엔드 개발을 해왔지만, 최근 약 3년간 서비스를 클라우드 환경에서 운영하면서 클라우드의 중요성을 깊이 체감하게 되었습니다. 프론트엔드와 클라우드는 전혀 다른 영역처럼 보일 수 있지만, 서비스 확장성, 안정성, 성능 최적화 측면에서 두 분야는 밀접하게 연결되어 있습니다.
클라우드 기술에 관심을 갖게 된 이후, 실제로 업무에 어떻게 활용했는지 아래와 같이 소개합니다.
1. CI/CD 파이프라인 최적화
컨테이너 사이즈를 모니터링하여 비정상적으로 큰 경우를 신속하게 파악할 수 있었습니다.
이후, 코드 레벨에서 컨테이너 사이즈를 최적화함으로써 전체 빌드 및 푸시 시간을 단축하고 업로드 속도를 개선할 수 있었습니다. 이를 통해 빠르고 효율적인 배포 프로세스를 구축하고, 오토스케일링 시간을 줄여 서비스의 확장성과 안정성을 크게 높일 수 있습니다.
2. 모니터링을 통한 문제 분석 및 자원 최적화
클라우드 모니터링 시각화 도구를 활용해 메모리 누수 등 다양한 문제를 신속하게 파악하고 해소할 수 있습니다.
지속적인 모니터링을 통해 CPU 및 메모리 사용량을 분석한 후, 자원이 과도하게 남는 경우에는 서버 성능을 조정하거나 최소 인스턴스 수를 줄여 자원을 절약할 수 있습니다.
3. 부하테스트로 성능 개선 시각화
부하테스트를 진행하며 다양한 로그 필터 기능을 활용해 실제로 최적화된 항목들이 얼마나 개선되었는지 시각적으로 확인할 수 있었습니다.
예를 들어, 5분 간격으로 ISR(Incremental Static Regeneration) 을 설정한 후, 특정 API가 정확히 한 시간에 12번 호출되는지 모니터링함으로써 POC를 검증할 수 있었습니다.
4. 다양한 AI 솔루션 도입
Google Cloud의 AI 솔루션을 활용해 언어 번역 및 OCR(광학 문자 인식) 기능을 사용했습니다. 이를 활용해 글로벌 사용자에게 맞춤형 언어를 제공하고, 내부 사용자의 편리성을 개선할 수 있었습니다.
GCP PCA 자격증?
Google Cloud Professional Cloud Architect (PCA) 자격증은 Google Cloud 기술을 활용하여 안전하고 확장 가능하며 동적인 솔루션을 설계, 개발, 관리할 수 있는 능력을 검증하는 자격입니다.
PCA 자격증을 선택한 이유
사실, 앞서 언급한 클라우드 학습 목표에는 Cloud Developer (PCD) 나 Cloud DevOps Engineer (PCDE) 자격증이 더 적합할 수 있습니다. 그러나 PCA를 선택한 이유는 서비스 활용에 어느 정도 익숙해진 단계에서, 서비스에 대한 깊은 이해를 통해 불확실성을 해소하고, 최적의 선택을 내릴 수 있는 역량을 기르기 위해서였습니다.
1. 서비스에 대한 이해
기존에는 단순히 가이드를 참고해 서비스를 사용했으나, 각 서비스의 핵심 기능과 사용 목적을 명확히 이해하고 활용할 수 있게 되었습니다.
예를 들어, 로드 밸런서의 목적과 프론트엔드 및 백엔드 서비스의 역할을 정확하게 이해하고 적용할 수 있게 되었습니다.
2. 서비스 선택에 대한 기준 확립
어떤 환경에서 어떤 기술을 선택해야 하는지에 대한 명확한 기준이 생겼습니다.
예를 들어, 스토리지를 활용할 때, 장기 보관이 필요한 로그 데이터를 효율적으로 저장하고 생명 주기를 통해 자동으로 저장 방식을 조정하며, 스토리지 권한을 활용한 접근 제어 설계 등 더 전략적인 접근이 가능해졌습니다.
3. 최적의 서비스 선택 능력
주어진 환경과 자원 내에서 가장 효율적이고 비용 효과적인 서비스를 선택할 수 있는 능력을 기르게 되었습니다.
예전에는 무조건 CDN이 최선이라고 생각했으나, 이제는 국내 단일 리전에서 제공되는 서비스의 경우 모든 콘텐츠를 CDN에 올리는 것이 과연 최적의 선택인지 고민하게 되었습니다.
앞으로의 활용
회사마다 인프라와 클라우드 접근 권한에 차이가 있을 수 있습니다. 접근 권한이 제한적일지라도, 클라우드 개발자와 원활하게 소통하고 문제를 해결하기 위해 클라우드를 공부하는 것은 충분히 가치가 있다고 생각합니다.
클라우드에 대한 이해는 프론트엔드 개발자로서 더 넓은 시야를 갖게 해주었고, 이를 통해 서비스의 확장성과 안정성을 높이는 데 실질적으로 기여할 수 있었습니다.
앞으로도 이 경험을 바탕으로 클라우드 기술을 지속적으로 활용하여 더 나은 사용자 경험을 제공하고, 팀 내 효율적인 협업과 문제 해결에 기여할 수 있도록 노력할 예정입니다.