Studio는 통합 개발 환경(IDE)에서 일반적으로 제공되는 많은 디버깅 도구와 워크플로를 제공합니다. 이는 스크립트 실행 중 오류를 검사하고 해결하는 데 도움이 됩니다.
중단점 디버깅
중단점은 특정 줄에서 스크립트의 실행을 일시 중지하거나 "중단"하는 체크포인트입니다. 중단점을 사용하여 경험을 검사하고 디버깅하며, 변수 감시 및 호출 스택을 검사할 수 있습니다. 중단점은 함수 디버깅에 가장 효과적인 방법 중 하나이므로 가장 중요한 디버깅 도구 중 하나입니다.
관리
스크립트 편집기에서는 여러 유형의 중단점을 삽입하고 언제든지 중단점 구성을 편집할 수 있습니다. 게임 테스트 세션 중에도 가능합니다. 게임 테스트 세션 중 중단점을 편집하면 세션이 끝난 후에도 편집 내용이 유지됩니다. 현재 게임 테스트 세션을 일시 중지하고 있는 중단점도 편집할 수 있지만 변경 사항은 다음 게임 테스트 세션에서 적용됩니다.
삽입
중단점은 여러 변형을 가지며 실행 가능한 코드의 모든 줄에 삽입할 수 있습니다:
코드의 줄에 표준 중단점을 삽입하려면 줄 번호의 오른쪽 여백을 클릭합니다. 또는 여백에서 마우스 오른쪽 버튼을 클릭하고 중단점 삽입을 선택합니다. 중단점 아이콘은 빨간 원으로 표시됩니다.

비활성화
중단점을 삭제하지 않고 일시적으로 비활성화하려면 다음 워크플로 중 하나를 사용하세요:
- 중단점 아이콘을 클릭합니다.
- 중단점 아이콘을 마우스 오른쪽 버튼으로 클릭하고 중단점 비활성화를 선택합니다.
- 중단점을 편집하고 활성화됨 체크박스를 토글합니다.
비활성화된 중단점은 활성화된 아이콘의 속이 비어 있는 버전으로 표시됩니다. 예를 들어 비활성화된 표준 중단점은 속이 빈 원으로, 비활성화된 로그포인트는 속이 빈 다이아몬드로 표시됩니다.


삭제
중단점을 삭제하려면 아이콘을 중간 클릭하거나 아이콘을 마우스 오른쪽 버튼으로 클릭하고 중단점 삭제를 선택합니다.
편집
중단점 구성은 언제든지 편집할 수 있으며, 게임 테스트 세션 중에도 가능합니다. 게임 테스트 세션 중 중단점을 편집하면 세션이 끝난 이후에도 편집 내용이 유지됩니다. 현재 게임 테스트 세션을 일시 중지하고 있는 중단점도 편집할 수 있지만 변경 사항은 다음 게임 테스트 세션에서 적용됩니다.
중단점을 편집하려면:
중단점 아이콘을 마우스 오른쪽 버튼으로 클릭하고 중단점 편집을 선택합니다.
중단점 편집 창에서 원하는 대로 중단점을 구성합니다. 디버깅 요구에 맞게 이러한 구성을 서로 혼합하여 사용할 수 있습니다.
옵션 설명 조건 중단점이 활성화되는지를 결정하는 선택적 표현식입니다. 조건이 비어 있으면 중단점은 항상 활성화됩니다. 조건이 존재할 경우 중단점은 조건부 중단점으로 변환되며 조건이 참일 때만 활성화됩니다. 예를 들어 변수 var가 10일 때만 중단점이 활성화되도록 하려면 조건을 var == 10으로 설정합니다. 로그 메시지 중단점이 트리거될 때 출력 창에 출력되는 표현식입니다. 로그 메시지의 형식은 print() 문과 동일합니다. 예를 들어, 로그 메시지를 "The value of var:", var로 설정하여 print("The value of var:", var)과 동일한 메시지를 출력합니다. 실행 계속하기 중단점이 활성화될 경우 스크립트가 일시 중지되는지를 결정합니다. 이 옵션은 기본적으로 비활성화되어 있으며, 삽입된 중단점이 로그포인트가 아닌 경우 적용됩니다. 히트 시 중단점 제거 체크하면 중단점이 첫 번째 게임 테스트 세션 이후 자동으로 제거되어 사실상 일시적 중단점이 됩니다. 트리거할 위치 중단점의 컨텍스트는 클라이언트(클라이언트 측 스크립트), 서버(서버 측 스크립트), 또는 편집(디버그 플러그인 스크립트)에서 활성화되는지를 결정합니다. 사용자 지정 컨텍스트를 선택하면 현재 트리거 컨텍스트가 표시됩니다.
워크플로
중단점 디버깅에 대한 일반적인 워크플로는 다음과 같습니다:
디버그할 스크립트를 열고 조사할 코드의 줄에 중단점을 삽입합니다.
Studio의 메자닌에서 게임 테스트를 시작하여 디버깅을 시작합니다.
스크립트가 중단점에 도달하면 게임 테스트 세션이 일시 중지됩니다. 중단점이 구성되어 실행을 계속하도록 설정되지 않은 경우 그렇습니다. 중단점 위의 노란색 화살표는 다음으로 실행될 코드 줄을 나타냅니다.
중단점에 도달한 후 코드 실행을 계속하려면 메자닌에서 스크립트 재개를 클릭합니다.
메자닌의 스텝 버튼을 사용하여 한 줄씩 코드를 실행할 수도 있습니다:
작업 단축키 설명 스텝 인 F11 스텝 인 버튼은 디버거를 현재 줄의 함수 코드로 이동시킵니다. 현재 줄에 함수가 없는 경우 디버거는 다음 줄로 이동합니다. 스텝 오버 F10 스텝 오버 버튼은 디버거를 코드의 다음 줄로 이동시키며, 함수 안으로 들어가지는 않습니다. 스텝 아웃 ShiftF11 스텝 아웃 버튼은 현재 함수에서 디버거를 밖으로 이동시킨 후 함수 호출 후 다음 코드 줄로 이동합니다. 현재 줄이 함수 안에 있지 않은 경우 디버거는 다음 줄로 이동합니다. 현재 세션의 디버깅이 끝나면 중지 버튼을 클릭합니다.
모니터링
Studio는 디버깅 중 변수 값과 함수 실행을 모니터링할 수 있는 여러 창과 도구를 제공합니다. 이 정보를 통해 스크립트의 대부분 문제의 근본 원인을 찾을 수 있습니다.

중단점
중단점 창은 모든 스크립트의 모든 중단점을 보여주는 통합 뷰입니다. 이를 열려면 Studio의 스크립트 탭 툴바에서 중단점을 클릭하거나 창 ⟩ 디버그 메뉴로 이동하여 중단점을 선택하여 토글합니다.
창에서는 스크립트 및 줄 열이 항상 표시되며, 오른쪽 상단 모서리의 ⋮ 메뉴를 통해 다른 구성 열을 켜거나 끌 수 있습니다. 스크립트 열 내에서 중단점을 마우스 오른쪽 버튼으로 클릭하면 편집, 비활성화/활성화, 삭제 또는 스크립트 내 중단점의 줄로 이동할 수 있는 옵션 메뉴가 열립니다.

디버깅 세션 중 가장 왼쪽 열에는 **(x3)**가 표시되며, 이는 중단점에 대한 여러 컨텍스트(클라이언트, 서버, 편집)를 나타냅니다. 중단점의 가지를 확장하여 특정 컨텍스트 옆의 아이콘을 클릭하면 해당 컨텍스트에 대해 중단점을 비활성화/활성화할 수 있습니다. 예를 들어, 클라이언트 컨텍스트에서만 중단점을 비활성화하고 서버 컨텍스트에서는 활성 상태로 유지할 수 있습니다.

호출 스택
호출 스택 창은 Studio의 스크립트 탭 툴바나 창 ⟩ 디버그 메뉴에서 접근할 수 있으며, 디버거가 중단점에 도달했을 때 다음으로 실행될 코드 줄을 표시합니다. 함수가 다른 함수에서 호출된 경우, 이러한 함수가 호출된 줄을 나타내어 실제 호출 흐름이 예상 흐름과 일치하는지를 확인할 수 있습니다.


스크립트가 중단점에서 일시 중지될 때, 메자닌의 스텝 버튼을 사용하여 함수/줄로 들어가거나 넘어가거나 나올 수 있습니다. 이는 워크플로에서 설명한 대로 진행됩니다.

감시
감시 창은 Studio의 스크립트 탭 툴바에서 접근 가능하며, 창 ⟩ 디버그 메뉴에서 활성적으로 변수 및 표현식 값을 감시하면서 중단점을 지나갈 수 있습니다.
변수 탭은 현재 유효 범위 내의 변수에 대한 정보를 표시하며, 창의 상단 바에서 모든 범위 버튼을 클릭하여 필터링할 수 있습니다. 가지를 확장하면 해당 변수 또는 인스턴스의 구성원과 그 값이 표시됩니다. 변수의 경우, 스크립트 편집기에서 두 번 클릭하여 하이라이트한 다음 마우스 오른쪽 버튼 클릭 후 감시 추가를 선택하면 감시할 수 있습니다.


스크립트 편집기
디버거는 스크립트 편집기와 통합되어 있습니다. 스크립트의 중단점에서 경험이 일시 중지되면 변수 이름 위에 마우스를 가져가면 해당 값을 볼 수 있습니다. 예를 들어, 테이블의 구성을 확인하고 그 안에 포함된 키/값을 볼 수 있습니다.

추가 디버깅 도구
디버거 외에도 Studio는 경험의 문제와 버그를 수정할 수 있는 추가 디버깅 도구를 제공합니다.
명령줄
명령 줄은 경험이 실행되는 동안 Luau 명령을 실행할 수 있게 해줍니다. Studio의 창 ⟩ 스크립트 메뉴와 개발자 콘솔에서 사용할 수 있습니다.
개발자 콘솔
개발자 콘솔은 클라이언트 및 서버 출력, 메모리 사용, 네트워크 성능 등을 포함하는 광범위한 세부정보를 제공합니다. 테스트 또는 경험을 재생하는 동안 콘솔을 열려면 채팅에 /console을 입력하거나 F9를 누릅니다.
로그 파일
스크립트가 Studio 또는 플레이어 앱에서 인쇄하거나 오류가 발생할 때, 앱은 로컬 파일 시스템의 로그 파일에 메시지를 기록합니다. 이러한 파일은 운영 체제에 따라 다른 위치에 저장됩니다.
Windows
Windows에서 로그 파일에 접근하려면:
- 파일 탐색기를 엽니다.
- %LOCALAPPDATA%\Roblox\logs 디렉토리로 이동합니다.
- 로그 파일을 더블 클릭하여 열습니다. 동일한 XXXXX 값을 가진 로그는 동일한 Studio 세션에서 생성된 것입니다.
Mac
Mac에서 로그 파일에 접근하려면:
- 파인더를 엽니다.
- 메뉴 바에서 이동 ⟩ **폴더로 이동...**를 선택합니다.
- 대화 상자에 ~/Library/Logs/Roblox를 입력합니다.
- 결과를 더블 클릭하여 Roblox 로그 디렉토리로 이동합니다.
- 디렉토리 내부에서 로그 파일을 더블 클릭하여 엽니다.
iOS
Mac 또는 iOS 장치를 사용하여 iOS 로그를 수집할 수 있습니다.
Mac에서 iOS 로그 파일에 접근하려면:
- iOS 장치를 Mac에 연결합니다.
- 파인더를 엽니다.
- 유틸리티로 이동하여 콘솔 응용 프로그램을 엽니다.
- 콘솔 응용 프로그램에 실시간 로그를 표시하려면 사이드바에서 iOS 장치를 선택하고 시작 버튼을 클릭한 후 iOS 장치에서 문제를 재현합니다.
- 콘솔 응용 프로그램에 아카이브된 로그를 표시하려면 터미널에서 sudo log collect --device-name "[iOS Device Name]"를 실행합니다. 장치 이름에 작은따옴표가 없어야 커맨드를 실행할 때 오류가 발생하지 않습니다.
Android
Android에서 로그 파일에 접근하려면:
- 설정 ⟩ 시스템 ⟩ 개발자 옵션으로 이동합니다.
- 개발자 옵션을 활성화합니다.
- 컴퓨터에서 Android Studio를 다운로드하여 설치합니다.
- Android Studio에서 Logcat을 클릭합니다.
- Android 장치를 컴퓨터에 연결하여 자동으로 Logcat에 로그를 수집합니다.