[CS, BootCamp] LG CNS AM Inspire Camp 분석
주소 : https://lgcnscamp.kr/
소개
AM 전문가 양성을 목적으로 계획된 부트캠프이다. LG CNS 현업 전문가 그룹이 직접 멘토로 참여한다고 한다.
CNS는 국내 MSP(Managed Service Provider) 중 큰 규모의 기업이기에 이와 같은 점은 큰 매리트가 있다고 생각한다.
기술스택
소개 페이지에는 다음과 같은 기술스택을 사용한다고 소개하고있다. + Spring
분석
해당 교육과정에서 모르는 내용을 중심으로 학습을 진행했다.
AM이란
Application Modernization의 약자로 클라우드 환경에 최적화된 애플리케이션을 개발하는 업무이다.
기존 레거시를 그대로 클라우드 환경에 적용하면 성능 및 유연성에 문제가 생기는데, 이를 개선하는 업무를 한다고 생각하면 된다.
AM의 3대요소
애자일 방법론, DevOps, MSA가 3대 요소로 뽑힌다.
[애자일 방법론]
이미지 출처 : http://ouriken.com/blog/which-one-is-right-for-you-waterfall-or-agile/
기존 사용되던 워터폴 방법론은 개발속도가 느리고 유연성이 낮다는 단점이 있었다. 이를 해결하기 위해 스프린트 단위, 즉 일정 주기를 가지고 탄력적으로 개발을 진행하는 방법론이 애자일 방법론이다.
애자일 방법론의 경우 짧은 사이클로 개발을 진행한 이후 테스트 & 피드백 과정을 반복하며 유연하면서 빠르게 개발을 진행할 수 있다는 장점을 보유하고 있다.
Jira와 같은 툴들을 애자일 방법론 활용에 적극 활용한다.
[DevOps]
개발 (Development) + 운영 (Operation)을 통합한 개발 문화를 뜻한다.
DevOps는 단순 개발 문화를 뜻하는 것은 아니다. CI/CD (Continuous Integration / Continuous Delivery) 파이프라인을 구축하여 개발부터 배포까지의 과정을 자동화하고 안정적으로 만드는 것이 DevOps의 존재의의이다.
CI는 개발자들이 작성한 코드를 주기적으로 통합하고 테스트하는 과정을 자동화하는 것을 말한다. 예를 들어 코드를 push하면 자동으로 테스트가 진행되어 버그를 조기발견한다.
CD는 개발된 코드를 실제 운영 환경에 자동으로 배포하는 것을 말한다. 테스트를 통과한 코드는 자동으로 운영환경에 배포되어 신속한 서비스 제공이 가능하다.
이러한 자동화된 프로세스가 지속적인 개선과 업데이트가 가능한 환경을 제공하기에 AM의 안정성을 확보할 수 있다.
[MSA]
Microservice Architecturre의 약자로 큰 애플리케이션을 작은 서비스로 분리하여 개발 및 관리하는 아키텍처이다.
각 서비스를 독립적으로 개발하고 관리할 수 있는 유연한 구조를 제공하기에 개발 및 유지보수에 용이하다.
오케스트레이션
쉽게 말해 ‘컨테이너들을 관리하는 것’이다. 쿠버네티스가 이에 해당한다. 컨테이너 배포 자동화, 관리, 모니터링 기능을 수행한다.
프로메테우스 & 그라파나
시스템의 CPU 및 메모리 사용량, 트래픽, 오류 발생, 처리시간 등을 모니터링하는 용도로 활용한다.
프로메테우스를 통해 데이터를 수집하고 그라파나를 통해 이를 시각화한다.
카프카
대용량 데이터를 실시간으로 안전하게 전달할 수 있는 메세지 플랫폼이다. MSA 환경에서 서비스간 데이터 동기화, 이벤트 처리 등에 활용한다.
생성형 AI value chain
쉽게 말해 AI가 만들어지고 사용되기까지의 과정을 의미한다.
example : 데이터를 모으고 → 모델을 개발하고 → 인프라를 구축하고 (GPU 서버) → 웹/앱 서비스를 개발하여 → 사용자에게 제공한다.
Inner / Outer Architecture
소프트웨어 게층을 Inner (핵심 업무 로직, 도메인 모델, 업무 규칙) & Outer(외부 인프라/기술, DB, UI, 프레임워크 ..) 영역으로 구분하는 아키텍처 패턴이다. Inner은 Outer에 의존하지 않고, Outer는 Inner에 의존하기에 외부 기술이 변경되어도 핵심 비즈니스 로직은 영향받지 않는다.
IaC (Infrastructure as Code)
코드로 인프라를 관리하는 방식이다.
수동으로 하드웨어를 설정하거나 운영체제를 설정하는 것과 달리 IaC는 코드로 서버, 네트워크, 로드밸런서 등의 인프라를 코드로 정의한다는 것이다.
Terraform과 같은 IaC 도구를 활용하며 다음의 장점을 지닌다.
- 인프라 구성 자동화
- 휴먼 에러 감소
- 일관된 환경 구성
- 변경사항 추적 가능
SI, SE, CDC
SI (System Integration)
시스템을 전체적으로 구축하는 프로젝트성 업무를 수행한다. 고객의 요구사항을 분석하고, 기획부터 개발, 구축, 운영까지 전반적인 시스템 개발을 담당한다. 대규모 프로젝트를 통해 새로운 시스템을 구축하는 것이 주 업무이다.
SE (System Engineer)
기존에 구축된 시스템의 유지보수와 개선을 담당한다. 시스템 운영 중에 발생하는 이슈 해결, 성능 개선, 신규 기능 추가 등 비교적 작은 단위의 개발 업무를 수행한다. 안정적인 시스템 운영과 점진적인 개선에 초점을 맞춘다.
CDC (Cloud Data Consultant)
클라우드 환경에서의 데이터 관련 컨설팅을 제공한다. 고객사의 데이터 아키텍처 설계, 클라우드 마이그레이션 전략 수립, 데이터 분석 솔루션 제안 등을 담당한다. 기술적 구현보다는 전략적 자문과 설계에 중점을 둔다.
결론
분석해보길 잘했단 생각이든다.
DX의 중요성이 커지면서 클라우드의 중요성 또한 커지고 있기에 인프라, 클라우드 관련 지식을 쌓을 필요가 있었는데 큰 도움이 된 것 같다.