1인 개발로 영어 일기 SaaS를 만들면서 배운 것들 - 잉크버드(Encbird)
안녕하세요.
주말마다 시간을 내서 꾸준히 만들고 있는 영어공부 서비스가 있습니다.
이름은 잉크버드(Encbird) 입니다.
처음부터 서비스를 홍보하기보다는, 만들면서 고민했던 것들과 배운 점을 먼저 공유하고, 마지막에 서비스 소개를 짧게 붙여보려고 합니다.
만들게 된 계기
개발자로 일하다 보면 연차가 쌓일수록 영어를 써야 하는 일이 점점 많아지는 것 같습니다.
문서를 읽는 건 어느 정도 버틸 수 있는데, 막상 제 생각을 영어로 쓰거나 말하려고 하면 표현이 너무 제한적이었습니다. 머릿속에 있는 생각의 절반도 제대로 표현하지 못하는 느낌이 계속 답답했습니다.
영어로 말을 잘하고 싶다는 생각을 하면서 고민해보니, 내가 쓸 수 있는건 말할 수 있고, 들을 수도 있다는 걸 깨닫고, 작문 연습을 해야겠다는 생각을 했습니다.
그래서 링글, 전화영어, 스픽, 듀오링고 등 여러 서비스를 써봤습니다.
각각 좋은 점이 있었지만, 제 경우에는 꾸준히 이어가기가 쉽지 않았습니다.
사전에 공부를 안 하면 매번 같은 표현만 쓰게 되고,
사전에 공부하려고 하면 그 준비 자체가 부담이 됐습니다.
사람과 실시간으로 하는 수업은 더 부담이 컸습니다.
일이 바쁜 시기에는 정신적으로 피곤하기도 했고, 예약해둔 링글 수업을 몇 달 치 날린 적도 있습니다.
그렇게 돈과 시간을 쓰면서 공부하다 보니, 영어 공부에 대해 이런 결론을 내리게 됐습니다.
영어는 알고리즘처럼 한 번 이해하고 넘어가는 것보다는, 운동이나 훈련에 더 가깝다.
짧게라도 자주 쓰고, 반복해서 다시 만나야 한다.
그래서 제가 원했던 건 거창한 영어공부 서비스가 아니라,
부담 없이 매일 2~10분 정도 영어를 직접 써볼 수 있는 도구였습니다.
서비스의 현재 포지셔닝도 완전 초보자나 네이티브 수준은 더 좋은 서비스들이 많이 있으니, 나같이 중간낀 어중간한 실력의 사용자가 고급으로 넘어갈 수 있게 도와주는 서비스를 만들자 입니다.
기존 서비스에서 아쉬웠던 점
영어공부 서비스들은 각자 장점이 있습니다.
대화 후 첨삭을 해주거나,
좋은 표현을 추천해주거나,
말하기 연습을 시켜주거나,
커리큘럼을 제공해주는 방식들이 있습니다.
그런데 제가 실제로 꾸준히 쓰려고 했을 때는 몇 가지 아쉬움이 있었습니다.
실시간 피드백은 좋지만, 매번 집중해서 참여해야 한다.
첨삭 피드백이 길면 결국 안 읽게 된다.
공부를 시작하기 전 준비 시간이 길면 앱을 켜는 것 자체가 부담된다.
사용자가 너무 능동적으로 뭘 할지 결정해야 하면 지속하기 어렵다.
선생님이나 세션이 바뀔 때마다 나를 다시 설명해야 한다.
말하기 서비스는 좋지만 출퇴근 시간에는 사용하기 어렵다.
ChatGPT로 공부하면 자유도는 높지만 기록과 복습이 흩어진다.
그래서 잉크버드는 이런 문제들을 하나씩 줄이는 방향으로 만들고 있습니다.
처음엔 단어장으로 시작했습니다
처음 만든 형태는 스마트 단어장에 가까웠습니다.
모르는 표현을 저장하고, 다시 복습하고, 예문을 만들어보는 식이었습니다.
그런데 직접 써보니 단어장만으로는 작문 실력이 잘 늘지 않았습니다.
결국 내가 직접 문장을 만들어야 했고,
그 문장이 내 상황과 연결되어 있어야 오래 기억에 남았습니다.
그래서 방향을 바꿨습니다.
지금 잉크버드는 영어 일기를 중심으로 작문을 연습하는 서비스입니다.
영어 일기는 좋은 방식이지만, 시작이 어렵습니다.
막상 쓰려고 하면 “오늘 뭘 쓰지?”부터 막힙니다.
그래서 빈 화면에서 시작하지 않게 만들었습니다.
AI 코치가 한국어로 먼저 질문을 던지고, 사용자는 영어로 짧게 답합니다.
예를 들면 이런 식입니다.
오늘 회사에서 어떤 일이 있었어요?
최근에 새로 배운 표현을 써볼까요?
지난번에 말했던 프로젝트는 어떻게 됐어요?
영어가 완벽하지 않아도 됩니다.
단어가 안 떠오르면 한영 혼용으로 써도 됩니다.
중요한 건 사용자가 앱을 켜고, 짧게라도 직접 문장을 만들어보는 것입니다.
잉크버드가 풀고 싶은 문제
제가 풀고 싶었던 문제는 단순합니다.
영어 일기를 쓰면서 새로운 표현을 배우고, 그 표현을 다시 내 것으로 만들고 싶다.
많은 영어공부 서비스가 좋은 피드백을 줍니다.
하지만 피드백을 받아도 내가 다시 읽지 않으면 의미가 없습니다.
그래서 잉크버드는 “첨삭을 한 번 보여주고 끝”내지 않으려고 했습니다.
사용자가 일기를 쓰면 문장별로 더 자연스러운 표현을 제안합니다.
마음에 드는 표현은 클릭 한 번으로 내 표현 사전에 저장할 수 있습니다.
그리고 저장된 표현은 그냥 쌓이기만 하지 않습니다.
SRS, 즉 간격 반복 스케줄에 따라 며칠 뒤 다시 복습 큐에 올라옵니다.
복습 방식도 단순 플래시카드뿐 아니라,
영작 퀴즈나 게임형 복습으로 다시 만나게 만들고 있습니다.
제가 중요하게 생각한 건 “의지에 맡기지 않는 구조”입니다.
사용자가 좋은 표현을 저장해두고 잊어버리는 것이 아니라, 시스템이 적절한 시점에 다시 꺼내주는 방식입니다.
ChatGPT와 다르게 만들고 싶었던 부분
솔직히 영어 일기만 놓고 보면 ChatGPT가 가장 강력한 도구일 수 있습니다.
저도 많이 써봤습니다.
그런데 공부 도구로 쓰다 보면 몇 가지 문제가 있었습니다.
대화가 너무 자유롭기 때문에 기록이 흩어지고,
지난번에 어떤 표현을 배웠는지 다시 찾기 어렵고,
복습까지 이어지지 않는 경우가 많았습니다.
그래서 잉크버드는 열린 대화보다는 완결된 학습 단위를 만들려고 했습니다.
하나의 세션이 끝나면 “영어 일기 한 편”이 남고,
그 안에 원문, 교정문, 추천 표현, 저장한 표현, 복습 대상이 구조화되어 남습니다.
즉, ChatGPT처럼 대화할 수는 있지만
결과물은 영어 학습에 맞게 정리되는 구조입니다.
개인화에 대해 고민한 점
서비스 전반에서 가장 중점을 둔 부분은 GenAI 플라이휠입니다.
사용자가 한 번 공부하고 끝나는 것이 아니라,
그때 생긴 데이터가 다음 학습에 다시 쓰이게 만들고 싶었습니다.
예를 들어 지난주 일요일 다이어리 챗에서 교회에 다녀왔다고 썼다면,
다음 주에는 AI 코치가 자연스럽게 이렇게 물어볼 수 있습니다.
이번 주에도 교회 다녀오셨어요?
지난번에 저장한 표현을 써서 오늘 있었던 일을 말해볼까요?
최근에 저장한 표현도 코치가 알고 있고,
사용자가 자주 틀리는 패턴도 이후 피드백에 반영됩니다.
쓰면 쓸수록 나에게 맞춰지는 영어 일기장이 되게 만드는 것이 목표입니다.
결제 방식에 대한 고민
결제 방식도 많이 고민했습니다.
대부분의 영어공부 서비스는 월 구독을 요구합니다.
물론 서비스 운영 입장에서는 예측 가능한 매출이 생기기 때문에 좋은 방식입니다.
하지만 사용자 입장에서는 결제해놓고 안 들어가면 돈이 아깝습니다.
저도 월 결제만 해두고 제대로 못 써서 돈을 날린 경험이 많았습니다.
그래서 잉크버드는 가능하면 서비스 비용과 사용량이 맞물리도록 만들고 싶었습니다.
사용자는 공부한 만큼만 비용을 내고,
서비스는 실제로 가치를 만든 만큼 비용을 받는 구조가 더 건강하지 않을까 생각했습니다.
물론 이 방식이 장점만 있는 건 아닙니다.
영어공부 결제는 연초나 연말에 몰리는 경향이 있고,
회사에서 지원받는 영어공부 비용도 월 단위 구독과 더 잘 맞는 경우가 많습니다.
그래도 제가 만들고 싶은 서비스의 방향은 명확했습니다.
사용자가 부담 없이 들어와서 공부하고,
서비스도 과한 고정비 없이 오래 살아남는 구조를 만들고 싶었습니다.
기술적으로 어떻게 만들었나
저는 10년도 더 전에 스타트업을 하다가 한 번 실패한 경험이 있습니다.
제한된 예산 안에서 결국 PMF를 찾지 못했고, 서비스는 오래 버티지 못했습니다.
그래서 이번에는 설계 기준을 조금 다르게 잡았습니다.
1순위는 “빠른 성공”이 아니라 안 망하는 것 이었습니다.
의사결정 기준도 꽤 명확했습니다.
DAU가 한 자릿수로 떨어지고, 제가 당분간 손을 못 대도
이 서비스가 거의 무비용으로 계속 살아남을 수 있는가?
그래서 전체 구조를 서버리스 중심으로 만들었습니다.
프론트엔드는 Vue/Nuxt 기반이고,
백엔드는 Go on Lambda와 이벤트 기반 구조로 구성했습니다.
인프라는 CDK로 관리하고 있습니다.
LLM 은 AWS Bedrock 에서 필요에 따라 적절한 크기와 비용의 모델을 쓰고, 이미지 생성도 Fal.ai 를 통해서 nano banana2 와 gpt image 2 를 적절히 쓰고 있습니다.
트래픽이 없으면 청구서도 거의 0에 가깝고,
트래픽이 갑자기 늘면 필요한 만큼만 스케일되는 구조를 목표로 했습니다.
1인 개발에서는 기능을 많이 만드는 것보다,
운영 부담을 줄이는 게 훨씬 중요하다고 느꼈습니다.
AI 에이전트를 개발에 어떻게 쓰고 있나
개발 방식도 같은 맥락에서 많이 바꿨습니다.
혼자 오래 운영하려면 코드 생산성을 최대한 끌어올려야 했습니다.
현재 잉크버드의 코드는 대부분 AI 에이전트가 작성하고, 저는 코드 리뷰와 설계 판단에 집중하고 있습니다.
처음부터 완전히 에이전트에게 맡긴 것은 아니고, 제가 바닥부터 직접 작성했던 코드베이스가 있는 상태에서 점진적으로 전환했습니다.
그 덕분에 에이전트가 생성한 코드도
“내가 직접 작성했어도 이렇게 했겠다” 싶은 방향으로 맞춰갈 수 있었습니다.
다만 해보면서 느낀 점은, 소프트웨어 개발에서 코딩 자체가 차지하는 비중은 생각보다 작다는 것입니다.
문제 정의, 기획, 아키텍처 결정, 검증이 훨씬 큽니다.
에이전트가 헤매지 않게 하려면 결국 윗단의 의사결정이 명확해야 합니다.
그래서 단순히 프롬프트를 잘 쓰는 수준을 넘어서,
에이전트를 감싸는 작업 환경 자체를 만들었습니다.
모든 기능은 대략 이런 흐름으로 진행합니다.
PRD 작성
ADR 작성
구현 범위 분리
에이전트가 ADR을 읽고 구현
사람이 리뷰하고 병합
사람이 직접 손대는 지점이 코드에서 설계와 검증으로 올라간 셈입니다.
이 작업 방식을 별도로 추출해서 ALPS PRD Writer라는 플러그인도 만들었습니다.
현재 다른 프로젝트에도 실제로 써보면서 개선하고 있습니다.
잉크버드는 현재 12만 라인이 넘는 코드베이스이고,
컨텍스트와 문서까지 포함하면 16만 라인 정도 됩니다.
혼자 개발하고 운영하다 보니, 백오피스를 매번 만들기보다는
에이전트 기반 스킬과 운영 자동화로 처리하는 방향을 많이 선택하고 있습니다.
누구를 위한 서비스인가
잉크버드는 20~40대 직장인을 주 사용자로 생각하고 만들고 있습니다.
특히 이런 분들에게 잘 맞는다고 생각합니다.
출퇴근 시간에 2~10분 정도 영어공부를 하고 싶은 분
말하기보다 작문으로 영어 감각을 쌓고 싶은 분
영어 일기를 쓰고 싶지만 매번 뭘 쓸지 막막한 분
새로운 표현을 배우고, 그 표현을 다시 써보고 싶은 분
ChatGPT로 영어공부를 해봤지만 기록과 복습이 아쉬웠던 분
실시간 수업이나 전화영어가 부담스러운 분
핵심 경험은 “AI 코치와 대화하듯 쓰는 영어 일기”입니다.
빈 화면에서 혼자 시작하지 않고,
AI 코치가 한국어로 질문을 던지고,
사용자는 영어로 짧게 답하고,
끝나면 자연스러운 표현과 복습할 표현이 남는 구조입니다.
마무리
아직 부족한 부분이 많습니다.
하지만 제가 직접 영어공부를 하면서 느끼는 불편함을 계속 반영하고 있습니다.
제가 어제 공부를 안 했다면, “왜 안 들어갔을까?”, “어떤 부분이 부담이었을까?”를 계속 생각하면서 고치고 있습니다.
제가 영어를 원어민처럼 잘해서 만드는 서비스라기보다는,
오히려 영어를 계속 공부하는 입장이기 때문에 발견할 수 있는 문제들이 있다고 생각합니다.
서비스는 아래에서 체험 해볼 수 있습니다.
https://www.encbird.com/guide/diary
긴 글 읽어주셔서 감사합니다.
1~2인 창업자, 직장에서 사이드 프로젝트 하시는 분들 항상 응원합니다.
