토스 엔지니어링(Engineering)의 위대한 진화
토스 엔지니어링(Engineering) 이모저모
간편송금 서비스에서 시작한 토스가 종합 금융 플랫폼으로 확장된 것은 토스 엔지니어링 진화라고 말해도 과언이 아닌데요. 불과 1년 만에 완전히 다른 차원의 금융 서비스로 발전한 토스(Toss). 그 기반이 된 엔지니어링은 어떤 변화가 있었을까요?
인프라/서버 확장
먼저, 숫자의 큰 변화가 있었는데요. 지난 1년 동안 엔지니어 및 Repository는 약 2배, IDC 서버는 약 5배 증가했습니다. 숫자의 변화와 더불어 큰 변화 중 하나는 서비스가 빠르게 런칭되고 확장됨에 따라, 이를 구축하는 인프라 환경에 효율적인 시스템을 도입했다는 점인데요. 이를 통해 개발자가 일하기 좋은 환경을 조성했다는 성과도 있었습니다.
CI/CD 고도화
개발자들이 만든 결과물이 저장소에 통합되면 이를 기반으로 빌드가 되는데요. 이를 배포하여 서비스에 적용 및 테스트하는 CI/CD를 도입하여 자동화함으로써 지속적인 순환이 가능해졌습니다. 특정 시점의 빌드 버전을 가져다 서버에 배포, 테스트를 가능케한 CI/CD를 클라이언트, 서버 양쪽에 모두 구축하였는데요. 기존 개발 환경 대비 양질의 개발을 진행할 수 있는 여건을 구축했습니다.
DC/OS 고도화
토스는 전자금융 규제에 따라 클라우드 서버 구축에 제한이 있어 물리서버를 운용하고 있습니다. 이에 따라, 독립적인 데이터 센터에 각각 물리 서버의 어플리케이션을 구동하고 운영하고 있는데요. 유지 및 보수 비용이 상당하고, 소수의 인원으로 운영하기에 녹록치 않았습니다.
그래서 이를 개선하기 위해 DC/OS를 도입했는데요. DC/OS에 서비스를 배포하면 서비스가 요구한 리소스를 측정하고, 적절한 서버에 즉시 자동 배치함으로써 과도한 리소스 사용으로 서버가 죽는 상황을 방지합니다. 새로운 서비스를 확장할 때도 추가적인 작업 없이 배포와 함께 자동으로 메트릭과 로그 수집, 로드밸런서 연결, 도메인 할당을 지원하여 쾌적한 배포, 운영 환경을 제공하고 있습니다.
편리하고 안전한 서버 개발/운영 환경 구축
토스팀은 클라우드 환경 없이 편리하고 안전한 서버 개발/운영 환경을 구축했는데요. 시스템 변화와 함께 개발에 용이한 최신 언어도 도입했습니다. 안드로이드, iOS에 각각 Kotlin과 swift와 더불어 최근 트렌드에 맞춘 reactive에 기반을 둔 ReactiveX java를 도입했습니다.
이를 통해 모던하고 트랜디한 언어로 코드 양은 줄고, 반복을 지양하기에 좋은 결과물을 얻을 수 있게 되었습니다.
데이터 분석 플랫폼의 진화
토스가 보유한 상당한 규모의 데이터를 적재, 분석, 시각화까지 모두 자동화해서 통합 관리하는 ‘하둡에코시스템’을 구축하여 데이터 플랫폼을 완성했습니다. 그래서 주요 비즈니스 지표를 슬랙과 그라파나 대시보드를 이용하여 토스 팀 전원에게 실시간으로 공개할 수 있게 되었어요.
또한 각 담당자가 필요한 데이터, 꼭 봐야 할 주요 데이터만 집어내는 ‘토스 인사이트 프로젝트’를 작년부터 시행했는데요. 토스의 모든 지표를 실시간으로 분석하여 급격한 지표 변동 시 알람이 오도록 설정했습니다. 메트릭이 수 백가지가 있지만 꼭 주의할 것, 큰 변화가 있는 것만 나오기에 이에 따른 대처나 비즈니스 인사이트를 발굴하기 용이해졌습니다.
보안 강화
국제보안 표준규격 PCI DSS 인증 획득으로 보안 또한 강화되었는데요. 앱 실행 속도와 보안 두 측면을 충족시키기 위해 개발 팀과 보안 팀에서 전력을 내고 있습니다. 2018년에는 더욱 탄탄하고 안정적인 플랫폼으로 진화해 ‘국민 금융 서비스 토스(Toss)’로 성장하고자 합니다.
“We’re Here to Make History”