윈도우 파일 경로가 너무 길면(260자 초과) 오류가 발생하는 이유: MAX_PATH 한계와 유니코드 확장 경로(\?) 우회법
윈도우 파일 경로 길이 제한의 원리와 해결 전략
컴퓨터를 사용하다 보면 가끔 파일을 복사하거나 이동할 때 ‘대상 파일 경로가 너무 깁니다’라는 경고창을 마주하게 됩니다. 분명히 하드디스크 용량은 넉넉하고 권한 문제도 없는데, 왜 이런 오류가 발생하는 것일까요? 이는 윈도우 운영체제의 뿌리 깊은 설계 역사와 밀접한 관련이 있습니다. 이 가이드를 통해 260자라는 경로 제한의 비밀과 이를 손쉽게 해결하는 실무적인 방법을 상세히 알아보겠습니다.
윈도우에서 260자 제한이 존재하는 이유
윈도우 운영체제에서 파일 경로의 최대 길이는 전통적으로 260자로 설정되어 있습니다. 이를 전문 용어로 MAX_PATH라고 부릅니다. 이 제한은 과거 MS-DOS 시절부터 내려온 관습이자 하위 호환성을 유지하기 위한 기술적 제약입니다. 윈도우 API는 파일 시스템과 통신할 때 고정된 크기의 버퍼를 사용하도록 설계되었는데, 이 버퍼의 크기가 260자였기 때문에 프로그램들이 그 이상의 경로를 처리하지 못하는 상황이 발생합니다.
구체적으로 260자에는 드라이브 문자(예: C:), 역슬래시(\), 폴더 이름, 파일 이름, 그리고 마지막의 널 종료 문자(Null terminator)가 모두 포함됩니다. 따라서 실제 파일 이름은 260자보다 훨씬 짧아야 합니다. 현대의 운영체제는 훨씬 긴 경로를 처리할 수 있는 성능을 갖췄지만, 수십 년 된 소프트웨어와의 호환성을 위해 여전히 이 제한을 기본값으로 유지하고 있습니다.
경로 제한이 발생하는 흔한 상황
이 문제는 주로 다음과 같은 상황에서 빈번하게 발생합니다.
- 깊은 폴더 구조: 폴더 안에 폴더를 계속 생성하여 계층 구조가 매우 깊어질 때
- 웹에서 다운로드한 프로젝트: 개발 관련 소스 코드를 복사할 때 폴더 이름이 길고 계층이 복잡한 경우
- 데이터 백업: 클라우드 서비스나 외장 하드에서 데이터를 복구할 때 경로가 길어지는 현상
- 압축 파일 해제: 긴 이름의 폴더 안에 긴 이름의 파일이 들어있는 압축 파일을 풀 때
유니코드 확장 경로를 이용한 우회 방법
윈도우는 이러한 제한을 넘어서기 위해 유니코드 확장 경로(Extended-length path) 기능을 제공합니다. 경로 앞에 특정 접두사를 붙임으로써 운영체제에게 “이 경로는 260자 제한을 무시하고 처리해라”라고 명령하는 방식입니다.
UNC 경로 접두사 사용법
경로 시작 부분에 \\?\를 붙이면 윈도우 API는 260자 제한을 해제하고 최대 약 32,767자까지의 경로를 인식할 수 있습니다. 예를 들어, C:\Users\Documents\VeryLongFolder\...와 같은 경로라면 이를 \\?\C:\Users\Documents\VeryLongFolder\... 형태로 변경하여 사용하면 됩니다. 다만, 이 방식은 모든 프로그램에서 지원하는 것은 아니며, 주로 탐색기나 명령 프롬프트, 파일 복사 도구에서 유효하게 작동합니다.
윈도우 10 및 11에서 제한을 영구적으로 해제하기
최신 윈도우 버전에서는 레지스트리 편집을 통해 이 제한을 시스템 차원에서 해제할 수 있습니다. 이를 통해 더 이상 260자 경고를 보지 않아도 됩니다.
- 윈도우 키 + R을 누르고
regedit을 입력하여 레지스트리 편집기를 실행합니다. - 다음 경로로 이동합니다:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 오른쪽 목록에서
LongPathsEnabled라는 항목을 찾습니다. - 해당 항목을 더블 클릭하고 값을 0에서 1로 변경합니다.
- 컴퓨터를 재부팅하면 설정이 적용됩니다.
주의사항: 이 설정은 운영체제 차원에서 경로 제한을 푸는 것이지만, 여전히 오래된 구형 프로그램들은 이 설정을 무시하고 자체적으로 260자 제한을 걸어두는 경우가 있습니다. 따라서 이 설정을 적용한 후에도 일부 프로그램에서는 오류가 발생할 수 있습니다.
실무에서 활용하는 효과적인 해결 팁
시스템 설정을 바꾸기 어렵거나 즉각적인 해결이 필요할 때 활용할 수 있는 실용적인 팁들입니다.
1. 폴더 구조 단순화
가장 근본적인 해결책은 폴더의 계층을 줄이는 것입니다. 상위 폴더의 이름을 짧게 줄이거나, 파일을 루트 디렉토리 근처로 이동시키는 것만으로도 오류를 즉시 해결할 수 있습니다.
2. 로컬 드라이브 연결 활용
경로가 너무 길어 접근이 불가능한 특정 폴더가 있다면, subst 명령어를 사용하여 해당 폴더를 가상의 드라이브로 지정할 수 있습니다. 예를 들어, subst Z: "C:\너무\길어서\접근이\안되는\아주\깊은\폴더\경로"라고 명령어를 입력하면, Z 드라이브를 통해 해당 폴더에 쉽게 접근할 수 있습니다.
3. 전용 압축 도구 사용
윈도우 기본 압축 해제 기능은 경로 제한에 매우 민감합니다. 7-Zip이나 반디집 같은 강력한 압축 소프트웨어를 사용하면, 경로 제한을 우회하여 압축을 풀거나 파일에 접근하는 기능을 기본적으로 제공하므로 훨씬 수월하게 작업할 수 있습니다.
자주 묻는 질문과 답변
Q: 레지스트리를 수정하면 시스템이 불안정해지나요?
A: LongPathsEnabled 설정을 변경하는 것은 윈도우에서 공식적으로 지원하는 기능이므로 시스템이 불안정해질 가능성은 거의 없습니다. 다만 앞서 언급했듯이, 구형 프로그램은 여전히 경로 길이를 260자로 인식할 수 있다는 점만 기억하시면 됩니다.
Q: 왜 어떤 파일은 복사가 되고 어떤 파일은 안 되나요?
A: 이는 파일 이름의 길이에 따라 전체 경로가 260자를 넘느냐 넘지 않느냐의 차이입니다. 경로가 259자라면 복사가 가능하지만, 261자라면 복사가 불가능해지는 아주 미세한 차이 때문에 발생하는 현상입니다.
Q: 명령 프롬프트(CMD)에서도 경로 제한이 있나요?
A: 네, CMD나 PowerShell에서도 기본적으로는 경로 제한이 적용됩니다. 하지만 robocopy 같은 고급 복사 명령어를 사용하면 긴 경로도 문제없이 처리할 수 있습니다. robocopy "원본경로" "대상경로" /E와 같은 명령어를 활용해 보시기 바랍니다.
전문가의 조언
파일 관리의 효율성을 높이기 위해서는 평소 파일과 폴더의 이름을 간결하게 유지하는 습관이 중요합니다. 특히 프로젝트 단위의 폴더를 만들 때 너무 깊은 하위 폴더 구조를 지양하고, 파일 이름에 날짜나 버전 정보를 지나치게 길게 포함하지 않는 것이 좋습니다. 만약 대량의 데이터를 다루는 전문가라면, 윈도우의 기본 탐색기보다는 경로 길이에 제약을 받지 않는 파일 관리자 프로그램(예: Total Commander)을 사용하는 것을 강력히 권장합니다. 이러한 전문 도구들은 윈도우 API의 제한을 우회하는 기술이 내장되어 있어 훨씬 유연한 파일 관리가 가능합니다.




댓글 0
첫 댓글을 남겨보세요.