DNS RobotDNS Propagation Checker
홈DNS 조회WHOISIP 조회SSL
DNS RobotDNS Propagation Checker

차세대 DNS 검사 도구

개인정보 보호정책이용약관소개블로그문의

DNS 도구

DNS 조회도메인에서 IP로NS 조회MX 조회CNAME 조회모두 보기

이메일 도구

SPF 레코드 확인DMARC 확인DKIM 확인SMTP 테스트 도구이메일 헤더 분석모두 보기

웹사이트 도구

WHOIS 조회도메인 가용성 확인서브도메인 검색CMS 감지기링크 분석모두 보기

네트워크 도구

Ping 도구트레이스라우트포트 확인HTTP 헤더 확인SSL 인증서 확인모두 보기

IP 도구

IP 조회내 IP 주소 확인IP 블랙리스트 확인IP에서 호스트명으로ASN 조회모두 보기

유틸리티 도구

QR 코드 스캐너QR 코드 생성기모스 부호 변환기텍스트를 바이너리로 변환작은 텍스트 생성기모두 보기
© 2026 DNS Robot. 개발: ❤ Shaik Brothers
모든 시스템 정상 운영 중
Made with
Home/Blog/HTTP 401 Unauthorized 오류: 의미와 해결 방법 완벽 가이드

HTTP 401 Unauthorized 오류: 의미와 해결 방법 완벽 가이드

Shaik Vahid2026년 3월 1일10 min read
HTTP 401 Unauthorized 오류 해결 가이드: 인증 실패 원인과 단계별 해결 방법을 보여주는 그림
HTTP 401 Unauthorized 오류 해결 가이드: 인증 실패 원인과 단계별 해결 방법을 보여주는 그림

Key Takeaway

401 Unauthorized 오류는 서버가 인증을 요구하지만 요청에 유효한 인증 정보가 포함되지 않았음을 의미합니다. 방문자의 경우 로그인 정보를 확인하고, 브라우저 캐시를 지우고, 다시 로그인해 보십시오. 개발자의 경우 API 키 또는 토큰을 확인하고, Authorization 헤더 형식을 점검하고, 인증 정보가 만료되지 않았는지 확인하십시오.

401 Unauthorized 오류란 무엇인가?

401 Unauthorized 오류는 서버가 요청된 리소스에 대해 인증을 요구하지만, 요청에 인증 정보가 포함되지 않았거나 제공된 인증 정보가 유효하지 않음을 나타내는 HTTP 상태 코드입니다.

HTTP 사양(RFC 9110, 섹션 15.5.2)에서는 "요청에 대상 리소스에 대한 유효한 인증 자격 증명이 없다"고 정의합니다. 401 응답을 생성하는 서버는 사용할 인증 체계를 나타내는 WWW-Authenticate 헤더를 반드시 포함해야 합니다.

간단히 말해, 서버가 접근을 허용하기 전에 "당신은 누구입니까?"라고 묻고 있는 것입니다. 신원 정보를 제공하지 않았거나, 제공한 신원 정보가 잘못되었다는 의미입니다.

Note

이름과 달리, 401은 인증(신원 증명)에 관한 것이지, 인가(권한 보유 여부)가 아닙니다. HTTP 사양에서도 "Unauthorized"라는 이름이 오해의 소지가 있음을 인정합니다 — 403 Forbidden이 실제 인가 실패를 나타냅니다.

401 오류의 표시 형태

401 오류는 서버, 브라우저, 애플리케이션에 따라 다르게 표시됩니다. 다음은 가장 자주 볼 수 있는 메시지입니다.

  • 401 Unauthorized — 표준 HTTP 응답 메시지

  • HTTP Error 401 – Unauthorized — IIS 및 ASP.NET 애플리케이션에서 자주 보이는 형태

  • 401 Authorization Required — Nginx 기본 오류 페이지

  • Error 401 — 브라우저 주소창에 나타나는 간단한 형태

  • Access Denied: Invalid credentials — 사용자 지정 애플리케이션 오류 페이지

  • Authentication Required — Basic/Digest 인증 시 브라우저 팝업 프롬프트

  • Invalid API Key — REST API 응답에서 자주 보이는 형태

  • Token Expired — JWT 또는 OAuth 토큰 갱신이 필요한 경우

서버가 401을 보내면 대부분의 브라우저는 사용자 이름과 비밀번호를 요청하는 로그인 팝업을 표시합니다. 서버가 토큰 기반 인증(API 등)을 사용하는 경우에는 JSON 응답 본문에 오류가 표시됩니다.

401과 403의 차이점은?

401과 403 상태 코드는 숙련된 개발자도 자주 혼동합니다. 차이는 간단합니다. 401은 "당신이 누구인지 모릅니다"를 의미하고, 403은 "당신이 누구인지 알지만 접근이 허용되지 않습니다"를 의미합니다.

항목401 Unauthorized403 Forbidden
핵심 의미인증 실패 또는 미제공인가 거부
서버의 질문"당신은 누구입니까?""접근 권한이 없습니다"
인증 정보미제공 또는 유효하지 않음유효하지만 권한 부족
재시도로 해결 가능?예 — 올바른 인증 정보를 제공아니오 — 권한이 없습니다
WWW-Authenticate 헤더응답에 필수포함되지 않음
시나리오 예시로그인하지 않고 관리자 패널에 접근뷰어로 로그인 후 게시물 삭제 시도

실용적인 규칙: 올바른 사용자 이름과 비밀번호(또는 API 키)를 제공하면 해결되는 경우 서버는 401을 반환해야 합니다. 사용자가 이미 인증되었지만 해당 리소스에 대한 접근 권한이 없는 경우 서버는 403 Forbidden을 반환해야 합니다.

401 오류의 일반적인 원인

401 오류가 발생하는 원인은 일반 사용자, API 개발자, 서버 관리자 중 어떤 입장인지에 따라 다릅니다. 다음은 가장 자주 발생하는 원인입니다.

  • 잘못된 사용자 이름 또는 비밀번호 — 특히 비밀번호 재설정 후 가장 기본적인 원인

  • 인증 토큰 만료 — JWT 토큰, OAuth 액세스 토큰, 세션 쿠키 모두 만료 시간이 있습니다

  • Authorization 헤더 누락 — 요청에 인증 정보가 전혀 포함되지 않은 경우

  • 유효하지 않은 API 키 — 키가 취소, 교체되었거나 잘못 복사된 경우

  • 잘못된 인증 체계 — 서버는 Bearer 토큰을 기대하지만 Basic 인증이 전송된 경우(또는 그 반대)

  • 클럭 스큐(시간 차이) — 서버와 클라이언트의 시간이 몇 분 이상 차이 나면 JWT 검증이 실패합니다

  • CORS 프리플라이트 헤더 제거 — 브라우저가 프리플라이트 OPTIONS 요청에서 Authorization 헤더를 제거합니다

  • 오래된 브라우저 캐시 — 브라우저가 새로운 인증을 요청하는 대신 캐시된 만료 세션 쿠키를 전송합니다

  • 리버스 프록시 구성 오류 — Nginx 또는 Apache가 백엔드로 전달하기 전에 Authorization 헤더를 제거합니다

  • 속도 제한 또는 인증 정보 취소 — 로그인 실패가 너무 많아 계정이 잠긴 경우

방문자를 위한 401 오류 해결 방법

웹사이트에 접속하려고 할 때 401 오류가 표시되면 거의 항상 로그인 인증 정보와 관련된 문제입니다. 다음 단계를 순서대로 따라 하십시오.

1. 로그인 인증 정보 확인하기

401 오류의 가장 흔한 원인은 단순히 잘못된 인증 정보입니다. 사이트에 로그인 팝업이나 양식이 표시되면 사용자 이름과 비밀번호를 다시 확인하십시오.

흔한 실수: Caps Lock이 켜져 있거나, 이전 비밀번호를 사용하고 있거나(특히 최근 재설정 후), 잘못된 계정으로 로그인하려고 하는 경우입니다. 비밀번호 관리자를 사용하고 있다면 오타를 방지하기 위해 자동 입력 기능을 사용하십시오.

Tip

최근에 비밀번호를 변경한 경우 모든 세션에서 완전히 로그아웃한 다음 새로 로그인하십시오. 일부 사이트에서는 비밀번호를 변경한 후에도 이전 세션이 유지됩니다.

2. 브라우저 캐시 및 쿠키 삭제하기

브라우저가 만료된 세션 쿠키나 캐시된 인증 토큰을 전송하고 있을 수 있습니다. 이를 삭제하면 브라우저가 서버에서 새로운 인증 정보를 요청하게 됩니다.

text
Chrome:  Settings → Privacy → Clear browsing data → Cookies + Cached images
Firefox: Settings → Privacy → Clear Data → Cookies + Cache
Safari:  Settings → Privacy → Manage Website Data → Remove All
Edge:    Settings → Privacy → Clear browsing data → Cookies + Cache

삭제 후 브라우저를 완전히 닫고(탭만 닫지 말고), 다시 열어서 페이지로 이동하십시오. 새로운 로그인 프롬프트가 표시될 것입니다.

3. 시크릿 모드 또는 프라이빗 모드로 시도하기

시크릿(Chrome) 또는 프라이빗(Firefox/Safari) 창에서 URL을 여십시오. 이렇게 하면 캐시된 모든 쿠키, 확장 프로그램, 저장된 인증 정보를 우회합니다.

시크릿 모드에서는 페이지가 작동하지만 일반 브라우저에서는 작동하지 않는다면 캐시된 쿠키나 인증을 방해하는 브라우저 확장 프로그램이 원인입니다. 확장 프로그램을 하나씩 비활성화하여 원인을 찾으십시오.

4. URL 확인하기

올바른 URL에 접속하고 있는지 확인하십시오. 일부 서버는 경로 자체가 잘못된 경우에도 인증이 필요한 경로에 대해 401을 반환합니다. 접근하면 안 되는 제한된 영역에 접근하려고 하고 있을 수 있습니다.

다른 URL에 페이지의 공개 버전이 있는지 확인하십시오. 예를 들어, example.com/admin/은 401을 반환하지만 example.com/은 공개적으로 접근 가능할 수 있습니다.

Warning

위의 해결 방법이 모두 효과가 없다면 사이트 관리자가 인증 방법을 변경했거나 접근 권한을 취소했을 수 있습니다. 계정이 아직 활성 상태인지 사이트 관리자에게 문의하십시오.

개발자를 위한 401 오류 해결 방법

API를 다루는 개발자의 경우 401 오류는 대개 Authorization 헤더, 토큰 형식, 또는 인증 정보의 수명 주기와 관련이 있습니다. 다음은 가장 일반적인 해결 방법입니다.

5. Authorization 헤더 확인하기

개발자가 가장 흔히 범하는 실수는 Authorization 헤더의 형식 오류입니다. 서버의 WWW-Authenticate 응답 헤더가 어떤 인증 체계가 기대되는지 정확히 알려줍니다.

헤더가 요구되는 형식과 일치하는지 확인하십시오. 가장 일반적인 체계는 Bearer(토큰용)와 Basic(Base64로 인코딩된 사용자 이름:비밀번호용)입니다.

bash
# Bearer token authentication (most APIs)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." https://api.example.com/data

# Basic authentication (username:password in Base64)
curl -u "username:password" https://api.example.com/data
# Equivalent to:
curl -H "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=" https://api.example.com/data

# Common mistakes that cause 401:
# Missing "Bearer " prefix:  Authorization: eyJhbGci...  ← WRONG
# Extra space:               Authorization: Bearer  eyJ... ← WRONG
# Wrong scheme:              Authorization: Basic eyJhbGci... ← WRONG

반드시 401 응답의 WWW-Authenticate 헤더를 확인하십시오. 서버가 무엇을 기대하는지 정확히 알 수 있습니다. DNS Robot의 HTTP Headers 도구를 사용하여 전체 응답을 검사할 수 있습니다.

6. API 키 유효성 확인하기

API 키는 여러 가지 이유로 눈에 띄지 않게 작동을 멈출 수 있습니다. 키가 교체되었거나, 연결된 계정이 다운그레이드되었거나, 키가 속도 제한에 도달했거나, 호출하는 엔드포인트와 다른 범위로 설정되어 있을 수 있습니다.

공급자의 대시보드에서 키가 아직 유효한지 확인하십시오. 많은 API(Google, AWS, Stripe)에서는 콘솔에서 직접 키를 테스트할 수 있습니다.

bash
# Test if your API key is valid
curl -I -H "Authorization: Bearer YOUR_API_KEY" https://api.example.com/me
# 200 = key is valid
# 401 = key is invalid or expired
# 403 = key is valid but lacks permission for this endpoint

# Check common API key issues:
# 1. Trailing whitespace in .env file:  API_KEY="abc123 " ← trailing space
# 2. Wrong environment:                 using test key on production
# 3. Missing prefix:                    some APIs need "sk_live_" prefix

7. 토큰 만료 및 갱신 처리하기

JWT 토큰과 OAuth 액세스 토큰은 제한된 수명이 있으며, 일반적으로 15분에서 24시간입니다. 만료되면 새 토큰을 얻을 때까지 모든 API 호출이 401을 반환합니다.

해결 방법은 인증 흐름에 따라 다릅니다. OAuth 2.0은 리프레시 토큰을 사용하여 재인증 없이 새 액세스 토큰을 얻을 수 있습니다. JWT 기반 시스템에서는 일반적으로 새로 로그인해야 합니다.

bash
# Decode a JWT token to check its expiry (works on macOS and Linux)
echo "eyJhbGciOiJIUzI1NiIs..." | cut -d'.' -f2 | base64 -d 2>/dev/null | python3 -m json.tool
# Look for "exp" field — it's a Unix timestamp
# Compare with current time: date +%s

# OAuth 2.0 refresh token flow
curl -X POST https://auth.example.com/token \
  -d "grant_type=refresh_token" \
  -d "refresh_token=YOUR_REFRESH_TOKEN" \
  -d "client_id=YOUR_CLIENT_ID"

Note

서버와 인증 서버 간의 클럭 스큐(시간 차이)로 인해 토큰이 만료된 것으로 나타날 수 있습니다. 유효해야 할 토큰으로 401 오류가 발생하면 서버의 시계가 정확한지 확인하십시오. date -u가 time.is와 몇 초 이내로 일치해야 합니다.

8. CORS 프리플라이트 문제 해결하기

브라우저가 Authorization 헤더를 포함한 교차 출처 요청을 보낼 때 먼저 프리플라이트 OPTIONS 요청을 보냅니다. 브라우저는 이 프리플라이트에서 Authorization 헤더를 자동으로 제거합니다. 서버가 OPTIONS 요청에 인증을 요구하면 실제 요청이 전송되기 전에 401이 반환됩니다.

해결 방법: CORS가 활성화된 엔드포인트에서 인증 없이 OPTIONS 요청을 허용하도록 서버를 구성하십시오.

nginx
# Nginx — allow OPTIONS requests without auth
location /api/ {
    if ($request_method = OPTIONS) {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
        add_header Access-Control-Allow-Headers "Authorization, Content-Type";
        add_header Access-Control-Max-Age 86400;
        return 204;
    }

    # Normal auth for other methods
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

사이트 관리자를 위한 401 오류 해결 방법

방문자나 사용자가 401 오류를 보고하는 경우 서버의 인증 구성에 문제가 있습니다. 다음 항목을 순서대로 확인하십시오.

9. 서버 인증 구성 검토하기

인증이 필요한 경로에만 인증이 활성화되어 있는지 확인하십시오. 흔한 실수는 특정 경로만 로그인이 필요한데 디렉토리 전체나 사이트 전체를 보호하는 것입니다.

Nginx에서는 auth_basic 지시문을 확인하십시오. Apache에서는 AuthType과 Require 지시문을 확인하십시오. Node.js/Express에서는 미들웨어 순서를 확인하십시오 — 인증 미들웨어가 라우트 핸들러 앞에 배치되면 모든 요청이 차단됩니다.

nginx
# Nginx — WRONG: protects everything, including public pages
server {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    # All pages now require login — including your homepage!
}

# Nginx — CORRECT: only protect admin routes
server {
    location / {
        # Public — no auth required
    }
    location /admin/ {
        auth_basic "Admin Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

10. .htaccess 인증 규칙 확인하기

Apache 서버에서는 .htaccess 파일로 특정 디렉토리에 Basic 또는 Digest 인증을 활성화할 수 있습니다. 공개 디렉토리에 AuthType 지시문이 포함된 .htaccess 파일이 있으면 모든 방문자에게 401 로그인 프롬프트가 표시됩니다.

영향을 받는 디렉토리와 모든 상위 디렉토리에 .htaccess 파일이 있는지 확인하십시오 — Apache는 경로의 모든 .htaccess 규칙을 적용합니다.

bash
# Find all .htaccess files with auth rules
find /var/www/html -name '.htaccess' -exec grep -l 'AuthType\|AuthUserFile\|Require valid-user' {} \;

# Example .htaccess that causes 401 for everyone:
# AuthType Basic
# AuthName "Restricted Area"
# AuthUserFile /etc/apache2/.htpasswd
# Require valid-user

# Fix: remove auth lines from public directories,
# or move them to the specific /admin/.htaccess only

11. 리버스 프록시 헤더 제거 문제 해결하기

앱이 Nginx, Apache 또는 로드 밸런서 뒤에 있는 경우 프록시가 백엔드로 요청을 전달하기 전에 Authorization 헤더를 제거할 수 있습니다. 이것은 가장 답답한 401 원인 중 하나입니다. 클라이언트는 올바른 인증 정보를 보내지만 서버가 이를 수신하지 못하기 때문입니다.

프록시 구성에서 Authorization 헤더가 올바르게 전달되고 있는지 확인하십시오.

nginx
# Nginx reverse proxy — pass Authorization header to backend
location /api/ {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Authorization $http_authorization;  # ← Critical!
    proxy_pass_header Authorization;                      # ← Also add this
}

# Apache reverse proxy
<Location /api/>
    ProxyPass http://localhost:3000/api/
    ProxyPassReverse http://localhost:3000/api/
    RequestHeader set Authorization "expr=%{HTTP:Authorization}"  # Pass auth header
</Location>

Warning

Cloudflare와 같은 일부 CDN도 Authorization 헤더를 제거하거나 수정할 수 있습니다. CDN의 문서에서 헤더 전달 설정을 확인하십시오.

HTTP 헤더를 사용한 401 오류 디버깅

401 오류를 진단하는 가장 빠른 방법은 응답 헤더를 검사하는 것입니다. 서버 응답의 WWW-Authenticate 헤더가 어떤 인증 방법이 필요한지 정확히 알려줍니다.

DNS Robot의 HTTP Headers 도구 또는 터미널에서 curl을 사용하여 전체 응답을 확인하십시오.

bash
# Check the WWW-Authenticate header in the 401 response
curl -I https://api.example.com/protected-endpoint

# Typical 401 response headers:
# HTTP/1.1 401 Unauthorized
# WWW-Authenticate: Bearer realm="api", error="invalid_token"
# WWW-Authenticate: Basic realm="Admin Area"
# Content-Type: application/json

# The WWW-Authenticate header tells you:
# - The auth scheme (Bearer, Basic, Digest)
# - The realm (which area is protected)
# - The error reason (invalid_token, expired, etc.)

WWW-Authenticate 헤더를 주의 깊게 확인하십시오. Bearer라고 표시되면 토큰이 필요합니다. Basic이면 사용자 이름과 비밀번호가 필요합니다. error=invalid_token이 포함되어 있으면 토큰은 존재하지만 형식이 잘못되었거나 만료되었습니다. 이 하나의 헤더로 대개 무엇이 잘못되었는지 정확히 알 수 있습니다.

401 오류가 SEO에 영향을 미치는가?

공개 페이지에서 401 오류가 발생하면 SEO에 악영향을 미칩니다. Googlebot이 401을 만나면 페이지를 크롤링할 수 없으며, 결국 색인에서 제거합니다.

그러나 인증이 필요한 페이지(관리자 패널, 사용자 대시보드, API 엔드포인트)에서의 401 오류는 완전히 정상입니다. Google은 이러한 페이지가 보호되어야 한다고 기대하며 사이트에 페널티를 부과하지 않습니다.

문제는 공개적으로 접근 가능해야 하는 페이지에 401 오류가 나타나는 경우입니다. 이는 일반적으로 인증 미들웨어의 구성 오류나 CDN/리버스 프록시가 공개 경로에 잘못 인증을 요구하는 경우에 발생합니다.

Warning

Google Search Console의 페이지 → 색인 생성 안됨 → 권한 없는 요청으로 차단됨(401)에서 Googlebot이 공개 페이지에서 차단되고 있는지 확인하십시오.

401 오류를 방지하는 방법

예방이 나중의 디버깅을 줄여줍니다. 애플리케이션과 웹사이트에서 401 오류를 최소화하기 위해 다음 사항을 실천하십시오.

  • 토큰 자동 갱신 구현 — 리프레시 토큰을 사용하여 만료되기 전에 자동으로 새 액세스 토큰을 얻습니다

  • 적절한 인증 범위 설정 — 진정으로 인증이 필요한 경로만 보호하고 공개 페이지는 열어 둡니다

  • 명확한 오류 메시지 반환 — 상태 코드만이 아닌 유용한 JSON 오류 본문을 401과 함께 반환합니다

  • 인증 실패 모니터링 — 401 응답 급증에 대한 알림을 설정합니다(인증 정보 문제나 공격을 나타낼 수 있음)

  • 서버 시계 동기화 — NTP를 사용하여 모든 서버를 UTC 기준 몇 초 이내로 유지하여 JWT 클럭 스큐 거부를 방지합니다

  • [HTTP Headers 도구](/http-headers)로 테스트 — 공개 페이지가 200을, 보호된 페이지가 예상대로 401을 반환하는지 정기적으로 확인합니다

  • 인증 체계 문서화 — 예상되는 Authorization 헤더 형식을 API 문서에 명확히 합니다

  • CORS 프리플라이트 처리 — API 엔드포인트에서 항상 인증 없이 OPTIONS 요청을 허용합니다

HTTP 응답 헤더를 확인하세요

DNS Robot의 무료 HTTP Headers 도구를 사용하여 모든 URL의 응답 상태, 헤더, WWW-Authenticate 정보를 즉시 검사할 수 있습니다.

Try HTTP Headers

Frequently Asked Questions

401 Unauthorized 오류는 서버가 인증을 요구하지만 요청에 유효한 인증 정보가 포함되지 않았음을 의미합니다. 사용자 이름/비밀번호 또는 API 키를 제공하지 않았거나, 제공한 정보가 잘못되었거나 만료되었을 수 있습니다.

Related Tools

HTTP Headers CheckSSL Certificate CheckDNS LookupPort Checker

Related Articles

403 Forbidden 오류: 의미와 해결 방법 완벽 가이드HTTP 오류 500 Internal Server Error: 원인과 해결 방법HTTP 오류 503 Service Unavailable: 원인과 해결 방법504 Gateway Timeout: 원인과 해결 방법 완벽 가이드ERR_SSL_PROTOCOL_ERROR: 해결 방법 완벽 가이드 (Chrome, Edge, 모든 브라우저)

Table of Contents

  • 401 Unauthorized 오류란 무엇인가?
  • 401 오류의 표시 형태
  • 401과 403의 차이점은?
  • 401 오류의 일반적인 원인
  • 방문자를 위한 401 오류 해결 방법
  • 1. 로그인 인증 정보 확인하기
  • 2. 브라우저 캐시 및 쿠키 삭제하기
  • 3. 시크릿 모드 또는 프라이빗 모드로 시도하기
  • 4. URL 확인하기
  • 개발자를 위한 401 오류 해결 방법
  • 5. Authorization 헤더 확인하기
  • 6. API 키 유효성 확인하기
  • 7. 토큰 만료 및 갱신 처리하기
  • 8. CORS 프리플라이트 문제 해결하기
  • 사이트 관리자를 위한 401 오류 해결 방법
  • 9. 서버 인증 구성 검토하기
  • 10. .htaccess 인증 규칙 확인하기
  • 11. 리버스 프록시 헤더 제거 문제 해결하기
  • HTTP 헤더를 사용한 401 오류 디버깅
  • 401 오류가 SEO에 영향을 미치는가?
  • 401 오류를 방지하는 방법
  • FAQ