AI 바이브코딩 개발대행·검수
웹서비스 오류, 개발자에게 무엇을 전달해야 재현할 수 있을까
웹서비스 오류를 수정하기 전에 발생 시각, 환경, 재현 단계, 기대·실제 결과, 네트워크와 로그, 민감정보 제외 기준을 어떻게 정리해야 하는지 설명합니다.
웹서비스 오류를 설명할 때 ‘버튼이 안 됩니다’라는 한 문장만으로는 같은 문제를 다시 만들기 어렵습니다. 어떤 화면에서 무엇을 입력했는지, 어느 시각과 환경에서 발생했는지, 오류 뒤 데이터가 저장됐는지를 알 수 없으면 개발자는 원인보다 가능성을 먼저 추측하게 됩니다.
NXLAB(엔엑스랩)은 코드 수정 전에 오류를 재현할 수 있는 자료부터 정리합니다. 발생 시각과 대상 환경, 가장 짧은 재현 단계, 기대한 결과와 실제 결과, 요청·응답과 서버 기록을 하나의 오류 재현표로 연결하고 비밀번호·토큰·개인정보는 전달 자료에서 제외합니다.
먼저 확인할 다섯 가지
- 발생 시각, 운영·검수 환경과 사용한 기기·브라우저를 함께 기록합니다.
- 처음 상태부터 오류까지 가장 짧은 행동 순서와 사용한 자료를 적습니다.
- 기대한 결과와 실제 화면·데이터·알림 결과를 나누어 비교합니다.
- 네트워크·콘솔·서버 기록은 같은 요청을 연결하되 민감정보를 제거합니다.
- 수정 뒤 같은 재현 절차와 인접한 실패 사례를 회귀 검수로 남깁니다.
01 · TIME & ENVIRONMENT
언제 어디에서 발생했는지부터 고정합니다
같은 주소라도 운영과 검수 환경의 코드·설정·데이터가 다를 수 있고, 브라우저 종류와 버전, 모바일·데스크톱, 로그인 역할에 따라 결과가 달라질 수 있습니다. 오류를 본 현지 시각과 시간대, 정확한 페이지 주소, 환경, 기기와 브라우저를 함께 기록해야 해당 시점의 배포와 서버 기록을 찾을 수 있습니다.
화면 캡처에는 주소와 오류가 보이더라도 발생 시각이나 직전 행동이 빠질 수 있습니다. 재현표에는 캡처와 별도로 시각, 환경, 계정의 역할, 네트워크 조건과 오류 전 마지막 정상 상태를 적습니다. 비밀번호나 실제 개인정보가 화면에 보이면 그대로 공유하지 않고 가린 자료를 다시 만듭니다.
- 발생 시각과 시간대, 반복해서 확인한 시각
- 운영·검수·로컬 환경과 정확한 페이지 주소
- 기기, 운영체제, 브라우저와 앱 버전
- 로그인 여부와 관리자·일반 사용자 같은 업무 역할
- 오류 직전 마지막으로 정상 확인된 상태
02 · SHORTEST REPRODUCTION
처음 상태부터 오류까지 가장 짧은 순서를 적습니다
오류가 난 뒤 여러 버튼을 다시 누르거나 새로고침하면 처음 문제와 재시도 결과가 섞일 수 있습니다. 로그아웃 상태인지, 새로 연 화면인지, 이미 작성 중인 자료가 있는지처럼 시작 상태를 정한 뒤 번호를 붙여 한 번에 한 행동씩 기록합니다.
항상 발생하는지 특정 자료·순서·횟수에서만 발생하는지도 중요한 단서입니다. 같은 행동이 정상인 비교 사례가 있다면 오류 사례와 무엇이 다른지 함께 적습니다. 재현되지 않는 상황을 숨기지 말고 몇 번 중 몇 번 발생했는지와 확인하지 못한 조건을 구분합니다.
- 시작 상태: 새 세션, 로그인 역할, 기존 데이터와 캐시 여부
- 번호가 있는 클릭·입력·이동 순서와 각 단계의 화면
- 사용한 자료의 형식·크기·상태와 안전한 샘플
- 항상·간헐·특정 조건과 확인한 반복 횟수
- 같은 기능이 정상인 비교 사례와 달라진 조건
03 · EXPECTED & ACTUAL
기대한 결과와 실제 결과를 화면 밖까지 나눕니다
‘정상 동작해야 한다’는 표현만으로는 완료 기준을 알기 어렵습니다. 버튼을 누른 뒤 어느 화면으로 이동해야 하는지, 어떤 데이터가 한 번 저장되어야 하는지, 담당자 알림과 사용자 안내가 각각 어떻게 보여야 하는지를 구체적으로 적습니다.
실제 결과도 오류 문구만 복사하지 않습니다. 화면은 실패로 보였지만 서버에는 저장됐거나, 성공 안내가 나왔지만 알림만 전달되지 않았을 수 있습니다. 화면, 데이터, 외부 알림과 후속 상태를 따로 확인하면 무조건 다시 누르면서 중복 결과를 만드는 일을 줄일 수 있습니다.
- 기대한 화면 이동, 안내 문구와 버튼 상태
- 생성·수정·삭제되어야 할 데이터와 예상 개수
- 이메일·메시지·외부 서비스에 남아야 할 결과
- 실제 화면, 데이터, 알림과 처리 시각의 차이
- 실패 뒤 다시 눌러도 되는지와 중복 여부 확인
04 · BROWSER EVIDENCE
브라우저 요청과 응답을 같은 행동과 연결합니다
화면 오류는 브라우저 코드, 네트워크 요청, 서버 응답과 외부 서비스 중 어느 단계에서도 생길 수 있습니다. Chrome DevTools의 Network 패널은 요청 주소, 방식, 상태, 시작 주체, 크기와 시간을 확인하고 요청·응답 세부 내용을 살펴볼 수 있게 합니다. 오류 행동을 다시 수행할 수 있다면 해당 시점의 실패 요청과 화면 행동을 함께 표시합니다.
네트워크 내보내기 파일과 화면 캡처에는 쿠키, 인증 헤더, 입력값과 개인정보가 포함될 수 있습니다. 자료를 바로 전달하지 않고 필요한 요청의 주소 경로, 상태 코드, 안전한 오류 내용과 시각만 남길 수 있는지 확인합니다. 비밀번호·토큰·세션·개인정보는 가린 척 보이게 덧칠하는 대신 원본 전달본에서 실제로 제거합니다.
- 오류 행동과 같은 시각의 실패 요청 및 상태 코드
- 요청 방식, 안전한 주소 경로와 처리 시간
- 화면 오류와 연결되는 콘솔 메시지의 첫 발생 지점
- 쿠키·인증 헤더·토큰·개인정보를 제거한 전달본
- 전체 자료를 보낼 수 없을 때 개발자가 다시 수집할 절차
05 · SERVER & RELEASE
브라우저와 서버의 기록을 시각과 요청 단위로 맞춥니다
Next.js는 브라우저에서 실행되는 클라이언트 코드와 서버에서 실행되는 코드를 각각 디버깅하는 방법을 안내합니다. 화면의 콘솔에 오류가 없더라도 서버 처리에서 실패할 수 있으므로 어느 실행 영역의 기록인지 구분하고 같은 요청을 찾을 수 있는 시각이나 안전한 요청 식별자를 연결해야 합니다.
최근 배포 뒤 시작된 문제라면 문제가 난 운영 버전과 마지막 정상 버전을 비교합니다. 단순히 최신 코드를 다시 배포하기 전에 변경된 코드, 환경 설정, 데이터 구조와 외부 서비스 상태를 나눠 확인합니다. 운영 기록이 부족하다면 추측으로 채우지 않고 다음 발생 때 필요한 최소 기록을 추가할 범위를 정합니다.
- 클라이언트·서버·외부 서비스 중 기록이 발생한 위치
- 브라우저 행동과 서버 사건을 연결할 시각 또는 요청 식별자
- 문제가 난 배포 버전과 마지막 정상 버전
- 코드·환경 설정·데이터 변경과 외부 장애의 구분
- 기록이 없을 때 다음 재현을 위해 추가할 최소 관측 항목
06 · SAFE LOGGING
원인을 찾는 기록과 남기면 안 되는 정보를 함께 정합니다
오류를 찾기 위해 모든 입력과 응답을 저장하면 비밀번호, 접근 토큰, 세션 식별자와 개인정보가 로그에 남을 수 있습니다. OWASP 로깅 안내는 사건을 조사할 수 있는 시각, 대상, 행동, 결과 같은 속성과 함께 기록에서 제외하거나 가려야 할 인증 정보와 민감정보를 설명합니다.
NXLAB은 필요한 사건과 보관 기간, 열람 권한을 먼저 정합니다. 사용자에게 보이는 오류에는 내부 경로와 비밀정보를 노출하지 않고, 운영 기록에는 원인을 찾을 수 있는 안전한 분류와 요청 관계만 남깁니다. 오류 자료를 메신저나 공개 이슈에 옮길 때도 같은 제외 기준을 적용합니다.
- 기록할 사건, 시각, 대상, 행동, 결과와 안전한 오류 분류
- 제외할 비밀번호·토큰·세션·결제·개인정보
- 운영 기록의 열람 권한, 보관 기간과 삭제 담당자
- 사용자 화면과 내부 기록에서 보여 줄 정보의 구분
- 메신저·이슈·문서로 옮기기 전 민감정보 재확인
07 · FIX & REGRESSION
재현 절차를 수정 완료와 회귀 검수 기준으로 사용합니다
원인으로 보이는 코드를 바꾼 뒤 화면이 한 번 정상으로 보였다고 완료하지 않습니다. 처음 기록한 환경과 자료로 같은 단계를 다시 실행하고, 기대한 화면·데이터·알림 결과가 모두 맞는지 확인합니다. 간헐 오류라면 발생 빈도와 조건을 고려해 반복 범위를 정합니다.
수정이 인접한 정상 흐름을 깨뜨리지 않았는지도 확인해야 합니다. 오류 사례, 정상 비교 사례와 실패·중복 입력을 자동 또는 반복 가능한 수동 검수로 남깁니다. NXLAB은 오류 재현표에 원인, 변경 범위, 검수 결과와 운영 배포 확인을 연결해 다음 담당자가 같은 완료 상태를 다시 확인할 수 있게 인계합니다. 전체 오류 재현표는 NXLAB 공식 원문에서 확인할 수 있습니다.
- 수정 전 오류를 보여 준 같은 환경·자료·행동 순서
- 화면·데이터·알림이 기대 결과와 모두 일치하는지 확인
- 정상 비교 사례와 누락·중복·권한 거부 같은 인접 실패
- 로컬·검수·운영 배포에서 각각 확인할 범위
- 원인, 변경 파일, 검수 증거와 남은 미확정 조건의 인계
OFFICIAL REFERENCES
참고한 공식 자료
- Next.js Docs — Debugging
Next.js 애플리케이션의 클라이언트와 서버 코드를 구분해 디버거를 연결하고 실행 위치별로 문제를 확인하는 공식 안내입니다.
- Chrome for Developers — Network 기능 참조
브라우저 요청의 주소, 방식, 상태, 시작 주체, 시간과 요청·응답 세부 내용을 확인하는 Network 패널의 공식 안내입니다.
- OWASP Cheat Sheet Series — 애플리케이션 로깅
운영·보안 사건을 조사할 기록의 속성, 검증 방법과 로그에서 제외하거나 가려야 할 인증 정보·민감정보를 설명합니다.