온실 GreenHouse 1
이 글은 온실 GreenHouse 시리즈의 2번째 기록입니다. (총 3개)
오늘 한 일
- 프로젝트 시작 — 앱들이 서로와 블로그를 홍보하는 자체 광고(하우스 광고) 시스템을 별도 프로젝트로 세움
- 이유: 네이티브 앱에선 카카오 애드핏이 승인된 웹 도메인에서만 떠서 광고 자리가 빈다. 그 자리를 내 앱·블로그 홍보로 채운다
- 이름을 정함 — 내부 코드명은 업계 표준 용어인 HouseAd, 사용자에게 보이는 브랜드는 온실(GreenHouse)
- 이유: 앱마다 세계관(꽃·강아지·모래)이 달라도 온실은 억지로 통일하지 않고 자연스럽게 담는다
- 블로그에 얹지 않고 독립 프로젝트로 분리하기로 확정
- 이유: 광고 데이터는 블로그 글이 아니라 여러 앱이 공유하는 인프라다. 분리하면 광고 수정이 블로그 빌드를 안 타서 배포가 가볍고, 나중에 실시간 반영으로 키울 때도 이사할 게 없다
- GitHub repo를 만들고 연결, 폴더·표기를 GreenHouse로 통일
- 광고 데이터 규약(ads.json)을 확정 — 제목 / 부제목 / 이미지 / 클릭 주소 / 노출 대상 / 가중치 / 켜고 끄기 / 노출 기간
- 이유: 앱은 이 파일을 실행할 때 받아 그리기만 하므로, 파일만 고치면 앱 재빌드 없이 광고가 바뀐다
- 배너 편집기(admin.html)를 만듦 — 폼으로 배너를 추가·수정·정렬하고 250×250 미리보기를 보면서 ads.json을 내보냄
- 이유: JSON을 손으로 짜지 않기 위한 도구. 내보내기 전에 주소 형식·ID 중복 같은 실수도 잡아준다
- 첫 광고 데이터를 넣음 — 블로그 홈 텍스트 카드 1건, 카드 기본 크기는 250×250 정사각형으로 확정
- 앱이 데이터를 가져갈 수 있게 CORS 허용 설정(_headers)을 추가
막힌 부분
- 블로그에 얹을지 따로 세울지 판단이 안 섰다
- 해결: 두 방식을 비교해 분리로. 블로그에 얹는 방식의 장점은 초기 설정 몇 분 절약뿐인데, 분리의 장점(가벼운 배포·관심사 분리·실시간 반영으로의 확장 경로)은 운영 내내 지속된다
- 편집기 실동작은 아직 브라우저로 확인하지 못했다
- 남은 것: 문법·데이터 검사만 통과한 상태라 화면과 동작 확인 필요
다음에 할 일
- 편집기를 브라우저에서 확인
- Cloudflare Pages 프로젝트 생성 — 이때 정하는 주소가 앱에 박히는 최종 URL이라 이름을 신중히
- URL 확정 후 KeyBloom에 연동 넘기기 (fetch·배너 렌더·시스템 브라우저 열기)
- 광고에 넣을 앱 목록 정하기