12월 21, 2025
25 분 읽기

주니어 시스템 관리자 면접 질문: 완벽 가이드

interview
career-advice
job-search
entry-level
주니어 시스템 관리자 면접 질문: 완벽 가이드
MB

Milad Bonakdar

작성자

리눅스, 윈도우, Active Directory, 문제 해결 및 핵심 IT 개념을 다루는 종합적인 면접 질문을 통해 필수적인 시스템 관리 기본 사항을 마스터하세요. 주니어 시스템 관리자 직무를 위한 완벽 가이드입니다.


소개

시스템 관리자는 컴퓨터 시스템 및 서버의 유지 관리, 구성 및 안정적인 작동을 책임집니다. 주니어 시스템 관리자로서 IT 인프라를 지원하려면 Linux, Windows, 네트워킹 및 문제 해결에 대한 기본적인 지식이 필요합니다.

이 가이드에서는 주니어 시스템 관리자를 위한 필수 면접 질문을 다루며, 실무 기술과 핵심 개념에 중점을 둡니다.


Linux 기본 사항

1. 매일 가장 많이 사용하는 Linux 명령어는 무엇입니까?

답변: 시스템 관리를 위한 필수 명령어:

# 파일 및 디렉토리 관리
ls -la          # 파일 상세 목록 표시
cd /path        # 디렉토리 변경
pwd             # 현재 작업 디렉토리 출력
mkdir folder    # 디렉토리 생성
rm -rf folder   # 디렉토리 삭제
cp source dest  # 파일 복사
mv old new      # 파일 이동/이름 변경

# 파일 보기 및 편집
cat file.txt    # 파일 내용 보기
less file.txt   # 페이지 단위로 파일 보기
tail -f /var/log/syslog  # 로그 파일 추적
vi/nano file.txt  # 파일 편집

# 권한
chmod 755 file  # 권한 변경
chown user:group file  # 소유자 변경
ls -l           # 권한 보기

# 프로세스 관리
ps aux          # 모든 프로세스 목록 표시
top/htop        # 프로세스 모니터링
kill PID        # 프로세스 종료
systemctl status service  # 서비스 상태 확인

# 시스템 정보
df -h           # 디스크 사용량
free -h         # 메모리 사용량
uptime          # 시스템 가동 시간
uname -a        # 시스템 정보

빈도: 매우 흔함
난이도: 쉬움


2. Linux 서버가 느리게 실행될 때 어떻게 문제를 해결합니까?

답변: 성능 문제에 대한 체계적인 접근 방식:

1. CPU 사용량 확인:

top
# CPU 사용량이 높은 프로세스 찾기
# 'P'를 눌러 CPU 사용량별로 정렬

# 또는 더 나은 시각화를 위해 htop 사용
htop

2. 메모리 확인:

free -h
# 스왑이 많이 사용되고 있는지 확인

# 메모리를 많이 사용하는 프로세스 찾기
ps aux --sort=-%mem | head -10

3. 디스크 I/O 확인:

iostat -x 1
# 높은 %util 값 찾기

# 디스크 공간 확인
df -h

# 큰 파일 찾기
du -sh /* | sort -rh | head -10

4. 네트워크 확인:

netstat -tuln  # 활성 연결
ss -s          # 소켓 통계

5. 로그 검토:

tail -f /var/log/syslog
journalctl -xe  # Systemd 로그
dmesg | tail    # 커널 메시지

빈도: 매우 흔함
난이도: 중간


3. cron을 사용하여 자동화된 작업을 어떻게 예약합니까?

답변: Cron은 Unix 계열 시스템에서 시간 기반 작업 스케줄러입니다.

Cron 구문:

┌───────────── 분 (0-59)
│ ┌───────────── 시 (0-23)
│ │ ┌───────────── 월의 날짜 (1-31)
│ │ │ ┌───────────── 월 (1-12)
│ │ │ │ ┌───────────── 요일 (0-6, 일요일=0)
│ │ │ │ │
* * * * * 실행할 명령어

일반적인 예:

# crontab 편집
crontab -e

# 매일 오전 2시에 백업 실행
0 2 * * * /home/user/backup.sh

# 매주 월요일 오전 9시에 스크립트 실행
0 9 * * 1 /home/user/weekly-report.sh

# 15분마다 실행
*/15 * * * * /home/user/check-status.sh

# 매월 1일에 실행
0 0 1 * * /home/user/monthly-cleanup.sh

# 매주 평일 오후 6시에 실행
0 18 * * 1-5 /home/user/end-of-day.sh

# 현재 cron 작업 목록 표시
crontab -l

# 모든 cron 작업 제거
crontab -r

특수 문자열:

@reboot    # 시작 시 한 번 실행
@daily     # 하루에 한 번 실행 (0 0 * * *)
@hourly    # 한 시간에 한 번 실행 (0 * * * *)
@weekly    # 일주일에 한 번 실행 (0 0 * * 0)
@monthly   # 한 달에 한 번 실행 (0 0 1 * *)

# 예시
@daily /home/user/daily-backup.sh

Cron 작업 로깅:

# 출력을 로그 파일로 리디렉션
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

# 오류가 발생한 경우에만 이메일 보내기
0 2 * * * /home/user/backup.sh 2>&1 | mail -s "Backup Failed" [email protected]

Windows 작업 스케줄러:

# 예약 작업 생성
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Register-ScheduledTask -TaskName "Daily Backup" -Action $action -Trigger $trigger

# 예약 작업 목록 표시
Get-ScheduledTask

# 즉시 작업 실행
Start-ScheduledTask -TaskName "Daily Backup"

# 작업 비활성화
Disable-ScheduledTask -TaskName "Daily Backup"

모범 사례:

  • 스크립트에서 절대 경로 사용
  • crontab에서 PATH 변수 설정
  • 먼저 수동으로 스크립트 테스트
  • 디버깅을 위해 출력 로깅
  • 중복 실행을 방지하기 위해 잠금 사용

빈도: 매우 흔함
난이도: 쉬움-중간


Windows & Active Directory

3. Active Directory란 무엇이며 주요 구성 요소는 무엇입니까?

답변: **Active Directory (AD)**는 Microsoft의 Windows 네트워크용 디렉토리 서비스입니다.

주요 구성 요소:

Loading diagram...

핵심 개념:

  • 도메인: 관리 경계
  • 도메인 컨트롤러 (DC): AD를 호스팅하는 서버
  • 조직 단위 (OU): 객체를 위한 컨테이너
  • 사용자/그룹: ID 관리
  • 그룹 정책: 중앙 집중식 구성

일반적인 작업:

# 사용자 생성
New-ADUser -Name "John Doe" -SamAccountName jdoe -UserPrincipalName [email protected]

# 사용자를 그룹에 추가
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# 비밀번호 재설정
Set-ADAccountPassword -Identity jdoe -Reset

# 잠긴 계정 찾기
Search-ADAccount -LockedOut

# 도메인 컨트롤러 목록 표시
Get-ADDomainController -Filter *

빈도: 매우 흔함
난이도: 쉬움-중간


5. Linux 및 Windows에서 사용자 계정을 어떻게 생성하고 관리합니까?

답변: 사용자 관리는 핵심 시스템 관리자 책임입니다.

Linux 사용자 관리:

# 사용자 생성
sudo useradd -m -s /bin/bash john
# -m: 홈 디렉토리 생성
# -s: 셸 설정

# 비밀번호 설정
sudo passwd john

# 특정 UID 및 그룹으로 사용자 생성
sudo useradd -m -u 1500 -G sudo,developers john

# 기존 사용자 수정
sudo usermod -aG docker john  # 그룹에 추가
sudo usermod -s /bin/zsh john  # 셸 변경
sudo usermod -L john  # 계정 잠금
sudo usermod -U john  # 계정 잠금 해제

# 사용자 삭제
sudo userdel john  # 홈 디렉토리 유지
sudo userdel -r john  # 홈 디렉토리 제거

# 사용자 정보 보기
id john
finger john
cat /etc/passwd | grep john

그룹 관리:

# 그룹 생성
sudo groupadd developers

# 사용자를 그룹에 추가
sudo usermod -aG developers john

# 그룹에서 사용자 제거
sudo gpasswd -d john developers

# 그룹 삭제
sudo groupdel developers

# 사용자 그룹 목록 표시
groups john

파일 권한:

# 소유자 변경
sudo chown john:developers /var/www/project
sudo chown -R john:developers /var/www/project  # 재귀적

# 권한 변경
chmod 755 script.sh  # rwxr-xr-x
chmod u+x script.sh  # 사용자에게 실행 권한 추가
chmod g-w file.txt  # 그룹에게 쓰기 권한 제거
chmod o-r file.txt  # 다른 사용자에게 읽기 권한 제거

# 특수 권한
chmod 4755 file  # SUID
chmod 2755 dir   # SGID
chmod 1777 /tmp  # 스티키 비트

Windows 사용자 관리:

# 로컬 사용자 생성
New-LocalUser -Name "John" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

# AD 사용자 생성
New-ADUser -Name "John Doe" `
    -GivenName "John" `
    -Surname "Doe" `
    -SamAccountName "jdoe" `
    -UserPrincipalName "[email protected]" `
    -Path "OU=Users,DC=company,DC=com" `
    -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) `
    -Enabled $true

# 그룹에 추가
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# 사용자 수정
Set-ADUser -Identity jdoe -Department "IT" -Title "System Administrator"

# 계정 비활성화
Disable-ADAccount -Identity jdoe

# 비밀번호 재설정
Set-ADAccountPassword -Identity jdoe -Reset -NewPassword (ConvertTo-SecureString "NewP@ss" -AsPlainText -Force)

# 사용자 제거
Remove-ADUser -Identity jdoe

대량 사용자 생성:

#!/bin/bash
# 파일에서 여러 사용자 생성
while IFS=, read -r username fullname; do
    sudo useradd -m -c "$fullname" "$username"
    echo "$username:TempPass123" | sudo chpasswd
    sudo chage -d 0 "$username"  # 비밀번호 변경 강제
    echo "Created user: $username"
done < users.csv

빈도: 매우 흔함
난이도: 쉬움


네트워킹 기본 사항

6. DNS와 DHCP를 설명하십시오.

답변:

DNS (Domain Name System):

  • 도메인 이름을 IP 주소로 변환
  • 계층적 시스템
  • 포트 53 사용

DHCP (Dynamic Host Configuration Protocol):

  • 자동으로 IP 주소 할당
  • 서브넷 마스크, 게이트웨이, DNS 서버 제공
  • 포트 67 (서버) 및 68 (클라이언트) 사용

DNS 문제 해결:

# DNS 확인 테스트
nslookup google.com

# 특정 DNS 서버에 쿼리
dig @8.8.8.8 google.com

# DNS 캐시 확인 (Windows)
ipconfig /displaydns
ipconfig /flushdns

# DNS 캐시 확인 (Linux)
systemd-resolve --statistics
systemd-resolve --flush-caches

DHCP 문제 해결:

# IP 해제 및 갱신 (Windows)
ipconfig /release
ipconfig /renew

# IP 해제 및 갱신 (Linux)
sudo dhclient -r
sudo dhclient

# DHCP 임대 확인
cat /var/lib/dhcp/dhclient.leases

빈도: 매우 흔함
난이도: 쉬움-중간


백업 & 보안

7. 어떤 백업 전략을 구현하시겠습니까?

답변: 3-2-1 백업 규칙:

  • 데이터의 3개 복사본
  • 2개의 다른 미디어 유형
  • 1개의 오프사이트 복사본

백업 유형:

  • 전체: 전체 복사 (느림, 큼)
  • 증분: 마지막 백업 이후 변경 사항 (빠름, 작음)
  • 차등: 마지막 전체 백업 이후 변경 사항 (중간)

예제 백업 스크립트:

#!/bin/bash
# 간단한 백업 스크립트

BACKUP_DIR="/backup"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_$DATE.tar.gz"

# 백업 생성
tar -czf $BACKUP_DIR/$BACKUP_FILE $SOURCE_DIR

# 지난 7일만 유지
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete

# 원격 서버에 업로드 (선택 사항)
rsync -avz $BACKUP_DIR/$BACKUP_FILE user@backup-server:/backups/

echo "Backup completed: $BACKUP_FILE"

빈도: 흔함
난이도: 중간


8. 서버를 어떻게 보호합니까?

답변: 다층 보안 접근 방식:

1. 시스템 업데이트 유지:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

# Windows
Install-WindowsUpdate -AcceptAll

2. 방화벽 구성:

# UFW (Ubuntu)
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# firewalld (CentOS)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

3. 루트 로그인 비활성화:

# SSH 구성 편집
sudo vi /etc/ssh/sshd_config

# 설정:
PermitRootLogin no
PasswordAuthentication no  # SSH 키 사용

sudo systemctl restart sshd

4. 로그 모니터링:

# fail2ban 설치
sudo apt install fail2ban

# fail2ban 구성
sudo vi /etc/fail2ban/jail.local

빈도: 매우 흔함
난이도: 중간


문제 해결

9. 사용자가 공유 드라이브에 액세스할 수 없습니다. 어떻게 문제를 해결하시겠습니까?

답변: 체계적인 문제 해결 단계:

1. 문제 확인:

  • 문제를 재현할 수 있습니까?
  • 한 사용자에게만 영향을 미칩니까, 아니면 여러 사용자에게 영향을 미칩니까?

2. 네트워크 연결 확인:

# 파일 서버 핑
ping fileserver.domain.com

# SMB 연결 테스트
telnet fileserver.domain.com 445

3. 권한 확인:

# Windows: 공유 권한 확인
Get-SmbShareAccess -Name "SharedFolder"

# NTFS 권한 확인
Get-Acl "\\server\share" | Format-List

4. 사용자 계정 확인:

# 사용자가 올바른 그룹에 있는지 확인
Get-ADUser username -Properties MemberOf

# 계정이 잠겨 있는지 확인
Get-ADUser username -Properties LockedOut

5. 드라이브 매핑 확인:

# Windows: 매핑된 드라이브 목록 표시
net use

# 제거 및 다시 매핑
net use Z: /delete
net use Z: \\server\share /persistent:yes

6. 서버 확인:

  • 파일 서버가 실행 중입니까?
  • 공유가 여전히 사용 가능합니까?
  • 서버 로그 확인

빈도: 매우 흔함
난이도: 쉬움-중간


10. 시스템 로그를 어떻게 관리하고 분석합니까?

답변: 로그 관리는 문제 해결 및 보안에 매우 중요합니다.

일반적인 로그 위치 (Linux):

/var/log/syslog          # 시스템 로그 (Debian/Ubuntu)
/var/log/messages        # 시스템 로그 (RHEL/CentOS)
/var/log/auth.log        # 인증 로그
/var/log/kern.log        # 커널 로그
/var/log/apache2/        # Apache 웹 서버
/var/log/nginx/          # Nginx 웹 서버
/var/log/mysql/          # MySQL 데이터베이스

로그 보기:

# 전체 로그 보기
cat /var/log/syslog

# 마지막 50줄 보기
tail -n 50 /var/log/syslog

# 실시간으로 로그 추적
tail -f /var/log/syslog

# 페이지 단위로 보기
less /var/log/syslog

# 로그에서 검색
grep "error" /var/log/syslog
grep -i "failed" /var/log/auth.log  # 대소문자 구분 없음

Systemd Journal:

# 모든 로그 보기
journalctl

# 특정 서비스에 대한 로그 보기
journalctl -u nginx
journalctl -u ssh

# 로그 추적
journalctl -f

# 부팅 이후 로그 보기
journalctl -b

# 시간 범위에 대한 로그 보기
journalctl --since "2024-01-01" --until "2024-01-02"
journalctl --since "1 hour ago"

# 우선 순위별로 보기
journalctl -p err  # 오류만
journalctl -p warning  # 경고 이상

# 파일로 내보내기
journalctl -u nginx --since today > nginx-logs.txt

로그 로테이션:

# logrotate 구성
sudo vi /etc/logrotate.d/myapp

# 예제 구성
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        systemctl reload myapp
    endscript
}

# logrotate 테스트
sudo logrotate -d /etc/logrotate.d/myapp  # 드라이 런
sudo logrotate -f /etc/logrotate.d/myapp  # 강제 로테이션

Windows 이벤트 뷰어:

# 응용 프로그램 로그 보기
Get-EventLog -LogName Application -Newest 50

# 시스템 로그 보기
Get-EventLog -LogName System -Newest 50

# 오류 수준별로 필터링
Get-EventLog -LogName System -EntryType Error -Newest 20

# 특정 이벤트 검색
Get-EventLog -LogName Security | Where-Object {$_.EventID -eq 4625}

# 로그 내보내기
Get-EventLog -LogName Application | Export-Csv -Path C:\logs\app-logs.csv

중앙 집중식 로깅:

# rsyslog 클라이언트 설치
sudo apt install rsyslog

# 원격 로깅 구성
sudo vi /etc/rsyslog.conf
# 추가: *.* @@log-server:514

sudo systemctl restart rsyslog

로그 분석 도구:

  • grep/awk/sed: 명령줄 파싱
  • GoAccess: 실시간 웹 로그 분석기
  • ELK Stack: Elasticsearch, Logstash, Kibana
  • Splunk: 엔터프라이즈 로그 관리

빈도: 흔함
난이도: 쉬움-중간


결론

주니어 시스템 관리자 면접을 준비하려면 실무 경험과 핵심 개념에 대한 이해가 필요합니다. 다음 사항에 집중하십시오.

  1. Linux: 명령어, 파일 권한, 프로세스 관리
  2. Windows: Active Directory, 그룹 정책, PowerShell 기본 사항
  3. 네트워킹: DNS, DHCP, 기본 문제 해결
  4. 보안: 방화벽, 업데이트, 액세스 제어
  5. 문제 해결: 체계적인 접근 방식, 로그 분석

랩 환경에서 연습하고 학습 내용을 문서화하십시오. 행운을 빕니다!

Newsletter subscription

실제로 효과가 있는 주간 커리어 팁

최신 인사이트를 받은 편지함으로 직접 받아보세요

Decorative doodle

채용률을 60% 높이는 이력서 만들기

몇 분 만에 면접을 6배 더 많이 받는 것으로 입증된 맞춤형 ATS 친화적 이력서를 만드세요.

더 나은 이력서 만들기

이 게시물 공유

면접 콜백을 2배로 늘리세요

직무 설명에 맞게 이력서를 맞춤화하는 후보자는 2.5배 더 많은 면접을 받습니다. 우리 AI를 사용하여 모든 지원서에 대해 즉시 자동으로 이력서를 맞춤화하세요.

주니어 시스템 관리자 면접 질문: 완벽 가이드 | Minova - ATS Resume Builder