[
  {
    "courseSlug": "tool-terminal",
    "question": "코스의 '검은 창 삼형제' 정리에 따르면, 윈도우에서 평소에 기본으로 쓰기 좋은 셸과 리눅스 명령을 그대로 따라 하고 싶을 때 쓰는 셸의 조합으로 맞는 것은?",
    "option1": "평소엔 cmd, 리눅스 명령은 PowerShell",
    "option2": "평소엔 PowerShell, 리눅스 명령은 Git Bash",
    "option3": "평소엔 Git Bash, 리눅스 명령은 cmd",
    "option4": "평소엔 cmd, 리눅스 명령은 Git Bash",
    "answerIndex": 1,
    "explanation": "섹션 1의 결론이 '평소엔 PowerShell, 리눅스 명령이 필요하면 Git Bash'입니다. cmd는 아주 오래된 배치 파일을 돌릴 때 정도로, 요즘은 거의 쓰지 않는다고 정리했어요."
  },
  {
    "courseSlug": "tool-terminal",
    "question": "코스에서 '터미널'과 '셸(shell)'의 관계를 설명한 내용으로 옳은 것은?",
    "option1": "터미널은 명령을 해석하는 프로그램이고, 셸은 그 결과를 그려 주는 화면이다",
    "option2": "터미널과 셸은 같은 것을 부르는 두 가지 이름일 뿐 구분할 필요가 없다",
    "option3": "터미널은 글자가 표시되는 창이고, 셸은 그 안에서 명령을 해석해 주는 통역 프로그램이다",
    "option4": "터미널은 윈도우 전용 용어이고, 셸은 리눅스 전용 용어라서 서로 섞어 쓸 수 없다",
    "answerIndex": 2,
    "explanation": "섹션 1에서 터미널은 글자가 표시되는 창(카페), 셸은 그 안에서 명령을 해석하는 통역 프로그램(바리스타)이라고 비유했습니다. 그래서 한 Windows Terminal 창에 PowerShell 탭과 Git Bash 탭을 동시에 열 수 있어요."
  },
  {
    "courseSlug": "tool-terminal",
    "question": "블로그에서 복사한 rm -rf 폴더 명령이 PowerShell에서 에러가 나는 이유로, 코스의 설명과 일치하는 것은?",
    "option1": "PowerShell에는 rm 명령 자체가 없어서 New-Item으로 지워야 하기 때문이다",
    "option2": "관리자 권한 터미널이 아니어서 액세스가 거부되었기 때문이다",
    "option3": "rm은 Git Bash 전용 명령이라 PowerShell 탭에서는 아예 입력이 막히기 때문이다",
    "option4": "PowerShell의 rm은 Remove-Item의 별명(alias)이라 -rf 옵션이 없고, rm -r -fo처럼 써야 하기 때문이다",
    "answerIndex": 3,
    "explanation": "섹션 3에서 PowerShell의 ls·cd·cat·rm은 진짜 리눅스 명령이 아니라 별명(alias)이라고 했어요. 간단한 사용은 통하지만 -rf 같은 옵션부터는 달라서, PowerShell식으로는 rm -r -fo(Recurse + Force)를 써야 합니다."
  },
  {
    "courseSlug": "tool-terminal",
    "question": "코스에서 배운 파이프(|) 기호를 기준으로, tasklist | findstr node 명령의 의미로 옳은 것은?",
    "option1": "tasklist의 전체 출력 중에서 node가 들어간 줄만 걸러서 보여 준다",
    "option2": "tasklist와 findstr node를 동시에 병렬로 실행해서 속도를 높인다",
    "option3": "node 프로세스를 찾아낸 뒤 그 프로세스를 자동으로 강제 종료한다",
    "option4": "tasklist의 결과를 node라는 이름의 파일로 저장해 두고 나중에 연다",
    "answerIndex": 0,
    "explanation": "섹션 4에서 파이프(|)는 '앞 명령의 출력을 뒤 명령에게 넘겨주는 배관'이라고 설명했어요. 전체 프로세스 목록을 뽑아서(tasklist) 그중 node가 들어간 줄만 걸러 주는(findstr) 것이지, 종료나 저장을 하지는 않습니다."
  },
  {
    "courseSlug": "tool-terminal",
    "question": "개발 서버를 분명히 껐는데 npm run dev를 다시 켜니 '포트가 이미 사용 중입니다(5173)' 에러가 납니다. 코스에서 배운 3단계 해결법대로라면 가장 먼저 해야 할 일은?",
    "option1": "taskkill /f /im node.exe 로 node 프로세스를 전부 즉시 종료한다",
    "option2": "netstat -ano | findstr :5173 으로 그 포트를 쓰고 있는 프로세스의 PID를 찾는다",
    "option3": "관리자 권한 터미널을 열어 방화벽에서 5173 포트 규칙을 바꾼다",
    "option4": "ipconfig 로 내 IP 주소와 게이트웨이 정보부터 확인한다",
    "answerIndex": 1,
    "explanation": "섹션 4의 실전 3단계는 1) netstat -ano | findstr :5173 으로 범인 PID 찾기, 2) tasklist로 어떤 프로그램인지 확인, 3) taskkill /f /pid 로 종료 순서예요. 무엇이 포트를 잡고 있는지 확인하기 전에 무작정 전부 죽이는 건 순서가 아닙니다."
  }
]
