● 코인서프 프로젝트 서비스 개발/운영 ( feat. Day34 생존기 ) 2019.10 - 2020.6
초기 스타트업이 흔히 겪는 문제중 하나는 바로 자금인 것 같습니다. 이 때 함께 했던 멤버들이 모두 팀웍은 좋았 지만 자금 문제에 빠졌고 월급이 3개월 정도 지급이 되지 않았던 때 였습니다. 많이 힘든 시기 였지만 탈출구를 찾기 위해 같이 함께 했던 모두가 영업을 했었고 저도 후배가 운영하는 블록체인 회사에 개발 수주를 통해 1.5억 개발 수주를 따내기도 하였습니다. 가족이 있어 영업을 하면 기본적으로 커미션에 대한 유혹은 생겼지만 회사를 살리고 정직한게 제 인생의 신념이기에 C레벨과 이야기 한 후 온전하게 회사의 매출로 잡힐 수 있도록 사업을 추 진하였습니다.
이 때는 생존을 위한 프로젝트 개발 이었고 누구도 일을 시키지 않아도 알아서 개발을 했던 전투적인 시절이었습 니다. 기술 스택은 NodeJS 를 백엔드로 사용하였고 ReactJS 를 프론트 기술로 State 관리는 Redux 를 검토 하였지만 컴퍼넌트들의 구조가 크지 않았기 에 Context API 를 사용하였습니다. Class Style로 React를 많이 개발 해봤지만 이 때 처음으로 Functional 로 React 를 개발하였고 자체 Hook 을 개발하여 모듈화하고 해당 Hook 을 어떤 컴퍼넌트에서도 사용할 수 있는 구조로 만들었습니다.
기획과 디자인을 위해 Figma 와 Storybook 을 적극 활용 하였고 Real-Time 채팅을 위해 Socket.IO 를 사용 하여 기능을 구현하였습니다. 뉴스 미디어 기사와 타 서비스 정보수집을 위해 API 를 분석하여 정보를 Mongo DB 에 수집 저장하고 토큰 개발과 토큰 지갑 개발 등 34일 개발사가 블록체인 개발사로 가지고 있었던 개발 실 력을 해당 프로젝트에서 다시 한번 다졌던 프로젝트였습니다. 이 때 처음 완전한 MSA 는 아니지만 모듈 별로 서 비스 분류하고 해당 서비스들은 Dockerizing 하여 AWS ECS 클러스터를 통해 오케스트레이션 하는 인프라 구축을 진행하였습니다.
스타트업에서 AWS 기술과 Github 을 잘 활용하여 개발부터 배포까지 안정적이게 잘 개발하고 운영할 수 있는 기업이 되었던 시절이 아니었나 생각 되고 어려웠던 시절 서로를 의지하고 협업하여 회사를 다시 세우고자 했던
좋은 경험이 되지 않았나 생각됩니다.
[코인서프 서비스] http://coinsurf.in
● KStarLive 온오프 스왑 및 상장, 모바일 App 출시 그리고 Serverless 개발하기 2019.3 - 2019.7
KStarLive 웹 버전 이외에 모바일 서비스가 필요하다는 내부 요구사항이 존재하였고 C 레벨들과 커뮤니케이션 하며 인력이 부족한 스타트업 구조에서 앱을 개발 할 수 있는 최소의 비용으로 가치를 극대화 할 수 있는 방법을 찾는 도중 과거 iOnic 개발 프로젝트 경험과 하이브리드 앱에 어느정도 연구한 이력과 React JS와 Electron 으로도 크로스 플랫폼을 구현한 사례도 존재 하였기에 제가 그 업무를 담당하게 되었습니다. 리서치 도중 러닝 커브가 심하지 않게 도입할 수 있었던 기술이 React Native 라고 판단하였고 C 레벨들에게 해당 기술을 도입 하자고 이야기 하고 토큰 상장 일정이 서비스 출시 일정과 맞물려 있어 빠른 시일내에 연구 개발을 착수 해야만 했습니다.
이 과업을 수행하기 위해 하나의 문제가 있었는데 바로 수수료 였습니다. 서비스 주관사가 대납할 수 있는 구조 를 만들기 위해 컨트렉트로 만들어진 지갑을 사용하여 트랜잭션 주체가 서비스 주관사에 있게 개발 하였지만 많 은 트랜잭션을 감당 하기에는 스타트업의 재정은 넉넉치 않아서 였습니다.
그 당시 국내에서는 오프 체인을 구현하기 위해 이더리움 기반으로 두 업체가 마켓에 출현하게 되었고 대표적으 로 잘 알려진 두나무 람다 연구소의 루니버스와 클레이튼의 Klatyn 이었습니다. 사업적 전략과 개발 용이성을 검토하여 루니버스로 체인으로 가자는 의견으로 취합 되었고 해당 루니버스 v1.0 을 초반에 연구하여 온 체인상 이더리움에 있던 홀더들의 토큰을 온/오프 스왑하는 기능을 개발하여 양 사이드에서 토큰 소각과 발행을 유기적 으로 하며 토큰을 스왑할 수 있는 국내 최초 사례가 되었습니다. 토큰 상장도 많은 국내 기업들이 이더리움 체인 안에서 상장 하였지만 KStarLive 토큰처럼 루니버스 Main Chain 에서 상장한 케이스는 없었기에 온/오프 체 인간 스왑의 좋은 사례였고 아직도 루니버스 공식 문서상의 KStarLive 사례가 등재되어 있습니다.
루니버스 체인을 이용하여 기존 홀더들의 토큰 스왑 기능과 React Native 개발을 통한 iOS, Android 버전을 각각 출시 하였고 이 당시 안드로이드 버전부터 손쉽게 출시하였는데 iOS 는 Reject 를 20번 정도 당하였고 불 굴의 의지를 통해서 출시를 하였습니다. Reject 를 여러번 받았던 사유가 50% 가 디자인 이슈 였는데 팀 내부 디자이너와 잘 커뮤니케이션하며 요구사항에 그때 그때 잘 대응하여 iOS 까지 출시할 수 있었습니다.
이 때, Serverless 기술에도 매료되어서 삼성 SDS 다니던 후배와 소통을 통해 Serverless Framework 를 소 개받았고 해당 Framework 를 통해 AWS API Gateway, Lamda Function, CloudWatch, CloudFormation 등을 활용하여 Authentication API 를 구현하였습니다. 이 적용 사례를 개인 미디엄 블로 그 10부작으로 올렸습니다. 해당 블로그에 개제된 컨텐츠를 레퍼런스로 삼아 출간을 한 분도 계셔서 유익한 성 과가 되지 않았나 싶습니다.
[Serverless 개발 블로그 글] http://shorturl.at/eghtT
● 암호화폐지갑, 토큰개발 및 ICO진행 및 AWS인프라구축 및 백오피스 개발(feat.스타트업) 2018.10 - 2019.1
기업에서 주도적으로 하고자 했던 프로젝트들이 단기적 예상 재무 효과와 이해관계로 인해 막히고 대기업 프로 세스와 조직 구조의 환멸을 느껴 스타트업에서 조금 더 민첩하게 결정하고 시장에서 인정받는 서비스를 만들어 야겠다 라는 판단을 하고 안정적인 급여를 포기하고 회사를 나오게 되었습니다.
블록체인 기술과 미래가 그 당시 개인적으로 보였고 관련된 서비스를 찾던 도중 960만이라는 국내외 유저를 보 유하고 있는 KStarLive 서비스가 있었습니다. 제가 판단 했을 때는 한류라는 컨텐츠가 글로벌 서비스하기에 좋 았고 멤버쉽과 컨텐츠 구독에 대한 트래픽은 존재 하였기에 토큰 이코노미만 잘 설계하고 개발하면 서비스하면 잘 될 것 같다는 판단을 하였습니다. 이 회사는 아는 지인을 통해 연봉 인상 없이 앞으로 Exit 이라는목표를 세우 고 저의 커리어를 위한 투자라고 생각하며 일을 시작하게 되었습니다.
그 당시 첫 번째 임무로 ICO 세일을 퍼블릭/프라이빗으로 진행하였고 토큰은 이더리움 체인에서 ERC20 인터 페이스 규약 외에 기타 기능들을 더 첨부하여 Solidity 언어로 개발하였고 일반적인 지갑이 아닌 멀티시그 구현 과 이더리움 체인의 다양한 토큰들을 입/출금 할 수 있고 수수료 지불을 서비스 주관사가 할 수 있는 구조로 만 들기 위해 컨트랙트 지갑을 설계/개발하였습니다.
해당 지갑을 유저들에게 배포하고 ICO 진행하여 해당 지갑에 토큰 수량을 이더의 비율에 따라 배포하고 노드는 자체적으로 구축하여 우리가 알고 있는 지갑들에서 이벤트가 발생할 때마다 백오피스에서 Real-Time 으로 볼 수 있는 화면들을 개발하여 내부적으로 관리를 했던 경험이 있습니다.
이 때 처음으로 VueJS 를 도입하여 백오피스 UI 개발도 진행 하였고 자체 운영 Geth 를 통해 NodeJS 와 인터 페이스하여 트랜잭션 관련 API 를 만들었습니다. 그 당시 좋은 동료들과 협업하며 블록체인에 올라가면 수정하 지 못하는 치명적인 구조에서 완벽한 코드를 작성하기 위해 서로 고민하며 코드를 작성했던 것을 회상하면 개인 적으로 더 성장할 수 있는 시절이 아니었나 생각이 듭니다.
이 때 더 좋았던 점은 스타트업에서 AWS 를 실제로 만져보고 구축할 수 있었던 시작점이 될 수 있었습니다. 이 때 처음으로 IAM, VPC, Route53, EC2, CloudFront 등의 서비스들을 연구하며 만져보았고 실제 인프라를 구축하여 서비스를 했던 시기였습니다. KStarLive 웹서비스의 트래픽을 감당하기 위해 그 당시 AMI 이미지를 통해 Auto Scaling 을 EC2 단에서 로드 밸런서를 붙여 구현하기도 하였습니다.
[사용기술]
Ethereum Geth Node, Solidity, NodeJS, VueJS
더보기