개발 중 · 웹에서 열림생일 선물 서비스2026 웹 공개

개발 중인 서비스 사례

해피버스타운

친구들이 함께 만들어 생일자에게 건네는 픽셀 타운

한 사람이 타운을 열면 친구들이 링크를 타고 들어오고, 그동안 생일자에게는 아무것도 보이지 않습니다. 마을은 빈 터로 시작합니다 — 편지·사진·그림을 남긴 친구마다 그 사람의 나무가 한 그루 서고, 서로의 나무에 물을 주며, 함께 걷고 뛰고 오락기 점수를 모으면 풍선과 꽃길과 조명이 늘어납니다. 같은 시각에 접속할 필요가 없고, 무언가를 남긴 친구는 그 모습으로 타운에 서 있습니다. 생일 0시에 온 마을이 피고, 생일자는 걸어 들어가 편지를 읽으며, 생일자가 본 나무에는 열매가 맺힙니다. 타운마다 생일자의 이름과 포토월, 친구들이 남긴 작은 픽셀 그림 마당이 그 타운의 재료로 놓이고, 타운마다 자기 곡을 자기 악기로 연주합니다. 타운은 생일 당일과 다음 날까지 열려 있다가 마을 연대기 — 자란 날들의 타임랩스와 함께 키운 사람 전원의 명부 — 로 남습니다. 타운마다 공방이 있어, 친구들은 타운에서 주운 코인으로 — 돈이 아니라 — 생일 마을에 장식을 하나씩 남깁니다. 선물이 4·8·12개 모이면 이미 서 있던 장식에도 잎·꽃·리본·불빛이 더해지고, 장식마다 남긴 친구의 이름과 캐릭터가 보입니다. 공개 방문자에게는 이름 없이 보입니다. 선물 전체를 가입 없이 체험할 수 있습니다 — 첫 화면이 열두 타운 전부를 예시 생일로 열고, 그 장면을 찍어 나눌 수 있습니다.

해피버스타운은 아직 개발 중인 서비스입니다. 웹에서는 첫 화면이 모든 타운을 예시 생일로 열어 누구나 가입 없이 걸어 볼 수 있고, 생일자가 공개한 오픈하우스도 웹에서 방문할 수 있습니다. 타운을 열고 친구를 초대해 건네는 실제 선물은 iOS 앱에서 진행되며, 앱은 테스트 중이라 아직 공개 스토어에 없습니다. 예시 속 사람·편지·사진은 실제 고객의 선물이 아닙니다.

서비스 개발 기록

흩어지던 축하가 건네는 타운이 되기까지

메시지로 흘러가 버리던 생일 축하를 가져와, 친구들이 함께 만들어 한 번 건네는 장소로 바꾸면 생일자의 손에 무엇이 남는지 확인하는 제품입니다.

  1. 01관찰과 근거

    스크롤되면 사라지는 축하

    확인한 질문
    단톡방으로 생일을 축하하고 나면 무엇이 남는가?
    내린 판단
    메시지를 더 잘 모아 보여주는 대신, 친구들이 함께 채워 건네는 장소를 만들기로 했습니다.
    판단에 사용한 근거
    축하가 대화 흐름에 섞여 스크롤되면 그날의 흔적은 각자의 기억으로만 남고, 주인공에게 모아서 건넬 형태가 남지 않는다는 관찰에서 시작했습니다.
  2. 02문제와 원칙

    결제가 아니라 참여로 남기는 축하

    확인한 질문
    축하의 크기를 돈으로 재지 않으려면 무엇을 팔지 않아야 하는가?
    내린 판단
    모든 꾸미기 아이템을 영원히 비매품으로 두고 참여 행동으로만 열리게 했습니다.
    판단에 사용한 근거
    무엇이든 살 수 있게 되는 순간 눈에 보이는 신호는 다시 구매력이 되고, 그것이 이 제품이 없애려던 격차였습니다.
  3. 03가설과 범위

    팬덤이 아니라 친구와 가족으로

    확인한 질문
    이 타운의 첫 사용자는 누구여야 하는가?
    내린 판단
    우선 타겟을 아이돌 팬덤에서 친구·가족의 생일파티로 바꾸고, 정원과 비용 설계를 그 규모에 맞췄습니다.
    판단에 사용한 근거
    팬덤 전제에서는 한 파티에 수백 명이 몰리고 특정 날짜에 폭발하지만, 친구·가족은 10~40명이 매일 고르게 흩어집니다. 초대할 관계가 이미 존재한다는 점도 확산 경로를 단순하게 만듭니다.
  4. 04경험과 시스템

    아무도 동시에 접속하지 않아도 완성되는 선물

    확인한 질문
    선물을 만드는 사람들이 한 번도 같은 시각에 있지 않다면 시스템은 무엇을 지켜야 하는가?
    내린 판단
    실시간 서버를 여정에서 빼기로 했습니다. 친구들은 남기는 것을 어떤 순서로든 더하고, 타운은 그 기여로 그려지며, 나간 뒤에도 친구마다 그 모습으로 타운에 남습니다.
    판단에 사용한 근거
    첫 버전은 온디맨드 룸 서버 위의 실시간 파티였고, 마지막 동기 앵커였던 밤 10시 대표 사진은 이미 없앤 뒤였습니다. 선물형이 그 이동을 끝냈습니다 — 준비 과정은 생일자에게 비공개로 남고, 전달은 한 번 일어나며, 일반 방문자는 설치할 것 없이 웹에서 사적인 것이 하나도 없는 오픈하우스를 봅니다.
  5. 05출시와 학습

    아직 한 번의 진짜 선물이 남아 있다

    확인한 질문
    실제 생일 선물을 여기서 건네려면 무엇이 먼저 사실이어야 하는가?
    내린 판단
    세계의 콘텐츠를 더 늘리기보다 실제 선물 하나 — 열고, 채우고, 건네고, 앨범으로 남기는 것 — 를 앞에 두고, 계정은 무엇을 다시 찾게 해 주는가로 가치를 만듭니다.
    판단에 사용한 근거
    웹은 설치할 것 없이 열려 있고 열두 타운 전부를 가입 없이 체험할 수 있으며, 일반 방문자는 어느 오픈하우스든 걸어 볼 수 있습니다. 타운 개설은 앱에서 시작하는데 그 앱은 만들어 사내 확인까지 마쳤으나 어느 스토어에도 올라가 있지 않고, 실제로 건네진 선물이 아직 없어 생일자가 어떻게 받는지에 대해서는 아무것도 주장하지 않습니다.
다음 판단에 사용하는 신호
현재 초점
친구들이 채운 타운이 생일자가 들어섰을 때 선물로 읽히는지
현재 단계
선물 타운이 웹에 열려 있음 · 열두 타운을 가입 없이 체험
다음 판단
실제 선물 하나를 건네 보고, 그다음 스토어 등록

이 항목은 이미 달성한 성과가 아니라, 운영과 검증에서 다음 결정을 내리기 위해 보는 근거입니다.

구현에 사용한 기술

  • TypeScript
  • 캔버스 렌더링
  • Web Audio
  • PWA
  • Capacitor (Android·iOS)

정식 운영 전 남은 조건

  • 실제 생일 선물 하나를 타운 개설부터 남는 앨범까지 통째로 전달해 보기
  • 내가 준비한·마음을 보탠·받은 선물을 내 목록에서 다시 찾을 수 있게 하기 — 계정을 묻는 이유
  • 타운을 열기로 정하기 전에 한두 명의 친구로 완성된 선물을 미리 볼 수 있게 해, 소수 인원으로도 충분하다는 확신 만들기
  • 친구마다 자기 편지·사진·꾸밈이 들어간 장면과 전달 뒤 생일자의 한마디를 이어 주기
  • 타운 개설이 앱에서 시작하므로, Play·App Store 등록 마치기

변경 이력

이 서비스가 달라진 것

이 페이지가 따라잡은 날이 아니라 제품에서 실제로 바뀐 날을 적습니다. 덮어쓰지 않고 한 줄씩 쌓기 때문에, 서비스가 거둬들인 것도 새로 생긴 것 옆에 그대로 남습니다.

  1. 추가

    생일 마을의 장식이 선물과 함께 자라게 했습니다. 선물이 4·8·12개 모이면 이미 있던 장식에도 잎·꽃·리본·불빛이 더해집니다. 타운마다 공방의 상품을 컬러로 보여주고, 설치된 모습과 다 자란 모습을 나란히 비교할 수 있습니다.

  2. 추가

    친구가 남긴 장식마다 이름을 붙였습니다. 생일자가 장식을 누르면 누가 남겼는지와 그때의 캐릭터가 보이고, 같은 목록이 앨범으로 이어집니다. 공개 방문자에게는 이름 없이 풍경만 보입니다.

  3. 추가

    체험하기에서도 사진을 찍습니다. 열두 예시 타운 어디서든 지금 장면을 타운 이름과 날짜가 박힌 폴라로이드 한 장으로 저장하고 나눌 수 있습니다. 가입도 선물도 필요 없습니다.

  4. 추가

    선물이 자라는 마을이 됐습니다. 마을은 빈 터로 시작하고, 편지·사진·그림을 남긴 친구마다 나무가 한 그루 서며, 서로 물을 주어 키웁니다. 함께 움직이고 오락기 점수를 모으면 풍선과 꽃길이 늘고 명당에 심을 열쇠가 생깁니다. 생일 0시에 온 마을이 피고, 다음 날 밤 마을이 멈추면 연대기 — 타임랩스와 키운 사람 전원의 명부 — 가 남습니다.

  5. 추가

    타운마다 한 사람을 위한 전시가 생겼습니다 — 그 타운의 재료로 쓴 생일자의 이름, 포토월, 친구들이 한 줄을 붙여 남기는 작은 픽셀 그림 마당. 광장에서 시작해 지금은 열두 타운 전부에 있고, 작품은 앨범에 남습니다.

  6. 추가

    열두 타운이 저마다 생일 노래에서 나온 자기 곡과 자기 악기를 갖게 됐습니다 — 파리는 아코디언, 서울은 가야금, 놀이동산은 회전목마 오르간. 맵 안의 연주자에게 다가가면 그 자리의 음악이 앞으로 나오고, 곡 사이에는 음악이 쉽니다.

  7. 추가

    오락기의 세 게임 — 달리기, 케이크 쌓기, 초 꽂기 — 을 다시 짰습니다. 한 판 안에서 난이도가 올라가고, 끝나면 다음에 무엇을 해 볼지 알려 주며, 셋을 하나의 오락실 풍경으로 새로 그렸습니다.

  8. 추가

    놀이동산의 링 던지기를 진짜로 던지게 했습니다. 링 셋, 좌우로 오가는 표시, 그리고 말뚝에 걸리거나 튕겨 나가는 링. 걸린 링은 한 마디와 함께 부스 앞 더미에 쌓입니다.

  9. 추가

    바닷가 체험 타운에 길동무가 생겼습니다. 곁을 따라 걸으며 바다·모래밭·광장을 소개하고, 지도에서 다시 부를 수 있습니다. 지금은 바닷가에만 있습니다.

  10. 추가

    지도에 아래 절반이 생겼습니다. 전체 화면 타운 지도 아래로 이 타운이 어떤 곳인지, 지금까지 무엇이 쌓였는지 — 편지·사진·꾸밈·친구 — 와 즐길 거리 목록이 이어지고, 한 줄을 누르면 캐릭터가 그리로 뛰어갑니다.

  11. 추가

    별자리 그리는 방식이 바뀌었습니다. 하늘에 자유롭게 긋는 대신 별을 짚고 다른 별로 끌면 그 사이에 선이 걸리고, 지나간 별에는 불이 켜지며, 남는 것은 어느 별을 이었나뿐입니다.

  12. 추가

    가입 없는 체험이 세 타운에서 열두 타운 전부로 열렸습니다. 체험자는 생일자의 자리에 서고, 타운에 선 친구들이 말을 겁니다.

  13. 철회

    타운을 여는 방식으로서의 실시간 파티를 거두었습니다. 새 타운은 친구들이 각자의 시간에 채워 한 번 건네는 선물이고, 실시간 룸 서버는 이미 열린 파티와 앨범을 읽을 수 있게 남겨 두는 용도로만 남습니다.

  14. 철회

    다 같이 있어야 찍히던 밤 10시 대표 사진을 없앴습니다. 제품에서 «같은 시각에 접속하라»를 요구하던 마지막 자리였습니다.

  15. 추가

    대신 찍는 순간이 없는 사진을 두었습니다. 하루 중 아무 때나 광장의 빈 칸을 채우고 포즈를 고르면 채운 사람에게 폴라로이드가 한 장 나오고, 그날의 사진은 자정에 스스로 완성됩니다.

  16. 추가

    놀이동산·야구장·영화관·동물원·콘서트 타운이 열려 타운이 열두 곳이 되었습니다. 지금은 걸어볼 수 있고, 이 타운으로 파티를 여는 문은 아직 잠겨 있습니다.

  17. 추가

    파티 다음 날 같은 초대 링크가 앨범을 엽니다. 표지는 그 파티가 그린 그림입니다.

  18. 추가

    기념품이 타운의 도구가 됐습니다. 주우면 바로 손에 들리고 그 타운에서만 되는 일을 합니다 — 바다는 서핑보드로 타고, 눈밭은 스키로 달리고, 연은 걸을수록 오릅니다. 둘째부터는 곁 사람에게 건넵니다.

  19. 추가

    축하를 남기는 자리 넷의 첫 동작이 글칸이 아니라 손짓이 됐습니다 — 걸고, 꾹 눌렀다 놓아 보내고, 타이밍 맞춰 쌓고, 건넵니다. 글은 그다음 차례가 됐습니다.

  20. 추가

    밤이 되면 촛불·네온·전구가 하늘과 함께 눌리지 않고 제 색으로 빛납니다.

  21. 추가

    초대장 카드 안에 타운이 들어왔습니다. 받은 사람이 어디로 가는지 카드 한 장으로 봅니다.

  22. 추가

    첫 화면부터 타운까지 전 화면을 어둡게 하는 스위치가 생겼습니다. 초대장·기념 카드·사진처럼 밖으로 나가는 물건은 밝은 판 그대로입니다.

  23. 추가

    타운마다 두 번째 색이 생겨, 같은 타운을 다른 계절처럼 볼 수 있습니다.

  24. 추가

    오락기에 세 번째 게임이 들어왔습니다 — 달리기와 케이크 쌓기에 이어, 돌아가는 케이크에 초 꽂기.

  25. 추가

    케이크가 다 차면 초가 광장으로 번져 촛불 화환이 됩니다. 다 채우는 것이 끝이 아니라 다음을 여는 일이 됐습니다.

  26. 추가

    v1.0 — 생일자의 시간대를 따르는 낮·밤과 계절, 살아있는 NPC, 손님이 함께 놓는 장식, 그리고 오디오 파일 없이 그 자리에서 합성하는 소리.

지금 의견을 듣고 싶은 질문

여럿이 함께 생일 선물 하나를 준비할 때, 생일자에게 무엇이 닿아야 제대로 건넸다고 느껴지고 반대로 무엇이 허전하게 만드나요?

의견 남기기