Would You Be My _day?
바야흐로 AI의 시대다. 이제는 앱을 만드는 일이 너무나도 쉬워졌다고 여기저기서 말한다. 무언가를 만들고자 하는 사람에겐 황금기가 아닐까. 아니나 다를까. 여기저기서 AI로 앱을 만들었다는 소식이 들려온다.
나는 대격변의 시대를 어떻게 받아들이고 있는가. 과거의 나였으면 혼자서도 무언가를 해 낼 수 있다는 설렘에 잠을 이루지 못했을지도 모른다. 지금은 왠지 복합적이다. 설레면서도 두렵다.
변화의 파도에 올라타지 못하고 있다는 FOMO. 본업인 IT 서비스 기획과 직결된 파도이기에 더 두렵다. 당장 내년에 내가 뭘 하고 있을지 짐작이 가지 않는다.
불확실한 미래에 불안해하기보다는 내가 직접 미래로 다가가 보기로 했다. 퇴근 후 틈틈이 AI로 혼자서 앱을 만들었다. 연초부터 만들었으니 약 3개월 정도 걸렸다.
이건 AI로 Be My Day라는 앱을 만든 기록이다.
목차
뭘 만들까?
SNS 3요소
느낌 레퍼런스
디자인드 바이 휴먼
Be My Day
후기
처음 사용해 보는 기술로 무언가를 만들 때는 구현 난이도를 고려해 아이디어를 정했다. 이번에는 달랐다. 비범한 AI와 함께니 제한 없이 아이디어를 정해 보자는 마음이었다.
평소에 만들고 싶었지만 쉽사리 만들 수 없던 부류의 아이디어. SNS가 떠올랐다. IT 기획에 처음 관심을 가졌을 때 가장 먼저 떠올린 아이디어가 소셜 네트워크 서비스였다.
아니, 어쩌면 소셜 네트워크 서비스를 만들고 싶어서 IT 기획자가 되었을지도 모른다. 그 정도로 내게 의미가 있는 카테고리였지만 여태 SNS를 만든 적이 없었다.
SNS를 만드는 일은 쉽지 않다. 로그인에서 시작하는 각종 계정 기능, 친구 기능, 게시글 관리 기능 등. 바탕이 되는 기능만 고려해도 꽤 사이즈가 크다.
많은 노력이 투입이 되지만 SNS로 사람들에게 좋은 평가를 받는 일은 굉장히 어렵다. 네트워크 효과라는 문턱을 넘기 전에 사라지는 서비스가 대부분이 아닐까.
즉, SNS는 일반적으로 인풋 대비 아웃풋이 크지 않기에 누군가에게 함께 만들자고 하는 게 어려웠다. 그렇기에 이참에 AI로 혼자 SNS를 만들어 보자는 결론을 내렸다.
인스타그램, 틱톡 등 기존 SNS와 다른 방향을 제시하는 앱을 만들고 싶었다. 내가 생각하는 기존 SNS의 특징은 아래와 같다.
끊임없는 콘텐츠 생산
끊임없는 발견
끊임없는 조회
릴스, 쇼츠가 위의 특징을 대표하는 기능이라 할 수 있다. 광고 수익을 극대화한다는 BM 위에서 자라난 필연적인 기능이라는 생각이 든다.
사람들을 무한한 콘텐츠에 노출시키는 SNS의 문제는 이미 지구온난화만큼 대중화되었다. 문제가 사람들에게 널리 퍼진 만큼 그것을 해결하고자 하는 시도들도 여럿 보였다.
그중 내 눈에 띈 게 바로 폐쇄형 SNS였다. 폐쇄형 SNS들은 보통 '친구의 소식을 잘 보여 준다'는 SNS의 본질을 회복하려고 했다.
AI와 비(非) 지인의 개입이 없는, 피드에 오직 나와 내 친구의 소식만 올라온다는 원시적인 형태로 돌아간 SNS. 현대의 SNS에 피로감을 느끼는 내게 향수를 불러일으켰다.
retro와 BeReal 그리고 Locket 앱이 대표적이었다. 앞으로 지루해질 일만 남은 것 같은 앱스토어의 SNS 카테고리에 활력을 불어넣었다.
위의 앱을 통해 인스타그램, 틱톡과 다른 새로운 형태가 세상에 나올 수 있다는 가능성을 봤다. 또 나도 그런 앱을 만들고 싶어졌다.
이런 마음을 품고 있던 중 여자친구에게 아래 사진과 같이 생긴 약통을 받았다. 하루치 약을 소분해 놓은 휴대용 약통이었다.
칸마다 비타민 알약이 두세 개씩 담겨 있었다. 알약뿐만 아니라 마음도 담겨 있는 선물이었다. 매일매일 칸을 열며 다정함을 확인하는 기쁨이 있었다.
문득 내가 받은 약통처럼 다정함을 나눌 수 있는 SNS를 만들고 싶다는 생각이 들었다. 요일마다 서로에게 힘이 되는 게시글을 올리는 SNS.
어렴풋한 아이디어가 생기고 나서는 언제나 그렇듯 이름을 생각했다. 요일이라는 키워드에서 출발했는데 금방 마음에 드는 이름을 찾을 수 있었다.
이름 : Be My Day
부제 : Besties who make my day
Be My Day는 Be My Monday, Tuesday...를 함축한 말이다. 월요일, 화요일.. 특정 요일에 서로를 행복하게 만들어 주자는 신조어 같은 느낌으로 지었다.
누군가의 하루를 행복하게 만들어 준다는 make someone's day라는 말도 컨셉과 잘 맞아서 부제에 활용했다. 부제 외에도 앱 안 넛지 문구로 활용하면 좋을 것 같았다.
마음에 드는 이름을 지었으니 구체적인 아이데이션에 들어갈 단계였다. SNS를 기획할 때 중요한 지점을 고민해 봤고 크게 세 가지로 나눴다.
공유 범위
공유 방식
공유 콘텐츠
세 가지 요소는 서로 연결되어 있다. 공유 범위에 따라 방식이 달라지고 또 그에 따라 콘텐츠도 달라진다. 우리 앱을 저 세 가지 요소에 따라 정리했다.
공유 범위
폐쇄형 SNS로 친구 간에만 소식을 공유한다. 각 요일마다 하나의 친구 그룹을 등록할 수 있다. 친구 그룹 안에서 게시글이 공유되는 식이다.
공유 방식
각 요일마다, 즉 일주일에 한 번씩 게시글이 공유된다. 예를 들어 월요일 그룹의 게시글은 매주 월요일에 공유되는 식이다. 멤버는 그룹의 요일이 도래하기 전까지 게시글을 미리 올려둘 수 있다.
공유 콘텐츠
친구의 하루를 즐겁게 할 콘텐츠(사진)를 올린다. 개인 기록용, 과시용 콘텐츠보다는 친구를 위한 이타적인 콘텐츠가 중심이 된다.
다른 SNS와 Be My Day의 가장 큰 차이는 공유 방식에 있었다. 우리의 앱이 특정 요일이 기다려지고 그날을 더 행복하게 보내게 되는 이유가 되는 게 목표였다.
아이디어가 정해지고 곧바로 바이브 코딩에 들어가지는 않았다. AI의 개발 실력이 아무리 대단하더라도 사람의 느낌 혹은 의도를 파악하는 능력은 아직이지 않을까 하는 회의감이 있었다.
AI에게 내 느낌을 잘 전달할 수 있으려면 적어도 개발 언어의 기본 문법은 알아야 한다는 생각을 했다. 한 달 동안 Flutter로 앱 만드는 법 강의를 들은 후 바이브 코딩에 돌입했다.
처음부터 AI에게 모든 개발을 일임하지는 않았다. 내 의도를 코드로 일정 부분 표현하는 시간을 가졌다. 코어 화면의 레이아웃과 스타일 정의 코드를 직접 짰다.
내가 직접 개발을 하니 의도가 더 상세해졌다. AI가 내 코드를 보면서 '아 얘가 이렇게 만들고 싶은 거구나'를 보다 명확하게 이해하길 바랐다.
누군가는 비효율적이라 생각할 수도 있겠지만 디테일을 중시하는 나에게는 맞는 방식이었다. 내가 정의하지 않은 부분을 AI가 임의로 채워 넣었을 때 마음에 들지 않는 때가 많았다.
물론 AI가 임의로 한 작업이 마음에 들어 채용한 적도 있기는 하다.
내가 짠 레퍼런스를 바탕으로 AI에 지시하니 디테일한 부분까지 내 의도대로 진행되었다. 내 추구미를 AI가 이해하기 편한 언어로 먼저 전달한 게 도움이 되었다고 본다.
뒷단 개발은 Supabase를 활용했는데 MCP가 제공되어 무척 편했다. 또 회사 동료 개발자 님의 조언대로 테이블 스킴을 사전에 잘 짜두니 이후 AI에게 코딩을 지시할 때 덜 헤맸다.
바이브 코딩은 Visual Studio Code에서 Claude, Gemini CLI를 활용해 봤다. 큰 문제를 느끼지는 않았는데 주위에서 다 Cursor를 쓰길래 궁금해서 옮겼다.
둘 다 써 봤을 때는 Cursor가 사용성 면에서는 더 편했다. 다만, 기본 모델인 Composer는 뭔가 어려운 지시는 제대로 수행하지 못하는 것 같았다.
클라이언트 개발을 할 때는 크게 개의치 않았는데 서버 개발할 때는 조금 불안했다. 뒷단 코드는 눈에 잘 들어오지도 않다 보니 AI가 제대로 짠 건지 알기가 어려웠다. 겉보기에 잘 돌아가니 상관없는 걸까.
결국 안전한 마무리를 위해 Claude의 을 구독했다. AI에 매달 15만 원을 쓰는 게 맞나 싶다가도 같은 능력의 개발자를 고용하는 비용보다는 훨씬 싼 게 아닐까 하는 생각도 든다.
AI는 트렌드가 자주 바뀌니 연간이 아닌 월간으로 결제하라는 동료 개발자 님의 조언에 따르길 잘했다.
사실 이번에 Be My Day 앱을 만들 때는 AI를 능숙하게 쓰지 못했다. 우당탕탕 어찌어찌 만든 느낌이랄까. 비싼 요금제를 구독한 만큼 AI를 더 잘 활용할 수 있는 고민을 해 볼 것 같다.
바이브 코딩처럼 바이브 디자인도 있을 텐데 왠지 썩 내키지 않았다. 언젠가 생각이 바뀔지도 모르지만 여전히 예술은 인간이 해야 의미가 있다고 생각한다.
처음엔 앱 디자인을 같이 해 줄 디자이너를 찾았는데 금세 그만두었다. 서툴더라도 이번엔 혼자서 앱을 만들어 보자고 결심했다. UI부터 로고 그리고 앱스토어 미리 보기까지 혼자서 만들었다.
UI는 직접 디자인하는 게 어렵지 않았다. 사실 인스타그램이나 틱톡만 봐도 인터페이스가 화려하지 않다. Be My Day도 심플하게 가져가되 레이아웃에서 앱의 특징을 드러내고자 했다.
각 요일마다 친구 그룹이 있는 앱의 개성을 살려 메인 화면의 레이아웃을 잡았다. 최대 7개의 친구 그룹만 생성할 수 있기에 하나하나 비중 있게 다뤘다.
메인 화면은 좌우 스와이프로 요일을 이동하는 페이지네이션 방식으로 구현됐다. 페이지마다 해당하는 요일의 그룹과 업로드된 최근 게시물이 표시된다.
메인 화면의 게시글 더미를 누르면 인스타그램 스토리와 유사한 레이아웃의 상세 페이지로 이동한다. 이후 인스타그램 스토리처럼 꾸미기 기능을 제공하고 싶어 캔버스가 되는 사진의 크기를 크게 가져갔다.
그룹의 지정 요일이 도래하지 않은 게시글은 blur 처리된다. 예를 들어 금요일 그룹의 최신 게시글은 다가오는 금요일에 blur가 해제되며 공개되는 식이다. 공개된 게시글에는 좋아요와 댓글을 달 수 있다.
메인 화면만큼 신경을 쓴 건 초대 화면이다. 초대장이 서비스의 첫인상을 좌우하다 보니 잘 만들고 싶었다. 초대장이 매력적이면 앱에 더 호기심이 생겼던 것 같다.
원하는 요일을 선택하고 초대장 공유 버튼을 누르면 링크 공유 모달이 표시된다. 초대하고 싶은 친구에게 링크를 공유하는 식이다. 링크를 누르면 초대장 웹페이지로 진입한다.
웹페이지에서 앱에서 열기 버튼을 누르면 초대 수락 화면으로 이동한다. 수락 버튼을 누르면 초대 과정이 마무리된다.
친구 그룹을 리스트 형식으로 볼 수 있는 화면도 있다. 해당 화면에서는 친구들과 쌓은 추억을 시각적으로 잘 표현해 주고 싶었다. 사진이 반투명 앨범(폴더)에 들어가 있는 느낌으로 디자인했다.
UI보다 고민을 많이 한 게 앱의 로고였다. 앱의 정체성을 드러내면서 예쁘게 만드는 게 어려웠다. 일단 내 눈에 차는 걸 만들기엔 내 손이 미덥지 않았다.
결국 앱의 메인 폰트를 활용해서 정체성을 잘 드러내는 심플한 로고를 만들기로 했다. BMD, Be My Day, MTWTFSS(월~일요일의 첫 글자) 등 다양한 시도를 했지만 별로였다.
그러다 Be My ___Day와 같은 이미지가 떠올랐다. Be My Monday, Tuesday, Wednesday.. 이런 식으로 Day 앞이 요일마다 바뀌는 점을 시각적으로 풀어 보자는 아이디어였다.
각 요소의 앞 글자만 따서 B, M, _, D로 앱 로고를 구성하기로 했고 아래와 같은 결과물이 나왔다. 달력의 격자 형태를 참고하여 네 개의 글자를 사분면에 각각 중앙 배치했다.
심플하면서도 앱의 정체성을 잘 드러내는 로고인 것 같아 마음에 든다. 고민의 시간이 길었지만 그만큼 성장한 것 같아서 설렜다. AI에 시켰다면 이런 즐거움이 있었을까.
반면 그냥 AI에 시키고 싶은 작업도 있었다. 바로 앱스토어, 구글 플레이 미리 보기 이미지였다. 필요한 에셋 캡처해서 만드는 게 얼마나 귀찮던지. 이 작업이 귀찮아 미루고 미루다 앱 출시가 늦어졌다.
그래도 혼자서 앱을 만든다는 과정을 완수해서 뿌듯하다. 사실 개발보다 디자인을 혼자 할 수 있을지 걱정이 많이 됐는데 Designed by Human이자 Designed by me다.
Be My day는 나를 전시하는 광고판처럼 느껴지는 기존 SNS에 피로감을 느끼고 만든 앱이다. 나보다는 남을 위하는 이타적인 SNS라 할 수 있다.
만들 때는 재밌었는데 잘 될지는 모르겠다. 나조차도 Be My Day를 쓸 때 어떤 사진을 올려야 할지 고민이 됐다.
make someone's day를 할 수 있는 사진은 뭘까. 즉시 기록하는 Instagram과 달리 Be My Day는 한 차례 곱씹는 과정이 필요하다.
앨범을 둘러보면서 내가 누군가를 생각하며 사진을 찍지 않는다는 사실을 깨달았다. 어쩌면 Be My Day는 이타적이지 않은 내게 안 맞는 SNS일지도 모른다.
또 이 앱을 bestie, 즉 가까운 친구끼리 사용하지 않을까 했는데 그것도 잘 모르겠다. 그만큼 친하면 자주 연락하는 카톡방이 있지 않을까.
다시 생각해 보면 Be My Day는 매일 같이 연락하는 친구보다는 SNS를 잘 안 하는 그래서 생존 신고가 필요한 사이 혹은 썸 타는 사이에 쓰기 더 적합한 것 같다.
소개팅 앱으로 바꿔 보는 건 어떻겠냐는 얘기도 들었다. 언젠가 피봇팅을 할 수도 있겠다. 아니면 아예 새로운 앱을 만들거나.
바이브 코딩의 좋은 점은 이런 결정을 쉽게 내릴 수 있다는 점인 것 같다. 함께 고생한 동료가 있었다면 미안해서 어쩔 줄 모르고 있었겠지.
그래도 자식 같은 내 창작물이니 세상에 나가서 자신의 가치를 알아주는 사용자를 만나길 바라본다. 세상에는 다양한 모양의 관계가 존재하니 Be My Day를 잘 써 줄 사람도 분명 있을 거라 믿으며.
Be My Day는 현재 앱스토어서 만날 수 있다. (Google Play는 다 만들었지만 프로덕션 액세스라는 큰 장벽에 막혀 있다.)
앱을 만들면서도 얼떨떨했다. 이 정도의 스펙을 가진 앱을 이렇게 빨리 개발해도 되는 건가? 개발 진전 속도가 너무 빠르다 보니 날림으로 한 게 아닐지 걱정도 됐다.
어쩌면 내 앱의 코드는 어디서 풀어야 할지 감도 안 올 정도로 엉켜 있을지도 모른다. 뛰어난 개발자가 한 번 검수해 주면 좋겠다는 생각도 했다. AI가 번역한 내용을 통번역 전문가가 한 번 검수하듯이..
바이브 코딩으로 개발자의 수명이 끝날 것 같다고 여기저기서 말하는데 내 생각은 다르다. 오히려 개발자가 이 문명의 이기를 더 잘 다룰 수 있다고 본다.
평소에 코딩 외의 영역에도 관심이 많던 개발자들에게는 지금이 황금기가 아닐까. 실제로 내 주위 개발자들은 AI를 활용하여 이것저것 만드는 데 열중이다.
"미래는 이미 와 있다. 단지 널리 퍼져 있지 않을 뿐이다."
IT 업계에 몸을 담고 있으면 보면 SF 작가 윌리엄 깁슨이 한 말이 와닿을 때가 많다. 주위를 둘러보면 많은 사람들이 자신에게 찾아온 미래를 만끽하며 어떻게든 기회를 선점하려고 두 눈에 불을 켜고 있는 듯하다.
나는 어떤가. 서툰 실력으로 AI라는 파도를 한 차례 타고난 후의 소감은 여전히 복합적이다. 눈앞에 펼쳐진 엄청난 가능성에 눈이 휘둥그레지면서도 내키지 않는 마음도 분명히 있다.
돌아보면 내가 Be My Day를 만들 때 즐거웠던 순간에는 AI가 보이지 않았다. 내가 직접 기획, 디자인을 할 때는 미소를 짓고 있었고 AI에 지시를 내릴 때는 주로 무표정이거나 답답한 표정이었다.
이후 앱을 만들 때 AI의 역할이 점차 늘어나면 과정의 즐거움은 사라지고 결과에만 집착하게 되지 않을까. 결국 과정과 결과의 문제다. 둘 중 하나를 선택해야 한다면 나는 무엇을 골라야 할까.
간달프로 유명한 이안 맥켈런의 호빗 촬영 일화가 떠오른다. CG 촬영이 많았던 호빗에서 이안 맥켈런은 그린 스크린 앞에서 혼자 덩그러니 연기를 해야 할 때가 많았다.
당시 이안 맥켈런은 회의감을 토로하며 아래와 같은 말을 했다고 한다.
"이건 내가 배우가 되고 싶었던 이유가 아니야."
호빗은 사람들에게 많은 사랑을 받았지만 과연 그것이 다일까? 나는 잘 모르겠다.