❗문제 발생
운영 중인 사이트에서 특정 이미지가 표시되지 않는 문제가 발생했다. 이미지 파일이 위치한 디렉토리를 확인한 후 문제가 없는 것 같아, 톰캣을 재시작하여 로그를 확인했더니 다음과 같은 오류가 발생했다.
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/upload/brand/kdhd] is not valid
해당 오류 메시지는 지정된 리소스 경로가 유효하지 않다는 의미이며, 실제로 해당 경로가 존재하지 않거나 접근할 수 없는 상태임을 나타낸다.
🧩 원인 분석
1. 디렉토리 존재 여부 확인
문제 발생 경로 /upload/brand/kdhd가 실제로 존재하는지 확인했다.
존재하지 않는 경우, 새로 생성 후 권한을 설정하면 해결될 수 있다.
2. 권한 문제 해결 시도
디렉토리가 존재하지 않을 경우 생성하고 적절한 권한(755)을 부여하려고 했다. 다음 명령어를 실행했다.
chmod 755 /upload/brand/kdhd
하지만 실행 결과 다음과 같은 오류가 발생했다.
chmod: cannot access ‘/upload/brand/kdhd’: Stale file handle
이는 해당 디렉토리가 원격 파일 시스템(NAS 등)에 마운트된 상태에서 더 이상 유효하지 않거나, 네트워크 연결이 끊어진 경우 발생하는 오류이다.
* 마운트란(Mount)? 물리적 장치나 네트워크 상의 장치에 저장된 파일 시스템을 운영 체제의 디렉토리 구조에 연결하는 작업이다.
추가적으로 프로토콜의 일종인 NFS는 네트워크 파일 시스템(Network File System)의 약자로, 이 NFS를 사용해 원격 서버에 있는 파일 시스템을 운영 서버에 마운트하여 로컬파일처럼 사용할 수 있게 하는 것이었다.
나는 여기까지 확인해서 NAS 서버에 무언가 문제가 있는 것 같다고 사수에게 말씀드렸는데, NAS 공유 권한 설정을 손 봐주셔서 운영 서버의 이미지가 문제없이 출력되었다. 이와 같이 개발 서버도 조치해주었다. 마운트 관련 원인 분석은 다음과 같다.
3. 마운트 상태 확인
마운트된 파일 시스템이 정상적으로 연결되어 있는지 확인하기 위해 다음 명령어를 실행했다.
findmnt
결과를 확인한 후, /upload/brand/kdhd가 아래와 같이 NAS에 마운트되어 있음을 확인했다.
/upload/brand/kdhd NAS 서버 IP:/brand
그러나 당시 NAS 서버와 실제로는 연결이 안되고 있었기 때문에 NAS의 설정 그리고 공유 권한이 맞지 않아서 그럴 것이라고 판단하여 새로운 경로로 다시 마운트 시켜보기로 했다.
✅ 문제 해결
1. 기존 마운트 해제 후 재설정
기존 마운트가 유효하지 않으므로 아래와 같은 명령어로 새로운 경로로 다시 마운트 시켰다.
#해당 경로 마운트 해제
umount /upload/brand/kdhd
#마운트 재설정
mount -t nfs NAS 서버 IP:/brand /upload/brand/kdhd/
#/etc/fstab 설정된 마운트들을 다시 적용
mount -a
⇒ 이렇게 하면 upload/brand/kdhd로 요청 시 NAS 서버 IP:/brand로 요청하고 NAS 서버에서 /brand와 매핑되어있는 실제 경로로 요청하게 된다.
2. NAS 서버에서 매핑 설정 및 디렉토리 공유 권한 수정
NAS의 관리자 페이지에 접속하여 해당 디렉토리를 공유하는 설정을 확인했다.
요청 서버의 IP가 해당 공유 디렉토리에 접근할 수 있도록 권한을 재설정했다.
- nas 서버 접속 > 관리자 계정으로 로그인

- 제어판 > 권한 > 공유폴더

- 공유 폴더 만들기

- 공유 폴더 만들기 입력

3. 디렉토리 권한 재설정
마운트 설정을 여기까지 완료한 후, 다시 요청 서버에서 디렉토리의 접근 권한을 재설정했다.
chmod 755 /upload/brand/kdhd
4. 톰캣 재시작 후 확인
아래 명령어로 톰캣을 다시 실행한 후, 이미지가 정상적으로 표시되는 것을 확인할 수 있었다.
systemctl restart tomcat
👉 결론
운영 중인 서버에서 특정 디렉토리에 대한 접근 오류가 발생하여 이미지가 표시되지 않는 문제가 있었다. 원인은 해당 디렉토리가 원격 파일 시스템(NAS)에 마운트되어 있었으나, 마운트가 끊어지거나 공유 권한이 변경된 상태였다. NAS 설정을 확인하여 요청 서버의 IP에 대해 공유 권한을 재설정하고, 마운트를 다시 수행하여 문제를 해결할 수 있었다.