송명우
Auth Provider 세팅을 하고, Vault 를 사용해서 환경변수를 집어넣었습니다. Seed 도 조금 추가했어요. 내일은 나머지 환경 변수를 집어넣고, 최종 배포 과정을 한 번 정리할 예정입니다. (2:50/7:25)
Supabase 가 Local 환경에서 docker 로 띄웠을 때, 별로 사용 경험이 좋진 않네요.
메뉴 구성이나 버그의 양이 hosted 랑 차이가 많이 납니다.
Lastwords
디지털 유언 서비스
송명우
Auth Provider 세팅을 하고, Vault 를 사용해서 환경변수를 집어넣었습니다. Seed 도 조금 추가했어요. 내일은 나머지 환경 변수를 집어넣고, 최종 배포 과정을 한 번 정리할 예정입니다. (2:50/7:25)
Supabase 가 Local 환경에서 docker 로 띄웠을 때, 별로 사용 경험이 좋진 않네요.
메뉴 구성이나 버그의 양이 hosted 랑 차이가 많이 납니다.
Lastwords
디지털 유언 서비스
송명우
개발 환경을 분리 중입니다. DB Cron, Function 등에 사용되는 환경 변수를 넣을 방법으로 Vault 를 선택하고 문서를 읽었습니다. (2:00/5:35)
Separating Dev Environment. Chose 'Vault' as a method for setting environment variables used by DB Cron and Functions, and read the documentation. (2:00/5:35)
Lastwords
디지털 유언 서비스
송명우
개발 환경을 분리 중입니다. 그리고 기존 로직을 여러 방식으로 정리했습니다. (2:25/3:35)
Lastwords
디지털 유언 서비스
송명우
개발 환경을 분리 중입니다. (1:10/1:10)
https://lastwords.the-babel.com
Lastwords
디지털 유언 서비스
송명우
#시간통계 2025-02-05 (6/365)
총계 20:30 = 9:05 (필수) + 1:20 (생산적) + 4:20 (사업) + 1:30 (건강) + 4:15 (낭비)
필수 9:05 = 수면 7:55 + 식사 0:45 + 샤워 0:15 + 양치 0:10
생산적 1:20 = 면허관련 영상 1:05 + 일일 회고 0:15
사업 4:20 = Lastwords 결제 기능 추가 4:20
건강 1:30 = 영상 통화 0:50 + 산책 0:30 + 코딩 퍼즐 0:07 + 링크드인 퍼즐 0:03
낭비 4:15 = 유튜브 2:20 + 웹서핑 0:55 + 인스타 0:40 + 웹소설 0:10 + 웹툰 0:05
나름 괜찮은 하루였다. 결제 기능을 완성했다.
Lastwords
디지털 유언 서비스
송명우
결제 기능을 완성했다. (04:20/12:45)
다음은 랜딩 페이지 변경.
https://lastwords.the-babel.com/
Lastwords
디지털 유언 서비스
송명우
결제 기능을 작업 중입니다. 에러 수정 (03:30/08:25)
Lastwords
디지털 유언 서비스
송명우
결제 기능을 작업 중입니다. Lemon Squeezy 다큐먼트 읽기 (01:25/04:45)
Lastwords
디지털 유언 서비스
송명우
결제 기능을 작업 중입니다. (02:00/03:20)
Lastwords
디지털 유언 서비스
송명우
💡 Lastwords 결제 기능 개발 중!
요즘은 제가 만든 디지털 유서 서비스 Lastwords에 결제 기능을 추가하고 있습니다.
그런데 가격을 정하는 게 생각보다 쉽지 않네요.
- 인건비가 없으니 최대한 저렴하게 유지하고 싶고,
- 결제 수수료가 높다 보니 월 구독은 없애고 1년 단위로 운영할까 합니다.
유서 보관, 생존 확인 메일 발송, 서버 유지 비용까지 고려하면 어느 정도가 적당할지 계산하고 있습니다.
여러분이 부담 없이 구독할 수 있는 가격이 얼마인가요? 낮은 금액도 괜찮습니다.
👥 그리고 저처럼 혼자 IT 사업을 해나가시는 1인 개발자 & 인디 해커 커뮤니티를 운영하고 있습니다.
유용한 툴에서부터, 사업하면서 드는 생각, 코워킹 플레이스 정보, 외부 모임 정보, 비즈니스 모델, 서비스 운영 고민도 함께 나누고 있으니, 관심 있으시면 놀러 오세요!
Lastwords
디지털 유언 서비스
송명우
레딧에 서비스 홍보글을 올렸는데 바로 밴을 당해버렸네요. 유입은 1명 있었습니다.
다음에는 홍보를 더 잘할 수 있을 것 같습니다.
Lastwords
디지털 유언 서비스
송명우
몇 가지 일이 있었습니다.
첫째로, 결제 모듈을 연동하는 데 실패했습니다.
사업자 등록 없이 결제 모듈을 사용하려다 보니 심사에서 반려되었습니다.
해외 결제 모듈을 사용하는 방법을 검토해야 할 것 같습니다.
둘째로, 피드백을 받을 수 있는 창구를 마련했습니다.
게으름을 피우다 이제야 준비했네요.
이때까지 웹과 크롬 확장 프로그램을 만들어 보았으니,
다음으로는 음악 관련 앱을 개발해 볼 계획입니다.
11월 말까지 만들어 보겠습니다.
다들 힘내세요!
Lastwords
디지털 유언 서비스
송명우
언어 선택기가 예뻐졌어요 🥰
Lastwords
디지털 유언 서비스
송명우
오늘 유서 전달 기능을 마무리하여 Lastwords 의 핵심 기능을 모두 구현했습니다. 👏👏👏
이제부터는 마케팅이나 디자인처럼 기능 외적인 부분을 손보려고 합니다.
그 일환으로 오늘은 랜딩 페이지 디자인도 수정해 보았습니다.
다음 단계로는 GA UTM 설정과 피드백을 쉽게 받을 수 있는 구조를 만드는 작업을 할 예정이며, 결제 기능도 추가할 계획입니다.
결제는 결제 수수료가 너무 부담되어서 연간 요금제와 평생 요금제로만 하게될 것 같네요.
Lastwords
디지털 유언 서비스
송명우
미루던 유서 전송 기능을 작업하고 있다.
메일 전송은 완료했고, 내일 메일 전송 시점과 내용 전달 정도만 하면 완성이다.
그리고 기존 로직들에 유저의 생존 여부를 확인하는 조건만 넣으면 기존 기능 고도화도 완료된다.
이외에 서비스가 잘 동작하지 않는 부분이 있어서 수정했다.
테스트 코드를 작성해야할까?
Lastwords
디지털 유언 서비스
송명우
오늘은 실제 사용자에게 첫 번째 생존 확인 메일이 보내지는 역사적인 날이었습니다.
메일은 GMT으로 자정에 발송되기 때문에, 한국 시각 오전 9시에 발송 로그를 확인해보았습니다.
그런데 13개의 메일 중 단 4개만 발송에 성공한 것을 발견했습니다.
조사해보니, Resend의 SMTP 서버에서 초당 최대 2개의 메일만 전송 가능하도록 제한이 설정되어 있었습니다.
그래서 Resend 에 제한을 100개로 늘려달라는 티켓을 보냈고, 메일 간 0.5초의 딜레이를 추가했으며, 나머지 9개의 메일은 수동으로 발송하였습니다.
그리고 방금 Resend로부터 서비스 로그를 검토한 결과, 100개까지는 필요 없어 보이므로 초당 25개로 제한을 조정했다는 답변을 받았습니다.
서비스가 생각대로 동작하는 것을 보는 것과, 에러의 원인을 해결하는 것 모두 참 즐거운 것 같습니다.
Lastwords
디지털 유언 서비스
송명우
오늘은 사업 계획서 작성 강의를 들었습니다.
사업 관련 말씀 중 동의 못하는 내용이 많았습니다.
'간절해야한다.', 'INFP 는 창업하지마라', '명함이 없으면 안된다', '투자/대출을 받아야한다.'
창업에 공식이 있는 것처럼 말씀하시니 듣기 힘들었습니다.
창업 보다는 지원 사업에 합격하는 공식이라고 생각되었습니다.
제 경험 상, 무리하면 오래 못 가고 다칩니다.
박현호 크몽 대표, 박소령 퍼블리 대표, 이진하 스페이셜 대표, 김세영 피에스엑스(PSX) 대표는 INFP 라고 합니다.
명함이 없으면 링크드인으로 하면 됩니다.
DHH 의 베이스 캠프는 투자를 받지 않습니다.
그래도 강의 이후 강사님을 찾아가서 사업계획서를 보여드리며 조언을 구했고, 시장조사가 더 필요하다는 결론을 얻었습니다.
하여 설문/전단지/광고 등의 시장 조사(및 홍보)를 생각했고 서비스 사이트의 SEO 를 보완했습니다.
https://lastwords.the-babel.com/
Lastwords
디지털 유언 서비스
송명우
기능이 하나씩 완성되어가는게 정말 재미있다.
오늘은 드디어 생존 확인 메일을 보내는 것을 자동화했다.
로직은 아래처럼 했다.
1. 사용자가 설정한 주기에 맞춰서 다음 생존 확인 요청일을 계산해둔다.
2. cron 을 통해 오늘과 비교해서 필터링한다.
3. 필터링한 사용자를 edge functions 에 보내서 이메일을 전송한다.
아직 보완이 필요한 부분이 있긴 하지만 그거 신경쓰면 앞으로 못간다.
내일부터는 유서의 암호화를 고도화하고 생존 확인 실패가 누적되는 경우 유서를 전송하는 것을 작업할거다.
대강 11월 중으로 제품 전반적으로 완성에 가까워질 것 같다.
이후에는 마케팅과 유지비용 마련을 위한 고민을 해야지.
그리고 만들고 싶은 서비스가 너무 많다.
11월 말 부터는 음악 관련 서비스를 만들어 볼건데 웹앱의 형태로 앱 스토어에 배포도 할 예정이다.
Lastwords
디지털 유언 서비스
송명우
가능성을 보았다.
Postgres 에 cron 기능(PG_cron)을 확장할 수 있어서 일 배치를 쉽게 만들 수 있다.
이제 남은건 PG_cron 과 Edge functions 를 적절하게 설계해서 아래 조건에 맞는 사용자에게 생존 확인 메일을 보내기만 하면 된다.
1. 30일 이내에 생존 확인을 완료한 사람에게는 생존 확인 메일을 보내지 않는다.
2. 오늘이 사용자가 설정한 생존 확인일에 해당되는 경우 생존 확인 메일을 보낸다.
그래도 아직 고려해야할 문제는 몇 가지 있다.
1. PG_cron 에 SQL 로 작성할 로직의 범위
2. 테스트 코드는 어떻게 짤 것인지
이외에도 환경 분리, Zoho 로의 복귀 여부 등 고민할 것은 많지만 빠르게 실패하고 배우는 것이 중요하다.
일단 간다~
Lastwords
디지털 유언 서비스
송명우
생존확인 메일 전송 기능을 계속해서 작업하고 있다.
이메일로 전달되는 Magic link가 제대로 동작하지 않는 것이 문제였는데, Magic link로 redirect되는 화면에서 Supabase API를 Nuxt에서 wrapping한 Composable을 사용했던 것이 문제였다.
Supabase JS API를 직접 사용하면 Magic link로 로그인이 잘 된다.
그런데 한 가지 문제가 더 생겼는데 이렇게 redirect 된 화면에서 사용하는 Supabase JS API와 기존 화면들에서 사용하는Composable 의 세션이 공유가 안되는 것 같다.
내일 조금 더 확인해보고 이슈 티켓을 남겨야겠다.
그리고 Nuxt 도 Supabase 처럼 디스코드 질문 채널이 있는지 한 번 보자.
Lastwords
디지털 유언 서비스
송명우
두 개의 지원 사업에 신청했고, 하나는 떨어졌고 하나는 붙었다.
첫 공모 합격이라 기분이 참 좋다.
선착순 합격인 공모지만 그것도 다 내 능력이다.
Lastwords
디지털 유언 서비스
송명우
생존 확인 이메일 전송 자동화 작업을 계속해서 붙잡고 있다.
SMTP 서버를 Zoho 에서 Resend 로 바꾸었고, 아예 메일 전송 메커니즘 자체를 Edge Functions 이 아니라 Supabase 에 있는 Magic Link 메일 전송 기능을 사용하게 바꿨다.
이제 메일 전송은 정말 잘 된다.
그런데 Supabase Magic Link 가 내가 생각한대로 동작하질 않는다.
문의는 남겨두었고 밤은 깊었으니 자러 가야겠다.
자동화는 아직 손도 못 댔다.
Lastwords
디지털 유언 서비스
송명우
이메일 자동화 작업을 어제에 이어서 계속 진행하고 있다.
이메일 전송은 성공했지만, 문제가 하나 발생했다. Supabase Edge Functions의 CPU 시간 제한이 2초인데, SMTP 작업에 2초 이상 소요되고 있다. 이로 인해 메일 발송 시도는 되지만, 전송 성공 여부를 확인하거나 후속 처리를 할 수 없는 상황이다.
해결 방법은 두 가지가 있다.
1. SES나 Resend와 같은 대체 서비스를 사용하는 것
2. Fire-and-Forget 방식으로 처리하는 것
우선 첫 번째 방법을 시도하기로 했다. 어차피 다른 급한 일이 있는 것도 아니니까. 😊
그런데 Resend 는 희한하게도 2초라는 시간 제한 안에 전송이 완료되는 것 같다. 공식 문서에서도 사용하고 있다.
내가 Zoho 의 SMTP 를 사용하는 것보다 HTTP 요청을 하나 더 거쳐서 느려야할 것 같은데 왜인지 잘 모르겠다.
Lastwords
디지털 유언 서비스
송명우
사용자에게 메일을 보내는 기능은 Lastwords의 핵심 기능 중 하나이다.
그리고 오늘, 오랫동안 미뤄왔던 메일 자동화 작업을 시작했다.
메일 서비스는 여러 가지가 있지만, 개중에 무료로 가장 많은 메일을 제공하는 Zoho를 선택했다.
그리고 Zoho를 통해 메일을 보내는 코드를 각종 AI 서비스들의 도움을 받아 Supabase Edge Functions에 올렸다.
정말이지 1인 개발하기 좋은 세상이 아닌가 싶다.
이 모든 끝내주는 환경 속에서도 코드가 동작하지 않는 이유는 배경 지식의 부족이다.
내일은 Supabase Edge Functions의 문서를 읽자.
Lastwords
디지털 유언 서비스
송명우
오늘은 달리기를 하고 도서관에 가서 책을 읽고 요리를 한 후 휴식을 취했다.
현재 빌려서 읽고 있는 책은 『죽음이란 무엇인가』, 『빠르게 실패하기』, 『끈기보다 끊기』, 그리고 『죽어도 죽지마』이다. 도서관에서는 『세컨드 브레인』을 훑어 읽으며 내가 이미 실천하고 있는 메모 습관과 연결 지어 생각해보았다.
나는 메모를 PARA 시스템을 통해 정리하고 있으며, 주로 Obsidian을 메인 툴로 사용하고 있다. 음성 메모를 할 때는 구글 홈 미니를 이용하여 구글 킵에 기록되도록 설정해 두었고, 이를 다시 Obsidian과 연동시켜 모든 메모가 한 곳으로 모이게 하고 있다. 물론 휴대폰에도 구글 킵 위젯을 설치해 두어 필요할 때 언제든 쉽게 메모를 작성할 수 있도록 준비해 두었다.
아날로그 방식도 사용하는데, 꿈일기처럼 복잡한 내용을 기록할 때에도 쉽게 메모하기 위해서 잠자리 곁에 항상 메모지를 두고 있다.
이렇게 작성된 메모는 11시에 하루 회고를 할 때 정리한다.
Lastwords
디지털 유언 서비스
송명우
[Lastwords 프로덕트 업데이트]
1. 메시지 작성 화면 개선
- 메시지 작성 시 수신자를 직접 추가할 수 있는 기능을 구현했다. 디스콰이엇에서 받은 피드백이었는데 만들고보니 한 화면에서 코어 기능을 모두 수행할 수 있어서 메시지 작성 프로세스가 정말 편해졌다.
2. 미들웨어 추가
- 로그인 여부를 확인하는 미들웨어를 추가해서 로그인하지 않은 경우엔 메시지, 수신자, 대시보드, 세팅 화면에 접근하지 못하게 했다.
3. 사용자 경험 개선
- 대시보드와 수신자 화면에서 로딩 UI 를 추가했다. 데이터가 없는 경우의 문구도 추가했다.
4. 버그 수정
- 수신자 관계를 직접 입력할 때 인풋 태그가 바로 나오지 않는 문제를 해결했다.
5. 업데이트 로그 시스템 개선
- 업데이트 로그에 줄바꿈이 적용되도록 수정했다.
2시간 정도 걸렸던 것 같다. 오늘도 역시 Cursor AI 와 함께했다.
Lastwords
디지털 유언 서비스
송명우
오늘은 서비스에 “업데이트 로그” 페이지를 새로 만들었다.
커피 한잔이라는 1인 개발 서비스가 지속적으로 고객을 유치할 수 있었던 비결을 곰곰이 생각해 보았는데, 꾸준한 업데이트와 소식 공유가 중요한 요인 중 하나라는 결론을 내렸다.
이와 같은 맥락에서, 나도 내 서비스가 지속적으로 유지·관리되고 있음을 사용자들에게 전달하기 위해
업데이트 로그 페이지를 추가했다.
특이사항이 있다면 언어셋이 적용된다는 점과 나 자신도 서비스 페이지 내에서 업데이트 로그를 관리한다는 점이다.
이번 작업에서는 Cursor AI를 사용해 보았는데, 기대 이상으로 효율적이었다.
확실히 1인 개발이 점점 더 수월해지는 시대가 오고 있음을 체감했다.
Lastwords
디지털 유언 서비스
송명우
최대한 비용을 들이지않고서 만들고 싶은 서비스를 만들고 키우는 것이 목표인데, 점점 예상치 못한 지출이 얼굴을 들이민다..
수익화를 위해 PG 를 추가하려했더니 가입비 20만 원, 연회비 10만 원을 내야하고, 홍보를 위한 광고도 다 돈돈돈.
심지어 서비스 결제 금액이 소액이다보니 고정 수수료가 있으면 수수료가 너무 커서 결제를 안 받는게 나을 지경이다.
그래서 고민끝에 자금을 마련하기 위해 창업 관련 경진대회에 참여하기로 결정했다.
급하게 사업계획서와 발표 자료를 준비해서 제출했는데, 결과가 어떻게 될지,,
Lastwords
디지털 유언 서비스
댓글
로그인 후 댓글을 남길 수 있습니다.
많은 관심 부탁드립니다.
아이디어가 재밌네요 ㅎㅎ
헉, 뭔가 슬프면서도 굉장히 필요한 서비스같습니다!
나중에 추가하시겠지만, 이메일은 잘 확인하지 않는 경우도 많으니, 생존확인 방법으로 다른 방법도 있으면 좋을 것 같습니다! 그리고 메시지 작성하는 곳에서도 수신자 추가를 할 수 있으면 좋을 것 같습니다!
정말 좋은 포인트들 입니다. 아마 앱푸시와 문자, 와츠앱, 라인, 카톡 등이 될 것 같아요. 수신자 추가도 좋은 것 같습니다. 피드백 감사드립니다 🫶
Lastwords가 이번주 뉴스레터에 소개되었어요! https://dis.qa/C7Zc
아이디어가 너무 좋은 것 같습니다.
아고 감사합니다 ;b
저 얼마 남지 않은 것 같습니다. 조만간 긴 글 쓰겠습니다