Full-stack Developer

Mojangcam

기획부터 배포까지 혼자 굴려보는 걸 좋아합니다. 지금 이 페이지를 포함해 여덟 개의 서비스를 직접 운영하고 있고, 그중 하나는 실제 사용자를 받는 상용 서비스예요. 전부 Docker 컨테이너로 묶어 라즈베리파이에 올리고, 앞단은 리버스 프록시가 도메인별로 갈라줍니다.

Projects

전부 실제로 떠 있는 서비스입니다. 카드를 누르면 바로 이동해요.

Mojangcam 블로그

blog.jhproject.cloud

직접 코드를 짜고, 서버를 돌리고, 막힌 에러를 해결하며 배운 것을 기록하는 개발·IT 실전 기록 블로그. 디스코드 봇 만들기·파이썬 업무 자동화 연재와 AI 코딩 도구 정리 글을 꾸준히 올려요. 글은 마크다운 파일로 쓰고, 커밋하면 이 라즈베리파이가 알아서 빌드해 배포합니다.

Astro 디스코드 봇 파이썬 자동화 자동 배포

ArkWebShop실서비스

arksurvival.info

ARK 게임서버 운영자를 위한 멀티테넌트 인게임 아이템 상점. 결제하면 RCON으로 게임 서버에 명령이 날아가 아이템이 인게임에서 바로 지급됩니다. 토스 실결제·NICE 본인인증부터 C++ 플러그인 라이센스 발급·인게임 쿠폰까지 붙였고, 라즈베리파이 한 대로 자가호스팅해요.

Django 5 React RCON 연동 Toss Payments Raspberry Pi

NP Studio

studio.jhproject.cloud

마인크래프트 커스텀 몹용 3D 모델과 애니메이션을 브라우저에서 바로 보고 확인하는 도구. .npmodel 파일이나 모델 폴더를 끌어다 놓으면 3D로 돌려 보고 애니메이션을 재생(속도 조절·원하는 순간에서 멈춤)하면서, 앞 방향·부위별 회전 중심점과 이름·히트박스·좌표축을 겹쳐 보고 부위 수·크기·회전 제한과 애니와 부위 이름이 맞는지 자동으로 점검합니다. 설치할 건 없고, 파일은 서버로 올라가지 않고 브라우저 안에서만 처리돼요. 여기서 만든 모델은 우리 서버 플러그인에서 게임에 적용되고, 키프레임 타임라인으로 직접 만들고 고쳐 .npmodel로 저장하는 편집 기능을 곧 붙여요.

three.js WebGL 마인크래프트 브라우저 전용

Pumpkids

pumpkids.jhproject.cloud

공공 관광데이터를 엮어 여행 코스를 추천해주는 서비스. 2026 관광데이터 활용 공모전 웹·앱 구현 부문 출품작으로 만들었습니다. 세션 기반 인증에 LLM 추천을 붙였어요.

Django React PostgreSQL TourAPI LLM

ProjectM

motor.jhproject.cloud

중고 바이크 거래·경매 플랫폼. 매물 등록과 실시간 경매, 딜러 관리, PG 결제까지 붙어 있습니다. WebSocket으로 알림·채팅·접속 상태를 실시간 처리하고, 정산과 집계는 Celery가 백그라운드로 돌려요.

Django REST Channels Celery React 19 Redis

Shoppuda

shop.jhproject.cloud

멀티테넌트 화이트라벨 쇼핑몰. 브랜드 한 줄을 추가하면 새 쇼핑몰이 서는 구조로 만들었습니다. 코드 수정 없이 로고·색·약관·메뉴·정책이 전부 데이터로 갈립니다. 스토어프론트와 관리자를 별도 SPA로 분리했어요.

Django 5 멀티테넌시 pnpm 모노레포 TypeScript Toss Payments

둘러보실 수 있게 데모 계정을 열어뒀습니다.
관리자 admin@shoppuda.local · 일반 user@shoppuda.local
비밀번호는 둘 다 shoppuda1234!

SmartFarm

smartfarm.jhproject.cloud

6축 로봇 팔과 스마트팜 환경을 브라우저에서 관제하는 서비스. 기존 tkinter 시뮬레이터를 웹으로 옮기면서 FK/IK·모터 모델 계산은 파이썬 코드를 그대로 재사용했습니다. 폰 카메라를 WebRTC로 송출해 다른 기기에서 실시간으로 볼 수 있어요.

FastAPI React 19 three.js WebRTC PostgreSQL

Stack

주로 이런 것들로 만듭니다.

Backend

  • Python · Django · Django REST Framework
  • FastAPI · Django Channels (WebSocket) · Celery
  • PostgreSQL · Redis
  • JWT / 세션 인증, PG 결제 연동

Frontend

  • React · TypeScript · Vite
  • three.js · WebRTC
  • TailwindCSS · Framer Motion
  • TanStack Query · Zustand
  • pnpm 워크스페이스 모노레포

Infra

  • Docker · Docker Compose
  • Caddy · nginx (리버스 프록시)
  • Let's Encrypt 자동 인증서
  • Raspberry Pi 5 셀프호스팅

기타

  • Git · GitHub Actions
  • Gunicorn · Daphne
  • pytest · Vitest
  • Linux (Debian / Raspberry Pi OS)

Infrastructure

다섯 개 서비스가 한 대에서 어떻게 갈라지는지. 인증서 발급·갱신은 Caddy가 알아서 합니다.

인터넷  :80 / :443
   │
   ▼
┌───────────┐
│   Caddy   │  TLS 종료 · Host 헤더로 분기 · 인증서 자동 발급
└─────┬─────┘
      │
      ├─ jhproject.cloud             →  소개 페이지 (정적)
      ├─ pumpkids.jhproject.cloud    →  Pumpkids  · Django + React
      ├─ motor.jhproject.cloud       →  ProjectM  · Django + Celery + WebSocket
      ├─ studio.jhproject.cloud      →  NP Studio · 정적 (three.js, 브라우저에서만 처리)
      ├─ shop.jhproject.cloud        →  Shoppuda  · Django + SPA 2개
      └─ shop-admin.jhproject.cloud  →  Shoppuda 관리자

각 스택은 독립된 Docker Compose 프로젝트입니다.
앱 · PostgreSQL · Redis · 백그라운드 워커가 스택마다 따로 돌고,
호스트의 80/443 은 Caddy 컨테이너 하나만 점유합니다.

SmartFarm · ArkWebShop은 각각 별도 장비에서
같은 방식(Docker + 리버스 프록시)으로 돌고 있습니다.