brunch

You can make anything
by writing

C.S.Lewis

by 앤더슨 Jan 16. 2023

토스의 간편 송금, 기획자가 기술 구조 살펴보기

토스의 간편 송금 Flow Chart [코드스테이츠 PMB 16기]

토스의 간편 송금, 기획자가 기술 구조 살펴보기토스의 간편 송금, 기획자가 기술 구조 살펴보기

더 이상 미룰 수는 없다, 나의 개발 지식 공부


PM의 가장 필요한 덕목 중 하나, 프로덕트를 둘러싼 모든 구성원들과 훌륭히 소통하는 것.

UIUX를 열심히 공부한 덕에 디자이너들과의 소통에는 여전히 자신이 있지만,

개발자들과의 소통에는 아직도 넘을 수 없는 수많은 벽들이 존재하고 있다.

디자이너로 참여했던 사이드 프로젝트에서도 개발자들과의 소통은 늘 크나큰 과제였다.

서로 간 이해를 위해서 최대한 쉽게 풀어서 설명을 하는 데에도, 서로 간 같은 모국어를 사용하고 있음에도

서로의 머릿속은 더 복잡해져만 갔다, 물론 좋은 분들과 프로젝트를 진행했어서

시간이 지날수록 서로가 이야기하는 것을 이해하는 데에 적응이 되고 무리가 없어졌지만, 

이게 만약 현업이고 중요도가 높고 긴박한 프로젝트였다고 상상해 본다면 아직도 등골이 서늘해진다.


이제는 그래서 더는 미룰 수 없다, 나의 개발 지식 공부.












그래서 오늘은 감히, 예비 기획자 / PM이 토스 간편 송금 서비스의 Flow Chart를 따라서

기술 구조에 대해 파악해 보며, 서비스가 어떻게 보이고 작동하는지 예상을 해보는 시간을 가지려 한다.



토스의 간편 송금 서비스 기술 구조 살펴보기










토스의 간편 송금 Flow Chart



토스의 간편 송금 플로우는 굳이 나누어보자면, 두 가지 흐름으로 나뉘게 된다.

Case 1. 계좌로 돈 보내기

Case 2. 연락처로 돈 보내기


사실 분류하기도 민망할 정도로, 흐름상 큰 차이는 없지만 그래도 그 차이는 존재하고 있으니 분류를 했다.


토스 간편 송금의 Flow Chart, 이미지를 자세히 보려면 터치 혹은 클릭해 주세요.


사실상 고객의 서비스 이용흐름만 보여주고 있어, User Flow라고 말하는 게 옳을 것이다.

그래서 이제는 저 속 안을 살펴보도록 해보자.





토스의 간편 송금 기술 구조 살펴보기



소프트웨어 서비스의 일반적인 구조는

유저가 클라이언트에 접속하여 보이는 UI(User Interfaece)를 통해서 서비스와 상호작용하고,

고객의 반응(InPut)에 따라 다시 UI를 제공(OutPut) 하기 위해, 서버를 거쳐 데이터 베이스에서

고객이 필요한 산출물(OutPut)을 꺼내와서 다시 고객에게 UI로 제공하는 시스템이다.

즉 서비스를 이용하는 동안에는 고객, 프런트엔드, 백엔드, 데이터는 끊임없이 상호 교류하는 것이다.

 

서비스를 이용한다는 것은, 위의 관계가 끊임없이 서로 교류한다는 것이다.


User (Client)


서비스를 이용하는 주체이며, Input을 결정한다.

위의 기술 분야들은 결국 모두 유저들로 인해, 유저들을 위해 존재하는 것이라고 봐도 무방하다.

유저들은 토스에 간편 송금을 위해 방문하고, 눈에 보이는 각종 인터페이스와 CTA 버튼을 따라

각 흐름에 맞게 기능과 서비스를 이용하는 역할이다.



UI (Front-End)


고객에게 눈에 보이지 않는 소프트웨어 서비스의 실체를 보여주는 역할이며,

고객이 보는 화면 모든 것을 설계하는데, 고객이 입력한 입력값에 대한 결괏값을 실시간으로 보여줘야

하기 때문에, 백엔드(서버)와 보다 밀접하고 긴밀하게 소통하고 설계되어야 한다.

고객이 계좌를 선택하는 화면, 입력하는 텍스트 상자, 누르는 버튼 등을 구현하는 역할이라고 생각하면 쉽다.



Server (Back-End)


프런트가 실체를 보여줘 고객들이 이용할 수 있도록 돕는 역할이라면, 백엔드는 보이지 않는 곳에서

고객들이 서비스를 잘 이용할 수 있도록 하는 역할을 담당하고 있다.

서버가 대표적이며, 서버를 잘 관리해야 서비스 이용자들은 

서비스들을 멈춤이나 끊김 없이 원활하게 이용할 수 있다.

다음 화면으로 전환할 때 로딩, 계좌 조회 및 송금 시 걸리는 시간등을 결정하는 역할이라고 생각하면 쉽다.




Data (DataBase)


현대 시대는 데이터의 시대라고 봐도 무방할 정도로, 방대한 데이터가 존재한다.

데이터베이스는 우리의 그 많은 데이터 정보들을 담아두고, 관리하며

언제든 꺼내서 다시 사용할 수 있게 해주는 역할을 담당하고 있다.

우리의 오픈 뱅킹 정보들, 비밀번호 및 생체인식 정보 등 서비스를 이용하고 활용하는 데에 필요한

정보들을 보관해 주고, 언제든 다시 꺼내서 사용할 수 있도록 돕는 역할이라고 생각하면 쉽다.




간단하게 토스의 간편 송금에서 각 분야의 역할을 알아봤다면, 

토스는 그러면 어떻게, 각각의 기술/개발 단계를 어떤 방법과 도구로 최적화하며 고객에게 훌륭한 서비스를

제공하고 있는지 알아보기 위해, 토스의 개발자 채용 공고를 살펴보았다.


(좌) 토스의 프론트 엔드 개발자 채용 공고 / (우) 토스의 서버 개발자 채용 공고


(좌) 토스의 AOS 개발자 채용 공고 / (우) 토스의 IOS 개발자 채용 공고

 

토스의 데이터 개발자 채용 공고




위의 채용 공고들에서 분야별로 개발자에게 요구되는 개발 언어들을 정리해서 다시 이미지를 작성했다.


토스의 기술 구조와 각 분야에서 요구되는 개발자들의 개발 언어들


자세한 언어들에 대한 공부는 여기서 한 번에 정리하고, 공부하는 것이 아닌

차차 알아가는 것으로, 2주 후에 다시 내가 알게 된 정보들로 다시 정리해보려 한다.

(2주 후의 나, 과연 뭘 얼마나 알게 될까.?)




토스의 간편 송금 기술 구조에서 궁금했던 사항 몇 가지만 짚어보고, 오늘 글을 마무리하려 한다.



토스의 간편 송금 기술에 대한 나의 궁금증



- 도대체 어떻게 간편 송금이 이루어질까?


토스의 간편 송금은 초기에는 ‘펌뱅킹’(firm banking)이라는 기술을 활용했지만,

2019년부터는 '오픈뱅킹'(Open banking) 기술을 통해 이루어지고 있다.


오픈뱅킹이 무엇인가?

금융결제원이 제공하는 오픈뱅킹은 송금 등의 금융 서비스를 표준화된 형태로 제공하는 방식으로,

이를 통해 토스와 같은 핀테크 앱에서 송금 등의 금융 서비스를 간편하게 이용할 수 있다고 한다.
기존 토스의 송금 서비스는 개별 은행과의 계약을 통해 제공되었으나,

오픈뱅킹으로 토스의 송금 서비스도 금융결제원의 표준화된 방식을 통해 제공되는 형태로 변경되었다.



- 그 많은 트래픽을 토스는 어떻게 감당하고 있을까?


토스의 서비스는 마이크로서비스아키텍처(MSA)로 구성되어 있다고 한다,

마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식이며

이러한 서비스는 독립적인 소규모 팀에서 보유, 운영하는데

마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨

혁신을 실현하고 새로운 기능의 출시 시간을 단축할 수 있게 해 준다고 한다.

개발에만 장점이 있는 것이 아니고, 그래서 서버의 트래픽도 상호 간 유동적으로 조절할 수 있는데

고객이 최소한의 불편을 겪도록 서버의 트래픽을 조절할 수 있다고 한다.


토스에는 실제로 송금 외에도 은행과 연동되는 서비스가 많은데, 그래서 각 연동을 자연스럽게 이어가면서도

개별 서비스의 관리와 작업 그리고 트래픽 관리까지 간단하고, 편리하게 할 수 있는 것이다.


마이크로서비스아키텍쳐는 Amazon, Netflix, eBay와 같은

글로벌 서비스 플레이어가 사용할 만큼 강력하다고 한다.


마이크로서비스 아키텍쳐의 장점


Improves fault isolation : 단일 모듈의 장애에 대해 전체 애플리케이션은 크게 영향을 받지 않습니다.


Eliminates long-term commitment to a single technology stack : 각 개별 서비스에서 새로운 기술 스택을 시험하고자 한다면 바로 시작할 수 있습니다. 의존 관계가 기존 Monolithic 아키텍처보다 적고 유연합니다.


기능 단위로 서비스가 되기에 새로 조인한 개발자가 기능을 더 쉽게 이해할 수 있습니다.



위와 같은 장점이 있다면, 카카오 데이터 센터 화재와 같은 일로 메인 모듈이 장애가 생긴다고 해도

각각의 모듈은 잘 기능하는 것인지 궁금하기도 하다.

이 또한 차차 더 공부해 나아가며 알아보도록 하자.



해결되지 않은 미결 궁금증 목록


- 토스의 프론트엔드 팀은 무슨 일을하고, 어떻게 일하고 있을까?

- 토스의 백엔드 팀은 무슨 일을 하고, 어떻게 일하고 있을까?

- 토스의 데이터 팀은 무슨 일을 하고, 어떻게 일하고 있을까?

- 토스는 팀으로 어떻게 트러블슈팅을 진행할까?


위의 궁금증 또한 2주 후에는 해결할 수 있을 지 의문이지만 다시 돌아왔을 때는

실마리 정도는 보였으면 하는 작지만 어려운 바램이 있다, 

물론 지금 당장 토스 테크 블로그에서 내용들을 확인할 수 있겠지만, 지금의 지식으로는

내용들을 단순히 보기만 하는 것이지 이해할 리는 전무하기 때문에,

지금보다 개발 지식이 조금이라도 차있는 상태에서 보고 정리해 보는 것이 나을 것 같다는 게 

지금의 내 생각이다, 그러니 이쯤 글을 마무리하고 나를 더 채운 뒤에 다시 돌아오도록 하자.





참고 문헌 및 아티클


https://news.mt.co.kr/mtview.php?no=2018062608243466118

https://toss.im/career/jobs?company=%ED%86%A0%EC%8A%A4

https://blog.toss.im/article/toss-openbanking

https://byline.network/2021/04/29-107/

https://www.digitaltoday.co.kr/news/articleView.html?idxno=446042



매거진의 이전글 매일 성장하는, KREAM의 Growth 전략 알아보기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari