brunch

You can make anything
by writing

C.S.Lewis

by 이지훈 Mar 27. 2023

다시 보는 미니스탁의
데이터와 개발

코드스테이츠 PMB 17 W7D4

       

시작하며



해당 포스팅은 지난 '미니스탁으로 알아보는 데이터의 세계'와 이어지는 내용입니다.







개발이 어떤 건지는 알겠는데
다시 보면 또 까먹어...





 지난 2주간 우리가 기획하고 디자인한 산출물을 구현하는 과정인 개발의 기초 지식에 대해 배웠다. 프론트엔드부터 백엔드 그리고 데이터를 수집하고 전송하는 전체적인 흐름까지... 현업에서 개발자들과 함께 협업하기 위해 그들의 사고와 언어에 대해 배우는 기간이었다. 이전에 디자이너로 일하면서 어렴풋이 들었었던 개념과 용어가 어떤 의미인지 알게 되었다. 하지만 마치 제2 외국어를 배우는 것처럼, 이해하고 뒤돌아서면 또 까먹고 헷갈려한다. 내가 오랜 시간 GUI, UXUI 디자인을 배우고, 실무를 한 것처럼 개발자들이 오랫동안 축적해 온 경험과 역량을 단숨에 이해하기는 무리이기 때문이다. PM을 준비하면서, PM 현업에서 일을 하면서도 개발의 세계관을 이해하기 위해 꾸준히 팔로우하며 습득해야겠다는 생각을 했다.









개념 정리

 

 

포스팅에 앞서, 개발의 기본 개념에 대해 다시 한번 정리해보려 한다.




UI (User Interface)


UI는 고객에게 데이터를 눈으로 볼 수 있게 하는 역할을 하며, 고객의 행동과 입력 값에 따른 결과를 즉각적으로 보여줘야 하기 때문에 백엔드(서버)와 긴밀하게 소통하고 연결해야 한다. 버튼 하나, 필터 하나마다 불러와야 하는 데이터의 종류와 양이 천차만별이기 때문이다.




Client


사용자가 필요한 정보를 클라이언트를 통해 서버로 전송하며 서버에서는 정보를 토대로 사용자에게 필요한 정보를 클라이언트로 다시 전달한다. 이 과정을 API라고 하며 클라이언트는 API의 시작이다 마무리를 담당한다.





Server


클라이언트가 API를 요청하면, 그 요청에 답을 주는 것이 서버이다. 클라이언트의 요청에 따라 서버가 데이터베이스의 데이터를 가져오고, 다시 클라이언트에게 제공하는 과정을 담당한다. 데이터를 주고받는 방식에는 대표적으로 JSON, XML 등이 있다.





Database


서버는 클라이언트를 통해 유입된 사용자들의 요청에 따라 기능을 수행하여 클라이언트로 다시 전송하게 되는데, 요청한 기능을 수행하기 위한 데이터를 저장하고 있는 곳이 데이터베이스이다.

데이터베이스는 데이터를 저장하는 데이터 서버, 데이터를 관리하는 DBMS, 데이터를 다루는 언어인 SQL 등으로 구성되어 있고, 고객 데이터뿐만 아니라 IT서비스의 전반적인 데이터 처리는 데이터베이스를 통해 처리된다.









2주 전에 쓴 미니스탁 분석 다시 보기




Flow Chart


본격적으로 데이터, 개발 지식을 배우기 전인 2주 전, '미니스탁' 주식 주문의 Flow Chart를 그려보았다. 사용자가 미니스탁을 처음 접속해서 기업을 검색하고 구매할 금액 입력과 주문 완료까지의 과정까지이다.


 우선 사용자는 앱을 둘러보며 기업들을 살펴본다. 그 과정에서 원하는 기업을 찾고 구매 단계로 진입한다. 미니스탁의 메인 기능인 '소수점 구매'와 여느 다른 주식 애플리케이션과 유사한 '1주 구매' 중 하나를 선택해야 한다. '소수점 구매'를 선택한다면 최소 1,000원 이상의 구매 금액을 입력하게 되고, 사용자의 출금 계좌에 잔고가 있는 경우 구매 접수가 된다. 구매가 처리되고 나면 사용자의 계좌상에는 주식을 보유하고 있는 것으로 나오지만, 실제로는 영업일 기준 +3일 (국내 주식은 +2일) 뒤에 주주 명단에 오르게 된다. 이 과정에 대해선 미니스탁의 Data Flow에서 자세히 알아보려 한다.








Data Flow


 


 우리가 애플리케이션을 사용하면서 발생하는 여러 데이터들은 우리가 보고 있는 UI부터 시작하여 Client, Server를 거쳐 DB에 축적되고 또 전달받는다. 미니스탁에서 주식을 구매하며 생기는 대표적인 케이스 중 '계좌 잔고가 있는 경우'를 기준으로 이 과정에 대해 자세히 알아보자.



출처 : 삼성증권 고객센터


 투자자(사용자)가 거래 종류를 설정하고 (1번) 주문(2번)을 넣으면 회원증권회사(주식 앱)는 고객이 넣은 주문 데이터(호가, 2번)를 거래소로 전송하고 매매가 체결된다(3번) 거래소는 체결 결과를 앱으로 통보(4번)하고 앱은 사용자에게 통보한다.(4번) 통보받은 사용자는 앱을 통해 자신 계좌의 변동 사항을 볼 수 있다. 하지만 주식을 매수를 한 경우 앱 내에서  바로 매도할 수 없으며, 매도를 한 경우 바로 현금으로 인출할 수 없다. 4번까지의 과정을 모두 마친 뒤 거래소는 5번 과정을 진행하기 때문이다. 국내 기준 +2 영업일, 해외 주식 +3 영업일 결제가 완료되기 때문이다.

출처 : 삼성증권 고객센터

 사용자는 결제가 완료되기까지 계좌에 결제대금과 수수료만큼의 돈을 넣어 놓아야 하고, 잔고가 부족한 경우 다음날 반대매매 (강제 처분)가 이루어진다.









여기서 궁금한 점! 

주식은 1주 단위인데, 어떻게 0.1주를 구매할 수 있는 건가?


출처 : 직접 제작

 A라는 종목이 있다고 가정하자. 국내 증권사는 A라는 기업에 소수점으로 투자하려는 고객의 주문을 취합한다. 그리고 1주가 되지 않는 경우에는 국내 증권사가 스스로 채워서 온전한 1주의 주식을 만든다. 국내 증권사는 온전한 주식을 예탁결제원에 결제 접수를 하고, 예탁결제원은 소수 단위 전용 계좌를 따로 만들어 외국의 증권 기관에 요청을 하고, 외국 기관은 외국 증권사에게 결제 처리를 하는 다소 복잡한 시스템이다.









마무리하며




 2주 동안 학습하였다고 해서 개발에 대한 인사이트가 드라마틱하게 늘지는 않았다. 하지만, 개발의 세계에 한 발짝 더 다가갈 수 있었던 의미 있는 시간이었다. 우리가 PM을 하면서 UXUI 디자인을 하듯이 디테일한 디자인 기능과 표현까지는 하지 않는 것처럼, 개발 역시도 마찬가지일 것이다. 하지만 실무에서 협업을 진행할 때 개발자의 의도와 생각을 이해하고 또 나의 기획을 설명하기 위해서는 개발에 대한 전반적인 이해도가 꼭 필요하다. PM을 준비하면서 또 PM 실무를 하면서도 꾸준하게 개발에 대한 탐구와 고민을 하며 역량을 키워야겠다.
















#PMB #PM부트캠프 #코드스테이츠 #프로덕트매니저 #PM #서비스기획자 #기획자 #IT #미니스탁 #주식 #투자 #주식투자 #핀테크 #투자앱 #소수점 #소수점거래 #한국투자증권 #서버 #인사이트 #Productmanager #애플리케이션 #App #앱 #모바일 #UX #UI #UXUI #Client #데이터 #예탁원 #data #클라이언트 #대체결제 #Flow #기술 #SQL #Client #클라이언트 #서버 #Server #Database #데이터베이스 #UI

매거진의 이전글 카카오로 알아보는 OPEN API의 세계
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari