관리 메뉴

KorSA

레거시 개선 글 모음 본문

IT Community/Development

레거시 개선 글 모음

Praiv. 2022. 7. 7. 14:55
320x100

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

 

> 약 3년 이상 뱅크샐러드의 성장을 견인한 고마운 서비스였지만 저희가 더 빠르게 성장하기 위해서는 이 레거시 서비스가 가진 복잡도를 반드시 제거해야만 했습니다. 저희는 이 거대한 레거시 서비스를 분해decomposition하는 방법을 택했습니다. 복잡도가 높은 서비스 하나를 복잡도가 낮은 서비스 여럿으로 해체하는 방법을 택한 것이죠. 여기서 저희의 첫 번째 고민이 시작됩니다. 이 거대한 서비스를 어떤 모습으로 나눌 것인가.

 

> 이런 불확실성을 제어하기 위해 ‘내가 확실히 알고 있는 무언가’로부터 생각을 시작해봤고, 저희가 당시에 삼은 기준은 ‘우리 조직’이었습니다. 콘웨이의 법칙대로 “소프트웨어의 구조는 이 소프트웨어를 만들어낸 조직의 커뮤니케이션 구조를 따른다”는 말에 착안한 것이죠. 달리 말하면 저희가 새롭게 구상할 서비스 구조를 뱅크샐러드 조직이 일하는 방식에 맞춰 생각해본 셈입니다. [2]

 

> 저희가 가장 먼저 시도했던 건 문제를 단순하게 바꾸어 프로젝트의 가시성을 확보하는 일이었습니다. 이를 위해 저희는 섀도잉shadowing을 도입했습니다. 섀도잉은 말 그대로 같은 요청에 대해 기존 서비스와 새로운 서비스의 응답이 일치하는지 비교하는 방법을 뜻합니다.

 

> 따라서 저희는 프로젝트 초중반에는 하루에 한 번 만나서 스탠드업 미팅을 진행했고, 프로젝트 막바지에는 두 시간에 한 번씩 만나서 스탠드업 미팅을 진행했습니다. 프로젝트 마무리 단계로 갈수록 프로젝트의 복잡도는 (작성한 코드를 포함해 확인해야 할 대상이 늘었으니) 점점 더 올라가기 마련이기에 끝까지 속도를 잃지 않기 위해 두 시간에 한 번씩 만난다는 다소 파격적인, 어떻게 보면 시간 소모가 심할 것 같은 협업 방식을 제안했었고 결과는 대성공이었습니다. 오히려 실패 비용을 최소화할 수 있었고, 적절한 시점에 적절한 도움을 서로 지원할 수 있었습니다. 어떻게 보면 협업의 복잡도와 비용을 줄인 셈이죠. 덕분에 뒷심을 잃지 않고 프로젝트를 끝까지 잘 마무리할 수 있었습니다.

728x90
728x90

'IT Community > Development' 카테고리의 다른 글

데이터 엔지니어링 글 모음  (0) 2022.07.15
문서화 글 모음  (0) 2022.07.07
개발자에 관한 글 모음  (0) 2022.01.18
Comments