본문으로 건너뛰기

개발언어 VPS 호스팅 — 시작하기

신청 후 첫 SSH 접속까지, 그리고 운영 가이드로 진입하기 전에 알아야 할 모든 것입니다. 이 문서를 끝까지 따라가시면 약 10~20분 안에 자신의 코드가 도메인으로 응답합니다.

💡 요약 정리

  • 개발언어 VPS 호스팅은 프레임워크와 DB를 선택하면 약 10분 안에 nginx · 런타임 · DB · 무료 SSL까지 자동 구성되는 단독 서버입니다.
  • 일반 PaaS와 달리 root SSH 권한이 함께 제공되어 서버 안에서 자유롭게 변경·확장하실 수 있습니다.
  • 한 줄 요약: "자동 구성은 PaaS처럼, 서버 권한은 VPS답게."

섹션내용대상
§1개발언어 VPS 호스팅이란?처음 접하시는 분
§2신청·결제 후 자동 구성 흐름 (~10분)공통
§3SSH 첫 접속 · 환경 확인공통
§4언어 / 프레임워크 / DB 선택 가이드프레임워크 결정 단계
§5첫 배포까지의 표준 흐름코드 업로드 단계
§6도메인 · SSL 연결운영 도메인 보유 시
§7다음 단계 · 핵심 정책 다시 확인공통

1. 개발언어 VPS 호스팅이란?

1-1. 어떤 분께 추천드리는 상품인가요?

  • 사이드 프로젝트나 MVP를 빠르게 띄우고 싶은 개발자
  • nginx · cron · 데몬을 자유롭게 다루고 싶은 분 (PaaS의 한계가 답답한 분)
  • 30~120분의 수동 세팅이 매번 부담스러운 분 (수동 VPS의 한계가 부담인 분)
  • 월정액 고정·사용량 추가 과금 없는 단독 서버를 원하시는 팀

1-2. 무엇이 자동으로 설치되어 도착합니까?

항목자동 설치 내용
OSUbuntu 24.04 LTS
리버스 프록시nginx 1.24 (:80/:443, 보안 헤더 3종, Let's Encrypt 자동)
런타임Python 3.12 / Node.js 24 / OpenJDK 21 (선택한 프레임워크 기준)
프레임워크FastAPI / Django / Spring Boot / NestJS / Express / Next.js (택1)
DBPostgreSQL 17 또는 MariaDB 11.4 (택1)
프로세스 매니저systemd 또는 PM2 (프레임워크별)
보안fail2ban (SSH 5회 실패 → 30분 차단), 보안 헤더
SSL무료 도메인 SSL 자동

2. 신청·결제 후 자동 구성 흐름 (~10분)

2-1. 시점별 흐름

  1. 결제 완료
  2. 0~10분: 서버 프로비저닝 + 자동 구성 진행 (이 시간엔 SSH 접속 불가)
  3. 자동 구성 완료
  4. SSH 접속 가능 — 나의 서비스 관리 > 서버호스팅 관리에서 접속 정보 활성화 확인
주의: 결제 직후 바로 접속하려고 시도하시면 "Connection refused" 또는 timeout이 발생합니다. 약 10분 후 접속 정보 활성화 여부를 먼저 확인해 주세요.

2-2. 결제 시 입력하시는 정보

항목설명
프로젝트명서버 내부에서 디렉토리·서비스 이름 등에 사용 (예: myapp). 변경 불가
프레임워크 · DB 선택6 프레임워크 × 2 DB = 12개 조합 중 1개 선택. 변경 불가
요금제DEV A / B / C / D 중 1개. 상위 변경(업그레이드) 가능, 하위 변경 불가
root 비밀번호고객님이 직접 설정. 카페24에서 보관하지 않으니 안전한 곳에 별도 보관 필수
무료 도메인아이디.mycafe24.com 자동 발급 (SSL 포함)
프레임워크나 프로젝트명은 한번 결정되면 재설치 없이는 변경 불가합니다. 신중하게 선택해 주세요.

3. SSH 첫 접속 · 환경 확인

3-1. SSH 접속

자동 구성 완료 후, 나의 서비스 관리 > 서버호스팅 관리에서 IP/호스트명을 확인하세요. root 비밀번호는 서비스 신청 시 직접 설정하신 값을 사용하시면 됩니다.

ssh root@아이디.mycafe24.com

root 비밀번호는 보안상 카페24에서 보관하지 않습니다. 분실 시 카페24 측에서 확인·재발급이 불가하며, OS 재설치(데이터 초기화)를 통해서만 재설정 가능합니다. 신청 시 입력하신 비밀번호를 안전한 곳에 별도 보관해 주세요.

3-2. 방화벽 허용 IP 확인

처음 접속 시 Connection timeout이 발생하면, 카페24 나의 서비스 관리 > 방화벽관리에서 22번 포트(SSH)에 현재 본인 IP가 허용되어 있는지 확인해 주세요.

서버 내부에서 iptablesufw로 방화벽을 직접 조작하지 마세요. 카페24 방화벽과 충돌하여 SSH 끊김이 발생할 수 있습니다.

3-3. 환경 확인 명령어 (모든 프레임워크 공통)

SSH 접속 후 자동 구성 결과를 확인하는 명령어입니다. 자기 환경에 맞춰 프로젝트명만 바꿔 사용하세요.

확인 항목명령어
서비스 상태 (Python · Java (systemd))sudo systemctl status [프로젝트]
서비스 상태 (Node.js (PM2))sudo -u appuser pm2 status
nginx 상태sudo systemctl is-active nginx
앱 포트 확인 (127.0.0.1만 보여야 정상)`ss -tlnp
웹 응답 확인 (서버 내부)curl -sf http://127.0.0.1:8000/
외부 도메인 응답curl -sI https://아이디.mycafe24.com/
환경변수 파일 (DB 비밀번호 등)sudo cat /etc/[프로젝트]/env
DB 접속 (PostgreSQL)sudo -u postgres psql
DB 접속 (MariaDB)sudo mariadb
디스크 / 메모리df -h · free -h

3-4. 시스템 사용자

서버에는 rootappuser 두 개의 시스템 사용자가 있습니다.

사용자역할비밀번호
root시스템 관리자 (apt, systemctl, nginx 등)신청 시 직접 설정 (카페24 미보관 — 분실 시 OS 재설치 필요)
appuser앱 실행 사용자 (코드 배포·의존성 관리)없음 (SSH 키 미설정)

코드 배포·의존성 추가 등은 sudo -u appuser ... 또는 su - appuser로 위임하여 실행하시면 됩니다.


4. 언어 / 프레임워크 / DB 선택 가이드

4-1. 언어 선택

언어적합한 경우비추천인 경우
Python 3.12API 서버, ML/AI, 데이터 처리, 빠른 프로토타입, 어드민 풀스택동시성 극대화 필요 (대신 FastAPI async)
Node.js 24풀스택 JS/TS, 실시간(웹소켓), SSR React, 프론트와 백 통합CPU 집약적 작업
OpenJDK 21엔터프라이즈 백엔드, 트랜잭션 중심, 대규모 팀, 타입 안정성가벼운 사이드 프로젝트 (메모리 부담)

4-2. 프레임워크 선택

프레임워크언어적합 용도메모리 부담
FastAPIPythonAPI 서버, ML 추론 백엔드, async 워크로드낮음 (DEV A OK)
DjangoPython어드민 포함 풀스택, 콘텐츠 관리, 회원·인증 기본 제공중간 (DEV A·B OK)
NestJSNode.js타입스크립트 풀스택, 마이크로서비스, OOP 친숙한 팀중간 (DEV B 권장)
ExpressNode.js가벼운 API, 미들웨어 자유도, 학습 곡선 낮음낮음 (DEV A OK)
Next.jsNode.jsSSR 웹앱, 풀스택 React, Vercel 외 자체 호스팅높음 (DEV B 이상 권장)
Spring BootOpenJDK엔터프라이즈, 트랜잭션, 대규모 팀높음 (DEV B 이상 권장, 빌드 OOM 주의)

4-3. DB 선택

DB적합
PostgreSQL 17JSON·지리정보·복잡 쿼리·확장 기능에 강함. 개발자 다수 선호. 잘 모르겠으면 이쪽
MariaDB 11.4MySQL 호환, LAMP 친숙, 운영 단순. 기존 MySQL 자산 마이그레이션 시

4-4. 요금제(DEV A/B/C/D) 선택

요금제월정액RAMSSD트래픽추천
DEV A33,000원2GB50GB1.0TB사이드 프로젝트, MVP, 학습
DEV B (권장)66,000원4GB100GB2.0TB스타트업 첫 배포
DEV C132,000원8GB200GB4.0TB사용자 늘어난 운영 서비스
DEV D220,000원16GB400GB6.0TB본격 운영, 트래픽 4TB+

요금제는 상위 변경만 가능, 하위 변경 불가합니다. 처음에는 DEV A 또는 B로 시작하시고 필요할 때 올리시는 것을 권장드립니다.

4-5. 의사결정 한 줄 가이드

상황추천
사이드 프로젝트 + 가벼운 APIFastAPI + PostgreSQL + DEV A
스타트업 첫 백엔드, 어드민 필요Django + PostgreSQL + DEV B
타입스크립트 풀스택NestJS + PostgreSQL + DEV B
React SSRNext.js + PostgreSQL + DEV B
엔터프라이즈 트랜잭션 중심Spring Boot + PostgreSQL + DEV B 또는 C
기존 MySQL 자산 이전(프레임워크 자유) + MariaDB

5. 첫 배포까지의 표준 흐름

자동 구성 완료 후 자신의 코드가 도메인으로 응답할 때까지의 표준 흐름입니다.

5-1. 표준 시퀀스 (8 스텝)

STEP작업참고 명령
1SSH 접속ssh root@아이디.mycafe24.com
2프로젝트명 셸 변수 설정PROJECT_NAME=myapp; export PROJECT_NAME
3자동 구성 결과 확인Python · Java (systemd): sudo systemctl is-active $PROJECT_NAME
Node.js (PM2): sudo -u appuser pm2 status
4자기 코드 업로드git clone / rsync / scp / sftp 클라이언트 중 택1
5의존성 동기화Python: sudo -u appuser uv sync
Node.js: sudo -u appuser pnpm install
Java: sudo -u appuser ./gradlew clean build -x test
6서비스 재시작Python · Java (systemd): sudo systemctl restart $PROJECT_NAME
Node.js (PM2): sudo -u appuser pm2 restart all
7헬스 체크 (서버 내부)FastAPI/Django: curl -sf http://127.0.0.1:8000/
Spring Boot: curl -sf http://127.0.0.1:8080/actuator/health
NestJS/Express/Next.js: curl -sf http://127.0.0.1:3000/
8외부 도메인 응답 확인curl -sI https://아이디.mycafe24.com/

5-2. 첫 배포 전 반드시 알아야 할 위험 5가지

자체 코드를 통째로 업로드하면 자동 구성된 DB · 보안 · systemd 설정이 사라져 서비스가 깨질 수 있습니다.
#위험안전 패턴
1DB 환경변수 참조 깨짐코드에서 os.environ["DATABASE_URL"] (Python) / process.env.DATABASE_URL (Node) / ${DB_URL} (Spring) 패턴 유지
2외부 IP에 listen항상 127.0.0.1만 바인딩
3엔트리 포인트 경로/이름 변경/opt/[프로젝트]/main.py 등 표준 위치 유지
4의존성 동기화 누락업로드 후 uv sync / pnpm install / gradle build 필수
5systemd unit / PM2 ecosystem / env 파일 덮어씀이 세 파일은 절대 업로드 대상 포함 금지

절대 업로드 금지 파일

  • /etc/systemd/system/[프로젝트].service
  • /opt/[프로젝트]/ecosystem.config.js
  • /etc/[프로젝트]/env

자세한 위험 회피 패턴과 3가지 안전 배포 방법은 각 프레임워크 페이지의 §5-A를 참고해 주세요.


5-3. 환영 페이지 → 내 코드로 전환 (필독)

첫 접속 시 표시되는 "서버가 정상 동작 중입니다" 환영 페이지는 Nginx가 /var/www/cafe24-welcome/index.html을 우선 서빙하기 때문입니다. 본인 앱의 / 라우트가 노출되도록 환영 파일 1개만 정리하시면 됩니다.

방법명령
방법 A — 삭제sudo rm /var/www/cafe24-welcome/index.html
방법 B — 백업 후 비활성 (원복 가능)sudo mv /var/www/cafe24-welcome/index.html /var/www/cafe24-welcome/index.html.bak
현재 상태 확인ls /var/www/cafe24-welcome/

상세 운영 안내는 사용 중인 프레임워크별 운영 가이드의 5-C 항목을 참조해 주세요.


6. 도메인 · SSL 연결

6-1. 무료 도메인 (자동)

신청 즉시 아이디.mycafe24.com 자동 발급. SSL이 자동 적용되어 별도 작업 없이 HTTPS 접속이 가능합니다.

https://아이디.mycafe24.com/

6-2. 보유 도메인 연결

STEP작업
1도메인 DNS에서 A 레코드를 본인 공인 IP로 설정 (예: example.com → [공인 IP])
2nginx에 도메인 추가 — /etc/nginx/sites-available/[프로젝트] 편집 (server_name 추가)
3보유 도메인의 HTTPS 적용은 SSL 별도 구매 필요. 카페24 SSL 인증서 구매 후 나의 서비스 관리에서 설치하시면 됩니다.

보유 도메인은 최대 20개까지 연결 가능합니다.


7. 다음 단계

자동 구성 결과 확인 + 첫 배포까지 완료하셨으면, 사용 중인 프레임워크별 운영 가이드로 이동해 주세요.

사용 중인 프레임워크다음 페이지
FastAPIPython > FastAPI 운영 가이드
DjangoPython > Django 운영 가이드
NestJSNode.js > NestJS 운영 가이드
ExpressNode.js > Express 운영 가이드
Next.jsNode.js > Next.js 운영 가이드
Spring BootJava > Spring Boot 운영 가이드

운영 중 nginx 변경, DB 백업, 보안 강화 등은 공통 운영·커스터마이징 페이지를 참조해 주세요. 요금제·SSL·도메인·트래픽 등 일반 문의는 FAQ · 트러블슈팅 페이지를 확인하세요.


핵심 정책 (다시 한 번 확인)

정책한 줄
자동 구성 시간결제 직후 약 10분 후 SSH 접속 가능
설치비설치비 0원
요금제 변경상위만 가능, 하위 불가
무료 SSL무료 도메인 한정 SSL 자동 / 보유 도메인은 SSL 별도 구매 필요
방화벽카페24 [방화벽관리] 메뉴 사용
백업고객 책임 (자동 백업 미제공) / 만료 후 7일 경과 시 데이터 삭제
root 권한제공. 변경은 100% 고객 책임
root 비밀번호신청 시 직접 설정 / 카페24 미보관 / 분실 시 OS 재설치(데이터 초기화)만이 재설정 수단
SSH 끊김 예방별도 SSH 세션 동시 유지 + 변경 전 백업 + 새 세션 재접속 확인 3원칙