[IT-안내] mkdir 면접 질문 대비 실전 가이드 – 디렉터리 생성 명령어 완벽 정리

mkdir 명령어로 디렉터리 생성를 수행하는 모습을 표현한 대표 이미지

리눅스 면접의 첫걸음, 왜 mkdir를 물어볼까요?

기술 면접장에 들어서서 긴장된 마음으로 질문을 기다릴 때, 예상치 못한 아주 기본적인 질문을 받으면 당황하기 마련이에요. “리눅스에서 디렉터리를 어떻게 생성하나요?” 혹은 “mkdir 명령어의 옵션 중 -p의 역할은 무엇인가요?” 같은 질문들이 대표적이에요. 너무 쉬운 질문이라 생각해서 대충 대답했다가는 기본기가 부족하다는 인상을 줄 수 있어 정말 주의해야 해요.

면접관이 이런 질문을 던지는 이유는 단순히 명령어 하나를 아는지 확인하려는 것이 아니에요. 여러분이 서버 환경에서 파일을 관리하고, 시스템의 구조를 이해하며, 명령어를 통해 운영 환경을 얼마나 정확하게 제어할 수 있는지를 확인하려는 의도가 숨어 있어요. 디렉터리 하나를 만드는 작업이라도, 권한 설정이나 경로 구조를 고려하지 않고 명령어를 입력한다면 실제 운영 서버에서는 큰 사고로 이어질 수도 있기 때문이에요.

이 글을 끝까지 읽으신다면 단순히 명령어를 외우는 수준을 넘어, 면접관의 날카로운 추가 질문에도 당당하게 근거를 들어 답변할 수 있는 실력을 갖추게 될 거예요. 실제 실무에서 어떤 상황에 어떤 옵션을 사용하는지, 그리고 실수하기 쉬운 지점은 어디인지 상세하게 짚어 드릴게요.

이 글에서 함께 공부할 내용이에요

  • 리눅스 디렉터리 구조와 mkdir 명령어의 기본 동작 원리
  • 면접 단골 질문인 주요 옵션(-p, -m)의 깊이 있는 활용법
  • 실무 시나리오를 통해 배우는 디렉터리 생성 및 관리 전략
  • 면접관을 사로잡는 논리적인 답변 구성 방법

명령어 실행 전 반드시 체크해야 할 기본 개념

mkdir 명령어를 다루기 전에 우리가 반드시 머릿속에 정리해 두어야 할 개념들이 있어요. 리눅스 시스템은 윈도우와는 완전히 다른 계층 구조를 가지고 있고, 모든 것은 권한(Permission)과 밀접하게 연결되어 있어요. 이 기초가 흔들리면 아무리 명령어를 잘 알아도 면접에서 답변이 꼬일 수밖에 없어요.

가장 먼저 이해해야 할 것은 절대 경로(Absolute Path)상대 경로(Relative Path)의 차이예요. 루트 디렉터리인 /부터 시작하는 경로인지, 아니면 현재 내가 위치한 위치를 기준으로 하는 경로인지를 명확히 구분해야 해요. 면접관이 “특정 경로 아래에 폴더를 만드세요”라고 할 때, 이 두 개념을 섞어서 답변하면 감점 요인이 될 수 있어요.

또한, 디렉터리를 생성한다는 것은 파일 시스템에 새로운 엔트리를 기록하는 작업이에요. 이때 여러분이 속한 사용자의 권한이 해당 부모 디렉터리에 대해 ‘쓰기(w)’ 권한을 가지고 있는지 반드시 확인해야 해요. 권한이 없다면 아무리 정확한 명령어를 입력해도 Permission denied라는 벽에 부딪히게 될 거예요.

💡 알아두기
리눅스에서 디렉터리는 파일의 한 종류로 취급돼요. 따라서 디렉터리 자체에도 읽기, 쓰기, 실행 권한이 존재하며, 이는 파일 권한 관리 방식과 동일한 원리로 작동한답니다.

mkdir 주요 옵션 비교 분석

면접에서 옵션의 차이를 묻는 질문은 매우 빈번하게 나와요. 단순히 옵션 이름만 말하는 것이 아니라, 어떤 상황에서 이 옵션이 필요한지를 함께 설명하는 것이 합격의 포인트예요.

옵션 기능 설명 실무 활용 시나리오
-p 부모 디렉터리까지 한 번에 생성 계층 구조가 깊은 로그 폴더 등을 한 번에 구축할 때
-m 생성 시 권한(mode)을 즉시 설정 보안을 위해 생성과 동시에 755 등으로 권한을 제한할 때
(없음) 단일 디렉터리만 생성 이미 존재하는 경로 내에 단순한 폴더를 추가할 때

이 표를 바탕으로 각 옵션이 왜 필요한가를 스스로 질문해 보세요. 예를 들어, “-p 옵션 없이 깊은 경로를 만들려고 하면 어떤 에러가 발생할까요?”라는 질문에 답할 수 있어야 진짜 실력자라고 할 수 있어요.

실전! mkdir 명령어 단계별 마스터하기

이제 본격적으로 명령어를 어떻게 사용하는지, 그리고 면접에서 답변할 수준의 깊이 있는 지식들을 단계별로 살펴볼게요. 단순히 명령어를 입력하는 것을 넘어, 시스템의 동작을 이해하는 데 집중해 주세요.

STEP 1. 가장 기초적인 디렉터리 생성하기

가장 기본적인 사용법은 mkdir [디렉터리명]이에요. 현재 내가 위치한 디렉터리 안에 새로운 폴더를 하나 만드는 것이죠. 예를 들어 mkdir project라고 입력하면 현재 위치에 project라는 폴더가 생겨요.

여기서 주의할 점은 동일한 이름의 디렉터리가 이미 존재한다면 에러가 발생한다는 것이에요. 면접에서 “이미 존재하는 디렉터리를 만들려고 할 때 어떤 일이 벌어지나요?”라고 묻는다면, “mkdir 명령은 기존 디렉터리를 덮어쓰지 않고 에러 메시지를 출력하며 작업을 중단합니다”라고 답변하는 것이 정석이에요. 덮어쓰기 개념이 아니라, 중복된 이름에 대한 방어 기제라고 이해하면 쉬워요.

STEP 2. 계층 구조를 한 번에 만드는 -p 옵션의 마법

실무에서는 폴더를 하나씩 차근차근 만드는 일이 거의 없어요. 보통 로그 저장용 폴더를 만든다면 /var/log/myapp/error처럼 깊은 구조를 가져가게 되죠. 이때 중간 경로가 없다면 일반적인 mkdir으로는 만들 수 없어요.

이때 구세주처럼 등장하는 것이 바로 -p (parents) 옵션이에요. mkdir -p /var/log/myapp/error라고 입력하면, 만약 /var/log/myapp이라는 폴더가 없더라도 시스템이 알아서 중간 단계의 폴더들을 모두 생성해 줘요.

면접관이 이 옵션의 내부 동작을 묻는다면, “경로 상에 존재하지 않는 부모 디렉터리들을 순차적으로 생성하며, 이미 존재하는 디렉터리는 에러를 내지 않고 건너뜁니다”라고 답변하세요. 이것이 단순히 ‘만든다’는 말보다 훨씬 전문적으로 들린답니다.

STEP 3. 보안을 위한 권한 설정 -m 옵션 활용하기

디렉터리를 만든 직후에 권한을 변경하는 과정은 번거로울 수 있어요. mkdirchmod를 따로 실행하는 대신, mkdir -m 옵션을 사용하면 생성과 동시에 권한을 지정할 수 있어요. 예를 들어 mkdir -m 700 private_data라고 명령하면, 오직 소유자만 읽고 쓰고 실행할 수 있는 아주 강력한 보안 폴더가 만들어져요.

이 기능은 보안이 중요한 설정 파일이나 개인 데이터 저장 공간을 구축할 때 매우 유용해요. 면접에서는 이 옵션을 통해 “생성 작업과 권한 부여 작업을 원자적(Atomic)인 느낌으로 한 번에 처리하여 실수를 줄일 수 있다”는 점을 강조해 보세요. 물론 엄밀히 말하면 운영체제 수준의 원자성은 아니더라도, 관리자의 실수 가능성을 낮춘다는 관점에서는 훌륭한 답변이에요.

STEP 4. 중괄호 확장(Brace Expansion)을 이용한 대량 생성

이 부분은 중급 이상의 실력을 보여줄 수 있는 꿀팁이에요. 만약 10개의 프로젝트 폴더를 만들어야 한다면 어떻게 할까요? 하나하나 입력하는 것은 비효율적이죠. 리눅스 쉘의 기능을 활용하면 아주 간단해요.

mkdir project_{1..10}라고 입력해 보세요. 그러면 순식간에 project_1부터 project_10까지 10개의 디렉터리가 생성돼요. 또한 mkdir {backup,logs,config}라고 치면 세 개의 폴더가 동시에 만들어지죠. 이런 기술을 알고 있다는 것은 여러분이 쉘 환경에 익숙한 준비된 엔지니어라는 증거가 될 수 있어요.

STEP 5. 실무 시나리오: 웹 서버 환경 구축하기

자, 이제 배운 내용을 종합해 볼까요? 여러분이 새로운 웹 서비스를 배포하기 위해 서버의 특정 위치에 웹 루트 디렉터리를 구성해야 한다고 가정해 봅시다. 경로 구조는 /var/www/html/my_service/assets로 잡기로 했고, 웹 서버 권한인 755를 부여해야 해요.

이때 가장 세련된 명령어는 다음과 같아요:
sudo mkdir -p -m 755 /var/www/html/my_service/assets

여기서 sudo를 붙인 이유는 /var/와 같은 시스템 디렉터리에 접근하기 위해서는 관리자 권한이 필요하기 때문이에요. 면접관이 “웹 서버 폴더를 만들 때 발생할 수 있는 문제는 무엇인가요?”라고 묻는다면, “시스템 디렉터리이므로 권한 문제로 인해 sudo가 필요하며, 경로가 복잡할 경우 -p 옵션을 사용해야 합니다”라고 시나리오 중심으로 답변하면 완벽해요.

💡 알아두기
디렉터리를 생성할 때 사용한 권한(mode)은 umask(User Mask) 값의 영향을 받을 수 있어요. 만약 -m 옵션을 쓰지 않았다면, 시스템에 설정된 기본 umask 값에 따라 최종 권한이 결정된다는 점도 기억해 두세요!

자주 하는 실수와 해결법 & FAQ

명령어가 익숙하지 않을 때는 누구나 실수를 하기 마련이에요. 하지만 면접에서는 그 실수를 어떻게 인지하고 해결하는지가 더 중요하답니다. 실무에서 자주 발생하는 상황들을 정리해 드릴게요.

자주 하는 실수와 해결법

  • 실수: mkdir /a/b/c를 입력했는데 “No such file or directory” 에러가 발생함
    👉 원인: 중간 단계인 /a/b 디렉터리가 존재하지 않기 때문이에요.
    해결법: mkdir -p /a/b/c와 같이 -p 옵션을 사용하세요.
  • 실수: 폴더를 만들려고 하는데 “Permission denied”가 뜸
    👉 원인: 현재 로그인한 사용자가 해당 위치에 디렉터리를 생성할 권한이 없기 때문이에요.
    해결법: 명령어 앞에 sudo를 붙여 관리자 권한으로 실행하세요.
  • 실수: 디렉터리 이름에 공백이 포함되어 의도치 않게 여러 개가 생성됨 (예: mkdir my folder -> my와 folder 두 개 생성)
    👉 원인: 쉘(Shell)이 공백을 인자(Argument)의 구분자로 인식하기 때문이에요.
    해결법: 이름을 따옴표로 감싸거나(mkdir "my folder"), 백슬래시를 사용하세요(mkdir my\ folder).
  • 실수: 디렉터리 이름에 특수문자를 잘못 사용함
    👉 원인: 쉘 예약어(예: *, ?, [ ])를 포함하면 쉘이 이를 와일드카드로 해석하려고 해요.
    해결법: 특수문자가 포함된 경우 반드시 따옴표를 사용하여 문자열임을 명시하세요.

자주 묻는 질문

Q. mkdir과 touch 명령어의 차이점은 무엇인가요?

mkdir은 새로운 디렉터리(폴더)를 만드는 명령어이고, touch는 내용이 비어 있는 새로운 파일을 만들거나 기존 파일의 수정 시간을 업데이트할 때 사용하는 명령어예요. 두 명령어의 목적 자체가 완전히 달라요.

Q. 디렉터리를 생성할 때 권한을 지정하는 가장 효율적인 방법은 무엇인가요?

생성과 동시에 권한을 설정하고 싶다면 mkdir -m [모드] 옵션을 사용하는 것이 가장 효율적이에요. 별도로 chmod를 실행할 필요가 없어 명령어가 간결해지고 실수를 줄일 수 있어요.

Q. 만약 이미 존재하는 디렉터리 이름으로 mkdir을 실행하면 어떻게 되나요?

에러 메시지가 출력되며 아무런 변화도 일어나지 않아요. 기존 디렉터리 안에 있는 파일이 삭제되거나 내용이 바뀌는 등의 위험은 없으니 안심하셔도 돼요. 하지만 스크립트 작성 시에는 에러를 방지하기 위해 -p 옵션을 습관적으로 사용하는 것이 좋아요.

Q. 리눅스에서 디렉터리 경로를 쓸 때 ‘/’로 시작하는 것과 안 하는 것의 차이는 무엇인가요?

/로 시작하면 루트 디렉터리부터 찾아가는 절대 경로이고, 시작하지 않으면 현재 작업 디렉터리를 기준으로 하는 상대 경로예요. 이 차이를 명확히 아는 것이 경로 오류를 줄이는 핵심이에요.

마치며: 이제 터미널을 열고 직접 확인해 보세요

지금까지 mkdir 명령어와 관련된 면접 질문들을 실무적인 관점에서 꼼꼼하게 살펴보았어요. 기술 면접은 단순히 지식을 묻는 자리가 아니라, 여러분이 실제 환경에서 얼마나 신중하고 정확하게 업무를 수행할 수 있는지를 확인하는 자리라는 것을 꼭 기억해 주세요.

✅ 핵심 요약

  • mkdir 명령어는 기본적으로 단일 디렉터리를 생성하며, 중복 시 에러가 발생해요.
  • 계층 구조를 한 번에 만들 때는 반드시 -p 옵션을 사용해야 해요.
  • 생성과 동시에 권한을 설정하려면 -m 옵션을 활용하세요.
  • 공백이 포함된 이름은 따옴표(” “)로 감싸야 오류를 막을 수 있어요.
  • 면접 답변 시에는 명령어의 기능뿐만 아니라 ‘왜’ 사용하는지를 함께 설명하세요.

오늘 배운 내용을 머리로만 아는 것에 그치지 말고, 지금 바로 터미널을 열어 직접 명령어를 입력해 보세요. mkdir -p test/a/b/c를 입력해 보고, mkdir -m 777 test_dir를 입력하며 시스템이 어떻게 반응하는지 눈으로 확인하는 과정이 가장 빠른 공부 방법이에요.

여러분의 성공적인 취업과 이직을 진심으로 응원할게요. 다음 단계로 나아가고 싶다면, 리눅스의 다양한 파일 관리 명령어들을 차근차근 익혀보시는 것을 추천드려요.

함께 읽으면 좋은 글: 리눅스 파일관리 명령어 모음 글로 연결

댓글 남기기