@ 스타트업AI 마케팅 솔루션 - 카피클
"AI에게 말하는 법을 몰라도 된다" — 사용자가 프롬프트를 쓴다고 느끼는 순간, 그 서비스는 실패한 것이다.
한 시니어 뒤에 보호자·시설·돌봄제공자가 동시에 있다는 도메인 사실을, 백엔드 모델로 옮긴 8개월 사례.
시니어 돌봄 서비스니까, 시니어 사용자 경험만 잘 설계하면 된다고 생각했다. 백엔드도 그 가정 위에 그려졌다 — 한 사용자가 가입하고, 로그인하고, 서비스를 받고, 알림을 본다. 단일 사용자 모델 한 장이면 충분해 보였다.
실제 서비스를 만들어가며 마주한 현실은 달랐다. 결제하는 사람도, 돌봄을 매칭하는 사람도 보호자였고, 서비스를 받는 사람은 시니어 본인, 돌봄을 수행하는 사람은 시설의 돌봄제공자였다. 결제·매칭·수혜·수행이 모두 다른 사람에게 분포되어 있었고, 단일 사용자 가정으로는 어디에도 들어맞지 않았다.
관찰 노트
한 시니어, 세 사람
보호자·시설·시니어 본인이 같은 데이터를 동시에 본다 — 한 사람이 한 화면을 보는 모델이 아니었다
권한은 사용자가 아니라 역할에 붙는다
결제권·조회권·관리권이 세 자리에 다르게 분포되어 있었다
결제·매칭·수혜가 모두 다른 사람이었다
결제하는 사람도, 돌봄을 매칭하는 사람도 보호자였고, 서비스를 받는 사람은 시니어 본인이었다
권한을 사용자에 붙이는 모델로는 보호자·시설·시니어 본인의 권한이 서로 다르다는 사실을 담을 수 없었다. 권한을 *역할*에 붙이고, 한 시니어의 데이터를 세 자리에서 각자 다른 시야로 접근하도록 모델을 다시 그렸다. Node.js → Spring Boot 3.x 자리는 이 모델 재정의를 동시에 받을 수 있는 정확한 자리였다.
tradeoff구현 복잡도 vs 도메인 정확성
실제 흐름은 — 결제하는 사람도 보호자, 돌봄제공자를 매칭하는 사람도 보호자, 서비스를 받는 사람은 시니어 본인이었다. 한 사용자가 결제·매칭·수혜를 모두 한다는 가정으로는 도메인이 작동하지 않았다. 결제권·매칭권을 보호자 역할에 묶고, 수혜자(시니어)는 결제·매칭 화면에서 분리해 데이터 시야 자체를 다르게 구성했다.
tradeoff단순 사용자 모델 vs 도메인 사실 그대로
Spring Boot 3.x 마이그레이션
8개월
Node.js → Java/Spring · 권한·결제·매칭 모델 재정의 자리
출시 후 3개월
1만 DL
팀 결과
사용자 만족도
4.5 / 5.0
팀 결과 — 운영 단계의 권한·결제·매칭 사고를 흡수
“도메인 사실을 백엔드 모델로 옮기며, 한 시니어 뒤의 세 사람을 모델 안에 들여놓은 8개월.”
시니어 한 명 뒤에 보호자·시설·돌봄제공자가 같은 데이터를 다르게 본다는 도메인 사실을 짚어냄
단일 사용자 모델 위에, 권한은 사용자가 아니라 역할에 붙는다는 도메인 모델을 다시 정의
Node.js → Spring Boot 3.x 자리에서 권한 매트릭스와 결제·매칭 분리를 동시 재설계 (8개월)
출시 후 3개월 1만 DL · 만족도 4.5 (팀 결과) — 운영 단계의 권한·결제·매칭 사고를 흡수
기획·디자인·개발·운영을 한 손에서 통과시킨 결과.





More work