← 전체 글로 돌아가기

서버 운영

혼자 개발할 때 서버 문제를 진단하는 표준 절차

서버 운영 문제는 로컬과 달라서 까다롭다. 혼자 다루려면 매번 같은 순서로 확인하는 습관이 필요하다.

혼자 개발하다 보면 서버 문제를 빠르게 파악하기 어렵다. 접근 권한, 프로세스, 포트 등 신경 쓸 게 많고, 로컬 개발 환경에서 본 것과 서버에서 벌어지는 일이 다를 수 있기 때문이다.

상황을 한 줄로

지금 정확히 뭐가 문제인가. 서버가 응답하지 않는가, 응답은 하는데 특정 포트가 열려 있지 않은가, 아니면 프로세스는 실행 중인데 동작하지 않는가를 명확히 한다.

먼저 볼 파일과 프로세스

sudo ss -lntp
df -h
sudo journalctl -n 80

현재 서버에서 어떤 프로세스가 실행 중인가. 포트 바인딩은 제대로 되어 있는가. 디스크 용량은 충분한가를 한눈에 본다.

로그 확인

최근 80줄의 저널 로그를 본다. 애플리케이션 시작 시점, 에러가 발생한 시점, 가장 최근의 로그까지 모든 정보를 수집한다. 에러 메시지가 있다면 그걸 기반으로 다음 단계를 정한다.

서버에서 직접 테스트

실제 서버에 SSH로 접속해서 애플리케이션이 제대로 실행되는지 테스트한다. 커맨드라인에서 필요한 명령어를 직접 입력해본다.

권한과 환경 변수

서버의 사용자 권한이 충분한가. 환경 변수가 제대로 로드되어 있는가. 로컬에서는 .env 파일이 있었지만, 서버에는 설정하지 않았을 수도 있다.

디스크 용량 확인

df 명령으로 디스크 용량을 본다. 특정 파티션이 거의 찼다면 새 데이터를 쓸 수 없어서 애플리케이션이 멈춘 것처럼 보일 수 있다.

최종 결론

로그에서 바뀐 부분을 한 줄로 설명할 수 있을 때까지만 다음으로 진행한다. 문제를 충분히 이해했으면, 같은 증상이 나올 때 훨씬 빨리 해결할 수 있다.