1인 개발자를 위한 효율적인 웹 호스팅 운영 전략: 서브도메인과 DB 분리하기

안녕하세요! 오늘은 호스팅어(Hostinger)를 활용해 하나의 메인 도메인에서 여러 프로젝트(IoT, 게임, 게시판 등)를 효율적으로 관리하는 **’도메인 아키텍처’**와 **’보안 관리’**에 대해 정리해 보려고 합니다.

1. 왜 서브도메인(Subdomain)인가?

메인 도메인 하나에 모든 파일을 때려 넣으면 나중에 유지보수가 지옥이 됩니다. micro2iot.com이라는 메인 땅 위에 별관을 짓는 서브도메인 전략이 필요합니다.

  • 구조화: game., home., api. 처럼 용도별로 주소를 나누면 관리가 명확해집니다.
  • 독립성: 서브도메인 하나가 에러로 멈춰도 메인 블로그(워드프레스)는 안전합니다.
  • 무한 확장: 대부분의 유료 호스팅은 서브도메인 생성이 매우 관대합니다. (최대 100개까지 가능!)

2. 데이터베이스(DB) 분리와 보안의 핵심

주소가 나뉘었다면 데이터가 담기는 그릇(DB)도 나눠야 합니다.

  • 1 프로젝트 = 1 DB: 프로젝트마다 전용 DB를 만드세요. 그래야 백업(Dump)을 받을 때도 필요한 데이터만 깔끔하게 추출할 수 있습니다.
  • 보안 파일의 외부 격리: DB 접속 정보(ID/PW)가 담긴 설정 파일은 반드시 public_html 상위 폴더에 두세요. PHP의 require_once를 이용해 불러오면 소스 코드가 유출되어도 DB는 안전하게 지킬 수 있습니다.

3. 백업은 개발자의 생명선

자동 백업만 믿지 마세요. 큰 업데이트 전에는 반드시 수동 백업을 생활화해야 합니다.

  • 파일 백업: FTP나 관리 패널을 통해 public_html 전체를 압축해서 다운로드합니다.
  • DB 백업: phpMyAdmin의 [내보내기(Export)] 기능을 통해 .sql 파일을 확보하세요.
  • 복구 전략: 워드프레스라면 UpdraftPlus 같은 플러그인을 활용해 구글 드라이브와 연동해두면 사이트가 통째로 날아가도 5분 만에 복구가 가능합니다.

4. 보안 코딩의 표준: SQL Injection 방어

직접 PHP 게시판을 만들 때 가장 중요한 것은 사용자의 입력을 믿지 않는 것입니다.

  • Prepared Statement: $stmt->prepare() 방식을 사용하세요. 사용자가 입력한 데이터가 실행 명령어로 둔갑하는 ‘SQL 인젝션’ 공격을 원천 봉쇄할 수 있습니다.
  • 암호화: 비밀번호는 절대 평문으로 저장하지 마세요. PHP의 표준인 password_hash()password_verify()를 사용하는 것이 현재 가장 안전한 표준입니다.

5. 운영의 팁: 서버 시간과 데이터 수집

홈서버(ESP32 등)와 웹 서버의 시간이 맞지 않아 고생하신 적 있나요?

  • DB 타임스탬프 활용: 기기에서 시간을 보내지 말고, DB에 데이터가 들어오는 순간 서버가 자동으로 시간을 찍게(CURRENT_TIMESTAMP) 만드세요. 서버의 시간은 전 세계 표준(NTP)과 동기화되어 있어 가장 정확합니다.
  • 크롤링의 한계와 대안: 최근 보안 강화로 외부 데이터 수집(로또 번호 등)이 어려워지고 있습니다. 이럴 땐 무리한 크롤링보다는 신뢰할 만한 외부 API를 쓰거나, 전용 관리자 페이지를 만들어 수동으로 데이터를 관리하는 것이 장기적으로 더 안정적입니다.

마치며 서버를 직접 운영한다는 것은 단순히 코드를 올리는 것을 넘어 **’나만의 작은 데이터 센터’**를 가꾸는 일과 같습니다. 오늘 정리한 구조를 바탕으로 더 단단하고 멋진 프로젝트들을 이어가시길 바랍니다!


서브 도메인 생성

https://lab.micro2iot.com

https://api.micro2iot.com

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다