무료 홈페이지 만들기 — 정적 사이트로 공개까지, 카드 등록 없이
무료 홈페이지를 만들어 공개하는 데 카드 등록도, 월 비용도 들지 않습니다. 정적 사이트로 만들면 됩니다. 저는 이 방식으로 사이트를 올려 지금 운영 중인데, 지금까지 나간 비용이 없습니다.
전체 순서는 이렇습니다. 각 단계를 아래에서 자세히 적겠습니다.
1. 완성된 HTML 파일들을 준비합니다 2. 코드 저장소에 올립니다 3. 호스팅에 저장소를 연결합니다 4. 주소가 열리는지 확인합니다
정적 사이트가 뭔가요
방문자가 올 때마다 서버가 페이지를 만들어 주는 방식(워드프레스 같은)이 아니라, 미리 만들어 둔 HTML 파일을 그대로 내려주는 방식입니다.
| 정적 사이트 | 서버가 만드는 방식 | |
|---|---|---|
| 비용 | 무료로 시작 | 서버 대여료 |
| 속도 | 빠릅니다 | 서버 처리 시간이 붙습니다 |
| 보안 | 털릴 것이 적습니다 | 관리자 로그인·DB가 표적이 됩니다 |
| 댓글·회원 | 안 됩니다 | 됩니다 |
| 관리 | 파일을 다시 올립니다 | 화면에서 글을 씁니다 |
블로그·소개 페이지·안내 사이트라면 정적으로 충분합니다. 댓글이나 회원 기능이 꼭 필요하면 이 방식은 맞지 않습니다.
무엇으로 만드나
HTML을 직접 써도 되고, 마크다운으로 쓴 글을 HTML로 바꿔주는 도구를 써도 됩니다. 중요한 건 결과물이 완성된 HTML 파일 묶음이라는 점입니다.
저는 마크다운 원고를 읽어 HTML을 뱉는 스크립트를 직접 만들어 씁니다. 만들어진 폴더는 이런 모양입니다.
out/
├ index.html 대문
├ p/글주소/index.html 글 한 편
├ sitemap.xml 검색엔진용 주소 목록
├ robots.txt 크롤러 안내
└ img/ 이미지
주소마다 index.html 을 두면 내주소/p/글주소/ 로 깔끔하게 열립니다.
어디에 올리나
무료로 쓸 수 있는 정적 호스팅이 여럿입니다. 고를 때 볼 것은 넷입니다.
| 확인할 것 | 왜 |
|---|---|
| 상업적 이용 허용 | 광고를 붙이거나 상품을 안내하려면 약관을 봐야 합니다 |
| 대역폭 한도 | 방문이 늘었을 때 갑자기 막히면 곤란합니다 |
| 카드 등록 여부 | 무료인데 카드를 요구하는 곳이 있습니다 |
| HTTPS 자동 | 요즘은 대부분 무료로 붙여 줍니다 |
상업적 이용 조건은 꼭 확인하세요. 개발 결과물 공개용으로만 무료를 허용하고, 상거래 목적 사이트는 약관에서 제외하는 곳이 있습니다. 나중에 옮기면 주소가 바뀌어서 검색 순위를 처음부터 다시 쌓아야 합니다.
연결하는 법
1. 코드 저장소를 만들고 완성된 HTML 폴더를 올립니다.
2. 호스팅에서 그 저장소를 연결합니다.
3. 빌드 설정에서 빌드 명령을 비웁니다. 이미 완성된 HTML을 올리는 것이라 호스팅이 따로 만들 게 없습니다. 여기에 뭔가 적혀 있으면 빌드가 실패합니다.
4. 출력 폴더에 HTML이 들어 있는 폴더 이름을 적습니다.
5. 배포가 끝나면 주소가 나옵니다.

HTTPS 인증서는 자동으로 붙습니다. 따로 할 일이 없습니다.
저장소는 비공개, 사이트는 공개
이걸 모르면 소스를 통째로 공개하게 됩니다.
저장소를 비공개로 두어도 사이트는 정상적으로 공개됩니다. 호스팅이 저장소를 읽을 권한만 갖고 있으면 됩니다. 실제로 확인해 보면 이렇게 갈립니다.

저장소 주소는 비로그인 상태에서 404 — 존재 자체가 안 보입니다. 사이트는 200 — 누구나 볼 수 있습니다.
원고·스크립트·설정을 남에게 보여줄 이유가 없다면 처음부터 비공개로 만드는 편이 낫습니다. 공개로 만들었다가 나중에 바꿔도, 그사이 복사해 간 것은 되돌릴 수 없습니다.
막혔던 곳 셋
하나. 저장소가 비어 있으면 배포가 실패합니다
증상 — 연결은 됐는데 배포가 계속 실패합니다.
원인 — 저장소에 커밋이 하나도 없으면 호스팅이 가져갈 기준점이 없습니다. 브랜치 자체가 아직 만들어지지 않은 상태입니다.
해결 — README.md 하나라도 먼저 커밋해서 저장소를 초기화합니다. 그다음에 연결합니다.
둘. 비밀 파일이 같이 올라갑니다
증상 — 배포는 잘 되는데, 나중에 보니 설정 파일이 저장소에 들어가 있습니다.
원인 — 접근 토큰·인증 키를 폴더 안에 두고 통째로 올리면 그대로 따라 올라갑니다. 저장소가 비공개여도 위험합니다. 나중에 공개로 바꾸는 순간 노출됩니다.
해결 — .gitignore 를 파일을 만들기 전에 먼저 적어 둡니다. 순서가 반대면 이미 올라간 뒤입니다.
data/
*.json.key
deploy.json
이미 올린 뒤에 지우면 기록에는 남습니다. 그 경우엔 해당 토큰을 폐기하고 새로 발급받는 게 확실합니다.
셋. 올렸다고 사이트가 바뀐 게 아닙니다
증상 — 저장소에는 새 내용이 보이는데, 사이트를 열면 예전 화면입니다.
원인 — 저장소 반영과 사이트 반영은 다른 단계입니다. 호스팅이 새로 빌드해서 전 세계 서버에 뿌리는 데 시간이 걸립니다. 빌드가 실패하면 이전 버전이 그대로 살아 있어서 겉으로는 정상으로 보입니다.
해결 — 배포 성공을 사이트에서 확인합니다. 저는 빌드할 때마다 바뀌는 표시 파일을 하나 만들어 두고, 그 파일이 사이트에서 새 값으로 바뀔 때까지 확인한 뒤에야 성공으로 기록합니다.
{"deployment_id": "매번 달라지는 값", "built_at": "빌드 시각"}
내 손에 있는 값과 사이트가 내주는 값이 같아야 성공입니다.

이걸 안 하면 실패한 배포를 성공으로 착각합니다. 저는 이 확인을 넣기 전에 며칠 지난 내용이 올라가 있는 걸 뒤늦게 발견한 적이 있습니다.
주소는 어떻게 하나
무료 주소는 내이름.호스팅주소 형태로 나옵니다. 그대로 써도 됩니다.
다만 여러 사람이 나눠 쓰는 도메인이라, 검색엔진이 신뢰를 쌓는 데 불리할 수 있다는 이야기가 있습니다. 저는 이게 실제로 영향을 주는지 확인하지 못했습니다. 확인하려면 같은 내용을 자체 도메인에 올려 같은 기간을 비교해야 하는데 아직 안 해봤습니다.
자체 도메인은 연 단위로 저렴하게 살 수 있고, 무료 호스팅에 연결하는 것도 무료입니다. 오래 운영할 사이트라면 처음부터 자체 도메인으로 시작하는 편이 낫습니다. 나중에 바꾸면 주소가 전부 달라집니다.
올린 뒤 확인할 것
| 확인 | 방법 | 정상 |
|---|---|---|
| 사이트가 열리나 | 주소 접속 | 200 |
| HTTPS | 자물쇠 표시 | 경고 없음 |
| 없는 주소 | 아무 주소나 입력 | 404 (200이면 손봐야 합니다) |
| 사이트맵 | 내주소/sitemap.xml |
200 |
| 검색엔진 등록 | 서치콘솔·서치어드바이저 | 사이트맵 제출 |
판정 — 계속 쓴다
비용이 들지 않는데 속도와 안정성은 유료 서버보다 낫습니다. 방문이 갑자기 늘어도 서버가 죽을 걱정이 없습니다. 파일을 내려주기만 하기 때문입니다.
댓글·회원 기능이 필요하면 맞지 않습니다. 그건 다른 방식을 찾아야 합니다. 저는 그 기능이 필요 없어서 계속 쓰고 있습니다.
관리는 손이 좀 갑니다. 글을 쓸 때마다 빌드하고 올려야 합니다. 저는 그 과정을 스크립트로 만들어 두고 버튼 하나로 돌립니다.
직접 하실 분께
하나. 상업적 이용 약관을 고르기 전에 확인합니다. 나중에 옮기면 주소가 바뀝니다.
둘. 저장소는 처음부터 비공개로 만듭니다. 사이트 공개와는 무관합니다.
셋. .gitignore 를 비밀 파일을 만들기 전에 먼저 적습니다.
넷. 배포 성공을 사이트에서 확인합니다. 저장소에 올라간 것만 보고 끝내면 실패한 배포를 성공으로 착각합니다.
다음에는 자체 도메인을 붙여서, 무료 공용 주소와 검색 노출이 실제로 다른지 비교해보려고 합니다. 결과가 나오면 이어서 적겠습니다.