학회_공부해요/기술_스터디

[뱅크샐러드]뱅크샐러드는 어떻게 레거시 서비스를 박살 내는가

yenas0 2023. 3. 21. 01:07
반응형

https://blog.banksalad.com/tech/how-banksalald-decomposes-legacy-services/

뱅크샐러드는 어떻게 레거시 서비스를 박살 내는가 | 뱅크샐러드

뱅크샐러드는 앱 출시 이후 약…

blog.banksalad.com

1. 레거시(legacy)란?
사전적의미로 보았을 때 legacy는 "유산"을 뜻한다.
정보기술에서 레거시 시스템이란 낡은 기술이나 , 방법론, 컴퓨터 시스템 등을 말한다. 이는 현대까지도 남아서 쓰이는 기술일 수도 있으나 더 이상 사용되지 않더라도 현대의 기술에 영향을 미치는 경우도 포함한다.
 
2. 뱅크샐러드가 레거시 서비스를 제거해야 했던 이유
뱅크샐러드는 출시 이후 단기간에 폭팔적인 성장을 하였다. 대부분의 빠르게 성장하는 스타트업이 그러하듯,  뱅크샐러드 도 복잡도 제어에 잘 대처하지 못했다. 결과적으로, 하나의 마이크로서버에 계속 기능이 추가되며 거대한 서버가 되었고, 더 이상 코드를 수정하거나 추가할 수 없는 상황이 되었다. 결국 뱅크샐러드는 복잡도가 높은 하나의 서비스를 복잡도가 낮은 서비스 여러개로 분해하기로 하였다.
 
3. 레거시 서비스의 분해

뱅크샐러드는 ‘스쿼드’ 체계로 움직인다. 스쿼드는 피자 한 판 규모의 조직으로, 뱅크샐러드 각 기능의 오너십을 가지고 주도적으로 실험하고 학습하는 조직이다. 즉 이 레거시 서비스 분해를 통해 뱅크샐러드가 얻고자 했던 모습인, 각 스쿼드가 제품상에서도, 그리고 기술적으로도 독립된 오너십을 가지고 주도적으로 실험해볼 수 있는 서비스 구조를 목표로 제품·기술·조직 구조상으로도 강하게 결합되고 느슨하게 연결된 위와 같은 15개의 마이크로서비스 구조를 도출할 수 있다.
 
이 과정은 기술적으로 매우 복잡하고 어렵기 때문에 뱅크샐러드는 문제를 단순화하여 문제의 난이도를 낮추기 위해 세 가지 접근을 사용했다.
(1) 뱅크샐러드가 해결해야 할 문제를 단순화하여 레거시 서비스와 신규 서비스 응답이 얼마나 일치하는지를 측정하는 문제로 바꾼다.
(2) 프로젝트의 목표가 아닌 것을 분명히 하고 원칙에 집중한다.
(3) 매일, 필요하다면 두 시간에 한 번씩 만나 자주 상황을 공유한다.
 
뱅크샐러드에서 가장 먼저 시도 한 것은 섀도잉이다.

섀도잉이란 같은 요청에 대해 기존 서비스와 새로운 서비스의 응답이 일치하는지 비교하는 방법이다. 뱅크샐러드는 신규 서비스와 레거시 서비스가 얼마나 일치하는지 섀도잉 통해 처음에는 적은 요청만을 신규 서비스로 하였으나 점점 더 많은 요청을 신규 서비스에도 보내보도록 조정했다.
 
4. 결론
뱅크샐러드는 레거시 서비스의 분해 이후 얼마 지나지 않아 벌써 많은 서버 차원의 기능 개선이 이뤄졌다. 레거시 서비스를 분해하지 않고 계속 거대한채로 두었다면 이렇게 빨리 개발하여 서비스에 반영할 수 없는 수준의 개선들이었다. 현재, 뱅크샐러드는 뱅크샐러드 내에서 가장 거대하고 복잡했던 레거시 서비스를 분해하는 과정에서 얻은 지혜를 바탕으로 여러 크고 작은 분해 프로젝트가 진행 중이다.

반응형