← 전체 글로 돌아가기

서버 운영

서버에서만 터지는 낙관적 업데이트 문제

로컬에서는 잘 되지만 서버에서만 나타나는 race condition과 상태 불일치 문제를 정리했다.

운영 서버에서만 특정 기능이 불안정할 때가 있다. 로컬에서는 재현이 안 되고, 사용자 리포트로만 알 수 있는 문제다. 이럴 때는 화면만 보고 판단하면 안 된다. 로그와 응답을 함께 봐야 한다.

서버에서만 나는 문제는 보통 타이밍 문제나 동시성 문제다. 운영 환경에는 많은 사용자가 동시에 요청을 보내기 때문에 로컬 개발에서는 절대 나타나지 않는다.

문제 범위 좁히기

서버에서만 문제가 나면 먼저 시간대를 확인하는 게 좋다. 로컬과 운영 환경이 같은 상태인지 빠르게 판단할 수 있다.

  • 먼저 확인: 시간대, 권한
  • 비교할 값: 정상일 때의 서버 상태
  • 남길 기록: 명령어 출력, 응답 상태코드, 수정한 설정

서버 로그 보기

서버에서만 문제가 반복된다면 확인 순서를 고정해야 한다.

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

로컬과 운영의 차이가 자주 숨어 있으니, 환경 차이까지 같이 적어두면 원인 추적이 쉬워진다.

한 번에 하나씩 수정

응답 확인과 권한 확인을 하면서 문제의 경계를 점점 좁혀간다. 수정할 때는 한 번에 여러 설정을 바꾸지 않는 게 중요하다.

확인 순서:

  1. 같은 조건에서 증상이 다시 나오는지 테스트한다
  2. 로그나 응답에서 달라진 부분을 설명해본다
  3. 공개 화면, 빌드 결과, 실제 요청으로 최종 확인한다

결론

한 번에 여러 설정을 바꾸지 않는 것만으로도 원인 추적이 쉬워진다. 관련 기록을 남겨두면 다음 확인이 훨씬 빨라진다.