ROBLOX STUDIO · DEBUGGING

스크립트가 안 될 때
코드를 전부 다시 쓰지 마세요

초보 개발에서 가장 흔한 실수는 오류 원인을 확인하기 전에 코드를 크게 바꾸는 것입니다. Output과 문제가 시작되는 지점을 먼저 확인하면 작은 수정으로 해결되는 경우가 많습니다.

DEBUG STEP BY STEP

오류를 “재현 가능한 한 단계”로 줄이세요

버튼, RemoteEvent, 데미지, 저장 기능처럼 여러 시스템이 연결된 상태에서는 어느 구간이 실패했는지 먼저 찾는 것이 핵심입니다.

1. Output을 먼저 봅니다

빨간 오류가 있다면 파일 이름과 줄 번호부터 확인하세요. 문법 오류, nil 접근, 존재하지 않는 객체 참조는 Output만으로도 원인을 좁힐 수 있습니다. 경고도 반복해서 쌓인다면 무시하지 않는 편이 좋습니다.

2. print로 흐름을 확인합니다

이벤트가 실제로 실행되는지 확실하지 않다면 함수 시작점과 조건문 안쪽에 짧은 로그를 넣어보세요. 로그가 나오지 않으면 계산식보다 이벤트 연결이나 스크립트 위치 문제를 먼저 봐야 합니다.

3. 변수 값이 예상과 같은지 확인합니다

체력, 돈, 아이템 ID, 플레이어 객체처럼 핵심 값은 중간에 직접 출력해보세요. 값이 nil인지, 문자열과 숫자가 섞였는지, 서버에서만 존재하는 객체를 클라이언트에서 찾고 있지는 않은지 확인합니다.

4. 서버와 클라이언트를 구분합니다

ServerScriptService의 Script와 플레이어 쪽 LocalScript는 실행 위치가 다릅니다. UI 입력을 서버에서 직접 읽으려 하거나 서버에서 만든 값을 클라이언트가 자동으로 안다고 가정하면 문제가 생길 수 있습니다. RemoteEvent를 쓴다면 보내는 쪽과 받는 쪽을 각각 따로 확인하세요.

5. 기능을 작게 분리해 테스트합니다

데미지 계산, 쿨다운, 이펙트, 저장을 한 함수에 모두 넣었다면 어느 단계가 실패했는지 알기 어렵습니다. 임시로 한 기능씩 꺼보고 핵심 동작만 남겨 재현해보세요.

수정 전에는 작동하던 코드가 있었다면 먼저 복사본이나 버전 기록을 남기세요. 여러 기능을 동시에 바꾸면 새로운 오류와 기존 오류를 구분하기 어려워집니다.

6. 질문할 때 코드만 붙이지 말고 이것도 적습니다

  • 기대한 동작
  • 실제 동작
  • Output 오류 전문
  • 문제가 생기는 스크립트 위치
  • 서버/클라이언트 중 어디에서 실행되는지
  • 최근 바꾼 부분
오류를 최소 재현으로 줄였나요?

그 상태의 코드와 Output을 개발자 포럼에 올리면 답변 받기 쉬워집니다.

개발자 포럼 →