인프라 & 클라우드 · 중급
`apt`나 `yum`과 같은 패키지 관리자가 소프트웨어 패키지 설치 시 의존성 문제를 어떻게 해결하는지 그 원리를 설명해 주세요. 또한, 특정 패키지의 의존성 목록을 확인하는 방법을 제시해 주세요.
힌트 · 패키지 관리자는 메타데이터를 사용하여 필요한 라이브러리나 다른 패키지를 자동으로 탐색하고 설치합니다. `apt-cache depends` 또는 `yum deplist` 명령을 사용할 수 있습니다.
의존성 해결메타데이터저장소의존성 그래프재귀적 탐색
모범답안
패키지 관리자는 소프트웨어 설치 시 의존성 문제를 해결하기 위해 패키지 메타데이터를 활용합니다. 이 메타데이터에는 해당 패키지가 정상적으로 작동하기 위해 필요한 다른 패키지 및 라이브러리 정보가 담겨 있습니다.
apt나 yum 같은 패키지 관리자는 먼저 설치하려는 패키지의 메타데이터를 확인하고, 의존성 목록을 파악합니다. 그 후, 설정된 저장소(repository)에서 해당 의존성들을 찾아서 함께 설치합니다. 만약 의존성 패키지에도 또 다른 의존성이 있다면, 이 과정을 재귀적으로 반복하여 모든 의존성을 해결합니다.
특정 패키지의 의존성 목록을 확인하는 방법은 다음과 같습니다. apt를 사용하는 경우 apt-cache depends [패키지 이름] 명령어를, yum을 사용하는 경우 yum deplist [패키지 이름] 명령어를 사용하면 됩니다. 예를 들어, apt-cache depends apache2를 실행하면 apache2 패키지의 의존성 목록을 확인할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Linux 면접 질문
- Linux에서 하드 링크(Hard Link)와 심볼릭 링크(Symbolic Link, 소프트 링크)의 차이점을 inode 개념을 포함하여 설명하고, 각각 어떤 상황에서 사용하는 것이 적절한지 실제 시나리오를 들어 설명해 주세요.
- 시스템의 네트워크 연결 상태를 확인하기 위해 `netstat`과 `ss` 명령어를 사용할 수 있습니다. `ss` 명령어가 `netstat`에 비해 가지는 장점은 무엇이며, `ss` 명령어를 활용하여 특정 포트의 ESTABLISHED 연결만 필터링하는 방법을 보여주세요.
- LVM(Logical Volume Manager)의 개념과 일반적인 파티셔닝 방식에 비해 LVM이 가지는 장점을 설명해 주세요. 또한, LVM을 사용하여 기존 논리 볼륨의 크기를 확장하는 절차를 간략히 설명해 주세요.
- `systemd` 기반 시스템에서 `journalctl` 명령어를 사용하여 시스템 로그를 효과적으로 조회하고 분석하는 방법을 설명해 주세요. 특히, 특정 서비스의 로그만 확인하거나 특정 시간 범위의 로그를 필터링하는 방법을 구체적인 예시와 함께 제시해 주세요.
- Linux 커널의 cgroups와 namespaces가 컨테이너 기술(예: Docker, Kubernetes)의 핵심 구성 요소인 이유를 설명하고, 이 두 기술이 어떻게 상호작용하여 프로세스 격리 및 리소스 제한을 구현하는지 구체적으로 설명해주세요.
- 대규모 I/O 부하가 발생하는 환경에서 ext4와 XFS 파일 시스템 중 어떤 것을 선택할 것이며, 그 이유와 각 파일 시스템의 내부 구조 및 성능 특성 차이를 설명해주세요. 특히 저널링 방식의 차이점을 포함하여 설명하십시오.