금융IT와 MSA - 1. 왜 필요한가?
0. 카카오는 빠른데, 내가 쓰는 은행은 왜이렇게 느려?
여러 은행 어플을 사용 중이라면
한 번쯤 생각해봤을 내용이다.
카카오나 토스로는 금방 되는게 은행어플에서는 오래 걸린다.
그럼 카카오는 왜 빠를까?
그리고 왜 몇년이 지나도 다른 은행들은 그 속도를 못 따라잡을까?
어떤 사람들은 카카오뱅크가 공인인증서를 안 쓰기 때문이라고 말한다.
post.naver.com/viewer/postView.nhn?volumeNo=17991796
위 글에서는 속도 차이의 이유를
카카오뱅크가 공인인증서를 사용하지 않기 때문에 빠르다고 설명한다.
그러나 단순히 로그인만의 문제가 아니다.
실제 사용을 해보면 로그인한 이후 모든 상황에서 반응속도의 차이는 확연하다.
제공하는 서비스가 더 많기때문에 느리다는 말도 설득력이 떨어진다.
대부분의 은행은 제공하는 서비스를 여러개 어플로 나눠서 제공하지만,
정작 사용자들은 느리다고 느낀다.
결국 속도의 차이는 근본적으로
소프트웨어 아키텍처와 코드 효율성의 차이라고 생각한다.
그래서 최근 금융권 Digital Transformation의 키워드인 MSA, Cloud, Big Data 등을 살펴보고자 한다.
1. MSA와 금융
1) 과거의 믿음 - MSA가 금융IT의 생산성을 떨어뜨릴 것이다.
금융IT는 다른 산업에 비해
① 안정성이 무엇보다 중요하다.
② 데이터의 결합도가 높다.
③ 다양한 시스템이 존재한다. (계정계, 정보계, 대외계, 채널계, 운영계, 기간계 등)
데이터 결합도가 매우 높기때문에
다른 시스템 사이에서 같은 테이블을 참조해야하는 상황이 많다.
따라서 기존의 통합된 시스템으로
단 한 번의 DB connection으로 끝날 트랜잭션이,
MSA 시스템에서는
2번 이상의 DB connection과 API 통신으로 불필요한 서버 부하를 발생시킬 수 있다.
2) 그럼에도 불구하고 - MSA는 금융IT에 꼭 필요하다.
소프트웨어 아키텍처 전문가이자 'Refactoring' 의 저자
Martin Fowler는 2015년 아래와 같은 그래프를 제시했다.
출처 : martinfowler.com/bliki/MicroservicePremium.html
그래프에 따르면 X축인 '시스템 복잡도'가 높은 시스템은
Monolith한 시스템보다 Microservice를 구성할 경우
생산성이 더 좋다는 의미를 담고 있다.
2015년의 Martin Fowler는 위의 그래프에 인상적인 한 마디를 덧붙였다.
But remember the skill of the team will outweigh any monolith/microservice choice
결국 통합시스템이냐 MSA냐가 중요한것이 아니라 팀의 기술역량이 더 중요하다는 것이다.
앞서 말한 카카오뱅크의 코어시스템은 전북은행에서 이미 사용중이던 LG CNS의 JAVA 솔루션과 동일하다.
따라서 MSA가 아닐 것으로 추정되고, 기성 은행들에서 이미 사용중인 아키텍처를 채택했다.
같은 아키텍처를 채택하더라도 그 위에 그려낸 코드의 효율성이 속도의 차이를 만들어낼 수 있다.
반대로 MSA를 도입하더라도 설계/구현 과정에서의 Skill로 생산성을 충분히 높일 수 있다.
그리고 2015년보다 H/W의 성능이 매우 발전했다.
따라서 MSA 구조로 인한 비효율성이 주는 불이익이 이전보다 감소했다.
금융IT의 MSA 전환은 이미 시작됐다.
전세계에서 가장 많은 트래픽이 몰리는 중국판 블랙프라이데이인 '광군제'.
2020년 11월 광군제 기간(1일~11일)동안 중국 알리바바 그룹은 거래액 약 83조원을 달성했다. (4,982억 위안)
알리페이는 초당 54만 4,000건의 상품구매와 970페타바이트(PB)의 데이터를 무장애로 처리했다.
알리페이의 고성능 거래처리 시스템은 MSA와 리눅스 기반 x86 서버 하드웨어로 구축돼있다.
이러한 설계 덕분에 시스템 사용량이 늘어나면 빠르게 서버를 추가해
방대한 양의 데이터를 실시간으로 처리할 수 있었다.
카카오뱅크 채용공고 우대사항에는 이런 말이 적혀있다.
• 기존 시스템의 문제를 해결하고자 MSA로의 전환 등 아키텍처 개선을 진행한 경험이 있는 분
카카오페이증권 역시 곧 출시할 MTS에 증권업계 최초로
원장관리시스템에 MSA를 적용할 것이라고 밝혔다.
이제 몇년만 지나도 MSA를 적용한 금융시스템이 빠르고 특별한게 아니라,
전통적인 금융시스템을 유지하는 업체가 독보적으로 뒤쳐질 수 있는 것이다.
3) 금융IT에 MSA가 도입된다면
① 기획자 - 누구보다 환영할 사람
MSA 체계가 성공적으로 안착한다면,
새로운 서비스를 출시하고자 할때 빠른 출시가 가능하다.
Amazon, Google, Netflix와 같은 회사들은 하루 수천번의 배포를 하는 것으로 알려졌다.
쿠팡도 MSA 도입 후 하루 수백번의 배포가 이뤄진다고 밝혔다.
기존의 정기이관 개념이 사라지고,
기획자가 원하는 시기에 빠르게 서비스 출시가 가능하다.
② 개발/운영자 (DevOps)
서비스 기준으로 Frontend, Backend, DB 등
A부터 Z까지 모두 책임져야한다.
Full Stack 지식을 기반으로 빠른 Trouble Shooting이 필요하다.
2. 그래서 결론은
결국 금융IT의 MSA 도입은 거스를 수 없는 흐름이다.
어떻게 할 것인지를 고민해야할 시기이다.
- 어떤 시스템에 먼저 적용할지?
- 현재 IT조직을 어떻게 DevOps 조직으로 변경시킬것인지?
- 그 과정에서 어떻게 인력의 기술역량을 확보할 것인지?
* 2편 : 금융IT와 MSA - 2. SAGA 패턴
https://subbak2.tistory.com/96
* 참고자료 : 카카오뱅크 기술스택 ('17년)
출처 : blog.gaerae.com/2017/08/kakaobank-architecture.html
* 참고한 글 :
- 모놀리스에서 마이크로서비스 아키텍처로의 전환 전략 - 박선용 솔루션즈 아키텍트(AWS) ('18.05.01)
- Do Not Use MSA - 마이크로서비스 아키텍처가 꼭 필요한가요? ('20.03.13)
www.samsungsds.com/kr/insights/msa.html
- MSA와 분산아키텍처 수용을 위한 방법: 서비스 메쉬와 이스티오 ('20.06.26)
www.samsungsds.com/kr/insights/service_mesh.html
- 금융IT 코어시스템을 MSA로 전환하기 ('20.06.28)
- 클라우드 시대를 위한 은행시스템은 따로 있다 ('20.11.16)
www.ajunews.com/view/20201116100013262
- 국민은행-VM웨어, ‘MSA 도입’ 워킹그룹 운영 ('20.11.30)
www.bikorea.net/news/articleView.html?idxno=28806