404 에러
404 에러(404 Not Found)는 서버에는 연결됐지만 요청한 주소의 페이지가 없다는 응답이에요. 주소 오타, 지워지거나 옮겨진 페이지, 깨진 링크가 흔한 원인이고, 운영자는 301 연결과 안내 페이지로 해결해요.
목차 보기
404 에러(404 Not Found)는 서버에는 잘 연결됐지만 요청한 주소의 페이지가 없다는 응답이에요. 아파트(서버)는 찾아왔는데 그 호수(페이지)가 없는 상황이에요. 사이트가 죽은 게 아니라 주소가 틀렸거나 페이지가 옮겨진 경우가 대부분이에요.
한눈에 보기
- 4로 시작하는 코드는 "요청 쪽 문제"예요. 404 는 그중 "그런 주소 없어요"예요.
- 흔한 원인은 주소 오타, 지운 페이지, 주소를 바꾸고 연결을 안 해 둔 경우, 다른 곳에 남은 옛 링크예요.
- 운영자는 옛 주소를 새 주소로 301 연결하고, 길 안내가 있는 404 페이지를 두면 돼요.
404 에러는 왜 생겨요?
- 주소 오타 — 대소문자, 하이픈(-) 하나만 틀려도 다른 주소예요.
- 페이지를 지웠어요 — 이벤트가 끝나 내린 페이지 같은 경우예요.
- 주소를 바꿨어요 — 사이트를 새로 만들며 주소 체계를 바꾸고, 옛 주소를 새 주소로 넘겨주지 않았어요.
- 깨진 링크 — 블로그·SNS·검색 결과에 옛 주소가 남아 있어요.
- 서버 설정 실수 — 파일은 있는데 웹 서버가 엉뚱한 폴더를 보고 있어요.
직접 확인해 봤어요
2026년 10월 29일, 퓨쳐인프라 블로그에 없는 주소를 요청했어요.
$ curl -s -o /dev/null -w "%{http_code} %{size_download}B" https://futureinfra.ai/blog/no-such-page-20261029
404 15475B
$ curl -s https://futureinfra.ai/blog/no-such-page-20261029 | grep -o "<title>[^<]*</title>"
<title>글을 찾을 수 없습니다 — FutureInfra</title>
상태 코드는 404 를 그대로 주면서, 사람에게는 15KB 짜리 안내 페이지를 보여 줘요. 이렇게 해야 검색엔진도 "없는 페이지"로 정확히 알아요.
웹 서버 nginx 를 우리 PC 의 도커에 띄워서도 해 봤어요. 따로 꾸미지 않으면 이런 기본 화면이 나와요.
$ curl -s http://127.0.0.1:18924/nothing.html <head><title>404 Not Found</title></head> <center><h1>404 Not Found</h1></center> <hr><center>nginx/1.30.6</center> # 접속 기록(access.log)에는 이렇게 남아요 "GET /nothing.html HTTP/1.1" 404 153 "-" "curl/8.17.0"
원인별 해결 순서
방문자라면 이 순서로 해 보세요.
| 순서 | 할 일 | 이런 경우 해결돼요 |
|---|---|---|
| 1 | 주소창의 주소를 끝까지 다시 보기 | 오타, 링크가 잘려 복사된 경우 |
| 2 | 주소 끝부분을 지우고 상위 주소(첫 화면)로 가기 | 페이지만 옮겨진 경우 |
| 3 | 사이트 안 검색이나 검색엔진에서 제목으로 찾기 | 주소가 바뀐 경우 |
| 4 | 강력 새로고침(Ctrl+F5)·시크릿 창 | 옛날 화면이 캐시에 남은 경우 |
| 5 | 사이트에 문의 | 정말 내려간 페이지인 경우 |
사이트 운영자라면 이 순서로 봐요.
| 순서 | 확인할 것 | 고치는 법 |
|---|---|---|
| 1 | 접속 기록에서 404 가 많은 주소 뽑기 | grep '" 404 ' access.log 로 자주 찍히는 주소부터 |
| 2 | 그 주소가 옛 주소인가 | 새 주소로 301 연결(영구 이동)을 걸어요 |
| 3 | 파일이 서버에 실제로 있나, 웹 서버가 보는 폴더(root)가 맞나 | 경로·대소문자·배포 누락을 고쳐요 |
| 4 | 내 사이트 안에 깨진 링크가 있나 | 링크 검사 도구로 찾아 고쳐요 |
| 5 | 정말 없어진 페이지인가 | 안내가 있는 404 페이지를 보여 주고, 상태 코드는 404 그대로 둬요 |
nginx 설정은 이렇게 해요
# 파일이 없으면 404
location / {
try_files $uri $uri/ =404;
}
# 옛 주소 → 새 주소로 영구 이동(301)
location = /event-2025 {
return 301 /event;
}
# 꾸민 404 페이지 보여 주기(상태 코드는 404 유지)
error_page 404 /404.html;
설정을 바꾼 뒤에는 nginx -t 로 문법을 확인하고 nginx -s reload 로 반영해요.
404 는 검색 순위에 나빠요?
없는 페이지가 404 를 주는 건 정상이라, 그 자체로 사이트 전체 순위가 떨어지지는 않아요. 문제는 두 가지예요. 다른 사이트가 걸어 준 링크가 404 로 끊기면 그 링크의 힘을 잃어요. 그리고 없는 페이지인데 200(정상)을 주는 소프트 404 는 검색엔진을 헷갈리게 해요. 자세한 건 SEO 글을 참고하세요.
다른 오류 코드와는 뭐가 달라요?
| 코드 | 뜻 | 누구 쪽 문제 |
|---|---|---|
| 301 / 308 | 영구 이동 — 새 주소로 자동으로 넘어가요 | 문제 아님 |
| 403 | 있지만 볼 권한이 없어요 | 요청 쪽(권한) |
| 404 | 그런 주소가 없어요 | 요청 쪽(주소) |
| 410 | 있었는데 일부러 영구 삭제했어요 | 요청 쪽(주소) |
| 500 | 서버 안에서 오류가 났어요(500 에러) | 서버 쪽 |
| 502 | 앞 서버가 뒤쪽 앱에게서 제대로 된 답을 못 받았어요(502 에러) | 서버 쪽 |
퓨쳐인프라에서는
퓨쳐인프라 앱 호스팅에 올린 앱이 404 를 낸다면, 앱 로그에서 어떤 주소가 요청됐는지부터 보면 돼요. 가상서버에 nginx 를 직접 깔았다면 위 설정을 그대로 쓸 수 있어요.
도메인을 옮기며 주소가 바뀌었다면 DNS 연결과 301 설정을 같이 챙기세요. 가입하면 2,000원 크레딧이 들어와서 작은 서버로 먼저 실습해 볼 수 있어요.
자주 묻는 질문
404 에러는 제 컴퓨터 문제인가요?
대부분 아니에요. 주소가 틀렸거나 사이트에서 페이지가 없어진 경우예요. 다른 기기에서도 404 면 사이트 쪽 문제예요.
404 와 '사이트에 연결할 수 없음'은 달라요?
달라요. 404 는 서버가 답은 했는데 페이지가 없는 거고, 연결할 수 없음은 서버까지 가지도 못한 거예요(DNS·네트워크 문제).
지운 페이지는 404 와 410 중 뭘 줘야 해요?
둘 다 괜찮아요. 일부러 영구 삭제했다는 뜻을 분명히 하려면 410 을 써요. 비슷한 새 페이지가 있으면 301 이 가장 좋아요.
404 페이지는 어떻게 꾸며요?
"찾는 페이지가 없어요" 안내, 첫 화면 링크, 사이트 검색 칸을 두세요. 상태 코드는 꼭 404 로 둬요.
관련 용어
500 에러 · 502 에러 · SEO · 캐시 · CMS · DNS
이 글의 숫자 출처
- 실측: futureinfra.ai 없는 주소 요청(2026-10-29 23:38 KST), 로컬 도커 nginx 1.30.6-alpine 실습(2026-10-29 23:35 KST)
- 상태 코드 정의: RFC 9110 · MDN — 404
- 검색 영향: Google 검색 센터 — HTTP 상태 코드와 네트워크 오류
- nginx 설정: nginx 공식 문서(core 모듈)
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026-10-29
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: nginx 실습은 우리 PC 의 도커(nginx 1.30.6)에서 한 거예요. 다른 웹 서버(아파치 등)는 설정 문법과 기본 화면이 달라요.
- 이해관계: 퓨쳐인프라 사이트를 예로 들었고, 자사 서비스 안내가 있어요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.