Day 10 — 로그 확인하기

짱효·2026년 4월 28일

📚 2년차 프론트엔드 개발자의 12주 기초 챌린지
Week 2: 배포 환경 이해하기 (Day 6-10) — 마지막!


🍳 레스토랑 비유로 시작하기

레스토랑에서 손님이 "음식이 안 나와요!" 클레임을 걸었다.
그러면 어떻게 원인을 찾나? CCTV를 돌려본다!

  • 홀 CCTV → 손님 주문이 제대로 전달됐나? (Nginx 로그)
  • 주방 CCTV → 셰프가 요리하다 뭘 잘못했나? (pm2 로그)
  • 건물 관리 기록 → 전기가 나가진 않았나? (시스템 로그)

이 CCTV 기록이 바로 로그(Log)다.


1. 로그 = 서버의 CCTV 기록

로그 = 서버에서 일어난 일을 시간순으로 기록한 텍스트 파일

로그 한 줄 예시:

[2026-04-27 14:23:05] ERROR - Cannot read property 'name' of undefined
부분의미비유
2026-04-27 14:23:05언제 발생했나CCTV 타임스탬프
ERROR심각도 (레벨)사고 등급
Cannot read property...무슨 일이 일어났나CCTV 영상 내용

2. 로그 레벨 — 심각도 등급

레벨의미비유
DEBUG개발 확인용 상세 정보셰프의 혼잣말
INFO정상 동작 기록주문 접수 기록
WARN당장 문제는 아니지만 주의"냉장고 온도 살짝 높아지는 중"
ERROR문제 발생! 특정 요청 실패"소스가 없어서 주문 실패"
FATAL심각! 앱 전체가 멈출 수 있음"가스가 샜다! 주방 폐쇄!"

실무에서 가장 많이 보는 건 ERRORWARN.


3. 로그 종류 3가지

📋 pm2 로그 — 가장 자주 보는 로그 (주방 CCTV)

pm2 logs              # 모든 앱 로그 실시간 보기
pm2 logs prod-app     # prod-app 로그만 보기
pm2 logs --lines 100  # 최근 100줄 보기

코드에서 에러가 나면 여기서 확인. 문제 생기면 일단 이것부터 보자!

📋 Nginx 로그 — 접속 기록 (홀 CCTV)

cat /var/log/nginx/access.log   # 누가 뭘 요청했나
cat /var/log/nginx/error.log    # Nginx 단에서 실패한 것

상태 코드가 500이면 서버 에러, 404면 페이지를 못 찾은 것.

📋 시스템 로그 — 서버 컴퓨터 자체 기록 (건물 관리 기록)

sudo tail -f /var/log/syslog

메모리 부족, 디스크 꽉 참 등 큰 문제가 생겼을 때 확인.


4. 문제 생겼을 때 확인 순서

1단계: pm2 logs → 코드 에러인지 확인 (대부분 여기서 해결!)
    ↓
2단계: Nginx error.log → 요청이 앱까지 도달했는지 확인
    ↓
3단계: 시스템 로그 → 서버 컴퓨터 자체 문제인지 확인

5. 로그가 많을 때 — grep으로 걸러보기

pm2 logs | grep "ERROR"

| (파이프) = "왼쪽 결과에서 오른쪽 조건에 맞는 것만 골라줘"

명령어의미비유
tail -f실시간으로 새 로그 보기CCTV 실시간 모니터링
tail -n 50마지막 50줄만 보기최근 50컷만 돌려보기
grep "ERROR"특정 단어 포함된 줄만 보기사고 장면만 골라보기

6. 실전 시나리오: 사이트가 안 열려요!

# 1. SSH로 서버 접속
ssh -i my-key.pem ubuntu@서버IP

# 2. 앱 상태 확인
pm2 list

# 3. 에러 로그 확인
pm2 logs prod-app --lines 50

# 4. 앱은 정상인데 접속 안 되면 Nginx 확인
cat /var/log/nginx/error.log | grep "502"

# 5. 원인 파악 후 재시작
pm2 restart prod-app

📌 꼭 기억할 것 3가지

핵심한 줄 정리
로그가 뭔지서버에서 일어난 일의 기록 (CCTV)
뭘 먼저 볼지pm2 logs (이것만 기억해도 OK)
로그가 많을 때pm2 logs \| grep "ERROR"

🎉 Week 2 완료! 전체 정리

Day 6~10에서 배운 것을 한 문장으로:

서버(Day 6)에 SSH(Day 7)로 접속해서, pm2(Day 8)로 앱을 관리하고, Nginx(Day 9)로 요청을 분배하고, 문제가 생기면 로그(Day 10)로 원인을 찾는다.

역할담당비유
서버컴퓨터주방 건물
SSH원격 접속전화선
pm2프로세스 관리주방 매니저
Nginx요청 분배홀 매니저
로그기록 확인CCTV

🔮 다음 Week 3: 실전 배포 흐름

  • Day 11: CI/CD란? (GitHub Actions) — git push만 하면 자동 배포!
  • Day 12-13: Docker — "내 컴퓨터에서는 되는데 서버에서 안 돼요" 해결
profile
✨🌏확장해 나가는 프론트엔드 개발자입니다✏️

0개의 댓글