brunch

You can make anything
by writing

C.S.Lewis

by 송해원 Jul 25. 2021

렛미노(let me know) 서비스 기획

오픈 API를 사용하여 기획하기 [코드스테이츠 PMB 7기]


API(Application Programming Interface)와 Open API


API는 서버 컴퓨터와 클라이언트 컴퓨터를 연결한다. 


이해를 돕기 위해 비유를 2가지 들자면, 

1. 우리는 리모컨의 버튼을 통해 기계를 조절한다. 이와 같이 컴퓨터와 컴퓨터가 소통하기 위해, 서버 측에서 만든 리모컨이 API라고 할 수 있다. (자세하게는 Nomad Coders 유튜브 영상을 추천한다.)

2. 아래 사진을 보자. 식당에서 손님의 요청은 점원이 받아서 요리사에게 전달하고, 요리사의 완성된 요리를 점원이 받아서 손님에게 전달한다. 이와 같이 클라이언트 측의 요청을 API를 통해 서버 측에 전달하고, 서버의 데이터를 API를 통해 클라이언트에 전달할 수 있다.




Open API해당 서비스의 서버를 이용할 수 있도록, 경로를 제공하는 것이다. 


이 때 주소와 함께, request, response의 형식이 작성된 문서인 API 가이드를 제공한다. 따라서, 개발자들은 이를 참고하여 프로그래밍에 이용할 수 있다. Open API를 통해 받은 XML이나 JSON형태의 데이터를 파싱하여, 자신이 구현하고자 하는 방식으로 사용이 가능하다. 이렇게 Open API를 활용하면 굳이 복잡한 서버 개발을 하지 않고, Frontend만 개발하여 서비스를 만들 수(는) 있으며, 이러한 것을 serverless라고 부른다.


그러나 Open API를 아무런 제약없이 완전 무료로 공개하면 남용될 우려가 있다. 그래서 Open API를 제공하는 서버에서는, 1) 횟수 제한 2) 횟수 초과 시 비용 발생 3) API키를 발급받아 접근 권한을 얻어 사용 하는 방식으로 서비스 제공 한도를 두기도 한다.


Open API를 제공하는 곳은 아래와 같으며, 구글에 검색하면 많은 개발자들이 추천하는 API들이 있다.

- 국내 기업: 네이버, 카카오(로그인, 검색, 프로필, 지도 기능 등을 제공한다.)

- 국내 공공 기관: 공공 데이터 포털 등

- 해외 기업: 구글페이스북(인스타그램) 등

- 해외 Open API 검색: github으로 검색, public api 사이트에서 검색 등

- 흥미로운 api: giphy(gif 짤), meme generator(짤 위에 문구를 작성 가능), spotify, openweather 등





오늘은 Open API를 활용한 렛미노(Let me Know) 서비스를 기획해보려고 한다. 

다양한 API를 최대한 과하게 활용해보는 목적으로 기획한다. 



** 코드스테이츠 프로덕트 매니저 부트캠프 7기를 수강하며, 과제로 작성하였습니다.

혹시나 정보의 오류, 논리의 비약이 있다면, 미리 정중히 사과드리겠습니다.

게시물과 관련하여 의견이 있으시다면, 자유롭게 남겨주시거나 연락 주시길 환영합니다.







문제와 페르소나


고등학교 시절 학원 수업은 비싼 돈을 냈지만, 내가 원하는 커리큘럼으로 들을 수가 없었다. 닳도록 본 집합을 또 배워야 했고, 가장 어려웠고 필요했던 합성함수는 한 수업만에 스윽 보고 지나갔다. 짜여진 커리큘럼은 전체를 배우고 싶은 사람에겐 적합하지만, 부분 강의가 필요한 나에겐 과했다. 그래서 나는 가끔 열리는 특강 수업을 애용했지만, 원하는 특강이 열리지 않으면 온전히 혼자 해결하기에 어려움이 있었다.


이를 통해 구체화한 Persona 강서연 학생의 간략한 프로필, 상황, 특성은 아래와 같다.







솔루션


강서연 학생처럼 원하는 부분만 수업이 필요한데, 특강으로 개설되지 않는 문제를 해결하기 위한 솔루션으로

학생이 원하는 수업을 제시하면 강사가 지원하는 맞춤형 특강 서비스 렛미노(Let Me Know)를 기획해보려 한다. 렛미노의 기능 3가지는 아래와 같다. 


기능 1. let ME know = 렛미노

Learner가 배우고 싶은 수업을 작성하면, 이를 가르칠 자신이 있는 Tutor가 신청하여 수업 진행

기능 2. let YOU know = 렛유노

Tutor가 지금까지 진행한 수업 블록을 프로필에 두며, Learner가 후기를 남김

기능 3. let US know = 렛어스노

Tutor가 렛미노에서 가르쳤던 수업의 후기를 보고, 관심이 있는 다른 Learner가 신청



이 중 핵심기능은 1번으로 MVP에 반드시 있어야 하는 기능이므로, API 활용 방안은 기능 1번을 중심으로 작성해보겠다.







API 활용 방안



1. 회원가입 및 로그인 - <카카오 로그인> API,  <네이버 아이디로 로그인> API

경험에 비추어 보았을 때, 아직 고등학생의 경우 구글 아이디를 잘 사용하지 않을 것이며, 특히 카카오톡을 가장 많이 사용할 것이라고 생각하여 카카오의 로그인 API를 사용하였다. 또, 누구든 네이버 아이디 하나 쯤은 있다고 생각하여 네이버의 로그인 API도 사용하였다. 최근 출시되는 많은 국내 서비스들은 카카오, 네이버 로그인을 지원하고 있다.



2. 회원 정보 등록 - <카카오톡 소셜> API, <네이버 회원 프로필 조회> API

소셜 로그인을 완료했다면, 학생의 나이, 이메일 주소, 휴대전화 번호, 생년월일 등의 정보를 받아올 수 있게 했다. 직접 기입할 필요가 없으므로, 서비스 유입의 장애를 제거할 수 있다.



3. 커리큘럼 게시 - <Youtube iframe player> api, <네이버 검색> API

Learner가 원하는 수업을 설명할 때, 유튜브에서 영상을, 네이버에서 교재, 웹, 이미지 등의 검색을 할 수 있게 하고, 그 결과를 커리큘럼에 첨부할 수 있게 한다. 원하는 수업을 잘 설명해야, 딱 맞는 Tutor를 찾을 수 있으며, 서비스 이용 만족도가 높아질 것이다.



4. 채팅 - <socket.io>

사실상 해당 서비스에서 Learner와 Tutor의 수업 조율에는 카카오톡과 같은 실시간 채팅이 필요하진 않다. 따라서, 조금 퍼포먼스가 떨어지더라도(약 2~30초까지 가능) 직접 채팅 기능을 구현하는 것이, 여러 앱을 멀티 태스킹하지 않아도 되므로 Tutoring 성사에 효과적일 것이다. 이러한 채팅 기능 구현에 도움을 주는 Open API를 활용한다.



5. 수업 일정 등록 - <네이버 캘린더> API

5-1. 대면 수업 시, 장소 등록 - <네이버 지도> API

5-2. 비대면 수업 시, 화상 화면 제공

서로의 약속을 채팅으로 정하는 것보다 시각화하여 표시한다면, 약속에 가중하는 과정이 추가되면 책임감을 가지는 데에 도움이 되어 노쇼를 방지할 수 있다. (당근마켓 어플 안에는 만남 시각과 만나기 n분 전 알람을 설정하는 기능이 자체적으로 있다.) 따라서, 캘린더에 일정을 fix하여 등록하고, 대면 수업을 진행하기로 한 경우 장소를 정하여 지도 상에 표시하는 시각화 과정이 UX를 긍정적으로 개선할 것이다.



6. 결제 수단 - <네이버페이> API, <카카오페이> API, <KG이니시스의 INI API>

결제를 위해서 최근 많이 사용하는 네이버, 카카오페이를 연동한다. 그러나 학생들의 경우 부모님 카드로 결제를 해야하는 경우가 생기므로, KG이니시스의 API도 사용한다. (유료일 것 같다...)







Business Model



렛미노 앱의 BM을 간략하게 그려보았다. 테두리 색상에 따라, 기능 1번 Let ME Know기능 2번 Let YOU Know기능 3번 Let US Know이다.  


렛미노 서비스의 수익은 기능 1번에서 학생이 원하는 수업을 찾았으므로 내는 결제 수수료, 기능 3번에서 튜터가 똑같은 수업을 제공하며 받는 중개료를 통해 창출한다.







기대 효과


기대되는 효과는 4가지이다.


효과 1. Learner는 학원의 짜여진 커리큘럼을 비싸게 배우는 것이 아닌, 자신이 원하는 수업만을 집중해서 들을 수 있다. 또한, Tutor는 Learner가 필요로 하는 수업이 무엇인지 알 수 있다.


효과 2. 다른 Learner의 후기를 보고, 좋은 수업을 여러 Learner가 이용할 수 있다. Tutor는 한 수업을 여러 번 하면서 적은 준비 시간으로 계속 수익을 낼 수 있다.


효과 3. 추가적으로, 렛미노 앱 안에서 Learner와 Tutor의 존중 문화를 위해, Thank you tip 기능을 추가하면 서비스 안에서 서로 존중하는 긍정적인 win-win 효과를 볼 수 있으며, 진지한 수업을 할 수 있다고 생각한다. (아이디어스의 작가 후원하기 기능을 참고하였다.)


효과 4. 고등학생의 입시 수업을 위하여 고안하였지만, 연령/목적에 상관 없이 배움을 나누는 장이 될 수 있다. 예를 들어 나는 PM이 되고 싶은데 Figma를 다루기 어려우므로, 원하는 Figma 수업 내용을 작성하고 이를 제공할 Tutor를 찾을 수 있다.







API를 다양하게 활용할 수 있는 서비스를 기획해보았다. 기획해보며 느낀 점은


1. 공공 API를 활용하지 않은 점이 아쉬웠다. 공공 기관에서 제공하는 날씨 정보, 교통 정보, 코로나 정보, 식품 정보 등을 이용해서 보다 실용적인 정보를 제공하는 서비스를 기획할 수 있다.


2. 문제를 잘 파악했다는 생각은 드는데, 과연 이게 적합한 해결책인지 의문이 들었다. 나의 뇌피셜이기 때문에, 그런 것 같다. 따라서 고객 문제를 검증하는 과정(인터뷰, 설문조사)의 필요성을 느꼈다.


3. 렛미노 서비스를 위해서는 고객 관리와 운영 팀의 역할이 중요하다고 생각했다. 수업의 질, Learner와 Tutor와의 신뢰 관계를 잘 유지하는 것이 중요하기 때문이다.

작가의 이전글 Tren:be - 개발 기술과 비즈니스의 관계
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari