·조회수 227

수강신청 사이트 Tupick 개발

만든 이유

수강신청이 가능한 웹사이트 Tupick을 개발하게 되었다. 개발 기간도 짧을 것 같고, 다양하게 쓰일 것 같아서 가볍게 제작했다.

일정

개발 시작부터 마무리까지 총 1주일이 소요되었다. 서비스 규모에 비해 빠르게 개발을 완료할 수 있었던 가장 큰 이유는 AI의 도움 덕분이다. CURSOR IDE의 Composer 기능을 활용해 코딩의 방향을 지시하는 방식으로 진행하니 개발 시간이 크게 단축되었다.

이 과정에서 CURSOR IDE API 사용 비용으로 약 36달러(기본 구독료 20달러 + 추가 비용 16달러)를 지출했지만, 절약된 시간을 고려하면 충분히 가치 있는 투자였다.

기술스택

SEO가 중요한 서비스가 아니므로 React를 프론트엔드 프레임워크로 선택했다. 개발 생산성을 높이기 위해 TypeScript, TailwindCSS, Vite를 함께 활용했다.

백엔드는 가볍고 성능이 뛰어난 GoMongoDB를 조합해 구축했다.

CI/CD는 GitHub Actions를 이용해 Docker 이미지를 빌드하고, 개인 Harbor 도커 레지스트리에 업로드한 후, 이를 집에 설치한 로컬 서버에서 실행하는 방식으로 구성했다.

AWS를 사용하면 더 편리하겠지만, 비용 부담이 커서 기존 게임용 PC를 초기화한 후 Proxmox 위에 Ubuntu를 설치하고, UPS를 연결해 운영하고 있다.

서비스 소개

아래는 예시로 만든 수강신청 이벤트 화면이다. 각 프로그램마다 정해진 인원을 할당할 수 있으며, 링크를 공유해 참가자들의 신청을 받을 수 있다. 또한, 동시 신청으로 인한 충돌을 방지하는 기능이 포함되어 있어 안정적인 운영이 가능하다.

주최자는 신청 시 받을 데이터 항목을 자유롭게 설정할 수 있어, 다양한 형태의 이벤트에 맞춰 활용할 수 있다. 아래 예시에는 이름만 입력받도록 설정되어 있지만, 이메일, 전화번호 등 추가 정보를 받을 수도 있다.

신청자 목록은 웹 페이지에서 실시간으로 확인할 수 있으며, 엑셀 파일로 다운로드하여 별도로 관리하는 것도 가능하다.

또한, 복제 기능을 활용하면 기존 템플릿을 그대로 복사해 새로운 수강신청을 받을 수 있다. 특히 매주 반복되는 수강신청을 운영해야 하는 경우 매우 유용한 기능이다.

스트레스 테스트 진행

수강신청 사이트는 동시에 많은 사용자가 몰릴 경우 성능 저하가 발생할 수 있다. 이를 확인하기 위해 k6을 이용한 HTTP 스트레스 테스트를 진행했다.

  • 테스트 시나리오: 동시 접속 인원을 100명 → 500명 → 1000명 순으로 증가
  • 결과: 웹사이트가 약간 느려지는 현상은 있었지만, 별다른 오류 없이 정상적으로 작동했다.

추가적인 트래픽 증가에도 안정적인 서비스를 유지할 수 있도록 지속적으로 최적화를 진행할 예정이다.

마무리하며

예전에는 하나의 서비스를 개발하는 데 시간이 훨씬 더 오래 걸렸고, 반복적인 작업에 쉽게 지치는 경우가 많았다. 하지만 AI 기술의 발전 덕분에 이제는 그런 작업들이 훨씬 수월해졌다.

나는 인디 해커(Indie Hacker)로서 여러 서비스를 운영하고 싶은 목표가 있다. 과거에는 높은 서버 비용과 긴 개발 기간이 걸림돌이 되어 쉽게 도전하지 못했지만, 인프라가 준비되고 개발 생산성이 향상되면서 하나씩 장애물이 사라지고 있다.

경제적으로 독립하는 길이 멀어 보였지만, 이렇게 꾸준히 서비스를 만들고 운영하다 보면 그 목표도 점점 가까워질 것이라는 확신이 든다.

김지식
김지식
웹, 앱 개발자입니다.

댓글

댓글을 불러오는 중...