essay,

MCC Innovation!!

박승필 박승필 Linkedin Sep 26, 2019 · 2 mins read
MCC Innovation!!
Share this

오늘 부서 팀장님의 안드로이드 패턴 학습 세미나를 진행했다. 함께 세미나에 참가했던 팀원과 퇴근하면서, 이런저런 이야기를 했다. 그 친구는 세미나를 듣고, 자신이 해보고 싶었던 일이라면서, 자신은 어떤 직업이나 직급이 목표가 아니라, 하고싶은 일에 가치를 두면서 살고싶다고 한다.

나름 IT 물 좀 먹었다고 사업이 어떻고 팀이 어떻고 꼰대같은 말을 늘어놓다가 말도 못하게 부끄러워졌다. 나도 분명히 하고 싶은 일이 있는데, 눈치가 보여서, 외면 당할까 봐 겁이 나서 속마음을 숨기고 적당히 포장하며 살고 있는걸 깨달았다. 새로 오신 팀장님도 저렇게 당당하게 자기주장을 하시는데, 난 머가 무섭다고 몸 사리고 있었나 싶다.

집에 와서 내가 가장 하고 싶은게 먼지 생각해 보았다. 장기적인 플랜은 잘 생각이 안난다. 단기적인 플랜으로 생각을 좁혀보았다. 11월부터 클라우드 클래스 지원일정이 있다. 원래는 CICD 정도만 도입하려 했는데, 생각이 바뀌었다. 이런건 마음 약해지기 전에 용기내어 기록으로 남겨야 한다. 얼른 머리속에 떠오르는 생각을 그림으로 풀어보았다.

위 그림은 클라우드 클래스의 Micro Service 아키텍처 도입 시 설계도이다.

아키텍처의 기본 자세는 기획 하고 싶은 대로 다 하게 해주는거다. 기획도 개발자의 한계는 데이터베이스와 UI 라는 생각에서 벗어나, Cloud Native 설계 능력을 갖춘 협업자를 만났을 때 여러가지 일이 가능하다는 것을 보여주고 싶었다. 영업에 의존한 교육판매 이외에, 온라인 클라우드 교육을 제대로 하는 곳을 눈팅 해 보았다. 다음과 같은 시나리오 정도면 가능하겠다 라는 생각이 들었다.

아키텍처 특징

  • 자신의 기능에만 충실한 서비스로 분리하여 고객 요구조건에 민첩하게 대응하기
  • MSA 아키텍처 특징은 하나의 서비스만 패턴을 제대로 숙지하면, 나머지 서비스는 그냥 찍어낼 수 있다. 코딩에 시간을 쏟기보다 설계, 가치 구현에 점점 더 시간을 쏟게 된다.
  • 대용량 (온라인 교육 등) 처리에 탄력적인 인프라 설계
  • 루즐리 커플링, 관심사의 분리
  • BFF(Backend For Frontend) 구현으로 GraphQL 지원 및 서버에서 발생한 이벤트(Server Sent Event) 프론트엔드에 실시간 반영하게 하기
  • TDD 제대로 하기
  • VueJS, VueX, VueRouter 활용하여 체계 잡힌 Vue 프로젝트 도입하기

비즈니스 특징

  • 온/오프라인 강좌 수강시 각 코스에 맞는 Assignment 가 있다. 이 과제를 수행하기 위한 Practice Infrastructure 를 자동 구성 해 준다. AWS 유료강좌를 가면 해주는 것인데, Credit 을 주고 그날 진행할 튜토리얼에 대해 필요한 인프라스트럭쳐를 사전 구성해 준다. 코스마다 CloudFormation 템플릿이 지정되 있는 듯 하다.
  • 온/오프라인 강좌 수강시 교육생이 코스 Assignment 를 수행할 때, CloudTrail 이벤트 감지를 통해 Assignment 진행도 / 성공 여부를 체크하고 다음 스텝으로 넘어간다.
  • 온/오프라인 강좌 수강시 Video 플레이 패턴 또는 Assignment 수행 패턴을 Kinesis 파이프라인을 통해 데이트 웨어 하우스에 분석 결과를 적재하고, 강사에게 피드백을 준다. 강사는 어느 지점에서 수강생이 헤매는지 등을 체크하고 강사 내용을 변경 해 나간다.
  • 수강생이 사용한 AWS Resource 는 미터링 서버를 통해 수집하여, 빌링 서비스에 반영하여 사업부 또는 벤더사에게 과금한다. 또 수강생의 Credit 초과시 수강생의 AWS 권한을 종료시킨다.
  • 매니저, 수강생, 강사, 영업 등 각 Actor 를 명확하게 분리하고, 독립적인 아키텍처 분리 대상으로 바라보고 서비스 설계 해 나갈 수 있어야 한다.
  • 로그인 시 수강생 AWS 계정과 Single Sign On 을 하게 하여, 온라인 강좌 강의 영상을 Security Media Delivery 하게 하여 컨텐츠를 보호한다.
  • Product Catalog, Price Table, Discount Policy, Payment 등은 Billing Service 에서 처리함을 기본으로 한다. 사업이 커지길 원한다면, 빌링 서비스 고도화가 수반된다. http://uengine.org/products/billing 을 참고하자. Zoho Subscription 같은 Saas 형 빌링 서비스도 쓸만하다.

하고 싶은 것

결국 내가 하고 싶은 것은 저런 아키텍처를 구현하고, 계속 유지해 나갈 수 있는 동료들이 있는 회사를 다니고 싶은 것이 아니었을까..? 아래 그림을 보자. SAFE 라는 Lean Enterprises Agile 전문 회사인데, 늘 상 보면서 군침을 흘린다. 내가 치킨집 차리기 전에 저런곳에서 한번이라도 일해 볼 수 있을까 ㅠㅠ

박승필
Written by 박승필
배우는걸 좋아하는 사람입니다.