포럼 > 개발자포럼

Home made 예약 시스템 개발 / 운영 하기 6
old외노자
7 2025-06-16 05:49   조회 : 1510

50 넘어 캐나다로 넘어와서 개발자로 밥벌이하고 있는 old외노자입니다.

가내 수공업(!)으로 헤어샵 서비스 예약 시스템을 개발하고 운영하고 있습니다. 

이에 대한 간단한 회고차 글을 올려봅니다.

 

아이들도 어느 정도 크고 하니 아내가 뭔가 하고 싶어합니다.

한국에서 딴 미용사 자격증도 있고하니 여기서도 관련 일을 하고 싶어했습니다만,

미용실 스텝으로라도 취업자리를 알아보니 나이 많은 아줌마를 써주는 곳이 없네요.

( 집사람 주장으로는 좀 있다가 독립할 것 같아 보여서 안써준다고도 합니다... 사실인지는 모릅니다 :) 

 

그렇다고 냉큼 하나 차리기에는 월세도 비싸고 위험도도 너무 높고 해서...

고민 끝에 Chair Rent를 하기로 합니다. 

기존 미용실에서 의자 하나를 빌리는 거죠. 대신 손님은 모두 미리 예약된 사람이어야 합니다.

가게 문열고 찾아오는 손님은 모두 기존 미용실 손님이니까요.

 

결국 필요한게 헤어샵 예약 시스템입니다.

한국은 카카오에서 제공하는 뷰티샵 예약 서비스가 일반화 되어있다고 하던데, 이 동네는 마땅한 예약 시스템이 없습니다.


저는 백엔드 개발자이긴 합니다만, 집사람이 저렇게 뭘 해보고 싶다는데 어쩌겠습니까.. 해줘야지.

 

요구 사항은 다음과 같았습니다.

1) Android / iPhone 모두 지원

2) Push나 Sms 알림 기능 필수

3) 사용자 핸드폰 번호 인증 기능 필수

4) 사진 첨부 필수

5) 운영비 최소화

 

집사람은 처음에는 네이티브 앱으로 만들어달라고 하더라고요.

조금 이야기를 나눠보니 굳이 네이티브 앱으로 만들 필요는 없어보여서 SPA 형태로 만들기로 했습니다.

그 다음은 Front Framework을 골라야 했는데, 

조금이라도 써본 vue를 쓸까 잠시 고민했지만, 결국 React를 쓰기로 결정했습니다.

북미지역에서는 Angular와 react가 많이 쓰입니다.

Angular는 회사에서 사용중이기도 해서 이 참에 React를 공부하는셈 치고 사용해보기로 했습니다.

 

화면 설계는 기본적으로 집사람의 요구사항에 따랐습니다만 

최대한 Material UI component를 수정하지 않고 사용할 수 있도록 조율했습니다.

주요 디자인은 우리의 chat GPT 님이 수고해주셨습니다. 

장황하다 싶을만큼 설명을 붙여서 이미지 아이콘이나 로고를 만들어달라고 하면 당장 써먹을 수 있을 수준의 결과물이 나옵니다.

이번 프로젝트의 1등 공신!

이미지 뿐 아니라,  무한 스크롤 같은 손 많이 가고 귀찮은 코드도 copilot plugin의 도움을 받았습니다.

무한 스크롤 관련 코드는 front & Backend 모두  copy & paste만 해서 써도 될 만한 코드를 만들어줬습니다.

편리하기도 하기도 했지만, 초급 개발자들이 살아가기 점점 힘든 세상이 되어가나 싶기도 하더라고요.

 

서버는 손에 익은 Spring을 쓰기로 했습니다. 

물론 스프링이 뭐 좀 할려면 해야 할 것이 많기는 합니다만 그만큼 정형화되어있기도 하니까요.

DB도 가장 일반적인 조합으로 갑니다. Maria DB.

mvn, jdk 17, Spring security + JWT를 사용했습니다.

Batch Job도 quartz 스케쥴러로 모두 단일 WAS에서 처리합니다. 

집계 테이블 업데이트 배치도 있고 사용자들이 올린 사진을 resizing 하는 배치도 있고, 

sms 인증 문자 TTL을 체크하는 배치등이 돌고 있습니다.

좋은 말로는 simple이고 나쁜 말로는 뭔일 생기면 다 죽자죠. :) 


백업은 Synology scheduled task를 이용해서 하루 한번 전체 DB를 백업해서 NAS에 보관하고 있습니다. 

 

다음은 가장 중요한 서버를 어디서 돌릴까였습니다.

AWS ECS free tier를 써볼가 했습니다만 ,  사진 첨부도 해야 하고 DB도 주기적으로 백업해야 하고.... 

항상 돈이 얼마나 나가는지 체크해야 하는 것도 스트레스고 해서..

그냥 Synology NAS에 올리기로 했습니다.

 

개인 계정으로 ECS에 LAMP image 올려두고 까먹고 있다가 한 달뒤 날라든 청구서에 소스라치게 놀란 기억이 있어서인지

AWS는 되도록 안쓰고 싶더라고요.

 

어차피 트래픽이 많이 나올 싸이트도 아니니까요.


뭐 속도도 잘 나오고 현재까지 별 이슈 없이 운영하고 있습니다.

워낙 정형적인 시스템이라 별 문제없이 굴러가고 있습니다.

초기 SSL 설정하는데 삽질을 한참 했습니다. 

DDNS로 운영중이라 Domain Forwarding을 사용했는데 이게 한참 삽질하게 하더라고요 -.-;;

 

배포는 docker private repo를 만들어서 거기에 push하고 synology container manager에서 구동하는 방식입니다.

webpack build 후 spring resouce로 복사하고, 도커 이미지로 만들어서 synology container manager에서 구동시키는 거죠.

제가 방법을 못 찾은 것이겠습니다만, script로 배포하는 방식을 못 찾아서 이미지 업데이트는 ssh 상에서 pull command를 실행시켜줘야 합니다.

 

딱히 서치 엔진에 노출되거나 하는 시스템도 아니고 로컬 서비스여서 GA는 고려하지 않았습니다.

10회 방문시 1회 무료! 와 같은 스템프 시스템도 만들어졌고 머리깍고 재방문할 때쯤 언저리에 SMS도 보내고 있고, 

간단한 월별 매출 통계/그래프, 회원 관리 기능도 있고 해서 서비스를 운영하는데 필요한 기능들은 모두 갖춰졌습니다.

( 물론 Admin 관리 기능를 따로 만들지 않아서 DB를 직접 조작해야 하는 일이 가끔 있습니다만...   )


다 만들고 나니 이번에는 마켓팅이 문제더라고요. 사람들한테 어떻게 알릴것인가가 문제였습니다.

 

처음에는 한인 업소 주소록등에서 전화번호를 크롤링하는 스크립트를 만들어서 홍보 SMS를 보내봤습니다만,

막상 회원 가입률이 1%도 안되어서 이 방식은 더 이상 사용하지 않습니다.

 

결국 한국사람들이 많이 모이는 daum cafe 게시판을 사용하기로 했죠.

업소 홍보 게시판에 글을 써야 하는데 글을 써 올려도 한 시간이면 금방 등록되는 새 글들로 인해 뒷 페이지로 밀립니다.

그렇다고 한 페이지에 동일 업소 홍보 글이 두개 이상되면 사전 경고없이 강퇴 당합니다. 

( 무과금 업주에겐 )아주 빡센 까페죠. 

그래서 또 조그만 앱을 하나 만들게됩니다. 다음 까페 자동 등록 앱이죠.

뭐 별거 없습니다. puppeter를 사용해서 주기적으로 게시판에 글을 쓰는데 , 미리 등록된 글이 있으면 안쓰도록 하는 기능만 있습니다.

로직으로는 어려울 것 전혀 없지만,  네이버 게시판에 비해 다음 게시판이 좀더 까다롭습니다.

첨부 이미지 처리하는 것 때문에 삽질을 좀 해야 했습니다.

 

이렇게 주기적으로 까페 홍보란에 글을 올리고 하니 예약자들이 조금씩 생기더라고요.

 

서비스를 시작한지 이제 3개월차인데 이제 제법 단골 손님들이 생겼습니다.

 

집 사람이 손재주도 있고 센스도 있어서 손님들의 반응도 괜찮고 결정적으로 집 사람의 만족도가 높아요. 

수익은 크지 않더라도 주말에만 일하니 집안일과 병행할 수도 있기도 하고, 

마치 전문직이 된 느낌이라네요.

 

개발자로 살아온지 25년차입니다만 이렇게 인프라 + 화면 설계 + Front + Backend + 마켓팅 + 운영까지 직접 해본건 이번이 처음이어서 저로서도 재밌는 경험이었습니다.

 

이상 Home Made 예약시스템 개발기였습니다.

7 추천하기 다른의견 0 |
목록보기 공유 코멘트작성 코멘트6
옺응중 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사
규민1 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사
요정또비 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사
홍홍홍8 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사
old외노자 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사
컴맹99 다른의견 0 추천 0
| 덧글 점아이콘
  1. 댓글주소복사

욕설, 상처 줄 수 있는 악플은 삼가주세요.