{
	"version": "https://jsonfeed.org/version/1.1",
	"title": "ragedaisy 빌딩로그",
	"language": "ko",
	"home_page_url": "https://ragedaisy.com/",
	"feed_url": "https://ragedaisy.com/feed/feed.json",
	"description": "1인 개발자의 서비스 제작기. 앱, 웹 확장프로그램 등 사이드 프로젝트를 만들며 겪은 시행착오와 실전 팁을 공유합니다.",
	"author": {
		"name": "ragedaisy",
		"url": "https://ragedaisy.com/"
	},
	"items": [
		{
			"id": "https://ragedaisy.com/articles/18/",
			"url": "https://ragedaisy.com/articles/18/",
			"title": "방콕 노마드 3일차 - 코인세탁소 옆 카페에서 코딩",
			"content_html": "<p>4월 14일 화요일. 방콕 3일차.</p>\n<p>어제 송크란에서 완전 젖어서 옷이 다 빨래감이 됐다. 오늘은 빨래 + 코딩 하는 날.</p>\n<h2 id=\"\" tabindex=\"-1\">코인 세탁방 찾기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>숙소에 세탁기가 없다. 장기 숙소인데 의외.</p>\n<p>구글맵에 &quot;coin laundry&quot; 검색했더니 500m 거리에 있었다. 걸어서 5분.</p>\n<p>코인 세탁방 가는 길에도 물 맞았다. 송크란 아직 안 끝남. 슬리퍼 신고 가서 다행.</p>\n<p>세탁방 도착. 24시간 무인으로 운영된다.</p>\n<h3 id=\"-1\" tabindex=\"-1\">코인 세탁방 사용법 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h3>\n<p>생각보다 간단했다.</p>\n<ol>\n<li>세탁기에 옷 넣는다 (10kg 용량)</li>\n<li>세제 투입구에 세제 넣는다 (세제 자판기 있음, 10바트)</li>\n<li>코인 넣는다 (찬물 80바트, 약 4000원)</li>\n<li>코스 선택하고 시작</li>\n</ol>\n<p>40분 걸린다. 그 동안 뭐 하지?</p>\n<p>세탁방 주인 할머니가 말을 걸어왔다. 세탁 끝나면 자기가 건조기에 넣어주겠다고. 그래서 나는 그냥 카페 가서 일하면 됐다. 친절하다.</p>\n<p>근처 카페 찾았다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">카페에서 코딩 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>세탁방에서 50m 거리에 카페 있었다. 로컬 카페. 관광객보다 현지인이 많았다.</p>\n<p>아메리카노 60바트 (3000원). 한국 카페 절반 가격.</p>\n<p>자리 잡고 노트북 열었다.</p>\n<p>에어컨 빵빵하고, 와이파이 잘 터지고, 콘센트도 있다. 작업하기 딱 좋다.</p>\n<h3 id=\"-3\" tabindex=\"-1\">이게 노마드 라이프인가 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h3>\n<p>낯선 도시. 모르는 카페. 빨래 돌아가는 동안 코딩.</p>\n<p>뭔가 자유롭다는 느낌이 들었다.</p>\n<p>한국에서는 회사 끝나고 집에서 코딩한다. 피곤하고, 집중 안 되고, 1-2시간 하면 한계. 야근하면 아예 못 하고.</p>\n<p>여기서는 낮에 풀타임으로 내 프로젝트만 할 수 있다. 아무도 안 방해하고, 회의도 없고, 슬랙 알림도 없다.</p>\n<p>집중이 잘 된다.</p>\n<p>세탁 40분 동안 작업한 것:</p>\n<ul>\n<li>버그 2개 수정</li>\n<li>새 기능 UI 대략 잡기</li>\n<li>이 블로그 글 초안</li>\n</ul>\n<p>평소 퇴근 후 2시간 동안 하는 양을 40분 만에 한 것 같다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">빨래 찾기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>80분쯤 지나서 빨래 찾으러 갔다.</p>\n<p>할머니가 말한 대로 이미 건조기까지 돌려놨다. 건조기는 80바트 (10kg), 40분. 도착하니까 건조도 거의 끝나있었다.</p>\n<p>빨래 갠다. 깨끗하고 뽀송뽀송하다. 8000원으로 빨래 해결.</p>\n<h2 id=\"-5\" tabindex=\"-1\">오후: 작업 계속 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>숙소 돌아가서 작업 계속했다.</p>\n<p>숙소 책상이 괜찮다. 모니터 연결하면 더 좋을 것 같은데 짧게 있는 거라 노트북만 쓴다.</p>\n<p>오후 2시부터 저녁 7시까지 5시간 코딩. 중간에 편의점 가서 간식 사오고.</p>\n<p>진도:</p>\n<ul>\n<li>결제 페이지 UI 완성</li>\n<li>API 연동 시작</li>\n<li>테스트 코드 몇 개 작성</li>\n</ul>\n<p>한국에서 일주일 걸릴 것 같은 걸 하루에 할 수 있을 것 같다.</p>\n<h2 id=\"-6\" tabindex=\"-1\">노마드 작업 팁 (방콕) <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>3일 해보고 느낀 것들.</p>\n<h3 id=\"-7\" tabindex=\"-1\">카페 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h3>\n<p><strong>스타벅스</strong></p>\n<ul>\n<li>와이파이 빠름</li>\n<li>콘센트 많음</li>\n<li>비쌈 (아메리카노 130바트)</li>\n<li>어디나 같은 분위기</li>\n</ul>\n<p><strong>로컬 카페</strong></p>\n<ul>\n<li>저렴함 (50-70바트)</li>\n<li>와이파이 복불복 (들어가기 전에 확인)</li>\n<li>분위기 좋음</li>\n<li>콘센트 적을 수 있음</li>\n</ul>\n<p><strong>코워킹 스페이스</strong></p>\n<ul>\n<li>하루 300-500바트 (15,000-25,000원)</li>\n<li>확실한 환경 (빠른 와이파이, 콘센트, 조용함)</li>\n<li>장기면 고려할 만함</li>\n</ul>\n<p>나는 로컬 카페 돌아다니면서 작업하는 게 좋았다. 분위기도 바뀌고 저렴하니까.</p>\n<h3 id=\"-8\" tabindex=\"-1\">숙소 고를 때 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h3>\n<ul>\n<li><strong>와이파이 속도</strong>: 리뷰에서 확인. &quot;wifi slow&quot; 언급 있으면 피하기.</li>\n<li><strong>책상 유무</strong>: 침대에서 작업하면 허리 나감. 책상 사진 확인.</li>\n<li><strong>에어컨</strong>: 방콕 덥다. 선풍기만 있는 곳 피하기.</li>\n<li><strong>위치</strong>: 역 근처면 이동 편함. BTS/MRT 도보 10분 이내 추천.</li>\n</ul>\n<h3 id=\"-9\" tabindex=\"-1\">인터넷 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h3>\n<p>태국 인터넷 생각보다 빠르다.</p>\n<ul>\n<li>카페 와이파이: 보통 10-30Mbps</li>\n<li>숙소 와이파이: 20-50Mbps</li>\n<li>eSIM 데이터: 테더링하면 5-15Mbps</li>\n</ul>\n<p>줌 콜 정도는 문제없다. 영상 업로드 같은 거 하면 좀 느릴 수 있음.</p>\n<h2 id=\"-10\" tabindex=\"-1\">저녁: 길거리 음식 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>작업 끝나고 저녁 먹으러 나갔다.</p>\n<p>숙소 근처 길거리 포장마차. 팟타이 50바트, 꼬치 20바트.</p>\n<p>길거리에 앉아서 팟타이 먹는데 기분이 좋았다. 2000원짜리 팟타이가 맛있다.</p>\n<h2 id=\"3\" tabindex=\"-1\">3일차 지출 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>항목</th>\n<th>금액</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>빨래 (세탁+건조)</td>\n<td>8,000원</td>\n</tr>\n<tr>\n<td>카페 (아메리카노)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td>점심 (편의점)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td>저녁 (길거리)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td><strong>총</strong></td>\n<td><strong>17,000원</strong></td>\n</tr>\n</tbody>\n</table>\n<p>하루 17,000원. 서울에서 점심값도 안 된다.</p>\n<h2 id=\"3-1\" tabindex=\"-1\">3일간 총 정리 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>일차</th>\n<th>내용</th>\n<th>지출</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1일차 (4/12)</td>\n<td>도착 + 송크란/SSK2026</td>\n<td>193,500원 (사기 포함)</td>\n</tr>\n<tr>\n<td>2일차 (4/13)</td>\n<td>휴식, 스타벅스, KFC</td>\n<td>15,000원</td>\n</tr>\n<tr>\n<td>3일차 (4/14)</td>\n<td>빨래, 코딩</td>\n<td>17,000원</td>\n</tr>\n<tr>\n<td><strong>총</strong></td>\n<td></td>\n<td><strong>225,500원</strong></td>\n</tr>\n</tbody>\n</table>\n<p>TDAC 피싱 사기 빼면 75,500원. 3일에 8만원이면 서울보다 훨씬 싸다.</p>\n<h2 id=\"-11\" tabindex=\"-1\">느낀 점 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/18/\">#</a></h2>\n<p>노마드 첫 경험인데 괜찮다.</p>\n<p><strong>좋은 점</strong>:</p>\n<ul>\n<li>집중이 잘 된다</li>\n<li>저렴하다</li>\n<li>새로운 환경이 자극 된다</li>\n<li>시간이 온전히 내 것</li>\n</ul>\n<p><strong>어려운 점</strong>:</p>\n<ul>\n<li>혼자라 외로울 수 있음 (아직까진 괜찮음)</li>\n<li>루틴 잡기 어려움 (매일 다른 환경)</li>\n<li>삽질 비용 (TDAC 피싱 사기...)</li>\n</ul>\n<p>앞으로 일주일 더 있을 예정이다. 송크란 끝나면 좀 조용해지겠지.</p>\n<p>사이드 프로젝트 집중해서 진도 빼보려고 한다. 한국 돌아가기 전에 결제 기능까지는 붙이고 싶다.</p>\n",
			"date_published": "2026-04-14T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/19/",
			"url": "https://ragedaisy.com/articles/19/",
			"title": "방콕 노마드 2일차 - 늦잠, 스타벅스, KFC",
			"content_html": "<p>4월 13일 월요일. 방콕 2일차.</p>\n<p>어제 SSK2026에서 새벽 3시까지 놀았더니 완전 뻗었다. 오후 1시에 겨우 일어남.</p>\n<h2 id=\"\" tabindex=\"-1\">늦잠 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<p>체크아웃 시간 지나서 일어났는데 다행히 장기 숙박이라 상관없다.</p>\n<p>몸이 좀 피곤하다. 어제 물 맞고 뛰어다니고 춤추고. 근육통은 없는데 그냥 전체적으로 노곤함. 오늘은 쉬엄쉬엄 해야겠다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">동네 산책 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<p>숙소 근처 에까마이 동네를 걸어봤다.</p>\n<p>송크란 기간이라 거리에서 아직 물총 들고 다니는 사람들 있다. 근데 어제보다는 덜하다. 낮이라 그런가.</p>\n<p>동네 분위기가 좋다. 로컬 카페들, 작은 식당들, 마사지샵. 관광지 느낌보다는 현지인 동네 느낌이다. 방콕 살면 이런 데서 살고 싶다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">스타벅스 태국 한정 메뉴 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<p>스타벅스 갔다. 태국 한정 메뉴가 있길래 시켜봤다.</p>\n<img src=\"https://ragedaisy.com/img/starbucks-thailand-menu.jpeg\" alt=\"스타벅스 태국 한정 메뉴\" style=\"max-width: 400px; width: 100%;\">\n<p>태국 스타벅스에는 한국에 없는 메뉴들이 있다:</p>\n<ul>\n<li><strong>Signature Choco Pistachio Oatmilk Cream Frappuccino</strong> - Thailand Exclusive 딱지 붙어있음</li>\n<li>Strawberry Crunch Matcha Latte with Jelly</li>\n<li>Raspberry Chocolate Mousse Oatmilk Frappuccino</li>\n</ul>\n<p>피스타치오 프라푸치노 시켜봤다. 초코랑 피스타치오 조합인데 달달하고 맛있다.</p>\n<img src=\"https://ragedaisy.com/img/starbucks-pistachio-frappuccino.jpeg\" alt=\"스타벅스 피스타치오 프라푸치노\" style=\"max-width: 400px; width: 100%;\">\n<p>에어컨 빵빵하고 와이파이 빠르다. 잠깐 앉아서 폰 충전하면서 쉬었다. 코딩하려다가 그냥 멍 때렸다. 오늘은 쉬는 날이니까.</p>\n<h2 id=\"kfc-spicy-chicken-rice-bowl\" tabindex=\"-1\">KFC Spicy Chicken Rice Bowl <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<p>저녁에 KFC 갔다. 태국 KFC에는 한국에 없는 메뉴가 있다.</p>\n<p>Spicy Chicken Rice Bowl 시켜봤다. 밥 위에 매콤한 치킨이랑 야채가 올라간 덮밥 스타일이다. 태국식 매운맛인데 한국인 입맛에도 잘 맞는다.</p>\n<p>한국 KFC보다 저렴하다. Spicy Chicken Rice Bowl 세트가 100바트 정도 (5천원). 맛도 괜찮고 가성비 좋다.</p>\n<h2 id=\"2\" tabindex=\"-1\">노마드 2일차 느낌 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<p>오늘은 거의 안 했다. 코딩도 안 하고 관광도 안 하고.</p>\n<p>근데 이것도 노마드의 일부라고 생각한다. 매일 생산적일 필요 없다. 어제 송크란 즐기느라 에너지 다 썼으니까 오늘은 충전하는 날.</p>\n<p>내일은 빨래도 해야 하고 좀 개발해야겠다.</p>\n<h2 id=\"2-1\" tabindex=\"-1\">2일차 지출 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/19/\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>항목</th>\n<th>금액</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>스타벅스</td>\n<td>7,500원</td>\n</tr>\n<tr>\n<td>KFC (Rice Bowl)</td>\n<td>5,000원</td>\n</tr>\n<tr>\n<td>편의점</td>\n<td>2,500원</td>\n</tr>\n<tr>\n<td><strong>총</strong></td>\n<td><strong>15,000원</strong></td>\n</tr>\n</tbody>\n</table>\n<p>쉬는 날치고 저렴하게 썼다.</p>\n",
			"date_published": "2026-04-13T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/17/",
			"url": "https://ragedaisy.com/articles/17/",
			"title": "방콕 노마드 1일차 - 송크란 물폭탄",
			"content_html": "<p>4월 12일 일요일. 송크란 첫날.</p>\n<p>새벽에 도착해서 잠깐 잤다가 오후 2시쯤 일어남. 컨디션 회복됐다.</p>\n<p>숙소 나가려는데 프론트에서 말해줬다. &quot;오늘 송크란이에요. 젖을 거예요.&quot; 웃으면서.</p>\n<h2 id=\"\" tabindex=\"-1\">송크란이 뭐냐면 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>태국 새해 축제다. 4월 13-15일.</p>\n<p>원래는 새해를 맞아 불상에 물을 붓는 종교 행사였다는데, 지금은 전국적인 물싸움 축제가 됐다. 거리 나가면 물총 들고 다니는 사람들이 지나가는 사람한테 물 뿌린다. 모르는 사람한테도.</p>\n<p>관광객이든 현지인이든 상관없다. 밖에 나가면 젖는다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">숙소 나가자마자 젖음 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>아속역 쪽으로 걸어가는데, 길가에 물총 든 태국인들이 있었다.</p>\n<p>눈 마주치자마자 물 뿌려왔다. 등짝에 물총 세례. 찬물이라 시원하긴 한데 당황스러웠다.</p>\n<p>뒤돌아보니까 환하게 웃고 있더라. &quot;Happy Songkran!&quot;</p>\n<p>아 이게 이런 거구나 싶었다. 거리 전체가 물난리였다. 트럭 짐칸에 물통 싣고 다니면서 뿌리는 사람들도 있고, 호스로 뿌리는 가게도 있고.</p>\n<p>젖는 게 싫으면 밖에 나가지 말아야 한다. 근데 그러면 송크란을 못 즐기는 거다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">물총 구매 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>근처 편의점에서 물총 샀다. 100바트 (약 5천원).</p>\n<p>저렴한 건 50바트부터 있고, 큰 건 300바트까지 있다. 압력 강한 거 살까 하다가 그냥 중간 사이즈로. 어차피 장난이니까.</p>\n<p>물총 들고 거리 나가니까 느낌이 달라진다. 맞기만 하는 게 아니라 쏠 수도 있으니까. 지나가는 사람한테 물 뿌렸더니 웃으면서 반격해왔다.</p>\n<p>처음 보는 사람이랑 물싸움하는 게 이상하게 재밌다. 언어 안 통해도 상관없다. 물총만 있으면 된다.</p>\n<h2 id=\"ssk2026-siam-songkran-music-festival\" tabindex=\"-1\">SSK2026 - Siam Songkran Music Festival <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>저녁에 SSK2026 갔다. Siam Songkran Music Festival. RCA에 있는 Bravo BKK Arena에서 열리는 EDM 페스티벌이다.</p>\n<img src=\"https://ragedaisy.com/img/ssk2026-festival.jpeg\" alt=\"SSK2026 페스티벌\" style=\"max-width: 400px; width: 100%;\">\n<p>송크란 시즌에 맞춰서 4월 11-14일 4일간 진행된다. 물싸움 + EDM 페스티벌 조합. 태국 전통 축제랑 일렉트로닉 뮤직이 만난 거다.</p>\n<h3 id=\"-3\" tabindex=\"-1\">라인업이 미쳤다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h3>\n<ul>\n<li><strong>Marshmello</strong> - 헤드라이너. 마쉬멜로 실제로 봤다.</li>\n<li>Martin Garrix</li>\n<li>John Summit</li>\n<li>ARTBAT</li>\n<li>Alok</li>\n<li>Gorgon City</li>\n<li>Vini Vici</li>\n</ul>\n<p>세계적인 DJ들이 다 온다. 한국에서 이 라인업 보려면 울트라 코리아 가야 하는데, 여기서는 송크란이랑 같이 즐길 수 있다.</p>\n<h3 id=\"-4\" tabindex=\"-1\">마쉬멜로 무대 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h3>\n<p>마쉬멜로 무대는 진짜 미쳤다. 하얀 마시멜로 헬멧 쓰고 나왔는데, 무대 조명이랑 불꽃 터지고. Alone, Happier 나올 때 다 같이 떼창했다.</p>\n<p>무대 앞은 물총 금지인데, 뒤쪽은 물 뿌려도 됨. 물 맞으면서 EDM 듣는 게 이런 느낌이구나 싶었다. 더워서 오히려 시원하고.</p>\n<h3 id=\"-5\" tabindex=\"-1\">페스티벌 정보 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h3>\n<ul>\n<li><strong>장소</strong>: RCA, Bravo BKK Arena</li>\n<li><strong>날짜</strong>: 4월 11-14일 (4일간)</li>\n<li><strong>티켓</strong>: GA, VIP, Premium VIP (Ticketmelon에서 구매)</li>\n<li><strong>공식 사이트</strong>: https://siamsongkran.info/</li>\n</ul>\n<p>3시간 정도 있었다. 완전 지침. 춤추고 물 맞고 뛰어다니니까 체력 소모 심하다.</p>\n<h2 id=\"rca\" tabindex=\"-1\">페스티벌 끝나고 RCA <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>페스티벌 끝나고 바로 안 들어갔다. RCA 거리로 나갔다.</p>\n<p>RCA는 방콕의 클럽 거리다. 평소에는 클럽들이 줄지어 있는데, 송크란 기간에는 거리 전체가 물싸움 존이 된다. 새벽인데도 사람들이 엄청 많았다.</p>\n<p>물총 들고 돌아다니면서 모르는 사람들이랑 물싸움했다. 태국인, 서양인, 일본인, 한국인. 다 섞여서 논다. 언어 안 통해도 물총만 있으면 친구가 된다.</p>\n<p>새벽 3시까지 놀았다. 완전 미친 짓인데 후회 없다. 송크란은 이렇게 즐기는 거다.</p>\n<h2 id=\"-6\" tabindex=\"-1\">송크란 생존 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p><strong>필수 준비물</strong>:</p>\n<ul>\n<li><strong>방수팩</strong>: 폰, 지갑 넣어두기. 100바트에 편의점에서 판다. 없으면 지퍼백이라도.</li>\n<li><strong>슬리퍼</strong>: 신발 젖으면 불편함. 그냥 슬리퍼 신어라.</li>\n<li><strong>여분의 옷</strong>: 숙소 근처면 상관없는데, 멀리 가면 갈아입을 거 챙겨라.</li>\n<li><strong>선글라스</strong>: 물 눈에 들어가면 아픔. 고글까지는 필요 없고 선글라스 정도면 됨.</li>\n</ul>\n<p><strong>하지 말아야 할 것</strong>:</p>\n<ul>\n<li><strong>흰 티 입지 마라</strong>: 젖으면 비침. 검정이나 진한 색으로.</li>\n<li><strong>귀중품 들고 다니지 마라</strong>: 분실 위험. 최소한만.</li>\n<li><strong>오토바이/툭툭 탈 때 조심</strong>: 달리는 차량한테도 물 뿌린다. 폰 꺼내 들고 있으면 위험.</li>\n</ul>\n<p><strong>송크란 핫플</strong>:</p>\n<ul>\n<li><strong>SSK2026 (RCA)</strong>: EDM 페스티벌. 세계적인 DJ 라인업. 내가 간 곳.</li>\n<li>실롬 로드: 거리 물싸움 제일 큼</li>\n<li>카오산 로드: 배낭여행자 많음</li>\n<li>센트럴 월드: 가족 단위도 많음</li>\n</ul>\n<h2 id=\"-7\" tabindex=\"-1\">코딩은 안 했다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>오늘 노마드 작업? 안 했다.</p>\n<p>원래 &quot;낮에 잠깐 놀고 저녁에 코딩해야지&quot; 생각했는데, SSK2026 갔다가 RCA에서 새벽 3시까지 놀아버렸다. 숙소 돌아와서 바로 기절.</p>\n<p>그래도 괜찮다고 생각한다. 송크란은 1년에 한 번이고, 코딩은 내일도 할 수 있다. 여기까지 와서 축제 안 즐기면 그게 더 손해다.</p>\n<p>&quot;노마드 = 24시간 코딩&quot; 아니다. 경험하는 것도 노마드의 일부.</p>\n<h2 id=\"-8\" tabindex=\"-1\">저녁: 태국 음식 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>젖은 옷 갈아입고 저녁 먹으러 나갔다.</p>\n<p>터미널21 푸드코트 갔다. 아속역 연결돼 있어서 가기 편함. 쿠폰 시스템이라 카드 충전해서 쓴다.</p>\n<ul>\n<li>팟타이: 50바트 (2500원)</li>\n<li>똠양꿍: 60바트 (3000원)</li>\n<li>망고 스무디: 35바트 (1750원)</li>\n</ul>\n<p>배 터지게 먹어도 6천원. 한국 식당 한 끼 값이다.</p>\n<h2 id=\"2\" tabindex=\"-1\">2일차 지출 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>항목</th>\n<th>금액</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>물총</td>\n<td>5,000원</td>\n</tr>\n<tr>\n<td>방수팩</td>\n<td>5,000원</td>\n</tr>\n<tr>\n<td>점심 (편의점)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td>저녁 (터미널21)</td>\n<td>7,000원</td>\n</tr>\n<tr>\n<td>맥주</td>\n<td>5,000원</td>\n</tr>\n<tr>\n<td>교통 (BTS)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td><strong>총</strong></td>\n<td><strong>28,000원</strong></td>\n</tr>\n</tbody>\n</table>\n<p>송크란 즐기면서 2만 4천원. 저렴하다.</p>\n<h2 id=\"-9\" tabindex=\"-1\">내일 계획 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/17/\">#</a></h2>\n<p>내일은 송크란 마지막 날이긴 한데, 빨래도 해야 하고 코딩도 좀 해야 할 것 같다.</p>\n<p>옷이 다 젖어서 빨 게 많다. 숙소에 세탁기 없어서 코인 세탁방 찾아야 함.</p>\n<p>세탁기 돌리는 동안 근처 카페에서 작업하면 될 것 같다. 내일은 좀 생산적으로.</p>\n",
			"date_published": "2026-04-12T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/16/",
			"url": "https://ragedaisy.com/articles/16/",
			"title": "방콕 노마드 1일차 - 새벽 도착, 사기 당함, 그랩 삽질",
			"content_html": "<p>방콕에 도착했다. 노마드 코더 모드 시작.</p>\n<img src=\"https://ragedaisy.com/img/incheon-airport-departure.jpeg\" alt=\"인천공항 출국장\" style=\"max-width: 400px; width: 100%;\">\n<p>회사 다니면서 사이드 프로젝트 하다가, 짧게 해외에서 작업해보고 싶었다. 송크란 시즌 맞춰서 방콕 왔다. 첫날부터 삽질 연속이었다.</p>\n<h2 id=\"\" tabindex=\"-1\">비행기 연착 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<p>4월 12일 일요일. 원래 새벽 2시 도착 예정이었는데 비행기가 1시간 연착됐다.</p>\n<p>공항에서 기다리는 동안 &quot;괜찮겠지&quot; 싶었는데, 새벽 3시 도착이 생각보다 문제였다. 숙소 체크인 시간은 11일 오후 1시였는데, 나는 12일 새벽에 도착하는 거다. 14시간이나 늦은 상황. 공항 서비스들도 다 닫혀있고.</p>\n<p>새벽 3시에 수완나품 공항 도착. 피곤한데 할 일이 많았다.</p>\n<h2 id=\"tdac\" tabindex=\"-1\">TDAC 사기당한 이야기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<p>입국 심사 줄이 길었다. 30분 정도 서 있었는데, 그때 갑자기 생각났다.</p>\n<p><strong>태국 입국 전에 뭔가 신청해야 하는 게 있지 않았나?</strong></p>\n<p>급하게 구글 검색했다. 입국 심사 줄에서 폰으로.</p>\n<p>TDAC(Thailand Digital Arrival Card)이라는 게 나왔다. 태국 입국 전에 온라인으로 미리 신청해야 하는 디지털 입국카드다. 예전에 비행기에서 작성하던 종이 TM6 카드가 온라인으로 바뀐 거다.</p>\n<p>급하게 검색하다가 TDAC 관련 사이트에 들어갔다. 신청서 작성하는데 마지막에 이런 메시지가 떴다.</p>\n<p><strong>&quot;빠른 신청 완료를 원하시면 100달러를 결제하세요.&quot;</strong></p>\n<p>급했다. 입국 심사 줄은 점점 짧아지고, 신청 안 하면 입국 거부당할 것 같은 불안감. 그냥 결제해버렸다.</p>\n<p><strong>100달러 결제됐다.</strong></p>\n<p>신청은 됐다. 확인 이메일도 왔다. 근데 나중에 확인해보니까 문제가 있었다.</p>\n<p>TDAC 공식 사이트는 <strong>https://tdac.immigration.go.th</strong> 이고, <strong>무료</strong>다. 내가 들어간 곳은 공식 사이트처럼 생긴 대행 사이트였다. 무료인 걸 100달러 받고 대신 신청해준 거다. 급한 여행객 노려서 결제 유도하는 수법.</p>\n<p>15만원 날린 거다. 카드사에 분쟁 신청해놨는데 될지 모르겠다.</p>\n<h3 id=\"tdac-1\" tabindex=\"-1\">TDAC 정리 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h3>\n<p>TDAC은 진짜 필요하다. 외국인이 태국 입국하려면 미리 신청해야 한다.</p>\n<ul>\n<li><strong>공식 사이트</strong>: https://tdac.immigration.go.th</li>\n<li><strong>비용</strong>: 무료 (돈 내라고 하면 사기)</li>\n<li><strong>신청 시기</strong>: 입국 3일 전까지 권장</li>\n<li><strong>필요 정보</strong>: 여권 정보, 항공편, 숙소 주소 등</li>\n</ul>\n<p>나처럼 공항에서 급하게 하지 말고, 비행기 타기 전에 미리 해두자.</p>\n<h3 id=\"-1\" tabindex=\"-1\">이런 사기 안 당하는 법 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h3>\n<p><strong>급할 때 결제하지 마라.</strong> 이게 핵심이다.</p>\n<p>사기꾼들은 급한 상황을 노린다. 입국 심사 줄, 비행기 탑승 직전, 새벽 시간. 판단력 흐려질 때 &quot;빨리 결제하면 해결된다&quot;고 유도한다.</p>\n<p>확인할 것:</p>\n<ul>\n<li><strong>URL 확인</strong>: 공식 사이트는 tdac.immigration.go.th (도메인이 .go.th로 끝나야 함)</li>\n<li><strong>무료인지 확인</strong>: TDAC은 무료다. 돈 내라고 하면 100% 사기</li>\n<li><strong>급하게 결제 유도하면 의심</strong>: &quot;지금 안 하면 큰일 난다&quot; = 사기 신호</li>\n</ul>\n<p>TDAC 미리 안 했어도 입국은 된다. 공항에서 작성할 수 있다. 근데 줄이 길어지니까 미리 하는 게 좋다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">그랩 호출 삽질 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<p>입국 심사 끝나고 그랩 호출했다. 숙소까지 30분 거리. 요금 250바트 (약 12,500원).</p>\n<p>문제는 기사가 나를 못 찾았다는 거다.</p>\n<p>수완나품 공항이 넓다. 픽업 포인트가 여러 개다. 앱에서 &quot;Gate 4&quot;라고 했는데, 기사는 다른 Gate에서 기다리고 있었다.</p>\n<p>전화가 왔다. 태국어로 뭐라고 함. 못 알아듣겠음.</p>\n<p>영어로 &quot;Gate 4! Gate 4!&quot; 했더니 알아들은 것 같았다. 근데 5분 지나도 안 옴.</p>\n<p>결국 공항 밖으로 나가서 돌아다녔다. 새벽 3시 반에 캐리어 끌고. 15분쯤 헤매다가 기사 찾았다. 기사도 짜증난 표정.</p>\n<h3 id=\"-3\" tabindex=\"-1\">그랩 픽업 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h3>\n<ul>\n<li><strong>픽업 포인트 번호 정확히 확인</strong>: Gate 번호 + Exit 번호까지</li>\n<li><strong>기사한테 메시지 먼저 보내기</strong>: &quot;I'm at Gate 4, Exit 3, near 7-Eleven&quot; 이런 식으로 구체적으로</li>\n<li><strong>전화 오면</strong>: 영어로 천천히, 간단하게. &quot;Gate Four. G-A-T-E F-O-U-R.&quot;</li>\n<li><strong>공항 와이파이 연결해두기</strong>: 데이터 안 터지면 그랩 앱 안 됨</li>\n</ul>\n<p>다음부터는 픽업 포인트 스크린샷 찍어두고, 메시지로 미리 보내야겠다.</p>\n<h2 id=\"late-check-in\" tabindex=\"-1\">Late Check-in <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<p>숙소는 Nice Residence. 주소는 188/8 Sukhumvit 63, soi Ekkamai 14, 방콕 태국 10110. 에까마이역 근처다. 5박에 41만원 정도. 하루 8만원꼴.</p>\n<p>문제는 체크인 시간이었다. 체크인 시간은 4월 11일 오후 1시. 근데 나는 12일 새벽 3시에 도착했다. 14시간이나 늦은 상황.</p>\n<p>이러면 노쇼 처리되거나 예약 취소될 수 있다. 숙소 입장에서는 손님이 안 왔으니까.</p>\n<p>비행기 타기 전에 아고다 앱으로 미리 메시지 보내놨다.</p>\n<p>&quot;비행기가 늦어서 체크인 시간에 못 갑니다. 새벽에 도착할 예정인데 취소하지 말아주세요.&quot;</p>\n<p>숙소에서 답장이 와 있었다. &quot;괜찮습니다. 오시면 체크인 도와드리겠습니다.&quot;</p>\n<p>도착하니까 프론트에서 바로 방 줬다. 새벽인데도 친절하게 응대해줬다. 미리 메시지 보내놓은 게 확실히 도움 됐다.</p>\n<h3 id=\"late-check-in-1\" tabindex=\"-1\">Late Check-in 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h3>\n<ul>\n<li><strong>미리 연락하기</strong>: 아고다, 부킹닷컴 앱에서 숙소 메시지 가능</li>\n<li><strong>늦는다고 알려주기</strong>: 체크인 시간 전에 미리 연락</li>\n<li><strong>취소 방지</strong>: 노쇼로 처리될 수 있으니 &quot;취소하지 말아달라&quot; 명시</li>\n<li><strong>새벽 도착이면</strong>: 24시간 프론트인지 확인. 아니면 키 받는 방법 미리 확인</li>\n</ul>\n<h2 id=\"-4\" tabindex=\"-1\">숙소 첫인상 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<p>Nice Residence. 깔끔하다.</p>\n<ul>\n<li>방 넓음 (20평 정도?)</li>\n<li>에어컨 빵빵 (방콕 더워서 필수)</li>\n<li>와이파이 빠름 (다운로드 50Mbps 정도)</li>\n<li>책상 있음 (노마드 작업 가능)</li>\n<li>세탁기 없음 (코인 세탁방 가야 함)</li>\n</ul>\n<p>하루 8만원이면 서울 호텔보다는 싸고, 게스트하우스보다는 비싸다. 깨끗하고 넓어서 만족.</p>\n<p>체크인하고 바로 잠들었다. 새벽 4시 반. 피곤해서 10시간 잤다.</p>\n<h2 id=\"-5\" tabindex=\"-1\">첫날 지출 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th>항목</th>\n<th>금액</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>그랩 (공항→숙소)</td>\n<td>12,500원</td>\n</tr>\n<tr>\n<td>TDAC 피싱 사기</td>\n<td>150,000원</td>\n</tr>\n<tr>\n<td>편의점 (물, 간식)</td>\n<td>3,000원</td>\n</tr>\n<tr>\n<td><strong>총</strong></td>\n<td><strong>165,500원</strong></td>\n</tr>\n</tbody>\n</table>\n<p>사기만 아니었으면 15,500원이었다. 비싼 수업료 냈다.</p>\n<h2 id=\"-6\" tabindex=\"-1\">교훈 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/16/\">#</a></h2>\n<ol>\n<li><strong>TDAC 미리 신청하기</strong>: 공식 사이트(tdac.immigration.go.th)에서 무료로 신청. 돈 내라는 사이트는 사기</li>\n<li><strong>급할 때 결제하지 마라</strong>: 사기꾼은 급한 상황을 노린다</li>\n<li><strong>그랩 픽업 포인트 미리 확인</strong>: 공항 넓음</li>\n<li><strong>숙소에 미리 연락</strong>: 새벽/늦은 도착이면 메시지 보내두기</li>\n</ol>\n<p>첫날부터 삽질했지만 그래도 도착은 했다. 내일은 송크란이다.</p>\n",
			"date_published": "2026-04-12T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/15/",
			"url": "https://ragedaisy.com/articles/15/",
			"title": "광고 vs 유료화",
			"content_html": "<p>사이드 프로젝트에서 수익을 내고 싶었다.</p>\n<p>방법이 두 가지다. 광고 달거나, 유료화하거나. 어떤 게 나을까? 계산해봤다.</p>\n<h2 id=\"\" tabindex=\"-1\">광고 수익 계산 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>광고 달면 얼마나 될까.</p>\n<p>광고 수익은 보통 RPM (Revenue Per Mille)으로 계산한다. 1000회 노출당 수익.</p>\n<p>일반적인 RPM:</p>\n<ul>\n<li>블로그/웹사이트: $1-5</li>\n<li>유튜브: $2-10</li>\n<li>앱 (배너): $0.5-2</li>\n<li>앱 (전면 광고): $5-15</li>\n</ul>\n<p>내 사이트 월 방문자가 5000명 정도. 페이지뷰는 한 명당 평균 2페이지 본다고 하면 10000 페이지뷰.</p>\n<p>계산:</p>\n<pre><code>10,000 페이지뷰 × RPM $2 / 1000 = $20/월\n</code></pre>\n<p>월 20달러. 많이 잡아도 30달러.</p>\n<p>커피값도 안 된다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">유료화 수익 계산 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>유료화하면 어떨까.</p>\n<p>10달러짜리 유료 플랜 만들고, 전환율 2%라고 가정.</p>\n<p>계산:</p>\n<pre><code>5,000 방문자 × 2% 전환율 × $10 = $1,000/월\n</code></pre>\n<p>같은 트래픽에서 광고는 $20, 유료화는 $1000. 50배 차이.</p>\n<p>물론 전환율 2%가 쉬운 건 아니다. 현실적으로 1%도 어려울 수 있음. 그래도:</p>\n<pre><code>5,000 × 0.5% × $10 = $250/월\n</code></pre>\n<p>0.5% 전환율이어도 광고보다 10배 이상. 광고로 $250 벌려면 월 방문자 10만 명은 필요하다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">광고가 맞는 경우 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>그래도 광고가 맞는 경우가 있다.</p>\n<p><strong>트래픽이 엄청 많을 때</strong>: 월 방문자 100만 명이면 광고로도 $2000-5000 벌 수 있다. 이 정도면 나쁘지 않음.</p>\n<p><strong>유료화가 어려운 콘텐츠</strong>: 뉴스, 커뮤니티, 무료 도구 같은 건 돈 받기 어렵다. 광고가 유일한 수익원일 수 있음.</p>\n<p><strong>유저 저항이 클 때</strong>: 유료화하면 유저 이탈이 심한 시장. 광고가 차선책.</p>\n<p><strong>다른 목적이 있을 때</strong>: 수익보다 트래픽/인지도가 목적이면 무료+광고로 최대한 많이 퍼뜨리는 게 나을 수 있음.</p>\n<h2 id=\"-3\" tabindex=\"-1\">유료화가 맞는 경우 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>대부분의 사이드 프로젝트는 유료화가 낫다.</p>\n<p><strong>트래픽이 적을 때</strong>: 월 방문자 1만 명 이하면 광고 수익 미미함. 유료화가 현실적.</p>\n<p><strong>명확한 가치가 있을 때</strong>: 시간 절약, 문제 해결, 생산성 향상. 이런 가치 있으면 사람들 돈 낸다.</p>\n<p><strong>니치 시장</strong>: 작은 시장인데 열성 유저가 있으면 유료화 잘 됨. 광고는 타겟팅 안 돼서 RPM 낮음.</p>\n<p><strong>프리미엄 포지셔닝</strong>: 유료면 &quot;이건 좋은 거구나&quot; 인식. 무료+광고는 &quot;싸구려&quot; 느낌 줄 수 있음.</p>\n<h2 id=\"-4\" tabindex=\"-1\">하이브리드 모델 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>둘 다 하는 방법도 있다.</p>\n<p><strong>프리미엄 (Freemium)</strong>: 기본 기능 무료 + 광고, 유료 결제하면 광고 제거 + 추가 기능.</p>\n<p>Spotify가 이 모델. 무료는 광고 듣고, 프리미엄은 광고 없이 + 오프라인 재생.</p>\n<p>장점:</p>\n<ul>\n<li>무료 유저에게서도 광고 수익</li>\n<li>유료 전환 동기 부여 (광고 짜증나니까)</li>\n<li>진입장벽 낮음</li>\n</ul>\n<p>단점:</p>\n<ul>\n<li>두 가지 다 관리해야 함</li>\n<li>무료 기능이 너무 좋으면 유료 전환 안 함</li>\n<li>무료 기능이 너무 안 좋으면 유저 이탈</li>\n</ul>\n<p>밸런스 맞추기 어렵다.</p>\n<h2 id=\"-5\" tabindex=\"-1\">내 선택 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>나는 유료화했다. 광고 안 달았다.</p>\n<p>이유:</p>\n<ol>\n<li><strong>트래픽 적음</strong>: 월 5000명으로 광고 수익 기대 안 됨</li>\n<li><strong>도구형 서비스</strong>: 시간 절약해주는 도구. 가치 명확함</li>\n<li><strong>깔끔함</strong>: 광고 붙이면 사이트 지저분해짐. UX 해침</li>\n<li><strong>계산상 나음</strong>: 전환율 1%만 나와도 광고보다 나음</li>\n</ol>\n<p>결과:</p>\n<ul>\n<li>유료 유저: 80명</li>\n<li>월 수익: $200-300 (일회성이라 변동 있음)</li>\n<li>광고였으면: $20-30</li>\n</ul>\n<p>10배 이상 차이.</p>\n<h2 id=\"-6\" tabindex=\"-1\">광고 안 달았을 때 아쉬운 점 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>없다고 하면 거짓말이다.</p>\n<p>무료 유저 5000명 중 4920명은 돈 안 낸다. 광고라도 달았으면 이 사람들한테서도 조금이라도 벌 수 있었을 거다.</p>\n<p>계산해보면:</p>\n<pre><code>무료 유저 4920명 × 광고 RPM $2 / 1000 = $9.84/월\n</code></pre>\n<p>$10도 안 된다. 그래서 안 했다. 광고 관리 귀찮음 + UX 손상 vs $10. 안 하는 게 나음.</p>\n<p>트래픽 많아지면 그때 다시 생각해볼 수도 있다.</p>\n<h2 id=\"-7\" tabindex=\"-1\">어떻게 결정할까 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/15/\">#</a></h2>\n<p>간단한 결정 프레임워크:</p>\n<pre><code>Q1: 월 방문자가 10만 명 이상인가?\n    Yes → 광고 고려할 만함\n    No → Q2로\n\nQ2: 유저가 돈 낼 만한 가치가 있나?\n    Yes → 유료화\n    No → Q3로\n\nQ3: 트래픽 늘릴 여력이 있나?\n    Yes → 일단 무료로 성장시키고 나중에 결정\n    No → 다른 프로젝트 고려\n</code></pre>\n<p>대부분 Q2에서 &quot;Yes&quot; 나오면 유료화가 정답이다.</p>\n<p>트래픽 적을 때 광고 달아봤자 월 커피값이다. 그거 벌려고 UX 망치고 관리 비용 드는 건 손해. 유료화 집중하는 게 낫다.</p>\n<p>숫자로 생각하면 간단하다. 광고로 $100 벌려면 방문자 몇 명 필요한지, 유료화로 $100 벌려면 결제자 몇 명 필요한지 계산해보면 답 나온다.</p>\n",
			"date_published": "2025-12-05T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/14/",
			"url": "https://ragedaisy.com/articles/14/",
			"title": "혼자 하니까 외롭다",
			"content_html": "<p>사이드 프로젝트 6개월쯤 하니까 지치기 시작했다.</p>\n<p>회사에서는 팀이 있다. 같이 고민하고, 의견 나누고, 막히면 물어볼 수 있다. 점심도 같이 먹고.</p>\n<p>사이드 프로젝트는 혼자다. 진행 상황 공유할 사람도 없고, 막히면 물어볼 데도 없고, 잘 됐을 때 기뻐해줄 사람도 없다.</p>\n<p>첫 유료 결제 들어왔을 때 기뻤는데, 얘기할 사람이 없었다. 가족한테 말해봤자 &quot;그래? 잘했네&quot; 정도. 뭐가 대단한 건지 모르니까.</p>\n<h2 id=\"\" tabindex=\"-1\">커뮤니티 찾기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>Indie Hackers라는 커뮤니티가 있다.</p>\n<p>indiehackers.com. 영어인데, 분위기가 좋다. 다들 사이드 프로젝트 하면서 수익 공유하고, 실패담도 올린다.</p>\n<p>&quot;이번 달 MRR $500 달성했습니다&quot;\n&quot;3개월 만들었는데 유저 0명이에요&quot;\n&quot;회사 그만두고 풀타임으로 전환합니다&quot;</p>\n<p>눈팅만 해도 배우는 게 있다. 다른 사람들 어떻게 하나 보면 아이디어도 얻고, &quot;나만 힘든 게 아니구나&quot; 싶기도 하고.</p>\n<p>글 올리면 댓글도 달린다. 조언해주거나, 비슷한 경험 공유하거나. 처음엔 영어라서 부담됐는데, 간단하게 써도 다들 잘 이해해줌.</p>\n<h2 id=\"buildinpublic\" tabindex=\"-1\">트위터 #buildinpublic <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>트위터(X)에서 #buildinpublic 해시태그로 개발 과정 공유하는 사람들이 많다.</p>\n<p>처음엔 민망해서 안 했다. &quot;이런 걸 왜 올려&quot; 싶었다. 막상 올리니까 반응이 좀 있었다.</p>\n<pre><code>오늘 한 것:\n- 결제 기능 연동 완료 (Stripe)\n- 랜딩페이지 수정\n- 버그 2개 fix\n\n내일 할 것:\n- 이메일 알림 기능\n\n#buildinpublic #사이드프로젝트\n</code></pre>\n<p>이런 식으로 매일 올렸다. 팔로워 천 명 있는 것도 아니고, 처음엔 좋아요 0-2개. 그래도 계속 했다.</p>\n<p>비슷하게 하는 사람들이 팔로우하고 댓글 달고. 3개월 하니까 300명 정도 팔로워 생겼다. 숫자가 중요한 건 아니고, 같은 걸 하는 사람들이랑 연결된다는 게 좋았다.</p>\n<p>DM으로 질문 오기도 하고, 서로 앱 써보고 피드백 주기도 하고. 혼자 하는 것보다 확실히 동기부여 된다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">개발자 디스코드 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>개발자 디스코드 서버 몇 개 들어가 있다.</p>\n<p>실시간으로 질문하고 답변받을 수 있어서 좋다. Stack Overflow 글 쓰고 답변 기다리는 것보다 빠름.</p>\n<pre><code>나: &quot;Vercel에서 타임아웃 나는데 어떻게 해요?&quot;\n누군가: &quot;서버리스 함수 10초 제한 있어서 그럼.\n        Edge Functions 써보거나 Railway로 옮겨야 할듯&quot;\n</code></pre>\n<p>10분 만에 답 나옴.</p>\n<p>주의할 점은 너무 많이 들어가면 알림 지옥이 된다. 채널 100개 읽다가 하루가 끝남. 나는 핵심 채널만 알림 켜두고 나머지는 뮤트.</p>\n<p>추천 디스코드:</p>\n<ul>\n<li><strong>KCD (Kent C. Dodds)</strong>: 프론트엔드 개발</li>\n<li><strong>Theo's Server</strong>: 웹 개발 전반</li>\n<li><strong>한국 개발자 커뮤니티</strong>: 한국어로 소통</li>\n</ul>\n<h2 id=\"-2\" tabindex=\"-1\">로컬 밋업 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>온라인만 하다가 오프라인 밋업도 가봤다.</p>\n<p>처음엔 어색했다. 아는 사람 없이 혼자 가서. 근데 가보니까 다들 비슷한 상황이더라. 혼자 뭔가 만들고 있고, 얘기할 사람 없어서 온 사람들.</p>\n<p>밋업에서 만난 사람이랑 카톡 하면서 서로 진행 상황 공유한다. 일주일에 한 번 &quot;이번 주 뭐했어요&quot; 하고. 혼자 하면 미루게 되는 것도 이렇게 하면 안 미루게 됨. 약간의 압박.</p>\n<p>Meetup.com이나 Festa에서 개발자 모임 찾을 수 있다. &quot;인디해커&quot;, &quot;사이드 프로젝트&quot;, &quot;개발자 네트워킹&quot; 검색.</p>\n<h2 id=\"-3\" tabindex=\"-1\">외로움 해결됐나 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>확실히 덜 외롭다.</p>\n<p>진행 상황 공유하면 반응이 오고, 막히면 물어볼 수 있고, 다른 사람 보면 자극도 된다. &quot;저 사람도 이렇게 하고 있구나&quot; 하면 힘이 됨.</p>\n<p>첫 결제 들어왔을 때 트위터에 올렸더니 축하 댓글 20개 달렸다. 그때 진짜 기뻤다. 공유할 사람이 있다는 게.</p>\n<p>실패했을 때도 마찬가지다. &quot;3개월 만들었는데 아무도 안 써요&quot; 올리면 &quot;저도 그랬어요&quot; &quot;이렇게 해보세요&quot; 댓글 달림. 위로도 되고 조언도 됨.</p>\n<h2 id=\"-4\" tabindex=\"-1\">주의할 점 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>너무 빠지면 안 된다.</p>\n<p>커뮤니티에서 시간 다 쓰고 정작 만들 시간이 없으면 본말전도다. 트위터 보다가 2시간 지나있고, 디스코드 읽다가 하루가 끝나고.</p>\n<p>나는 이렇게 한다:</p>\n<ul>\n<li>아침에 30분만 커뮤니티 확인</li>\n<li>그 뒤로는 집중해서 작업</li>\n<li>저녁에 진행 상황 공유 (5분)</li>\n</ul>\n<p>하루 총 40분 정도만 쓴다. 그 이상은 시간 낭비.</p>\n<p>커뮤니티가 목적이 아니라 수단이다. 프로젝트 만드는 게 목적이고, 커뮤니티는 그걸 도와주는 거. 순서 바뀌면 안 됨.</p>\n<h2 id=\"-5\" tabindex=\"-1\">정리 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/14/\">#</a></h2>\n<p>혼자 만드는 건 외롭다. 그건 사실이다.</p>\n<p>근데 완전히 혼자일 필요는 없다. 온라인에 비슷한 사람들 많다. 찾아서 연결하면 된다.</p>\n<p>추천 순서:</p>\n<ol>\n<li>Indie Hackers 가입해서 눈팅</li>\n<li>트위터에서 #buildinpublic으로 공유 시작</li>\n<li>디스코드 하나 들어가기</li>\n<li>여유 되면 오프라인 밋업</li>\n</ol>\n<p>첫 발은 어색하다. 근데 한 번 시작하면 금방 익숙해짐. 혼자 하는 것보다 확실히 지속 가능하다.</p>\n",
			"date_published": "2025-11-29T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/13/",
			"url": "https://ragedaisy.com/articles/13/",
			"title": "도메인 사고 HTTPS 붙이기",
			"content_html": "<p>처음 사이트 배포하려는데 도메인부터 막혔다.</p>\n<p>&quot;도메인 사야 해&quot; &quot;DNS 설정해야 해&quot; &quot;HTTPS 붙여야 해&quot; 다들 당연하게 말하는데 나는 뭐가 뭔지 몰랐다. 그래서 삽질하면서 배운 것들 정리해둔다.</p>\n<h2 id=\"\" tabindex=\"-1\">도메인 구매 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>도메인은 인터넷 주소다. example.com 이런 거.</p>\n<p>처음에 GoDaddy에서 샀다가 후회했다. 첫 해는 싸다. $1.99 이런 식으로 광고함. 근데 갱신비가 비싸다. 다음 해부터 $20 넘게 나온다. 덫이다.</p>\n<p><strong>추천: Cloudflare Registrar</strong></p>\n<p>원가에 판다고 해서 제일 싸다. .com이 연 $10.44 정도. 갱신비도 같다. 덤으로 Cloudflare DNS, 보안 기능 다 무료.</p>\n<p>다른 선택지:</p>\n<ul>\n<li><strong>Namecheap</strong>: 첫 해 $8-9, 갱신 $13-14. 괜찮음</li>\n<li><strong>Porkbun</strong>: 비슷한 가격대. 인터페이스 깔끔</li>\n<li><strong>Google Domains</strong>: 서비스 종료됨. 이제 Squarespace로 이관됨</li>\n</ul>\n<h2 id=\"-1\" tabindex=\"-1\">도메인 이름 고르기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>이름 고르는 게 어려웠다.</p>\n<p>짧고 기억하기 쉬운 건 다 팔렸다. cat.com? 없다. memo.com? 당연히 없다. 4글자 .com은 거의 다 없다고 보면 됨.</p>\n<p><strong>내가 쓴 방법</strong>:</p>\n<ol>\n<li>단어 조합: quick + note = quicknote. 붙이거나 하이픈.</li>\n<li>약간 변형: memmo, notr 이런 식으로 스펠링 변형</li>\n<li>접미사 추가: getmemo, trymemo, usememo</li>\n<li>다른 TLD: .io, .co, .app 사용</li>\n</ol>\n<p>하이픈 넣으면 구려 보인다. my-cool-app.com 이런 거. 피하는 게 좋음.</p>\n<p>결국 좀 길어도 하이픈 없는 걸로 했다.</p>\n<p>도메인 검색할 때 팁: 검색만 하면 누군가 바로 사가는 경우 있음 (도메인 프론트러닝). 신뢰할 수 있는 등록업체에서만 검색하자.</p>\n<h2 id=\"dns\" tabindex=\"-1\">DNS 설정 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>DNS는 도메인을 IP 주소로 연결하는 시스템이다.</p>\n<p>사람은 example.com을 기억하지만, 컴퓨터는 IP 주소 (93.184.216.34)를 사용한다. DNS가 이걸 변환해준다.</p>\n<p><strong>A 레코드</strong>: 도메인 → IP 주소</p>\n<pre><code>example.com → 93.184.216.34\n</code></pre>\n<p>서버 IP 주소 알 때 사용. AWS EC2나 자체 서버 쓸 때.</p>\n<p><strong>CNAME 레코드</strong>: 도메인 → 다른 도메인</p>\n<pre><code>www.example.com → example.com\nexample.com → my-app.vercel.app\n</code></pre>\n<p>Vercel, Netlify 같은 서비스 쓸 때 많이 사용. 서비스가 제공하는 도메인으로 연결.</p>\n<p><strong>실제 설정 예시 (Vercel 사용 시)</strong>:</p>\n<ol>\n<li>Vercel 대시보드에서 도메인 추가</li>\n<li>Vercel이 필요한 레코드 알려줌</li>\n<li>도메인 등록업체 DNS 설정에서 추가</li>\n</ol>\n<pre><code>타입: A\n이름: @\n값: 76.76.21.21\n\n타입: CNAME\n이름: www\n값: cname.vercel-dns.com\n</code></pre>\n<p>설정하고 적용되는 데 시간 걸림. 보통 몇 분이지만 최대 48시간까지 걸릴 수 있음 (DNS 전파).</p>\n<h2 id=\"https\" tabindex=\"-1\">HTTPS <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>HTTPS는 보안 연결이다. 주소창에 자물쇠 뜨는 거.</p>\n<p>옛날에는 인증서 사서 서버에 설치하고 설정해야 했다는데, 지금은 대부분 자동이다.</p>\n<p><strong>Vercel, Netlify 사용 시</strong>: 자동. 도메인 연결하면 Let's Encrypt 인증서 알아서 발급해줌. 설정할 거 없음.</p>\n<p><strong>Cloudflare 사용 시</strong>: DNS를 Cloudflare로 쓰면 HTTPS 자동 적용. 무료.</p>\n<p><strong>직접 서버 운영 시</strong>: Let's Encrypt + Certbot 사용.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># Certbot으로 무료 인증서 발급 (Ubuntu)</span>\n<span class=\"token function\">sudo</span> <span class=\"token function\">apt</span> <span class=\"token function\">install</span> certbot python3-certbot-nginx\n<span class=\"token function\">sudo</span> certbot <span class=\"token parameter variable\">--nginx</span> <span class=\"token parameter variable\">-d</span> example.com <span class=\"token parameter variable\">-d</span> www.example.com\n\n<span class=\"token comment\"># 자동 갱신 설정 (인증서는 90일마다 만료)</span>\n<span class=\"token function\">sudo</span> certbot renew --dry-run</code></pre>\n<p>요즘은 HTTPS 필수다. HTTP만 쓰면:</p>\n<ul>\n<li>브라우저에서 &quot;안전하지 않음&quot; 경고</li>\n<li>SEO 불이익</li>\n<li>일부 API 사용 불가 (위치 정보 등)</li>\n</ul>\n<h2 id=\"cloudflare\" tabindex=\"-1\">Cloudflare 추천 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>Cloudflare 쓰면 여러 가지가 편해진다.</p>\n<ol>\n<li><strong>무료 DNS</strong>: 빠르고 안정적</li>\n<li><strong>무료 HTTPS</strong>: 인증서 자동 발급/갱신</li>\n<li><strong>무료 CDN</strong>: 전 세계에 캐시 서버. 속도 빨라짐</li>\n<li><strong>무료 DDoS 보호</strong>: 기본적인 공격 방어</li>\n<li><strong>도메인도 살 수 있음</strong>: 원가에 판매</li>\n</ol>\n<p>설정 방법:</p>\n<ol>\n<li>Cloudflare 가입</li>\n<li>사이트 추가</li>\n<li>네임서버를 Cloudflare로 변경 (도메인 등록업체에서)</li>\n<li>DNS 레코드 설정</li>\n<li>끝</li>\n</ol>\n<p>나는 모든 프로젝트에 Cloudflare 붙여둠. 무료인데 안 쓸 이유가 없다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">서브도메인 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>서브도메인은 도메인 앞에 붙는 거다.</p>\n<pre><code>blog.example.com  ← blog가 서브도메인\napi.example.com   ← api가 서브도메인\napp.example.com   ← app이 서브도메인\n</code></pre>\n<p>용도별로 나눌 때 유용:</p>\n<ul>\n<li>블로그: blog.example.com</li>\n<li>API 서버: api.example.com</li>\n<li>관리자 페이지: admin.example.com</li>\n</ul>\n<p>DNS에서 CNAME이나 A 레코드로 각각 설정하면 됨.</p>\n<h2 id=\"-3\" tabindex=\"-1\">체크리스트 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/13/\">#</a></h2>\n<p>도메인 설정할 때 확인할 것:</p>\n<ul>\n<li>[ ] 도메인 구매 완료</li>\n<li>[ ] DNS 레코드 설정 (A 또는 CNAME)</li>\n<li>[ ] HTTPS 적용 확인 (자물쇠 아이콘)</li>\n<li>[ ] www 있는 버전과 없는 버전 둘 다 작동</li>\n<li>[ ] 리다이렉트 설정 (www → non-www 또는 반대)</li>\n</ul>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># 확인 방법</span>\n<span class=\"token function\">curl</span> <span class=\"token parameter variable\">-I</span> https://example.com\n<span class=\"token comment\"># HTTP/2 200 OK 나오면 성공</span></code></pre>\n<p>처음엔 복잡해 보이는데, 한 번 해보면 별거 아니다. 요즘 서비스들이 많이 자동화해줘서 예전보다 훨씬 쉬워졌다.</p>\n",
			"date_published": "2025-11-22T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/12/",
			"url": "https://ragedaisy.com/articles/12/",
			"title": "Flutter로 6주 만에 앱 두 개 냈다",
			"content_html": "<p>앱 만들어보고 싶었다.</p>\n<p>문제는 네이티브 개발을 몰랐다. Swift도 모르고 Kotlin도 모른다. 둘 다 배우려면 시간이 너무 오래 걸릴 것 같았다.</p>\n<p>Flutter 쓰면 하나 만들어서 iOS, 안드로이드 둘 다 나온다길래 해봤다. 6주 만에 두 플랫폼 다 출시했다.</p>\n<h2 id=\"dart\" tabindex=\"-1\">Dart 배우기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>Flutter는 Dart라는 언어를 쓴다.</p>\n<p>처음엔 &quot;또 새 언어 배워야 하나&quot; 싶었다. 근데 JavaScript 알면 하루면 적응된다. 문법이 비슷해서.</p>\n<pre class=\"language-dart\" tabindex=\"0\"><code class=\"language-dart\"><span class=\"token comment\">// Dart</span>\n<span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">var</span> name <span class=\"token operator\">=</span> <span class=\"token string-literal\"><span class=\"token string\">'Flutter'</span></span><span class=\"token punctuation\">;</span>\n  <span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token string-literal\"><span class=\"token string\">'Hello, </span><span class=\"token interpolation\"><span class=\"token punctuation\">$</span><span class=\"token expression\">name</span></span><span class=\"token string\">!'</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// JavaScript</span>\nfunction <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> name <span class=\"token operator\">=</span> <span class=\"token string-literal\"><span class=\"token string\">'Flutter'</span></span><span class=\"token punctuation\">;</span>\n  console<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>`<span class=\"token class-name\">Hello</span><span class=\"token punctuation\">,</span> $<span class=\"token punctuation\">{</span>name<span class=\"token punctuation\">}</span><span class=\"token operator\">!</span>`<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre>\n<p>거의 똑같다. 타입 시스템이 있어서 TypeScript 써봤으면 더 익숙할 거다.</p>\n<p>Dart 특징:</p>\n<ul>\n<li>타입 있음 (var 쓰면 추론)</li>\n<li>세미콜론 필수</li>\n<li>클래스 기반</li>\n<li>async/await 지원</li>\n<li>null safety</li>\n</ul>\n<p>새로 배워야 하는 건 위젯 시스템 정도. Dart 문법 자체는 금방 익숙해짐.</p>\n<h2 id=\"1\" tabindex=\"-1\">1주차: 환경 설정 + 튜토리얼 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>Flutter 설치는 좀 귀찮았다. 특히 iOS 개발하려면 Xcode 설치해야 하는데 40GB 넘는다. 다운로드만 1시간.</p>\n<p>설치 후 flutter doctor 치면 뭐가 안 됐는지 알려준다.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\">$ flutter doctor\nDoctor summary:\n<span class=\"token punctuation\">[</span>✓<span class=\"token punctuation\">]</span> Flutter\n<span class=\"token punctuation\">[</span>✓<span class=\"token punctuation\">]</span> Android toolchain\n<span class=\"token punctuation\">[</span>✓<span class=\"token punctuation\">]</span> Xcode\n<span class=\"token punctuation\">[</span><span class=\"token operator\">!</span><span class=\"token punctuation\">]</span> Chrome - not installed  <span class=\"token comment\"># 웹 개발용</span>\n<span class=\"token punctuation\">[</span>✓<span class=\"token punctuation\">]</span> Android Studio\n<span class=\"token punctuation\">[</span>✓<span class=\"token punctuation\">]</span> VS Code</code></pre>\n<p>공식 문서가 잘 되어 있다. 유튜브 안 봐도 됨. docs.flutter.dev 가서 &quot;Get started&quot; 따라하면 기본은 끝.</p>\n<p>첫 주에 한 것:</p>\n<ul>\n<li>환경 설정</li>\n<li>공식 튜토리얼 따라하기</li>\n<li>간단한 카운터 앱 만들어보기</li>\n<li>위젯 개념 이해</li>\n</ul>\n<h2 id=\"2-4\" tabindex=\"-1\">2-4주차: 개발 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>위젯이 핵심이다.</p>\n<p>Flutter에서는 모든 게 위젯이다. 텍스트도 위젯, 버튼도 위젯, 패딩도 위젯, 레이아웃도 위젯.</p>\n<pre class=\"language-dart\" tabindex=\"0\"><code class=\"language-dart\"><span class=\"token comment\">// 간단한 화면 구성</span>\n<span class=\"token class-name\">Scaffold</span><span class=\"token punctuation\">(</span>\n  appBar<span class=\"token punctuation\">:</span> <span class=\"token class-name\">AppBar</span><span class=\"token punctuation\">(</span>\n    title<span class=\"token punctuation\">:</span> <span class=\"token class-name\">Text</span><span class=\"token punctuation\">(</span><span class=\"token string-literal\"><span class=\"token string\">'내 앱'</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  body<span class=\"token punctuation\">:</span> <span class=\"token class-name\">Center</span><span class=\"token punctuation\">(</span>\n    child<span class=\"token punctuation\">:</span> <span class=\"token class-name\">Column</span><span class=\"token punctuation\">(</span>\n      children<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token class-name\">Text</span><span class=\"token punctuation\">(</span><span class=\"token string-literal\"><span class=\"token string\">'안녕하세요'</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n        <span class=\"token class-name\">SizedBox</span><span class=\"token punctuation\">(</span>height<span class=\"token punctuation\">:</span> <span class=\"token number\">20</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n        <span class=\"token class-name\">ElevatedButton</span><span class=\"token punctuation\">(</span>\n          onPressed<span class=\"token punctuation\">:</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n          child<span class=\"token punctuation\">:</span> <span class=\"token class-name\">Text</span><span class=\"token punctuation\">(</span><span class=\"token string-literal\"><span class=\"token string\">'버튼'</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n        <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">)</span></code></pre>\n<p>처음엔 중첩이 많아서 헷갈리는데, 며칠 하다 보면 익숙해진다.</p>\n<p>핫 리로드가 진짜 좋다. 저장하면 바로 반영된다. 앱 껐다 켜지 않아도 됨. 개발 속도가 확 빨라진다.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># 코드 수정 → 저장 → 앱에 바로 반영 (1초 이내)</span></code></pre>\n<p>웹 개발할 때 핫 리로드 쓰다가 네이티브 개발하면 답답하다던데, Flutter는 그런 문제 없음.</p>\n<p>2-4주차에 한 것:</p>\n<ul>\n<li>주요 화면 구현 (5개 화면)</li>\n<li>상태 관리 (Provider 사용)</li>\n<li>로컬 저장소 (shared_preferences)</li>\n<li>API 연동</li>\n</ul>\n<h2 id=\"5\" tabindex=\"-1\">5주차: 테스트 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>에뮬레이터에서 잘 되던 게 실기기에서 안 되는 경우가 있다.</p>\n<p>아이폰 SE에서 레이아웃 깨진 거 고치느라 이틀 썼다. 화면 작은 기기에서 overflow 에러 난다. SafeArea 안 감싸서 노치 부분 가려진 것도 있었고.</p>\n<p>다양한 기기에서 테스트해야 한다:</p>\n<ul>\n<li>화면 큰 기기 (아이폰 Pro Max, 갤럭시 Ultra)</li>\n<li>화면 작은 기기 (아이폰 SE, 갤럭시 A 시리즈)</li>\n<li>노치/펀치홀 있는 기기</li>\n<li>폴더블 (선택)</li>\n</ul>\n<p>실기기가 없으면 에뮬레이터에서 여러 기기 테스트해볼 수 있다. 완벽하진 않지만 대부분 문제는 잡힘.</p>\n<h2 id=\"6\" tabindex=\"-1\">6주차: 출시 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>구글 플레이는 빨랐다.</p>\n<p>개발자 등록비 $25 (일회성). 심사 신청하고 하루 만에 승인.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># 안드로이드 빌드</span>\nflutter build appbundle\n<span class=\"token comment\"># .aab 파일 생성됨 → Play Console에 업로드</span></code></pre>\n<p>앱스토어는 오래 걸렸다.</p>\n<p>개발자 등록비 $99/년. 심사도 까다로움. 처음에 리젝당했다.</p>\n<p><strong>리젝 사유</strong>: 로그인 기능 있는데 계정 삭제 기능이 없다.</p>\n<p>2022년부터 앱스토어 규정 바뀌어서 계정 삭제 기능 필수다. 몰랐음. 계정 삭제 기능 추가하고 다시 제출. 이틀 뒤 승인.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># iOS 빌드</span>\nflutter build ios\n<span class=\"token comment\"># Xcode에서 Archive → App Store Connect 업로드</span></code></pre>\n<h2 id=\"\" tabindex=\"-1\">결과 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<p>출시 한 달 후 수치:</p>\n<ul>\n<li>iOS 다운로드: 120명</li>\n<li>안드로이드 다운로드: 250명</li>\n<li>총: 370명</li>\n</ul>\n<p>대박은 아닌데, 웹 개발자가 6주 만에 양쪽 스토어에 앱 올린 거면 괜찮다고 본다.</p>\n<p>Flutter 장점:</p>\n<ul>\n<li><strong>하나로 둘 다</strong>: 코드 한 번 쓰면 iOS, 안드로이드 다 됨</li>\n<li><strong>빠른 개발</strong>: 핫 리로드, 위젯 조합</li>\n<li><strong>풍부한 패키지</strong>: pub.dev에 패키지 많음</li>\n<li><strong>네이티브 성능</strong>: 웹뷰 아니라서 꽤 빠름</li>\n</ul>\n<p>Flutter 단점:</p>\n<ul>\n<li><strong>앱 용량</strong>: Hello World가 15MB. 네이티브보다 큼</li>\n<li><strong>플랫폼 특화 기능</strong>: 네이티브 코드 건드려야 할 때 있음</li>\n<li><strong>업데이트</strong>: Flutter 버전 올릴 때 breaking change 있으면 귀찮음</li>\n</ul>\n<h2 id=\"-1\" tabindex=\"-1\">추천 학습 경로 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/12/\">#</a></h2>\n<ol>\n<li><strong>Dart 기초</strong> (1일): 공식 문서로 충분</li>\n<li><strong>Flutter 튜토리얼</strong> (2-3일): docs.flutter.dev</li>\n<li><strong>간단한 앱 만들기</strong> (1주): Todo, 메모장 같은 거</li>\n<li><strong>상태 관리 배우기</strong> (2-3일): Provider나 Riverpod</li>\n<li><strong>실제 프로젝트</strong> (2-4주)</li>\n</ol>\n<p>자료:</p>\n<ul>\n<li>공식 문서: docs.flutter.dev</li>\n<li>Flutter 유튜브 채널: 짧은 위젯 소개 영상 많음</li>\n<li>pub.dev: 패키지 찾기</li>\n</ul>\n<p>네이티브 개발 공부하기 겁났는데, Flutter로 진입장벽 많이 낮아졌다. 앱 출시해보고 싶은 웹 개발자한테 추천.</p>\n",
			"date_published": "2025-11-15T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/11/",
			"url": "https://ragedaisy.com/articles/11/",
			"title": "앱스토어 검색 최적화",
			"content_html": "<p>앱 출시했는데 앱스토어에서 검색해도 안 나왔다. 앱 이름 그대로 쳐도 70번째쯤. 첫 페이지는커녕 열 번 스크롤해야 나왔다.</p>\n<p>3개월 삽질하면서 배운 앱스토어 최적화(ASO) 정리해둔다.</p>\n<h2 id=\"\" tabindex=\"-1\">앱 이름이 문제였다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p>원래 이름이 &quot;QuickNote&quot;였다.</p>\n<p>짧고 깔끔하고 기억하기 좋다고 생각했다. 근데 이러면 검색에 안 잡힌다. 왜냐면:</p>\n<ol>\n<li>\n<p><strong>경쟁이 너무 많다</strong>: QuickNote로 검색하면 비슷한 이름 앱이 수십 개. 다 나보다 다운로드 많고 리뷰 많음.</p>\n</li>\n<li>\n<p><strong>키워드가 없다</strong>: 사람들이 뭘 검색하는지 생각해보면, &quot;QuickNote&quot;를 검색하는 사람보다 &quot;메모장&quot;, &quot;노트 앱&quot;, &quot;빠른 메모&quot; 검색하는 사람이 훨씬 많다.</p>\n</li>\n<li>\n<p><strong>앱 기능을 모른다</strong>: QuickNote만 보면 뭐하는 앱인지 모른다. 메모장인지, 음성 녹음인지, 스티커 메모인지.</p>\n</li>\n</ol>\n<p>이름을 바꿨다.</p>\n<p><strong>Before</strong>: QuickNote\n<strong>After</strong>: QuickNote - 빠른 메모장</p>\n<p>키워드가 들어가야 한다. &quot;빠른&quot;이랑 &quot;메모장&quot;이 검색어다. 사람들이 검색할 만한 단어.</p>\n<p>바꾸고 일주일쯤 지나니까 &quot;메모장&quot; 검색에서 15등까지 올라갔다. 70등에서 15등. 꽤 큰 차이다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">앱 이름 작성 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p>앱스토어마다 규칙이 다르다.</p>\n<p><strong>iOS App Store</strong>:</p>\n<ul>\n<li>앱 이름: 30자 제한</li>\n<li>부제목: 30자 제한</li>\n<li>키워드 필드: 100자 (쉼표로 구분)</li>\n</ul>\n<p><strong>Google Play</strong>:</p>\n<ul>\n<li>앱 이름: 30자 제한</li>\n<li>짧은 설명: 80자</li>\n<li>전체 설명: 4000자</li>\n</ul>\n<p>구조 추천:</p>\n<pre><code>[브랜드명] - [핵심 기능/키워드]\n</code></pre>\n<p>예시:</p>\n<ul>\n<li>Notion - Notes, Docs, Tasks</li>\n<li>Todoist - To-Do List &amp; Tasks</li>\n<li>Bear - Markdown Notes</li>\n</ul>\n<p>브랜드명이 너무 길면 키워드 넣을 자리가 없다. 짧게 하는 게 좋다.</p>\n<p>키워드 선정할 때:</p>\n<ul>\n<li>경쟁 적은 키워드 찾기 (너무 일반적인 건 경쟁 치열)</li>\n<li>롱테일 키워드 고려 (&quot;메모&quot; 보다 &quot;빠른 메모&quot;, &quot;간단한 메모&quot;)</li>\n<li>실제 검색량 확인 (App Annie, Sensor Tower 같은 도구)</li>\n</ul>\n<h2 id=\"-2\" tabindex=\"-1\">스크린샷 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p>스크린샷도 다시 만들었다.</p>\n<p>처음엔 그냥 앱 화면만 캡처해서 올렸다. 이러면 안 된다.</p>\n<p>사람들이 스크린샷 보는 시간은 1-2초다. 그 안에 &quot;이 앱이 뭐하는 건지&quot; 알려줘야 한다. 앱 화면만 있으면 뭔지 모른다.</p>\n<p><strong>Before</strong>: 앱 화면 캡처만\n<strong>After</strong>: 앱 화면 + 상단에 텍스트 설명</p>\n<pre><code>┌─────────────────────┐\n│  &quot;3초 만에 메모 시작&quot;  │  ← 텍스트 오버레이\n│                     │\n│   ┌───────────┐    │\n│   │   앱 화면   │    │  ← 실제 앱 스크린샷\n│   │           │    │\n│   └───────────┘    │\n│                     │\n└─────────────────────┘\n</code></pre>\n<p>텍스트에 넣을 내용:</p>\n<ul>\n<li>핵심 기능 (3초 만에 메모 시작)</li>\n<li>차별점 (로그인 없이 바로 사용)</li>\n<li>혜택 (클라우드 자동 동기화)</li>\n</ul>\n<p>Figma로 만들었다. 템플릿 만들어두면 재사용 가능.</p>\n<p>스크린샷 순서도 중요하다. 처음 2-3장이 제일 중요. 가장 강력한 기능을 앞에.</p>\n<h2 id=\"-3\" tabindex=\"-1\">앱 설명 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p>설명은 처음 3줄이 중요하다. &quot;더 보기&quot; 누르기 전에 보이는 부분.</p>\n<p>iOS는 첫 3줄 (약 150자)\nPlay Store는 첫 80자 (짧은 설명)</p>\n<p>장황하게 쓰지 말고 핵심만.</p>\n<p><strong>Bad</strong>:</p>\n<pre><code>안녕하세요. 저희 앱을 다운로드해 주셔서 감사합니다.\n저희 앱은 여러 가지 기능을 제공하는 메모장 앱입니다.\n다양한 기능들을 통해 편리하게...\n</code></pre>\n<p><strong>Good</strong>:</p>\n<pre><code>3초 만에 메모 시작. 로그인 없이 바로.\n✓ 자동 저장으로 잃어버릴 걱정 없이\n✓ 오프라인에서도 사용 가능\n✓ iCloud 동기화 지원\n</code></pre>\n<p>짧은 문장. 특수문자로 구분. 혜택 위주.</p>\n<p>Play Store는 설명에 키워드 넣으면 검색에 도움 된다. iOS는 키워드 필드가 따로 있어서 설명은 유저 설득용으로 쓰면 됨.</p>\n<h2 id=\"-4\" tabindex=\"-1\">그 외 팁들 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p><strong>리뷰 대응</strong>: 리뷰에 답글 달면 좋다. 특히 부정적 리뷰. &quot;버그 고쳤습니다&quot; 하고 다음 버전에서 해결하면 리뷰 수정해주는 경우도 있음.</p>\n<p><strong>업데이트 주기</strong>: 3-4주에 한 번은 업데이트. 자주 업데이트하면 &quot;활발하게 관리되는 앱&quot;으로 보임. 버그 고치는 것만으로도 됨.</p>\n<p><strong>앱 아이콘</strong>: 눈에 띄어야 한다. 경쟁 앱들 아이콘 보고 다른 색상 쓰거나 다른 스타일로.</p>\n<p><strong>카테고리 선택</strong>: 덜 경쟁적인 카테고리 선택. &quot;생산성&quot;은 경쟁 치열. &quot;유틸리티&quot;가 나을 수도.</p>\n<p><strong>로컬라이징</strong>: 주요 국가 언어로 번역. 한국어, 영어, 일본어 정도만 해도 커버 많이 됨.</p>\n<h2 id=\"-5\" tabindex=\"-1\">결과 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/11/\">#</a></h2>\n<p>3개월 최적화 후:</p>\n<ul>\n<li>&quot;메모장&quot; 검색: 70등 → 15등</li>\n<li>&quot;빠른 메모&quot; 검색: 순위권 밖 → 8등</li>\n<li>앱 이름 검색: 3페이지 → 1등</li>\n</ul>\n<p>다운로드 체감상 2배 정도 늘었다. 정확한 수치는 안 나오지만, 일 다운로드 10개에서 20개 정도로.</p>\n<p>ASO 하면 광고 안 해도 유입이 생긴다. 검색 최적화니까 SEO랑 비슷하다. 느리지만 무료고 지속적.</p>\n<p>한 번에 다 하려고 하지 말고, 하나씩 바꿔보면서 뭐가 효과 있는지 확인하는 게 좋다.</p>\n",
			"date_published": "2025-11-08T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/10/",
			"url": "https://ragedaisy.com/articles/10/",
			"title": "구독으로 받을까 한 번에 받을까",
			"content_html": "<p>유료화하기로 했는데 고민됐다. 구독이냐 일회성이냐.</p>\n<p>둘 다 장단점이 있어서 한참 고민했다. 결국 일회성으로 갔는데, 그 이유랑 과정을 정리해둔다.</p>\n<h2 id=\"\" tabindex=\"-1\">구독이 끌렸던 이유 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>처음엔 구독이 끌렸다.</p>\n<p><strong>MRR (Monthly Recurring Revenue)</strong>: 매달 꼬박꼬박 들어온다. 수익이 예측 가능하다. &quot;이번 달 100달러, 다음 달도 100달러&quot; 이러면 계획 세우기 좋다.</p>\n<p><strong>성장 그래프가 예쁘다</strong>: MRR 쌓이면 그래프가 우상향한다. 뭔가 사업 같고, 성장하는 것 같은 느낌. 일회성은 들쑥날쑥해서 보기 안 좋다.</p>\n<p><strong>LTV (Lifetime Value) 높음</strong>: 구독자가 12개월 유지하면 일회성보다 많이 받을 수 있다. $5/월 × 12개월 = $60. 일회성 $30보다 두 배.</p>\n<p><strong>SaaS 기업들 다 구독</strong>: 성공한 SaaS 보면 다 구독 모델이다. Notion, Figma, Slack 다 구독. &quot;검증된 모델이니까 따라하면 되겠지&quot; 싶었다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">근데 현실은 달랐다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>생각해보니까 구독이면 매달 가치를 줘야 한다.</p>\n<p>새 기능 추가하든, 콘텐츠 업데이트하든, 뭔가 계속 해야 한다. 안 그러면 &quot;왜 계속 돈 내야 해?&quot;라는 생각이 든다. 해지율이 올라간다.</p>\n<p>본업 있으면서 매달 업데이트 압박 받는 건 좀 아니었다. 회사 일 하고 와서 사이드 프로젝트 의무처럼 해야 하면 번아웃 온다.</p>\n<p>그리고 구독 관리가 생각보다 귀찮다.</p>\n<p><strong>결제 실패 처리</strong>: 카드 만료되거나 잔액 부족이면 결제 실패한다. 재시도 로직 짜야 하고, 유저한테 알림 보내야 하고.</p>\n<p><strong>해지 관리</strong>: 해지 요청 처리해야 하고, 환불 정책 정해야 하고, 해지 사유 물어볼지 말지 결정해야 하고.</p>\n<p><strong>구독 갱신 알림</strong>: 갱신 전에 알림 보내야 하는 곳도 있고.</p>\n<p><strong>프로레이션</strong>: 중간에 플랜 바꾸면 일할 계산해야 하고.</p>\n<p>일회성은 이런 거 필요 없다. 결제 한 번 하면 끝.</p>\n<h2 id=\"-2\" tabindex=\"-1\">내 서비스 특성을 봤다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>내 도구는 한 번 사면 계속 쓰는 종류였다.</p>\n<p>크롬 확장프로그램이다. 설치하면 끝. 새 기능이 막 추가되는 것도 아니고, 콘텐츠가 있는 것도 아니다. 매달 뭔가 새로운 걸 제공할 게 없다.</p>\n<p>이런 제품에 구독 붙이면 억지스럽다. &quot;왜 매달 내야 해?&quot; 라는 질문에 답이 없다.</p>\n<p>구독이 맞는 경우:</p>\n<ul>\n<li>계속 새 콘텐츠 제공 (Netflix, Spotify)</li>\n<li>인프라 비용이 유저 수에 비례 (클라우드 스토리지)</li>\n<li>계속 업데이트 필요한 서비스 (보안, 데이터)</li>\n</ul>\n<p>일회성이 맞는 경우:</p>\n<ul>\n<li>도구형 앱 (한 번 구매하면 계속 쓰는)</li>\n<li>기능이 완성형인 제품</li>\n<li>업데이트가 가끔 있는 제품</li>\n</ul>\n<p>내 경우는 후자였다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">가격 결정 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>일회성으로 가기로 하고, 가격을 정했다.</p>\n<p>경쟁 서비스들 가격 조사:</p>\n<ul>\n<li>서비스 A: $4.99 일회성</li>\n<li>서비스 B: $9.99 일회성</li>\n<li>서비스 C: $5/월 구독</li>\n<li>서비스 D: $29 일회성 (기능 많음)</li>\n</ul>\n<p>$5에서 $30 사이. 중간 가격대인 $9.99로 정했다.</p>\n<p>가격 심리학 고려한 것:</p>\n<ul>\n<li>$10보다 $9.99가 싸 보인다 (진부하지만 효과 있음)</li>\n<li>너무 싸면 &quot;이거 별거 아니네&quot; 느낌</li>\n<li>너무 비싸면 &quot;이 돈 주고?&quot; 느낌</li>\n<li>경쟁사 중간 가격이 안전</li>\n</ul>\n<p>유저 입장에서도 &quot;10달러 한 번에 끝&quot;이 &quot;매달 5달러씩&quot;보다 낫다. 구독이면 까먹고 결제되는 것도 걱정해야 하는데, 일회성은 그런 걱정 없다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">일회성의 단점 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>물론 단점도 있다.</p>\n<p><strong>수익 예측 어려움</strong>: 이번 달 10건 팔려도 다음 달 2건일 수 있다. 들쑥날쑥.</p>\n<p><strong>재구매가 없음</strong>: 한 번 사면 끝. 같은 유저한테 또 팔 수 없다 (업그레이드 제외).</p>\n<p><strong>그래프가 안 예쁨</strong>: MRR처럼 쌓이는 게 아니라 매달 새로 시작. 성장 보여주기 어려움.</p>\n<p><strong>업데이트 동기 저하</strong>: 돈 이미 받았는데 왜 업데이트해야 하지? 이런 생각 들 수 있음.</p>\n<h2 id=\"4\" tabindex=\"-1\">4개월 후 결과 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>일회성으로 출시하고 4개월 지났다.</p>\n<p>수치:</p>\n<ul>\n<li>총 결제: 85건</li>\n<li>총 수익: $849.15</li>\n<li>월 평균: $212</li>\n</ul>\n<p>나쁘지 않다. 구독이었으면 어땠을까 계산해봤다.</p>\n<p>$5/월 구독이라고 가정:</p>\n<ul>\n<li>첫 달: 10명 × $5 = $50</li>\n<li>2달째: 10명 + 15명 (신규) × 해지율 15% 감안 = $100 정도</li>\n<li>...</li>\n</ul>\n<p>비슷하거나 조금 나을 수도 있는데, 관리 비용 생각하면 일회성이 나은 것 같다.</p>\n<h2 id=\"-5\" tabindex=\"-1\">하이브리드 모델도 있다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>둘 중 하나만 해야 하는 건 아니다.</p>\n<p><strong>일회성 + 연간 업데이트</strong>: 기본 버전은 일회성, 메이저 업데이트는 추가 결제. Sketch가 이런 모델.</p>\n<p><strong>프리미엄/무료 나누기</strong>: 기본 기능 무료, 고급 기능 일회성 결제.</p>\n<p><strong>일회성 + 구독 옵션</strong>: 일회성 $30 또는 $5/월 구독. 유저가 선택.</p>\n<p>나중에 고급 기능 추가하면 하이브리드로 갈 수도 있다.</p>\n<h2 id=\"-6\" tabindex=\"-1\">결론 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/10/\">#</a></h2>\n<p>후회 없냐면, 아직은 없다.</p>\n<p>매달 일정 금액 안 들어오는 건 아쉽긴 하다. MRR 올라가는 거 보면 뿌듯할 것 같은데.</p>\n<p>그래도 관리가 편하고, 유저한테도 깔끔하고, 내 제품 특성에 맞아서 만족한다.</p>\n<p>다른 프로젝트 하면 그때는 구독으로 해볼 수도 있다. 콘텐츠 서비스나, 계속 업데이트되는 서비스면 구독이 맞을 수도.</p>\n<p>정답은 없다. 제품 특성 보고 결정하면 된다.</p>\n",
			"date_published": "2025-11-01T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/9/",
			"url": "https://ragedaisy.com/articles/9/",
			"title": "Vercel, Railway, Fly.io",
			"content_html": "<p>배포 플랫폼 고르는 거 은근 스트레스다.</p>\n<p>블로그 글 읽으면 다들 다른 거 추천한다. &quot;Vercel 최고&quot; &quot;Railway가 낫다&quot; &quot;Fly.io 써야 한다&quot; &quot;그냥 AWS 쓰면 되지&quot;.</p>\n<p>셋 다 써봤다. 각각 언제 쓰면 좋은지 정리해둔다.</p>\n<h2 id=\"vercel\" tabindex=\"-1\">Vercel <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p>Next.js 쓰면 여기. 선택의 여지가 없다.</p>\n<p>Vercel이 Next.js 만든 회사다. 당연히 최적화가 제일 잘 돼 있다. GitHub 연결하면 설정할 것도 없다. git push 하면 알아서 빌드하고 배포한다.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># 이게 전부다</span>\n<span class=\"token function\">git</span> push origin main\n<span class=\"token comment\"># 1분 뒤에 배포 완료</span></code></pre>\n<p>무료 범위가 넓다. 월 100GB 대역폭, 서버리스 함수 호출 100만 회. 사이드 프로젝트 수준에서는 평생 무료다. 나는 두 개 프로젝트 돌리는데 아직 돈 낸 적 없다.</p>\n<p><strong>프리뷰 배포가 진짜 좋다.</strong> PR 올리면 자동으로 프리뷰 URL 만들어준다. <code>my-app-pr-123.vercel.app</code> 이런 식으로. 테스트하기 편하고, 다른 사람한테 보여주기도 좋다.</p>\n<p>단점도 있다.</p>\n<p><strong>서버리스 제한</strong>: 함수 실행 10초 넘으면 타임아웃. 오래 걸리는 작업은 못 한다. 이미지 처리나 AI API 호출 같은 거 하다 보면 걸린다.</p>\n<p><strong>한국 리전 없음</strong>: 엣지는 서울 있는데, 서버리스 함수는 미국에서 돈다. 한국 유저 대상이면 레이턴시 200ms 정도 더 걸린다. 체감상 좀 느리다.</p>\n<p><strong>요금 예측 어려움</strong>: 트래픽 터지면 요금도 터진다. 무료 범위 넘어가면 갑자기 청구서 와서 놀랄 수 있다. Spending limit 설정해두는 게 좋다.</p>\n<p>점수: 프론트엔드 배포하기엔 최고. Next.js면 무조건 여기.</p>\n<h2 id=\"railway\" tabindex=\"-1\">Railway <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p>백엔드 필요하면 여기.</p>\n<p>Vercel은 서버리스라서 상시 돌아가는 서버가 필요하면 못 쓴다. WebSocket이나 크론잡 같은 거. Railway는 컨테이너 기반이라 이런 것도 가능.</p>\n<p>월 5달러 크레딧 준다. 사이드 프로젝트 수준에서는 그 안에서 해결된다. 내 경우 월 2-3달러 정도 쓰니까 크레딧으로 충분.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># Railway CLI로 배포</span>\nrailway login\nrailway init\nrailway up</code></pre>\n<p>DB 붙이기가 쉽다. PostgreSQL, MySQL, Redis 원클릭으로 추가된다. 환경변수도 자동으로 연결해준다.</p>\n<p><strong>장점</strong>:</p>\n<ul>\n<li>배포 간단 (GitHub 연결하면 끝)</li>\n<li>DB 쉽게 붙음</li>\n<li>월 5달러 크레딧</li>\n<li>슬립 모드로 안 쓸 때 비용 절약</li>\n</ul>\n<p><strong>단점</strong>:</p>\n<ul>\n<li>아시아 리전 없음. 가장 가까운 게 싱가포르인데 그마저도 느림. 한국에서 ping 200ms 정도.</li>\n<li>무료 티어에서 500시간/월 제한. 한 개 서비스 24시간 돌리면 720시간 필요한데 안 됨. 유료 플랜 가야 함.</li>\n<li>슬립 모드 들어가면 첫 요청 느림 (콜드 스타트).</li>\n</ul>\n<p>점수: 간단한 백엔드용으로 좋음. 한국 타겟이면 레이턴시 감수해야 함.</p>\n<h2 id=\"fly-io\" tabindex=\"-1\">Fly.io <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p>서울 근처 리전 있다. 도쿄. 정확히는 nrt (나리타).</p>\n<p>한국 유저 대상이면 가장 빠르다. ping 30-50ms. Vercel이나 Railway랑 비교하면 체감 차이 난다.</p>\n<p>Docker 기반이라 뭐든 돌릴 수 있다. Node, Python, Go, Rust 뭐든.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># Fly.io 배포</span>\nfly launch  <span class=\"token comment\"># Dockerfile 자동 생성</span>\nfly deploy  <span class=\"token comment\"># 배포</span>\n\n<span class=\"token comment\"># 도쿄 리전 지정</span>\nfly regions <span class=\"token builtin class-name\">set</span> nrt</code></pre>\n<p><strong>장점</strong>:</p>\n<ul>\n<li>아시아 리전 (도쿄, 싱가포르, 홍콩)</li>\n<li>레이턴시 빠름</li>\n<li>글로벌 분산 배포 가능</li>\n<li>Anycast IP로 가까운 리전 자동 연결</li>\n</ul>\n<p><strong>단점</strong>:</p>\n<ul>\n<li>설정이 좀 복잡하다. Dockerfile 작성해야 하고, fly.toml 설정 만져야 함. Railway보다 진입장벽 높음.</li>\n<li>무료 티어 제한적. 공유 CPU 2개, 256MB RAM. 트래픽 많으면 금방 넘음.</li>\n<li>문서가 좀 부실. 에러 나면 GitHub Issues 뒤져야 함.</li>\n</ul>\n<p>점수: 한국 유저 대상이면 고려할 만함. Docker 알아야 편함.</p>\n<h2 id=\"\" tabindex=\"-1\">내 선택 기준 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p>복잡하게 생각 안 한다.</p>\n<pre><code>프론트엔드 (Next.js) → Vercel\n백엔드 필요 + 글로벌 → Railway\n백엔드 필요 + 한국 타겟 → Fly.io\n</code></pre>\n<p>요즘은 이렇게 조합해서 쓴다:</p>\n<ul>\n<li>프론트엔드: Vercel</li>\n<li>백엔드 API: Railway</li>\n<li>DB: Supabase (무료)</li>\n<li>파일 저장: Cloudflare R2 (무료)</li>\n</ul>\n<p>전부 무료 티어 조합이면 월 0원에 서비스 돌릴 수 있다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">각 서비스 비용 정리 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p><strong>Vercel</strong></p>\n<ul>\n<li>무료: 100GB 대역폭, 100만 함수 호출</li>\n<li>Pro: 월 $20 (팀용)</li>\n</ul>\n<p><strong>Railway</strong></p>\n<ul>\n<li>무료: 월 $5 크레딧, 500시간</li>\n<li>Hobby: 월 $5 (크레딧 쓰면 0원)</li>\n<li>사용량 기반 요금</li>\n</ul>\n<p><strong>Fly.io</strong></p>\n<ul>\n<li>무료: 공유 CPU 2개, 3GB 볼륨</li>\n<li>사용량 기반 요금</li>\n<li>월 $2-5 정도면 소규모 앱 가능</li>\n</ul>\n<h2 id=\"-2\" tabindex=\"-1\">마이그레이션 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/9/\">#</a></h2>\n<p>플랫폼 옮기는 건 생각보다 어렵지 않다.</p>\n<ol>\n<li>환경변수 정리해둔다. 하드코딩 없애고 .env로 빼둔다.</li>\n<li>Docker 지원하면 어디서든 돌릴 수 있다. Dockerfile 만들어두면 이식성 좋다.</li>\n<li>DB URL만 바꾸면 DB는 어디 있어도 된다.</li>\n</ol>\n<p>나는 AWS에서 Vercel+Railway로 옮길 때 주말 하루 걸렸다. 처음 하면 좀 더 걸릴 수 있는데, 두 번째부터는 금방이다.</p>\n<p>어디 쓰든 크게 상관없다. 사이드 프로젝트 수준에서는 다 비슷하다. 일단 아무 데나 올려보고, 문제 생기면 그때 옮기면 된다.</p>\n",
			"date_published": "2025-10-25T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/8/",
			"url": "https://ragedaisy.com/articles/8/",
			"title": "광고비 0원, 유저 1000명, 3개월",
			"content_html": "<p>마케팅 예산이 없었다. 정확히는 사이드 프로젝트에 광고비 쓰기 싫었다.</p>\n<p>회사 다니면서 사이드 프로젝트 하는데, 거기에 또 돈 붓기가 꺼려졌다. 수익도 없는데 광고비 쓰면 그냥 손해잖아.</p>\n<p>그래서 무료로 할 수 있는 것들만 했다. 3개월 만에 유저 1000명 모았다.</p>\n<h2 id=\"\" tabindex=\"-1\">레딧이 메인이었다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<p>전체 유저의 절반 이상이 레딧에서 왔다.</p>\n<p>레딧 좋은 점은 타겟팅이 정확하다는 거다. 관련 서브레딧 가면 정확히 관심 있는 사람들만 있다. r/Notion 가면 노션 쓰는 사람들, r/SideProject 가면 사이드 프로젝트 하는 사람들.</p>\n<p>근데 방법이 중요하다.</p>\n<p><strong>안 되는 방법</strong>: 가서 &quot;내 앱 써봐&quot; 하면 바로 묻힌다. 다운보트 맞고 끝. 노골적인 셀프 프로모션은 규칙 위반인 곳도 많다. 심하면 밴당함.</p>\n<p><strong>되는 방법</strong>: 먼저 커뮤니티 일원이 된다.</p>\n<p>구체적으로 이렇게 했다:</p>\n<p><strong>1단계: 2주간 눈팅</strong></p>\n<p>글 안 쓰고 읽기만 했다. 어떤 글이 인기 있는지, 분위기가 어떤지, 자주 올라오는 질문이 뭔지 파악.</p>\n<p><strong>2단계: 도움되는 댓글 달기</strong></p>\n<p>다른 사람 글에 진심으로 도움되는 댓글 달았다. &quot;이런 방법도 있어요&quot; &quot;저는 이렇게 해결했어요&quot; 이런 식으로. 2주 정도 했더니 카르마도 쌓이고, 커뮤니티에서 보이기 시작.</p>\n<p><strong>3단계: 자연스럽게 언급</strong></p>\n<p>관련 질문 올라오면 답변하면서 슬쩍 언급. &quot;이런 문제 있어서 직접 도구 만들어 썼는데 괜찮더라&quot; 이런 식으로. 대놓고 링크 박지 않고, &quot;혹시 관심 있으면 DM 줘&quot;로 마무리.</p>\n<p>글 직접 쓸 때도 홍보 느낌 안 나게. &quot;노션 웹클리핑 워크플로우 공유합니다&quot; 하고 내 방식 설명하면서 도구 자연스럽게 언급.</p>\n<p>이렇게 하니까 &quot;뭐야 홍보하네&quot; 반응 대신 &quot;오 좋은데? 링크 줘&quot; 반응이 왔다.</p>\n<p>레딧에서 온 유저: 약 600명 (60%)</p>\n<h2 id=\"build-in-public\" tabindex=\"-1\">트위터 Build in Public <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<p>트위터에서 #buildinpublic 해시태그 달고 개발 과정 올렸다.</p>\n<ul>\n<li>&quot;오늘 결제 기능 붙였다&quot;</li>\n<li>&quot;첫 유료 유저 생겼다 🎉&quot;</li>\n<li>&quot;버그 때문에 3시간 삽질함&quot;</li>\n<li>&quot;이번 주 MAU 500명 돌파&quot;</li>\n</ul>\n<p>매일은 아니고 뭔가 있을 때마다. 일주일에 3-4개 정도.</p>\n<p>이런 걸 올리면 비슷하게 사이드 프로젝트 하는 사람들이 관심 가진다. 팔로우하고, 좋아요 누르고, 댓글 달고. 그러면서 팔로워가 느는데, 그 사람들이 잠재 유저기도 하다.</p>\n<p>3개월에 팔로워 300명 정도 늘었다. 많지는 않은데, 관심사 맞는 팔로워라서 질이 좋다.</p>\n<p>트위터에서 온 유저: 약 200명 (20%)</p>\n<h2 id=\"-1\" tabindex=\"-1\">효과 없었던 것들 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<p><strong>페이스북 그룹</strong>: 글 올려도 반응이 없었다. 그룹마다 다르겠지만, 내 경험으로는 레딧보다 훨씬 반응 적었다. 5개 그룹에 올려봤는데 전부 조용.</p>\n<p><strong>콜드 이메일</strong>: 잠재 고객 될 것 같은 사람들한테 이메일 100통 보냈다. 답장 2통. 전환율 2%. 시간 대비 효율이 너무 낮아서 접었다.</p>\n<p><strong>링크드인</strong>: 글 올려봤는데 반응 별로. 내 네트워크가 B2C 제품이랑 안 맞아서 그런 것 같다. B2B면 다를 수도.</p>\n<p><strong>해커뉴스</strong>: Show HN 올렸는데 3 upvote에서 끝. 경쟁이 너무 치열하고, 운 요소가 크다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">시간은 쓴다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<p>광고비 0원이라고 공짜는 아니다. 시간을 쓴다.</p>\n<p>레딧 확인하고 댓글 다는 데 하루 20분.\n트위터 올리고 반응 확인하는 데 하루 10분.\n일주일에 레딧 글 1개 쓰는 데 30분.</p>\n<p>매일 30분에서 1시간 정도 마케팅에 썼다. 3개월이면 50-100시간. 결코 적은 시간이 아니다.</p>\n<p>광고비 대신 시간을 쓰는 거다. 뭐가 나은지는 상황에 따라 다르다.</p>\n<p>나는 돈이 없고 시간은 있었다. 본업 끝나고 저녁에 30분 쓰는 건 할 만했다. 광고비 월 50만원 쓰는 건 부담됐다.</p>\n<h2 id=\"1000\" tabindex=\"-1\">1000명 도달 타임라인 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<ul>\n<li>1주차: 20명 (레딧 첫 글)</li>\n<li>2주차: 50명</li>\n<li>1개월: 150명</li>\n<li>2개월: 450명 (레딧에서 글 하나가 터짐)</li>\n<li>3개월: 1000명</li>\n</ul>\n<p>선형적으로 늘지 않았다. 레딧에서 글 하나가 upvote 200개 받으면서 한 번에 200명 왔다. 그런 이벤트가 중간중간 있었다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">다음 목표 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/8/\">#</a></h2>\n<p>1000명에서 5000명까지가 더 어려울 것 같다.</p>\n<p>지금까지는 &quot;관심 있으면 써봐&quot; 방식이었는데, 5000명 모으려면 더 적극적으로 해야 할 것 같다. 블로그 SEO로 검색 유입 늘리거나, 작은 광고 테스트해보거나.</p>\n<p>아직 유료 마케팅은 안 해봤다. 다음 단계에서는 소액으로 테스트해볼 생각.</p>\n<p>일단 여기까지 3개월, 광고비 0원, 1000명. 빠르진 않다. 근데 지속 가능하다. 돈 안 쓰니까 부담 없이 계속할 수 있다.</p>\n",
			"date_published": "2025-10-18T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/7/",
			"url": "https://ragedaisy.com/articles/7/",
			"title": "Product Hunt 17등",
			"content_html": "<p>Product Hunt 런칭하면 유저 폭발한다는 얘기 많이 봤다.</p>\n<p>&quot;데일리 1등 하면 하루에 5000명 온다&quot;\n&quot;Product Hunt 덕분에 첫 달 $10K 벌었다&quot;\n&quot;투자자 연락 왔다&quot;</p>\n<p>기대를 잔뜩 하고 런칭했다.</p>\n<p>결과: 17등.</p>\n<h2 id=\"\" tabindex=\"-1\">준비 과정 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p>2주 전부터 준비했다.</p>\n<p><strong>썸네일 만들기</strong>: 피그마에서 직접 만들었다. Product Hunt 보면 썸네일 예쁜 게 눈에 들어온다. GIF로 만들면 더 눈에 띄는데, 만드는 게 귀찮아서 정적 이미지로.</p>\n<p><strong>태그라인</strong>: 한 줄로 뭐하는 서비스인지 설명해야 한다. 20번은 고쳐 쓴 것 같다. &quot;AI-powered X for Y&quot; 이런 공식이 많이 보이는데, 그냥 직관적으로 &quot;뭐하는 건지&quot; 알 수 있게 썼다.</p>\n<p><strong>설명</strong>: 첫 문단이 중요하다. 스크롤 안 내리고 그냥 가는 사람이 많아서. 문제 → 해결책 → 차별점 순서로 짧게.</p>\n<p><strong>스크린샷</strong>: 5장 넣었다. 핵심 기능 위주로. 설명 텍스트 넣어서 뭐하는 화면인지 바로 알 수 있게.</p>\n<p><strong>런칭 예고</strong>: 트위터에서 2주 전부터 &quot;곧 Product Hunt 런칭한다&quot; 예고했다. 팔로워한테 미리 알려야 D-day에 투표해준다.</p>\n<h2 id=\"d-day\" tabindex=\"-1\">D-day <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p>Product Hunt는 태평양 시간 기준 자정에 리셋된다. 한국 시간으로 오후 4시.</p>\n<p>런칭 직후 바로 알렸다.</p>\n<ul>\n<li>트위터에 링크 공유</li>\n<li>친구들한테 카톡</li>\n<li>디스코드 커뮤니티에 공유</li>\n<li>이메일 뉴스레터 구독자한테 발송</li>\n</ul>\n<p>첫 2시간이 중요하다고 들었다. 초반 모멘텀으로 순위가 결정되니까.</p>\n<p>1시간 뒤: 25표. 순위 8등.</p>\n<p>&quot;오 괜찮은데?&quot; 싶었다.</p>\n<p>3시간 뒤: 50표. 순위 12등.</p>\n<p>슬슬 밀리기 시작했다. 다른 제품들도 투표 요청 열심히 하니까.</p>\n<p>6시간 뒤: 80표. 순위 15등.</p>\n<p>저녁 먹고 왔더니 밀려 있었다.</p>\n<p>최종: 127표. 17등.</p>\n<h2 id=\"-1\" tabindex=\"-1\">결과 분석 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p>127표. 생각보다 적었다.</p>\n<p>1등은 600표 넘게 받았다. 5등도 300표. 그에 비하면 절반도 안 된다.</p>\n<p>데이터 분석:</p>\n<ul>\n<li>Product Hunt 페이지 조회: 1,200회</li>\n<li>투표: 127표 (전환율 10%)</li>\n<li>내 서비스 클릭: 800명</li>\n<li>가입: 60명 (전환율 7.5%)</li>\n<li>다음 날 재방문: 20명</li>\n</ul>\n<p>당일 방문자 800명. 많은 것 같지만 1등이 받는 5000명에 비하면 새발의 피다.</p>\n<p>가입 60명. 800명 왔는데 7.5%만 가입했다. 나머지는 구경만 하고 갔다.</p>\n<p>다음 날 돌아온 사람: 20명. 60명 중 30% 정도만 다시 왔다. 그 20명 중에 실제로 꾸준히 쓰는 사람은 더 적을 거다.</p>\n<h2 id=\"17\" tabindex=\"-1\">왜 17등이었을까 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p><strong>네트워크가 작았다</strong>: 1등 하는 사람들 보면 트위터 팔로워가 수천 명이다. 나는 300명. 초반 투표 수가 안 나올 수밖에.</p>\n<p><strong>경쟁이 치열했다</strong>: 그날 좋은 제품이 많았다. AI 관련 서비스들이 쏟아져 나오던 시기라.</p>\n<p><strong>커뮤니티 활동을 안 했다</strong>: Product Hunt에서 다른 사람 제품 투표하고 댓글 달고 해야 내가 런칭할 때 도움받는다. 나는 그런 거 안 하고 런칭만 했다.</p>\n<p><strong>타이밍</strong>: 화요일~목요일이 트래픽 많다는데 나는 금요일에 했다. 사람들이 퇴근하고 안 보나 보다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">그래도 얻은 것 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p><strong>SEO 효과</strong>: Product Hunt 페이지가 검색에 뜬다. 백링크 효과가 있다. 도메인 점수 높으니까.</p>\n<p><strong>크레딧</strong>: &quot;Featured on Product Hunt&quot; 뱃지 달 수 있다. 랜딩페이지에 넣으면 신뢰도 좀 올라간다.</p>\n<pre class=\"language-html\" tabindex=\"0\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>a</span> <span class=\"token attr-name\">href</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://www.producthunt.com/posts/my-product<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>img</span> <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://api.producthunt.com/widgets/embed-image/v1/featured.svg<span class=\"token punctuation\">\"</span></span>\n       <span class=\"token attr-name\">alt</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>Featured on Product Hunt<span class=\"token punctuation\">\"</span></span> <span class=\"token punctuation\">/></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>a</span><span class=\"token punctuation\">></span></span></code></pre>\n<p><strong>약간의 유저</strong>: 60명 가입했고, 그중 일부는 계속 쓴다. 없는 것보다 낫다.</p>\n<p><strong>경험</strong>: 한 번 해봤으니까 다음에는 더 잘할 수 있다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">다시 한다면 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p><strong>네트워크 먼저 키운다</strong>: 최소 팔로워 1000명은 만들고 런칭할 것 같다. Product Hunt 커뮤니티 활동도 3개월은 하고.</p>\n<p><strong>적극적으로 투표 부탁한다</strong>: 어차피 다들 그렇게 한다. 부끄러워하지 말고. DM도 보내고, 이메일도 보내고.</p>\n<p><strong>화요일~목요일에 런칭한다</strong>: 트래픽 많은 날로.</p>\n<p><strong>기대를 낮춘다</strong>: Product Hunt가 유일한 마케팅 채널인 것처럼 생각하면 안 된다. 여러 채널 중 하나일 뿐.</p>\n<h2 id=\"-4\" tabindex=\"-1\">솔직한 생각 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/7/\">#</a></h2>\n<p>Product Hunt에 너무 기대 걸면 안 된다.</p>\n<p>1등 해서 대박 나는 케이스는 소수다. 대부분은 나처럼 10등 밖이고, 트래픽도 적당히 받고 끝난다.</p>\n<p>그렇다고 안 할 이유는 없다. 어차피 무료고, 준비하는 과정에서 서비스 다듬을 수 있고, 조금이라도 유입이 생긴다.</p>\n<p>기대만 낮추면 된다. &quot;이걸로 대박 날 거야&quot;가 아니라 &quot;마케팅 채널 하나 추가하는 거다&quot; 정도로.</p>\n",
			"date_published": "2025-10-10T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/6/",
			"url": "https://ragedaisy.com/articles/6/",
			"title": "첫 유료 결제 9.99달러",
			"content_html": "<p>크롬 확장프로그램 무료로 운영하고 있었다. 3개월 정도. 유저는 500명쯤 모였는데 문제가 생겼다.</p>\n<p>AI API 쓰는 기능 때문에 서버비가 매달 18달러씩 나갔다. OpenAI API가 생각보다 비싸다. 유저당 하루 평균 3번 정도 쓰는데, 토큰 계산하면 그 정도 나온다.</p>\n<p>지금은 괜찮은데 유저 늘수록 비용도 늘어날 판이었다. 1000명 되면 36달러, 2000명 되면 70달러. 수익 없이 이걸 감당할 수가 없었다.</p>\n<p>유료화를 고민했다.</p>\n<h2 id=\"\" tabindex=\"-1\">무서웠다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>솔직히 무서웠다. 무료로 쓰던 사람들이 뭐라고 하면 어쩌나.</p>\n<p>&quot;돈 받으면 유저 다 떠나는 거 아니야?&quot;\n&quot;욕먹으면 어떡하지?&quot;\n&quot;아직 기능도 부족한데...&quot;</p>\n<p>이런 생각이 계속 들었다. 그래서 한 달 넘게 미뤘다. 미루는 동안에도 서버비는 나갔다.</p>\n<p>어느 날 청구서 보면서 결심했다. 유료화 안 하면 접어야 한다. 둘 중 하나다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">가격 정하기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>비슷한 서비스들 가격 찾아봤다.</p>\n<ul>\n<li>서비스 A: $4.99/월</li>\n<li>서비스 B: $9.99/월</li>\n<li>서비스 C: $14.99/월</li>\n<li>서비스 D: $12/년</li>\n</ul>\n<p>월 구독이 많았다. $5에서 $15 사이.</p>\n<p>근데 나는 구독 말고 일회성으로 가기로 했다. 이유:</p>\n<ol>\n<li>\n<p><strong>관리가 편하다</strong>: 구독이면 결제 실패 처리, 해지 관리, 갱신 알림 이런 거 다 해야 한다. 일회성은 결제 한 번 하면 끝.</p>\n</li>\n<li>\n<p><strong>유저 입장에서 편하다</strong>: &quot;10달러 한 번에 끝&quot;이 &quot;매달 5달러씩&quot;보다 심리적으로 낫다. 까먹고 결제되는 것도 없고.</p>\n</li>\n<li>\n<p><strong>업데이트 압박이 없다</strong>: 구독이면 매달 가치를 줘야 한다는 압박이 있다. 일회성이면 그냥 좋은 거 만들면 된다.</p>\n</li>\n</ol>\n<p>가격은 $9.99로 정했다. 경쟁 서비스 중간 가격대. 너무 싸면 가치 없어 보이고, 너무 비싸면 안 사니까.</p>\n<h2 id=\"-2\" tabindex=\"-1\">결제 시스템 붙이기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>Stripe 쓸까 하다가 Lemon Squeezy로 했다.</p>\n<p>Stripe은 결제만 처리한다. 세금 신고, 청구서 발행 이런 건 내가 해야 한다. 글로벌 서비스면 VAT 처리가 복잡하다.</p>\n<p>Lemon Squeezy는 Merchant of Record(MoR) 서비스다. 쉽게 말하면 얘네가 판매자가 되고 나한테 수익을 정산해준다. 세금 처리를 알아서 해줘서 편하다. 수수료가 좀 높긴 한데 (5% + $0.50) 그래도 세금 신경 안 써도 되는 게 좋았다.</p>\n<p>연동은 문서 보고 반나절 만에 됐다.</p>\n<pre class=\"language-javascript\" tabindex=\"0\"><code class=\"language-javascript\"><span class=\"token comment\">// 결제 링크 생성 (Lemon Squeezy)</span>\n<span class=\"token keyword\">const</span> checkoutUrl <span class=\"token operator\">=</span> <span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">https://[store].lemonsqueezy.com/checkout/buy/[product_id]?checkout[email]=</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>userEmail<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// 결제 완료 시 웹훅으로 받음</span>\napp<span class=\"token punctuation\">.</span><span class=\"token function\">post</span><span class=\"token punctuation\">(</span><span class=\"token string\">'/webhook/lemonsqueezy'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">req<span class=\"token punctuation\">,</span> res</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> event <span class=\"token operator\">=</span> req<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>event<span class=\"token punctuation\">.</span>meta<span class=\"token punctuation\">.</span>event_name <span class=\"token operator\">===</span> <span class=\"token string\">'order_created'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">// 라이선스 활성화</span>\n    <span class=\"token function\">activateLicense</span><span class=\"token punctuation\">(</span>event<span class=\"token punctuation\">.</span>data<span class=\"token punctuation\">.</span>attributes<span class=\"token punctuation\">.</span>user_email<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n  res<span class=\"token punctuation\">.</span><span class=\"token function\">sendStatus</span><span class=\"token punctuation\">(</span><span class=\"token number\">200</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n<p>라이선스 확인은 간단하게 했다. 결제하면 이메일 기준으로 플래그 세우고, 확장프로그램에서 로그인할 때 확인.</p>\n<h2 id=\"-3\" tabindex=\"-1\">유료화 발표 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>기존 유저들한테 알렸다. 확장프로그램 팝업에 공지 띄우고, 트위터에도 올렸다.</p>\n<p>&quot;그동안 무료였는데, AI 기능 서버비 감당이 안 돼서 유료화합니다. 기존 무료 기능은 그대로 유지하고, AI 기능만 유료로 전환합니다.&quot;</p>\n<p>솔직하게 썼다. 변명 같지만 사실이니까.</p>\n<p>반응은... 의외로 괜찮았다. 욕먹을 줄 알았는데 &quot;응원합니다&quot; &quot;당연히 내야죠&quot; 이런 반응이 더 많았다. 몇 명이 &quot;아쉽다&quot;고 했는데 그 정도는 감수할 수 있었다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">첫 결제 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>유료화하고 3일째 되던 날.</p>\n<p>&quot;New order: $9.99&quot;</p>\n<p>Lemon Squeezy 알림. 처음엔 테스트인가 했다. 확인해보니까 모르는 사람이었다.</p>\n<p>소리 질렀다. 진짜로. 밤 11시에.</p>\n<p>모르는 사람이 내가 만든 거에 돈을 냈다.</p>\n<p>금액이 중요한 게 아니었다. 수수료 빼면 8달러 남는다. 그게 중요한 게 아니라, &quot;가치가 있다&quot;는 증명이 된 거다. 누군가는 돈 낼 만큼 필요로 한다.</p>\n<p>스크린샷 찍어서 저장해뒀다. 첫 결제 기념.</p>\n<h2 id=\"-5\" tabindex=\"-1\">첫 달 수익 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>첫 달 결과:</p>\n<ul>\n<li>결제 건수: 8건</li>\n<li>총 수익: $79.92</li>\n<li>수수료 제외: $73.93 정도</li>\n</ul>\n<p>여덟 명이 결제했다. 서버비 18달러 빼면 55달러 정도 남는다. 라면값이다. 그래도 적자는 면했다.</p>\n<p>유료 전환율은 1.5% 정도였다. 500명 중 8명. 생각보다 낮은데, 무료 기능이 꽤 쓸 만해서 그런 것 같다.</p>\n<h2 id=\"4\" tabindex=\"-1\">4개월 지난 지금 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p>월 100달러 정도 들어온다.</p>\n<ul>\n<li>유저: 1200명</li>\n<li>유료 유저: 45명</li>\n<li>월 신규 결제: 5-8건</li>\n</ul>\n<p>본업 때려칠 수준은 아니다. 당연히. 그래도 서버비 내고 남으니까 지속 가능하다.</p>\n<p>언제 500달러 될지 모르겠다. 유저가 5000명 정도 되면 가능하려나. 일단 계속 만들면서 본다.</p>\n<h2 id=\"-6\" tabindex=\"-1\">유료화하면서 배운 것 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/6/\">#</a></h2>\n<p><strong>무료로 시작하는 건 괜찮다</strong>: 처음부터 유료면 유저 모으기 어렵다. 무료로 시작해서 가치 증명하고, 그 다음에 유료화.</p>\n<p><strong>기존 기능은 건드리지 않는다</strong>: 무료로 쓰던 기능 갑자기 유료로 바꾸면 반발 심하다. 새 기능을 유료로 추가하는 게 낫다.</p>\n<p><strong>솔직하게 말한다</strong>: &quot;서버비 감당 안 돼서&quot; 이렇게 솔직하게 말하면 이해해준다. 변명 늘어놓으면 더 반감.</p>\n<p><strong>첫 결제가 제일 어렵다</strong>: 0에서 1로 가는 게 제일 힘들다. 한 명이 내면 그 다음부터는 &quot;아 되는구나&quot; 싶어진다.</p>\n<p>$9.99가 별거 아닌 것 같아도, 처음 받았을 때 그 기분은 아직도 기억난다.</p>\n",
			"date_published": "2025-10-01T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/5/",
			"url": "https://ragedaisy.com/articles/5/",
			"title": "6개월 만들다가 반절 쳐내고 2주 만에 출시한 이야기",
			"content_html": "<p>6개월째 만들고 있는 앱이 있었다.</p>\n<p>일일 할 일 관리 앱. 비슷한 거 많은 거 알지만, 내가 원하는 방식으로 동작하는 게 없어서 직접 만들기로 했다. 작년 3월에 시작했다.</p>\n<p>시작할 때는 금방 될 줄 알았다. &quot;한 달이면 되겠지&quot; 싶었다.</p>\n<h2 id=\"\" tabindex=\"-1\">기능이 계속 늘어났다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>처음 기획은 단순했다.</p>\n<ul>\n<li>할 일 추가/삭제</li>\n<li>완료 체크</li>\n<li>날짜별 보기</li>\n</ul>\n<p>이 정도면 2주면 만들 것 같았다. 근데 만들다 보니까 &quot;이것도 있으면 좋겠다&quot; &quot;저것도 넣어야지&quot; 하면서 기능이 늘어났다.</p>\n<ul>\n<li>반복 할 일 기능 추가하자</li>\n<li>태그 기능도 필요하다</li>\n<li>통계 대시보드 있으면 좋겠다</li>\n<li>다크모드 지원해야지</li>\n<li>위젯도 만들자</li>\n<li>알림 기능 필수지</li>\n<li>여러 디바이스 동기화도 해야 하고</li>\n<li>백업/복원 기능도 있어야 하고</li>\n</ul>\n<p>기능 목록이 30개가 넘었다. 만들어도 만들어도 끝이 안 났다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">퇴근 후 코딩의 한계 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>본업이 있으니까 퇴근하고 코딩한다. 하루에 2시간 정도. 주말에는 좀 더 하고.</p>\n<p>처음엔 재밌었다. 한 달 지나니까 좀 지쳤다. 두 달 지나니까 &quot;이거 언제 끝나지&quot; 싶었다. 세 달 넘어가니까 코드 열기 싫어지기 시작했다.</p>\n<p>회사에서 8시간 일하고 와서 또 코딩하는 게 쉽지 않다. 체력도 문제고, 집중력도 문제다. 피곤하면 버그도 많이 만든다. 다음 날 보면 &quot;이걸 왜 이렇게 짰지&quot; 싶은 코드가 있다.</p>\n<p>6개월째 되니까 거의 번아웃이었다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">현타가 왔다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>어느 날 기능 목록 보다가 현타 왔다.</p>\n<p>&quot;이거 다 하려면 1년은 더 걸리겠다.&quot;</p>\n<p>진지하게 계산해봤다. 남은 기능 20개. 기능당 평균 일주일. 5개월. 근데 테스트하고 버그 고치고 하면 1년은 걸린다. 1년 더?</p>\n<p>그러면서 드는 생각. &quot;이거 출시해서 누가 쓸까?&quot; 확신이 없었다. 6개월 만들었는데 검증은 0이다. 아무한테도 안 보여줬다. 내가 쓰려고 만드는 건데, 이미 시중에 있는 앱들로 그냥 쓰면 안 되나?</p>\n<p>포기할까 진지하게 고민했다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">반절 쳐내기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>포기하기 전에 한 번만 다르게 해보자 싶었다.</p>\n<p>기능 목록 다시 봤다. &quot;이거 없으면 앱 의미 없다&quot; 싶은 것만 체크했다.</p>\n<ul>\n<li>할 일 추가/삭제 ✅</li>\n<li>완료 체크 ✅</li>\n<li>날짜별 보기 ✅</li>\n</ul>\n<p>끝.</p>\n<p>반복 할 일? 나중에. 태그? 나중에. 통계? 나중에. 다크모드? 나중에. 위젯, 알림, 동기화? 전부 나중에.</p>\n<p>30개 기능 중에 3개만 남겼다. 90% 쳐냈다.</p>\n<p>쳐내는 게 제일 어려웠다. &quot;이거 없으면 별로인데&quot;라는 생각이 계속 들었다. 근데 출시 안 하면 아무 의미 없다. 기능 많은 미완성보다 기능 적은 완성이 낫다.</p>\n<h2 id=\"2\" tabindex=\"-1\">2주 만에 출시 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>기능 쳐내니까 2주 만에 끝났다.</p>\n<p>핵심 기능은 이미 만들어놨으니까. 정리하고, 버그 잡고, 스토어 준비하는 데 2주. 6개월 삽질하다가 2주 만에 출시하니까 허무하기도 하고.</p>\n<p>앱스토어에 제출했다. 이틀 만에 승인 나왔다. 진짜 나갔다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">출시 후 반응 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p>물론 부끄러웠다.</p>\n<p>다른 앱들이랑 비교하면 기능이 너무 없다. Things, Todoist 같은 거 보면 기능이 수십 개인데 내 건 3개. &quot;이걸 왜 쓰지?&quot; 싶었다.</p>\n<p>근데 일단 냈다.</p>\n<p>의외로 쓰는 사람이 있었다. 첫 주에 다운로드 50개. 많지 않지만 0은 아니다. 리뷰도 달렸다.</p>\n<p>&quot;심플해서 좋아요&quot;\n&quot;딱 필요한 것만 있어서 오히려 좋음&quot;</p>\n<p>기능 없는 게 장점이 될 줄은 몰랐다. 복잡한 거 싫어하는 사람들이 있더라.</p>\n<p>&quot;반복 기능 넣어주세요&quot;라는 요청도 왔다. 그건 그때 가서 넣으면 되는 거다. 진짜 필요한 기능이 뭔지 유저가 알려준다. 내가 상상으로 만드는 것보다 낫다.</p>\n<h2 id=\"-5\" tabindex=\"-1\">배운 것 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/5/\">#</a></h2>\n<p><strong>MVP는 진짜 최소여야 한다</strong></p>\n<p>Minimum Viable Product. 다들 아는 개념인데 실천이 어렵다. &quot;이건 있어야 하지 않나&quot; 싶은 것도 없어도 된다. 진짜 핵심만.</p>\n<p>내 기준: &quot;이거 없으면 앱을 켤 이유가 없다&quot;는 것만 남긴다.</p>\n<p><strong>출시가 시작이다</strong></p>\n<p>6개월 만들면서 유저 피드백은 0이었다. 2주 만에 출시하니까 피드백이 온다. 뭘 원하는지, 뭐가 불편한지. 이게 진짜 정보다.</p>\n<p>만들면서 상상하는 것보다 출시하고 듣는 게 100배 정확하다.</p>\n<p><strong>완벽은 없다</strong></p>\n<p>&quot;조금만 더 다듬으면&quot; &quot;이것만 추가하면&quot; 이러다가 영원히 출시 못 한다. 완벽한 타이밍은 없다. 부끄러워도 낸다.</p>\n<p><strong>6개월 만들다 출시 못한 것보다, 2주 만에 엉성하게라도 출시한 게 백배 낫다.</strong></p>\n<p>지금은 월 다운로드 200개 정도. 대단한 건 아니지만, 실제로 쓰는 사람이 있다. 기능도 조금씩 추가하고 있다. 유저 요청 중에 많이 온 것 위주로.</p>\n<p>아직 갈 길이 멀지만, 최소한 시작은 했다.</p>\n",
			"date_published": "2025-09-20T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/4/",
			"url": "https://ragedaisy.com/articles/4/",
			"title": "구글 검색에 내 사이트가 안 나왔던 이유",
			"content_html": "<p>사이트 만들고 한 달 지났는데 구글에 검색해도 안 나왔다. 사이트 이름 그대로 쳐도 안 나옴.</p>\n<p>&quot;QuickMemo&quot;로 검색하면 내 사이트가 아니라 다른 앱들만 주르륵 나왔다. 내 사이트는 10페이지 넘겨도 없었다. 존재 자체가 없는 것 같았다.</p>\n<p>한참 헤맸다.</p>\n<h2 id=\"google-search-console\" tabindex=\"-1\">Google Search Console을 몰랐다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/4/\">#</a></h2>\n<p>알고 보니 Google Search Console 등록을 안 했더라.</p>\n<p>이게 뭐냐면, 구글한테 &quot;내 사이트 여기 있어요&quot; 하고 알려주는 거다. 등록 안 하면 구글이 내 사이트 존재를 모른다. 정확히는 언젠가 크롤러가 발견하긴 하는데, 몇 달 걸릴 수도 있다.</p>\n<p>기본 중의 기본인데 이걸 몰랐다.</p>\n<p>등록하는 방법:</p>\n<ol>\n<li><a href=\"https://search.google.com/search-console\">Google Search Console</a> 들어간다</li>\n<li>도메인 입력한다</li>\n<li>소유권 확인한다 (DNS에 TXT 레코드 추가하거나, HTML 파일 업로드)</li>\n<li>사이트맵 제출한다</li>\n</ol>\n<pre class=\"language-xml\" tabindex=\"0\"><code class=\"language-xml\"><span class=\"token comment\">&lt;!-- sitemap.xml 예시 --></span>\n<span class=\"token prolog\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>urlset</span> <span class=\"token attr-name\">xmlns</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>http://www.sitemaps.org/schemas/sitemap/0.9<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>url</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>loc</span><span class=\"token punctuation\">></span></span>https://example.com/<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>loc</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>lastmod</span><span class=\"token punctuation\">></span></span>2024-01-15<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>lastmod</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>url</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>url</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>loc</span><span class=\"token punctuation\">></span></span>https://example.com/about<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>loc</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>lastmod</span><span class=\"token punctuation\">></span></span>2024-01-15<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>lastmod</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>url</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>urlset</span><span class=\"token punctuation\">></span></span></code></pre>\n<p>사이트맵은 사이트의 모든 페이지 목록이다. 이걸 제출하면 구글이 어떤 페이지가 있는지 바로 안다. Next.js 쓰면 next-sitemap 패키지로 자동 생성할 수 있다.</p>\n<p>등록하고 사이트맵 제출하고 일주일쯤 지나니까 검색에 뜨기 시작했다. 아직 1페이지는 아니었지만 최소한 존재는 했다.</p>\n<h2 id=\"\" tabindex=\"-1\">메타 태그가 이상했다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/4/\">#</a></h2>\n<p>그 다음 문제. 검색 결과에 제목이랑 설명이 이상하게 나왔다.</p>\n<p>검색해보니까 제목이 그냥 &quot;내 사이트&quot;로 되어 있었다. 개발하면서 임시로 넣어둔 거 그대로 나간 거다. 설명도 없었다. 이러면 아무도 클릭 안 한다.</p>\n<p>메타 태그 제대로 넣어야 한다.</p>\n<pre class=\"language-html\" tabindex=\"0\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>head</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token comment\">&lt;!-- 제목: 뭘 하는 사이트인지 + 사이트명 --></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>title</span><span class=\"token punctuation\">></span></span>무료 메모장 앱 - QuickMemo<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>title</span><span class=\"token punctuation\">></span></span>\n\n  <span class=\"token comment\">&lt;!-- 설명: 150자 내외로 핵심만 --></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta</span> <span class=\"token attr-name\">name</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>description<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>빠르고 간편한 메모장.\n    로그인 없이 바로 사용. 자동 저장으로 잃어버릴 걱정 없이.<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n\n  <span class=\"token comment\">&lt;!-- Open Graph: SNS 공유용 --></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta</span> <span class=\"token attr-name\">property</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>og:title<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>무료 메모장 앱 - QuickMemo<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta</span> <span class=\"token attr-name\">property</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>og:description<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>빠르고 간편한 메모장<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>meta</span> <span class=\"token attr-name\">property</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>og:image<span class=\"token punctuation\">\"</span></span> <span class=\"token attr-name\">content</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://example.com/og-image.png<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>head</span><span class=\"token punctuation\">></span></span></code></pre>\n<p>제목 쓰는 법:</p>\n<ul>\n<li>&quot;뭘 하는 사이트인지 | 사이트명&quot; 형식</li>\n<li>키워드를 앞에</li>\n<li>60자 이내 (넘으면 잘림)</li>\n</ul>\n<p>설명 쓰는 법:</p>\n<ul>\n<li>검색 결과에서 클릭하고 싶게</li>\n<li>핵심 기능, 혜택 위주</li>\n<li>150자 내외</li>\n</ul>\n<p>이거 수정하고 나서 클릭률이 좀 올랐다. 정확한 수치는 모르겠는데 Search Console에서 CTR 보니까 2%에서 4%로 올랐다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">콘텐츠가 없었다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/4/\">#</a></h2>\n<p>메인 사이트만으로는 검색 유입이 한계가 있다.</p>\n<p>내 사이트는 도구 사이트라서 페이지가 몇 개 없었다. 홈, 기능 소개, 가격, 이 정도. 검색 키워드가 다양하지 않으니까 유입 경로가 제한적이다.</p>\n<p>블로그를 시작했다.</p>\n<p>관련 주제로 글 쓰면 그 키워드로 들어오는 사람들이 있다. &quot;메모 정리하는 법&quot;, &quot;생산성 앱 추천&quot;, &quot;노트 앱 비교&quot; 이런 글. 글 하나가 검색 유입 경로 하나를 만든다.</p>\n<p>글 쓸 때 신경 쓰는 것:</p>\n<ol>\n<li>\n<p><strong>키워드 리서치</strong>: 사람들이 뭘 검색하는지 본다. Google 자동완성, 관련 검색어 참고.</p>\n</li>\n<li>\n<p><strong>제목에 키워드</strong>: &quot;메모 앱 추천 2024&quot; 이런 식으로 검색할 만한 제목.</p>\n</li>\n<li>\n<p><strong>내용은 솔직하게</strong>: SEO 글이라고 억지로 키워드 넣으면 이상해진다. 그냥 도움되는 글 쓴다.</p>\n</li>\n<li>\n<p><strong>길이는 1000자 이상</strong>: 너무 짧으면 구글이 가치 없다고 판단한다.</p>\n</li>\n</ol>\n<p>3개월쯤 지나니까 슬슬 검색 유입이 보이기 시작했다. 블로그 글 통해서 들어온 사람이 메인 서비스도 써보고.</p>\n<h2 id=\"-2\" tabindex=\"-1\">현재 상황 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/4/\">#</a></h2>\n<p>월 검색 유입이 1200명 정도.</p>\n<p>대단한 숫자는 아니다. 그래도 광고비 0원에 이 정도면 괜찮다고 본다. 한 번 쓴 글은 계속 유입을 만들어주니까.</p>\n<p>유입 경로 분석:</p>\n<ul>\n<li>직접 접속: 30%</li>\n<li>구글 검색: 50%</li>\n<li>SNS (레딧, 트위터): 15%</li>\n<li>기타: 5%</li>\n</ul>\n<p>검색 유입이 절반이다. SEO 안 했으면 유입이 반으로 줄었을 거다.</p>\n<h2 id=\"seo\" tabindex=\"-1\">SEO 팁 정리 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/4/\">#</a></h2>\n<p><strong>기본 설정</strong>:</p>\n<ul>\n<li>Search Console 등록 (필수)</li>\n<li>사이트맵 제출</li>\n<li>메타 태그 제대로</li>\n</ul>\n<p><strong>페이지 최적화</strong>:</p>\n<ul>\n<li>제목에 키워드</li>\n<li>URL은 짧고 의미 있게 (/about이 /page123보다 나음)</li>\n<li>이미지에 alt 태그</li>\n<li>모바일 최적화 (반응형)</li>\n<li>로딩 속도 (3초 넘으면 이탈률 급증)</li>\n</ul>\n<p><strong>콘텐츠</strong>:</p>\n<ul>\n<li>블로그 운영</li>\n<li>도움되는 글 쓰기</li>\n<li>꾸준히 (월 2-4개)</li>\n</ul>\n<p><strong>주의할 점</strong>:</p>\n<ul>\n<li>키워드 억지로 넣지 않기 (구글이 다 안다)</li>\n<li>복붙 글 쓰지 않기 (중복 콘텐츠 페널티)</li>\n<li>링크 구매 같은 꼼수 쓰지 않기</li>\n</ul>\n<p>SEO는 느리다. 효과 보려면 3-6개월 걸린다. 대신 한 번 올라가면 계속 들어온다. 광고는 돈 끊으면 끝인데, SEO는 복리처럼 쌓인다. 오래 할수록 유리하다.</p>\n",
			"date_published": "2025-09-12T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/3/",
			"url": "https://ragedaisy.com/articles/3/",
			"title": "서버비 월 4달러로 버티는 중",
			"content_html": "<p>AWS 프리티어 끝나고 청구서 왔는데 47달러.</p>\n<p>처음엔 뭔가 잘못된 줄 알았다. 프리티어 쓰고 있었으니까 공짜일 줄 알았는데. 알고 보니 프리티어 1년 지났더라. 가입한 지 벌써 그렇게 됐나 싶었다.</p>\n<p>사이드 프로젝트 수익은 0원인데 서버비가 47달러. 말이 안 됐다.</p>\n<h2 id=\"47\" tabindex=\"-1\">뭐가 47달러였나 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p>AWS 비용 분석을 해봤다.</p>\n<ul>\n<li>EC2 t2.micro: 15달러</li>\n<li>RDS db.t3.micro: 18달러</li>\n<li>S3: 3달러</li>\n<li>데이터 전송: 8달러</li>\n<li>기타: 3달러</li>\n</ul>\n<p>EC2는 24시간 돌리니까 그렇다 치고, RDS가 생각보다 비쌌다. 프리티어 끝나면 제일 작은 인스턴스도 꽤 나온다.</p>\n<p>웃긴 건 내 서비스 일일 활성 유저가 5명이었다는 거다. 5명한테 보여주려고 월 47달러 쓰고 있었다. 유저당 월 9달러꼴이다.</p>\n<h2 id=\"\" tabindex=\"-1\">다 갈아엎었다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p>일단 아키텍처를 다시 생각했다.</p>\n<p>내 서비스가 뭘 하는지 보자. 간단한 CRUD 앱이다. 유저가 데이터 입력하면 저장하고, 조회하면 보여주고. 트래픽? 하루 100 요청도 안 된다. 이걸 위해 EC2 24시간 돌릴 필요가 있나?</p>\n<p><strong>프론트엔드</strong>: Next.js로 만들어놨다. Vercel로 옮겼다. 연결하면 알아서 빌드하고 배포한다. 설정할 것도 없다. GitHub 연동하면 끝.</p>\n<pre class=\"language-bash\" tabindex=\"0\"><code class=\"language-bash\"><span class=\"token comment\"># 이게 끝이다</span>\n<span class=\"token function\">git</span> push origin main\n<span class=\"token comment\"># Vercel이 알아서 빌드하고 배포함</span></code></pre>\n<p>Vercel 무료 범위가 넓다. 월 100GB 대역폭, 서버리스 함수 100만 회 호출. 내 트래픽 수준에서는 평생 무료다.</p>\n<p><strong>백엔드</strong>: 서버리스로 바꿨다. Next.js API Routes 쓰면 백엔드 따로 안 만들어도 된다. 어차피 간단한 CRUD인데 굳이 Express 서버 돌릴 이유가 없었다.</p>\n<p>복잡한 로직이 필요하면 Railway를 쓴다. 월 5달러 크레딧 준다. 내 수준에서는 그 안에서 해결된다. 초과하면 쓴 만큼만 내면 되니까 예측 가능하다.</p>\n<p><strong>데이터베이스</strong>: Supabase 무료 티어. PostgreSQL인데 무료로 500MB까지 준다. 내 데이터 다 합쳐도 10MB도 안 되니까 충분하다.</p>\n<pre class=\"language-javascript\" tabindex=\"0\"><code class=\"language-javascript\"><span class=\"token comment\">// Supabase 쓰는 거 진짜 간단하다</span>\n<span class=\"token keyword\">import</span> <span class=\"token punctuation\">{</span> createClient <span class=\"token punctuation\">}</span> <span class=\"token keyword\">from</span> <span class=\"token string\">'@supabase/supabase-js'</span>\n\n<span class=\"token keyword\">const</span> supabase <span class=\"token operator\">=</span> <span class=\"token function\">createClient</span><span class=\"token punctuation\">(</span>url<span class=\"token punctuation\">,</span> key<span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\">// 데이터 가져오기</span>\n<span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> data <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> supabase\n  <span class=\"token punctuation\">.</span><span class=\"token function\">from</span><span class=\"token punctuation\">(</span><span class=\"token string\">'posts'</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">select</span><span class=\"token punctuation\">(</span><span class=\"token string\">'*'</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token comment\">// 데이터 저장</span>\n<span class=\"token keyword\">await</span> supabase\n  <span class=\"token punctuation\">.</span><span class=\"token function\">from</span><span class=\"token punctuation\">(</span><span class=\"token string\">'posts'</span><span class=\"token punctuation\">)</span>\n  <span class=\"token punctuation\">.</span><span class=\"token function\">insert</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">title</span><span class=\"token operator\">:</span> <span class=\"token string\">'제목'</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">content</span><span class=\"token operator\">:</span> <span class=\"token string\">'내용'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span></code></pre>\n<h2 id=\"-1\" tabindex=\"-1\">현재 비용 구조 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p>지금 월에 나가는 돈:</p>\n<ul>\n<li>Vercel: 0달러 (무료)</li>\n<li>Supabase: 0달러 (무료)</li>\n<li>Railway: 2달러 (크레딧 내에서 해결되는데 가끔 초과)</li>\n<li>도메인: 연 12달러 (월 1달러)</li>\n<li>Cloudflare: 0달러 (무료)</li>\n</ul>\n<p>총 월 3-4달러. 커피 한 잔도 안 되는 돈.</p>\n<p>47달러에서 4달러로. 90% 넘게 줄었다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">각 서비스 장단점 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p><strong>Vercel</strong></p>\n<ul>\n<li>장점: Next.js면 설정 제로. 미리보기 배포 자동 생성.</li>\n<li>단점: 서버리스라서 10초 넘는 작업은 타임아웃. 한국 리전 없어서 좀 느림.</li>\n</ul>\n<p><strong>Supabase</strong></p>\n<ul>\n<li>장점: PostgreSQL 공짜. 인증, 스토리지도 같이 제공. 대시보드 예쁨.</li>\n<li>단점: 무료는 일주일 안 쓰면 일시정지됨. 다시 키면 되긴 하는데 귀찮음.</li>\n</ul>\n<p><strong>Railway</strong></p>\n<ul>\n<li>장점: 배포 쉬움. 도커 지원. DB도 한 번에 붙임.</li>\n<li>단점: 아시아 리전 없음. 한국에서 레이턴시 200ms 정도.</li>\n</ul>\n<p><strong>PlanetScale</strong> (MySQL 쓰면 이것도 좋음)</p>\n<ul>\n<li>장점: 브랜치 기능. DB에 git 같은 개념.</li>\n<li>단점: 무료 티어에서 row 10억 개 제한 있긴 한데 보통 문제 안 됨.</li>\n</ul>\n<h2 id=\"-3\" tabindex=\"-1\">예전에 왜 그랬을까 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p>예전에 EC2에 RDS에 S3에... 뭘 그렇게까지 했는지 모르겠다.</p>\n<p>솔직히 말하면 &quot;제대로 된 아키텍처&quot;를 만들고 싶었던 것 같다. 블로그 글 보면 다들 EC2 쓰고, 로드밸런서 붙이고, RDS 쓰고 그러니까. 그게 &quot;진짜&quot; 배포인 줄 알았다.</p>\n<p>유저 100명도 없으면서 스케일업 걱정하고 있었다. &quot;나중에 유저 늘면 어떡하지?&quot; 나중은 안 왔다. 오히려 서버비 때문에 접을 뻔했다.</p>\n<p>요즘은 이렇게 생각한다. 유저 1000명 될 때까지는 무료 티어로 버텨라. 그 정도 트래픽이면 대부분 무료로 감당된다. 1000명 넘어서 서버비 걱정할 정도면 그때는 수익도 있을 거다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">마이그레이션 팁 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/3/\">#</a></h2>\n<p>AWS에서 Vercel/Supabase로 옮기는 거 어렵지 않다.</p>\n<ol>\n<li>\n<p><strong>DB 먼저 옮긴다</strong>: pg_dump로 백업하고, Supabase에 import. 테이블 구조 같으면 그냥 된다.</p>\n</li>\n<li>\n<p><strong>환경변수 정리한다</strong>: AWS 쓸 때 하드코딩한 거 있으면 다 환경변수로 빼놓는다.</p>\n</li>\n<li>\n<p><strong>API 엔드포인트 바꾼다</strong>: 프론트에서 호출하는 URL만 바꾸면 된다.</p>\n</li>\n<li>\n<p><strong>DNS 바꾼다</strong>: 도메인 연결. Vercel 대시보드에서 하면 쉽다.</p>\n</li>\n</ol>\n<p>나는 토요일 오후에 시작해서 일요일 저녁에 끝냈다. 하루 반 정도 걸렸다. 생각보다 금방이었다.</p>\n<p>지금은 서버비 스트레스 없다. 수익 없어도 그냥 돌릴 수 있으니까. 사이드 프로젝트는 이래야 한다. 돈 안 들어가야 부담 없이 오래 할 수 있다.</p>\n",
			"date_published": "2025-09-05T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/2/",
			"url": "https://ragedaisy.com/articles/2/",
			"title": "3개월 날린 후에 깨달은 것",
			"content_html": "<p>작년에 AI 이메일 요약 앱 만들었다. 3개월 걸렸다. 퇴근하고 매일 2-3시간씩 코딩했다. 주말에는 하루 종일 했다. 진심으로 열심히 만들었다.</p>\n<p>출시하고 보니까 가입자 23명. 거의 다 이탈. 지금 남아있는 활성 유저는 2명인데, 그중 하나는 나다.</p>\n<h2 id=\"\" tabindex=\"-1\">뭐가 문제였을까 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>한참 생각했다.</p>\n<p>기술적으로 문제가 있었나? 아니다. 잘 돌아갔다. GPT API 붙여서 이메일 요약 잘 해줬다. UI도 나름 신경 썼다.</p>\n<p>마케팅을 못 했나? 그것도 아니다. 레딧에 글 올리고, 트위터에 공유하고, Product Hunt에도 런칭했다. 조회수는 꽤 나왔다.</p>\n<p>결국 아무도 원하지 않는 걸 만든 거였다.</p>\n<p>&quot;이메일 너무 많아서 정리하기 힘들다&quot;는 말 주변에서 많이 들었다. 그래서 당연히 수요가 있을 줄 알았다. 근데 막상 만들어서 보여주니까 반응이 시큰둥했다. &quot;그냥 Gmail 자체 기능으로 충분한데?&quot; &quot;스팸 필터랑 검색이면 되지 않나?&quot;</p>\n<p>생각해보면 나도 그랬다. 이메일 많다고 불평은 하는데, 실제로 돈 내고 뭔가 쓸 생각은 없었다. 그냥 투덜대는 거랑 실제로 해결책을 찾는 건 다른 거다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">왜 검증을 안 했을까 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>사실 검증 없이 만든 이유가 있다.</p>\n<p>만드는 게 재밌었다. API 연동하고, UI 만들고, 이것저것 기능 붙이는 게 즐거웠다. &quot;유저 인터뷰&quot; 같은 건 귀찮았다. 모르는 사람한테 연락해서 뭐 물어보는 게 어색하기도 했고.</p>\n<p>그리고 솔직히 자신 있었다. &quot;이 정도면 다들 쓰겠지&quot; 싶었다. 지금 보면 완전 착각이었는데, 그때는 진심으로 그렇게 생각했다.</p>\n<p>코드 짜는 건 혼자 할 수 있지만, 사람들이 뭘 원하는지는 물어봐야 안다. 당연한 건데 왜 그걸 건너뛰었는지 모르겠다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">비싼 수업료 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>3개월이면 대충 200시간 정도다. 시급 2만원으로 계산하면 400만원어치 시간을 날린 거다. 거기다 GPT API 비용, 서버비 합치면 실제로 20만원 넘게 썼다.</p>\n<p>비싼 수업료였다. 근데 이거 겪고 나서 확실히 배웠다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">지금은 이렇게 한다 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>그 뒤로는 만들기 전에 먼저 물어본다.</p>\n<p>1단계: 랜딩페이지부터 만든다.</p>\n<p>Carrd 쓰면 30분이면 만든다. &quot;이런 문제 겪고 있지 않으세요?&quot; &quot;이런 솔루션 나오면 어떨 것 같으세요?&quot; 이런 내용으로 간단하게. 그리고 이메일 수집 폼 하나 넣는다. &quot;런칭하면 알려드릴게요.&quot;</p>\n<pre><code>[문제 설명]\n매일 100통 넘는 이메일. 중요한 거 놓치기 쉽다.\n\n[해결책]\nAI가 자동으로 분류하고 요약해줍니다.\n\n[CTA]\n이메일 남기시면 런칭 시 알려드릴게요 →\n</code></pre>\n<p>2단계: 사람들한테 보여준다.</p>\n<p>레딧 관련 서브레딧에 올린다. &quot;이런 거 만들려고 하는데 어떻게 생각하세요?&quot; 트위터에도 공유한다. 주변 사람들한테도 보여준다.</p>\n<p>3단계: 반응을 본다.</p>\n<p>이메일 10개도 안 모이면 그냥 접는다. 관심이 없다는 거다. 50개 넘게 모이면 그때 만들기 시작한다.</p>\n<p>실제로 이 방식으로 2개 아이디어를 접었다. 랜딩페이지 만들어서 일주일 돌렸는데 이메일 3개밖에 안 모였다. 그냥 포기. 아쉽긴 한데 3개월 날리는 것보다 100배 낫다.</p>\n<h2 id=\"-4\" tabindex=\"-1\">아이디어 검증하는 다른 방법들 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>랜딩페이지 말고도 방법이 있다.</p>\n<p><strong>경쟁 제품 분석</strong>: 비슷한 게 이미 있는지 본다. 있으면 시장이 있다는 뜻이다. 없으면? 시장이 없거나 내가 천재거나 둘 중 하나인데, 보통은 전자다.</p>\n<p><strong>커뮤니티에 질문</strong>: &quot;이런 문제 겪는 사람?&quot; 해보면 반응 온다. 진짜 불편해하는 사람들은 댓글로 신세한탄을 한다. 그런 댓글이 없으면 그닥 불편한 게 아니라는 뜻.</p>\n<p><strong>직접 물어보기</strong>: 주변에 타겟 유저가 있으면 커피 한 잔 사고 물어본다. &quot;이런 문제 있어?&quot; &quot;지금은 어떻게 해결해?&quot; &quot;돈 주고 쓸 의향 있어?&quot; 다섯 명만 물어봐도 감이 온다.</p>\n<p><strong>프리토타입</strong>: 기능 없이 껍데기만 만들어서 반응 보는 거다. 버튼 누르면 &quot;준비 중입니다&quot; 뜨게 해두고, 몇 명이나 누르는지 본다.</p>\n<h2 id=\"-5\" tabindex=\"-1\">지금 생각 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/2/\">#</a></h2>\n<p>3개월 날린 게 억울하냐면, 지금은 아니다. 그때 안 겪었으면 다음에 6개월 날렸을 수도 있다.</p>\n<p>만들고 싶은 욕구를 참는 게 제일 어렵다. 아이디어 떠오르면 바로 코딩하고 싶어진다. 근데 일주일만 참고 검증하면 몇 달 아낄 수 있다.</p>\n<p>요즘은 &quot;이거 만들면 쓸 사람 있을까?&quot;를 매일 생각한다. 대답이 &quot;아마도?&quot;면 만들면 안 된다. &quot;당연하지, 나부터 쓴다&quot;여야 만든다.</p>\n",
			"date_published": "2025-08-28T00:00:00Z"
		}
		,
		{
			"id": "https://ragedaisy.com/articles/1/",
			"url": "https://ragedaisy.com/articles/1/",
			"title": "처음 만든 크롬 확장프로그램으로 유저 847명 모은 이야기",
			"content_html": "<p>Notion을 하루에 열 번은 쓴다. 웹서핑하다 괜찮은 글 보면 클리핑해두는데, 공식 Web Clipper가 영 별로였다. 저장하고 나서 매번 태그 달고, 폴더 옮기고... 이 루틴이 하루에 5번씩 반복되니까 짜증이 났다.</p>\n<p>구체적으로 뭐가 불편했냐면, 클립하면 일단 기본 데이터베이스에 저장된다. 그 다음에 Notion 열어서 그 페이지 찾아서, 태그 달고, 다른 데이터베이스로 옮기고. 이게 매번이다. 저장 버튼 한 번 누르면 끝나야 하는데 왜 이렇게 복잡한지 모르겠더라.</p>\n<p>어느 날 &quot;그냥 내가 만들까?&quot; 싶었다. 확장프로그램은 한 번도 안 만들어봤는데.</p>\n<h2 id=\"\" tabindex=\"-1\">일단 유튜브 튜토리얼부터 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/1/\">#</a></h2>\n<p>유튜브에서 &quot;chrome extension tutorial&quot; 검색해서 30분짜리 영상 하나 봤다. Manifest V3가 뭔지도 몰랐는데, 생각보다 별거 없었다. JSON 파일 하나랑 자바스크립트 몇 줄이면 기본 구조는 끝이더라.</p>\n<pre class=\"language-json\" tabindex=\"0\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"manifest_version\"</span><span class=\"token operator\">:</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Quick Clip for Notion\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"version\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"1.0\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"permissions\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"activeTab\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"storage\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"action\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"default_popup\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"popup.html\"</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre>\n<p>manifest.json이 확장프로그램의 설정 파일이다. 여기서 권한이랑 기본 정보 설정하고, 나머지는 그냥 웹 개발이랑 똑같다. HTML, CSS, JavaScript. 별도로 배울 게 거의 없었다.</p>\n<p>처음에 React 쓸까 하다가 접었다. 팝업창 하나 만드는데 번들러 설정하고, webpack.config.js 만지고 있을 시간에 그냥 바닐라 JS로 후딱 만드는 게 나았다. 어차피 팝업 UI가 복잡할 것도 아니고.</p>\n<h2 id=\"notion-api\" tabindex=\"-1\">Notion API랑 씨름하기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/1/\">#</a></h2>\n<p>진짜 문제는 Notion API였다.</p>\n<p>처음에 OAuth 붙이려고 했다. 유저가 &quot;Notion 연결&quot; 버튼 누르면 자동으로 인증되는 그 흐름. 그런데 OAuth 쓰려면 서버가 필요하다. 콜백 받을 곳이 있어야 하니까. 서버 띄우면 월마다 돈 나가잖아. 사이드 프로젝트인데 적자 보기 싫었다.</p>\n<p>좀 구린 방법을 썼다. 유저가 직접 Integration 토큰을 복붙하는 방식.</p>\n<p>Notion에서 Integration 만들면 토큰이 나온다. 이걸 확장프로그램 설정 화면에 붙여넣으면 저장해뒀다가 API 호출할 때 쓴다. UX는 구린데 서버 비용 0원이니까. 처음 설정할 때만 귀찮고 그 다음부터는 문제없다. 나중에 바꾸지 뭐.</p>\n<pre class=\"language-javascript\" tabindex=\"0\"><code class=\"language-javascript\"><span class=\"token comment\">// 토큰 저장</span>\nchrome<span class=\"token punctuation\">.</span>storage<span class=\"token punctuation\">.</span>local<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">notionToken</span><span class=\"token operator\">:</span> token <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// API 호출할 때 가져오기</span>\n<span class=\"token keyword\">const</span> <span class=\"token punctuation\">{</span> notionToken <span class=\"token punctuation\">}</span> <span class=\"token operator\">=</span> <span class=\"token keyword\">await</span> chrome<span class=\"token punctuation\">.</span>storage<span class=\"token punctuation\">.</span>local<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'notionToken'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n<p>Notion API 문서가 좀 부실하다. 공식 문서 보면 기본적인 건 나오는데, 실제로 쓰다 보면 모르는 게 많이 생긴다. &quot;이 에러 왜 뜨지?&quot; 싶은 게 한두 개가 아니었다. Stack Overflow랑 GitHub Issues 뒤지는 시간이 더 길었던 것 같다.</p>\n<p>데이터베이스에 페이지 추가하는 API가 좀 복잡하다. properties 구조가 타입마다 다 다르다.</p>\n<pre class=\"language-javascript\" tabindex=\"0\"><code class=\"language-javascript\"><span class=\"token comment\">// 텍스트 속성</span>\n<span class=\"token literal-property property\">title</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token literal-property property\">title</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">text</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">content</span><span class=\"token operator\">:</span> <span class=\"token string\">\"페이지 제목\"</span> <span class=\"token punctuation\">}</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// 태그 속성 (multi_select)</span>\n<span class=\"token literal-property property\">tags</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token literal-property property\">multi_select</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"태그1\"</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span> <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"태그2\"</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">// URL 속성</span>\n<span class=\"token literal-property property\">url</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token literal-property property\">url</span><span class=\"token operator\">:</span> <span class=\"token string\">\"https://example.com\"</span>\n<span class=\"token punctuation\">}</span></code></pre>\n<p>이거 파악하느라 3일 정도 걸렸다. 처음엔 구조를 잘못 이해해서 계속 에러 났다.</p>\n<h2 id=\"-1\" tabindex=\"-1\">크롬 웹스토어 출시 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/1/\">#</a></h2>\n<p>개발은 일주일 정도 걸렸다. 퇴근하고 2-3시간씩 했으니까 실제로는 15시간 정도?</p>\n<p>Chrome Web Store 개발자 등록비가 5달러다. 카드 긁고 나니까 뭔가 진지해진 느낌. 진짜 출시하는구나 싶었다.</p>\n<p>스크린샷 준비하는 게 은근 귀찮았다. 스토어에 올리려면 스크린샷이 필수다. 1280x800 사이즈. 그냥 캡처하면 안 예쁘니까 Figma에서 목업 만들었다. 배경 넣고, 텍스트 넣고.</p>\n<p>설명도 써야 한다. 영어로. 한국어만 하면 검색 노출이 안 된다고 해서 영어를 메인으로 쓰고 한국어를 밑에 추가했다.</p>\n<p>제출하고 심사 기다리는 3일이 제일 길었다. 리젝당하면 어쩌나 괜히 긴장했다. 코드에 보안 문제가 있으면 리젝당한다는 글을 봐서. 그런데 그냥 한 방에 통과됨. 별거 없었다.</p>\n<h2 id=\"-2\" tabindex=\"-1\">첫 유저 구하기 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/1/\">#</a></h2>\n<p>출시하고 나니까 좀 허무했다. 스토어에 올라갔는데 아무도 모름. 당연한 건데. 검색해도 안 나온다. 경쟁 확장프로그램들이 수두룩한데 내 건 맨 뒤에 있으니까.</p>\n<p>레딧에 글을 쓰기로 했다.</p>\n<p>r/Notion 서브레딧에 &quot;내가 만든 거 써봐&quot; 이런 식으로 쓰면 바로 묻힌다. 다운보트 맞고 끝이다. 노골적인 홍보글은 다들 싫어한다. 그래서 접근을 바꿨다.</p>\n<p>&quot;Notion으로 웹클리핑 어떻게 하세요?&quot;</p>\n<p>이렇게 시작했다. 내가 웹클리핑할 때 불편했던 점, 여러 방법 시도해본 경험, 지금 쓰는 워크플로우 설명하고. 마지막에 슬쩍 &quot;직접 도구 만들어서 쓰고 있는데 꽤 괜찮다&quot; 정도로 언급.</p>\n<p>댓글에서 몇 명이 &quot;뭔데? 링크 달라&quot;고 해서 공유했다. 그게 첫 유저들. 한 10명 정도?</p>\n<p>그 다음부터는 비슷한 질문 올라오면 댓글로 도움되는 답변 달고, 관련 있으면 자연스럽게 언급하는 식으로 했다. 매일 r/Notion 들어가서 새 글 확인하고. 이게 생각보다 시간이 많이 든다. 하루에 30분씩은 썼던 것 같다.</p>\n<h2 id=\"-3\" tabindex=\"-1\">지금 상황 <a class=\"header-anchor\" href=\"https://ragedaisy.com/articles/1/\">#</a></h2>\n<p>3개월 지난 지금 847명이 설치해서 쓰고 있다. 대박은 아닌데 뿌듯하다.</p>\n<p>레딧에서 종종 &quot;이거 좋다&quot;는 댓글 달릴 때마다 기분 좋다. 버그 리포트 올라오면 스트레스 받긴 하는데, 그래도 쓰는 사람이 있다는 증거니까.</p>\n<p>주간 활성 유저는 200명 정도. 설치하고 안 쓰는 사람이 많긴 하다. 그래도 200명이 매주 내가 만든 걸 쓴다니까 신기하다.</p>\n<p>아직 무료다. 유료 기능 넣을지 고민 중이다. AI로 자동 태그 달아주는 기능 같은 거. 그런데 847명한테 갑자기 돈 내라고 하기가 좀 그래서 일단 더 키우고 생각해봐야지.</p>\n<p>확장프로그램 만드는 거 생각보다 어렵지 않다. 웹 개발 할 줄 알면 일주일이면 기본적인 건 만들 수 있다. 진짜 어려운 건 만든 다음이다. 아무도 안 쓰는 확장프로그램은 많다. 쓰는 사람 모으는 게 더 어렵다.</p>\n",
			"date_published": "2025-08-15T00:00:00Z"
		}
		
	]
}
