안녕하세요 렛플운영자입니다.
벌써 렛플을 운영한지 1년이 훌쩍 넘었네요.
오늘은 2021년의 마지막 날인 12/31일어서 , 이번년도에 진행한 렛플 앱 프로젝트 회고를 작성해보면 어떨까 생각을 했습니다.
웹과 앱 중에, 먼저 뭘 해야할지 고민중인 분들도 많을 것 같고, 저희도 개발하면서 고민한 것들을 공유하면 어떨까 해서요.
1. 우리는 왜 웹으로 시작했을까?
예전에 cafebom님의 스토리에서 링크를 걸어주셨지만, 앱은 정말 중요하지만, 초기 서비스에는 맞지 않다라는 결론이었습니다.
모바일 앱은 더 이상 스타트업에게 좋은 아이디어가 아니다
- 렛플 커뮤니티 특성상, 개방성이나 허들이 낮은 것이 초기 서비스의 활성화에 좋다
- 다양한 개선을 적용하는 초기과정에서 앱의 까다로운 심사과정은 , 업데이트 속도를 느리게 만든다.
- 앱을 깔아서 들어온 유저가 실망하면 다시 들어오지 않는다.
돌이켜봤을 때 선택은 괜찮았다라고 생각합니다.
서비스의 입구가 앱이었다면, 다들 바로 앱 지우셨을 것 같습니다.
2. 우리는 왜 앱으로 확장하기로 했을까?
한 6개월정도 웹을 운영하고 "스토리"까지 런칭한 후에, 이런 생각이 들더라고요
아무리 이메일이든 알림톡이든 , 유저분들은 이 서비스를 이용하시기에 불편하겠다.
저도 이메일을 즉시 보지도 않고, 안쓰는 이메일로 가입된 서비스가 많으니까요
푸쉬가 없는 서비스는 , 유저분들의 지속적인 방문을 유도하기 힘든것이 현실입니다.
역으로 말하면, 재방문율을 높이기위해서 , 앱을 무조건 만들어야 한다.
사실 한정된 리소스를 가지고 운영하는 서비스에서, 채널을 하나 더 확장하는 것은 상당히 부담스럽습니다.
단순히 계산해 볼께요
> 고쳐야 할 버그가 2배가 됩니다.
> 난 안그래도 버그를 계속 고쳤는데, 밤새 버그를 고칠거며,
> 고치다보면 , 햇빛을 쐬지 못해 의기소침해질 거고
> 우울증을 앓을 것이고, 부모님과 와이프한테 욕을 먹을 것이며 ....
그럼에도 불구하고, 회원수가 1천명이 넘어가면 , 커뮤니케이션 활성화를 위해서는 앱이 필수다라는 생각이었습니다.
한정된 리소스를 원활하게 쓰기 위해서 "웹에 대한 업데이트"를 5개월 간 중단합니다.
사용성을 아예 해치는 크리티컬한 버그(로그인/프로젝트 개설 등)만 고친다로 업무를 줄였습니다.
3. 어떤 플랫폼으로 개발해야 하나?
가장 큰 고민은 코드의 재활용성이었어요.
렛플은 기능이 상당히 많은 편에 속하는 사이트입니다.
프로젝트 관리 기능/채팅 등 기능 등은 사실 상당히 무겁고 테스트하기도 빡센 기능입니다.
코드를 재활용하지 않으면, 테스트를 처음부터 다시 해야하고 이건 개발기간이 6개월이상, 1년까지 걸릴 수 있다는 판단이었어요.
앱을 개발하는 플랫폼을 고르는 입장에서 세가지 방향이 얼추 나옵니다.
> 네이티브 코드로 간다.
아이폰/안드로이드를 각각 개발해야한다는 볼륨에서는 , 아예 할 수 없는 고민입니다.
Native로 만드는 건, 나 말고 더 잘하는 사람이 오면, 그때 만들자 ㅎㅎㅎㅎ
근데 어차피 코드 재활용성이 안된잖아..PASS..
> 웹뷰를 감싼 , 앱으로 만든다.
기존에 만든 웹을 고쳐서 , 앱과 같은 UI/UX로 개편해서, 이를 웹뷰로 감싼다.
이러려면 사실 상 모바일 웹을 하나 더 만드는 볼륨이었습니다.
자신이 없더라고요, 웹뷰로 감싸서 앱과 같은 UI/UX 느낌이 날까? 편할까?
> 크로스플랫폼으로 간다(Flutter /React Native)
렛플이 Front가 React로 구성되어 있습니다.
- 로그인 등의 기능은 naver/kakao/google/facebook 등을 지원하고 있죠
- 결제와 채팅 등을 웹에서 제공을 하고 있습니다.
Flutter를 여전히 좋은 대안으로 생각하나, 이런 3rd Party Library등은 아직 구하기 힘듭니다.
하나하나 우리가 만들어야 할 가능성이 컸습니다.
코드를 재활용한다는 관점에서는 "React Native"가 가장 좋은 선택이라고 생각했습니다.
근데 실제 개발하면 욕나오긴 하죠 ㅎㅎㅎ
(왜 욕나오는지는 , 버전 관리이슈가 크다고 생각해주세요 할만하않)
4. 어떻게 개발해야 하나?
> 페이지의 선정
렛플은 크게 아래와 같이 구성이 됩니다.
페이지 구성 : "메인 페이지" | "렛플인" | "프로젝트" | "스토리" | "라운지"
모바일에서도 탭 구성은 최대 다섯개를 넘기면 안될 것 같다 + 채팅 기능에 대한 지원을 제대로 해주자
팀원분들과 논의한 끝에 아래와 같이 했습니다.
메인 페이지 "프로젝트(메인포함)" | "렛플인" | "채팅" | "스토리" | "라운지"
이렇게 되고 나서는 , 조금 빠르게 진행이 된것 같습니다.
- 공지사항/FAQ 등과 같이 사용자가 많이 안 보는 페이지는 외부 링크로 지원
- 다이나믹한 컨텐츠들은 컴포넌트 내에 웹뷰로 구현 / 웹에서 작성한 웹텍스트에디터 또한 , 모바일앱에서도 지원
- 그외는 모두 웹과 동일한 형태의 기능을 지원
> 코드의 재활용
리액트와 리액트네이티브는 , UI/UX를 제외하고 동일한 문법으로 구성되어있습니다.
코드가 어느정도 재활용됬는지 궁금하실 수 있습니다.
정확히 다 세보진 못했지만 , 50% 재활용한 것 같습니다.
UI/UX는 어차피 다 만들었어야 했고, 서버와 통신하는 부분의 코드는 모두 재활용했습니다.
실제 웹과 폴더 구조도 동일한수준이라고 생각해주시면 됩니다.
프론트뿐만 아니라, 백엔드인 서버도 약 90% 수준 재활용했습니다.
> 푸쉬를 어떻게 사용해야 하는가?
기존에 이메일로 알림이 간 부분들은 , 이메일 + 푸쉬로 지원을 하고 있습니다.
기존의 알림톡으로 간 부분들도, 이메일+ 알림톡 +푸쉬로 지원 하고 있습니다.
푸쉬가 즉각적이긴 하지만, 저장이 안된다는 것을 보완하기 위해서 이메일/알림톡을 보조재로 사용하고 있습니다.
> 앱의 업데이트나 검수는 ?
좋아진 점은, 앱의 업데이트를 꼭 버전 업그레이드 통해서 하지 않아도 된다는 점입니다.
리액트 네이티브에서 제공하는 "코드 푸쉬"를 사용해서, 클라우드에 올려놓으면
사용자분들이 로그인 시 자동으로 신규 버전으로 업데이트 되는 방식입니다.
이런 수정 내용들이 많아지면, 실제 앱을 앱스토어에 올려서 한번에 업데이트하는 전략으로 진행하고 있습니다.
내년에는 다시 웹을 업그레이드하고자 합니다.
올해 유저분들이 주셨던 피드백이나, 사용형태를 기반으로 해서 좀 더 확장성이 있는 렛플을 만들고자 합니다.
올해 한해 수고 많으셨고, 내년에도 대박나는 프로젝트들을 기대하겠습니다.
2021년 안녕~
'렛플 스토리 > 프로젝트 회고' 카테고리의 다른 글
[회고] 생각의 흐름대로 쓴 렛플 로고의 탄생에 대해 (0) | 2021.12.16 |
---|---|
[회고] 비개발자의 개발 분투기 #8 - 사이드프로젝트 회고 (0) | 2021.12.14 |
[회고] 방구석 창업가의 소망 (0) | 2021.12.14 |