[task] | knowledge_list [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | 제공된 문서의 내용을 바탕으로 핵심 사실을 추출하여 목록으로 정리했습니다. 1. DataStorage 사용량이 기준치를 초과할 경우 크리티컬 리포트에 기록되며, 향후 기준치 초과 사용이 제한될 예정이므로 크리에이터는 사전에 데이터 사용량을 점검해야 합니다. 2. DataStorage 사용량 제한은 출시된 월드에서만 적용됩니다. 3. 데이터 사용량은 크리에이터가 제작한 월드의 월드 인스턴스 전체를 한 번에 계산하여 적용됩니다. 4. DataStorage류의 함수는 기본적으로 요청(Request) 1개당 1개의 Credit을 소모하지 [original] | # 학습 과정 소개 DataStorage를 기준치 이상으로 사용할 경우 크리티컬 리포트에 기록됩니다. 향후 기준치 이상 사용할 수 없도록 제한이 도입될 예정입니다. 크리에이터는 데이터 사용량을 사전에 점검하기를 권장합니다. 출시된 월드에서만 DataStorage 사용량이 제한됩니다. # 데이터 요청과 Credit 소모 데이터 사용량은 크리에이터가 제작한 월드의 월드 인스턴스 전체를 한 번에 계산해 적용됩니다. DataStorage류의 함수는 기본적으로 **요청(Request) 1개 당 1개의 Credit**을 사용합니다. [chunk_id] | Guides:1044:0
[task] | distill [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | **Transact 계열 Credit** - `batch` 계열과 유사하나, 트랜잭션 보장 처리로 인해 **2배 Credit** 소모. **Credit 미소모 조건** - 타 함수에 의해 이미 Page가 로드된 상태에서는 추가 Credit을 소모하지 않습니다. - 예: `LoadNextPageAndWait()`로 다음 Page를 미리 로드 후 `MoveToNextPageAndWait()` 호출 시, DB 요청이 발생하지 않아 Credit은 `LoadNextPageAndWait()` 호출 시점에만 소모됩니다. [original] | Transact 계열 함수는 batch 계열 함수와 비슷하게 동작합니다. 다만 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 **2배의 Credit**을 소모합니다. #### Credit을 소모하지 않는 함수 어떤 함수를 사용했지만, 이미 다른 함수가 Page를 불러왔을 때는 Credit을 소모하지 않습니다. 대표적으로 `MoveToNextPageAndWait()`, `LoadNextPageAndWait()` 함수는 상황에 따라 Credit을 소모하지 않습니다. 예를 들어, GlobalDataStor [chunk_id] | Guides:1045:1
[task] | knowledge_list [title] | 정규식 언어 [category] | Guides [rephrased] | 제공된 문서 원문에는 mLua 스크립트 언어, 컴포넌트, API, 서버/클라이언트 실행 공간, 동기화 속성 등에 대한 정보가 **전혀 포함되어 있지 않습니다.** 주어진 문서는 "메이플스토리 월드(MapleStory Worlds) 스크립트 언어 mLua"가 아니라, **정규식(Regular Expression)의 수량자(Quantifiers)와 역참조(Backreferences) 문법**에 대한 일반 프로그래밍/텍스트 처리 가이드입니다. 따라서 요청하신 조건("mLua API 이름·매개변수·반환 타입·동기화/서버·클라이언트 제약 [original] | 수량자(Quantifiers)는 일치 항목의 입력에 있어야 하는 문자, 그룹 또는 문자 클래스의 인스턴스 수를 지정합니다. | 수량자 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `*` | 이전 요소를 0개 이상 찾습니다. | `a.*c` | `"abcbc"`의 `"abcbc"` | | `+` | 이전 요소를 1개 이상 찾습니다. | `be+` | `"been"`의 `"bee"`, `"bent"`의 `"be"` | | `?` | 이전 요소를 0개 또는 1개 찾습니다. | `rai?` | `"rain [chunk_id] | Guides:1043:4
[task] | diverse_qa [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | 질문: DataStorage를 기준치 이상으로 사용할 경우 어떤 결과가 발생합니까? 답변: DataStorage를 기준치 이상으로 사용할 경우 크리티컬 리포트에 기록됩니다. 질문: 향후 DataStorage 사용량에 대한 제한이 도입될 예정입니까? 답변: 네, 향후 기준치 이상 사용할 수 없도록 제한이 도입될 예정입니다. 질문: DataStorage 사용량 제한은 어떤 월드에 적용됩니까? 답변: DataStorage 사용량 제한은 출시된 월드에서만 적용됩니다. 질문: DataStorage 데이터 사용량은 어떤 단위로 계산되어 [original] | # 학습 과정 소개 DataStorage를 기준치 이상으로 사용할 경우 크리티컬 리포트에 기록됩니다. 향후 기준치 이상 사용할 수 없도록 제한이 도입될 예정입니다. 크리에이터는 데이터 사용량을 사전에 점검하기를 권장합니다. 출시된 월드에서만 DataStorage 사용량이 제한됩니다. # 데이터 요청과 Credit 소모 데이터 사용량은 크리에이터가 제작한 월드의 월드 인스턴스 전체를 한 번에 계산해 적용됩니다. DataStorage류의 함수는 기본적으로 **요청(Request) 1개 당 1개의 Credit**을 사용합니다. [chunk_id] | Guides:1044:0
[task] | wikipedia [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | **DB DataStorage 사용량 제한 활용하기** mLua의 DB DataStorage API는 데이터베이스 접근 시 Credit이라는 자원을 소모하며, 이는 서버의 부하를 관리하기 위한 제한 메커니즘입니다. Credit 소모량은 호출하는 함수의 종류에 따라 달라집니다. `Transact` 계열 함수는 `batch` 계열 함수와 유사한 동작을 수행하지만, 데이터 무결성을 위한 트랜잭션 보장이 필요하기 때문에 내부적으로 더 많은 처리 과정을 거칩니다. 이로 인해 `Transact` 계열 함수는 동일한 작업 시 `batch` [original] | Transact 계열 함수는 batch 계열 함수와 비슷하게 동작합니다. 다만 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 **2배의 Credit**을 소모합니다. #### Credit을 소모하지 않는 함수 어떤 함수를 사용했지만, 이미 다른 함수가 Page를 불러왔을 때는 Credit을 소모하지 않습니다. 대표적으로 `MoveToNextPageAndWait()`, `LoadNextPageAndWait()` 함수는 상황에 따라 Credit을 소모하지 않습니다. 예를 들어, GlobalDataStor [chunk_id] | Guides:1045:1
[task] | diverse_qa [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | 질문: DataStorageService에서 CreatorDataStorage를 삭제하기 위해 사용할 수 있는 함수 두 가지는 무엇인가요? 답변: DeleteCreatorDataStorageAndWait와 DeleteCreatorDataStorageAsync입니다. 질문: DataStorage 공통 함수 중 Batch 연산을 수행하면서 데이터를 가져오는(Get) 기능은 어떤 이름으로 제공되나요? 답변: BatchGetAndWait, BatchGetAsync, BatchGetByInfoAndWait, BatchGetByInfoAsy [original] | | Type | Functions | FunctionGroup | | --- | --- | --- | | @cols=1:@rows=23:DataStorageService | DeleteCreatorDataStorageAndWait | Delete DataStorage | | DeleteCreatorDataStorageAsync | Delete DataStorage | | DeleteGlobalDataStorageAndWait | Delete DataStorage | | DeleteGlobalDataStorageAsync | De [chunk_id] | Guides:1044:1
[task] | knowledge_list [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | - `Transact` 계열 함수는 `batch` 계열 함수와 유사한 동작을 수행하지만, 트랜잭션 보장을 위한 추가 처리로 인해 `batch` 계열 함수 대비 2배의 Credit을 소모합니다. - `MoveToNextPageAndWait()` 및 `LoadNextPageAndWait()` 함수는 이미 다른 함수에 의해 해당 Page가 로드된 상태라면 데이터베이스 요청을 생략하여 Credit을 소모하지 않습니다. - `GlobalDataStoragePages`의 `LoadNextPageAndWait()` 함수를 호출하여 다음 Page [original] | Transact 계열 함수는 batch 계열 함수와 비슷하게 동작합니다. 다만 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 **2배의 Credit**을 소모합니다. #### Credit을 소모하지 않는 함수 어떤 함수를 사용했지만, 이미 다른 함수가 Page를 불러왔을 때는 Credit을 소모하지 않습니다. 대표적으로 `MoveToNextPageAndWait()`, `LoadNextPageAndWait()` 함수는 상황에 따라 Credit을 소모하지 않습니다. 예를 들어, GlobalDataStor [chunk_id] | Guides:1045:1
[task] | diverse_qa [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | 질문: Transact 계열 함수는 batch 계열 함수와 비교했을 때 Credit 소모량이 어떻게 다른가요? 답변: Transact 계열 함수는 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 2배의 Credit을 소모합니다. 질문: 이미 다른 함수에 의해 Page가 불러와진 상태에서 함수를 호출할 때 Credit은 소모되나요? 답변: 아닙니다. 이미 다른 함수가 Page를 불러왔을 때는 데이터베이스에 요청하지 않으므로 Credit을 소모하지 않습니다. 질문: 문서에 언급된 Credit을 소모하지 않는 [original] | Transact 계열 함수는 batch 계열 함수와 비슷하게 동작합니다. 다만 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 **2배의 Credit**을 소모합니다. #### Credit을 소모하지 않는 함수 어떤 함수를 사용했지만, 이미 다른 함수가 Page를 불러왔을 때는 Credit을 소모하지 않습니다. 대표적으로 `MoveToNextPageAndWait()`, `LoadNextPageAndWait()` 함수는 상황에 따라 Credit을 소모하지 않습니다. 예를 들어, GlobalDataStor [chunk_id] | Guides:1045:1
[task] | wikipedia [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | **DB DataStorage 사용량 제한 알아보기** 본 문서는 메이플스토리 월드의 데이터 저장소(DataStorage) 관련 서비스와 함수들의 사용량 제한 및 기능 분류에 대해 설명합니다. 데이터 저장소는 크게 `DataStorageService`, 데이터 저장소 공통 기능, 그리고 특정 타입별 저장소(`GlobalDataStorage`, `UserDataStorage`, `CreatorDataStorage`, `SortableDataStorage`)로 구분되며, 각 범주에 따라 제공하는 함수와 그 역할이 다릅니다. **Da [original] | | Type | Functions | FunctionGroup | | --- | --- | --- | | @cols=1:@rows=23:DataStorageService | DeleteCreatorDataStorageAndWait | Delete DataStorage | | DeleteCreatorDataStorageAsync | Delete DataStorage | | DeleteGlobalDataStorageAndWait | Delete DataStorage | | DeleteGlobalDataStorageAsync | De [chunk_id] | Guides:1044:1
[task] | distill [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | # DB DataStorage 사용량 제한 ## 용량 제한 문자열 값 크기는 UTF-8 인코딩 Byte 수로 계산됩니다. | 구분 | 제한 용량 | | --- | --- | | DataStorage name | 1 ~ 64 byte | | DataStorage key | 1 ~ 100 byte | | DataStorage tag | 0 ~ 64 byte | | DataStorage version | 0 ~ 64 byte | | update | 0 ~ 50,000 byte | | set | 0 ~ 300,000 byte | ## [original] | # 학습 과정 소개 DataStorage를 사용할 때는 제한 용량과 Credit 제한을 확인하고 용량에 맞게 사용해야 합니다. DataStorage 사용량 제한에 관해 알아보겠습니다. # DataStorage 제한 용량 DataStorage의 용량 제한은 다음과 같습니다. 문자열 값 크기는 UTF-8 인코딩을 통해 Byte 배열로 변환했을 때의 Byte 수로 계산됩니다. |구분 | 제한 용량| | --- | --- | | DataStorage name| 1 ~ 64 byte | | DataStorage key| 1 ~ 10 [chunk_id] | Guides:1045:0
[task] | diverse_qa [title] | 정규식 언어 [category] | Guides [rephrased] | 질문: 교체 구문(Alternation Constructs)의 기본 목적은 무엇인가요? 답변: 교체 구문은 either/or 또는 조건부 일치를 허용하도록 정규식을 수정하는 것입니다. 질문: 세로 막대(`|`)를 사용한 교체 구문은 어떤 동작을 하는가요? 답변: 세로 막대(`|`)로 구분된 한 가지 요소와 일치합니다. 질문: 무늬 `th(e|is|at)`이 `"this is the day."`라는 문자열에서 어떤 부분과 일치하나요? 답변: `"the"`와 `"this"`와 일치합니다. 질문: `(?(`*표현식*`)`*예*`|` [original] | 교체 구문(Alternation Constructs)은 either/or 또는 조건부 일치를 허용하도록 정규식을 수정합니다. | 교체 구문 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `\|` | 세로 막대(\|)로 구분된 한 가지 요소와 일치합니다. | `th(e\|is\|at)` | `"this is the day."`의 `"the"`, `"this"` | | `(?(`*표현식*`)`*예*`\|`*아니오*`)` 또는 `(?(`*표현식*`)`*예*`)` | *표현식*으로 지정한 정규식 패턴이 일치 [chunk_id] | Guides:1043:5
[task] | distill [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | # DB DataStorage 사용량 제한 및 API `DataStorageService`는 데이터 저장소(DataStorage)의 생성, 조회, 수정, 삭제를 담당합니다. 모든 함수는 동기(`AndWait`) 및 비동기(`Async`) 버전을 제공합니다. ## 1. DataStorageService (최상위 서비스) 저장소 타입별 인스턴스 생성 및 개별 데이터 조작을 수행합니다. | 함수명 | 동작 | | :--- | :--- | | `GetUserDataStorage`, `GetGlobalDataStorage`, `GetC [original] | | Type | Functions | FunctionGroup | | --- | --- | --- | | @cols=1:@rows=23:DataStorageService | DeleteCreatorDataStorageAndWait | Delete DataStorage | | DeleteCreatorDataStorageAsync | Delete DataStorage | | DeleteGlobalDataStorageAndWait | Delete DataStorage | | DeleteGlobalDataStorageAsync | De [chunk_id] | Guides:1044:1
[task] | extract_knowledge [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | # DataStorage 사용량 제한 및 Credit 관리 ## 1. 개념 설명 `DataStorage`는 메이플스토리 월드에서 데이터를 저장하고 조회하기 위한 시스템입니다. 출시된 월드에서는 `DataStorage` 사용량이 제한되며, 기준치 이상으로 사용될 경우 크리티컬 리포트에 기록됩니다. 향후에는 기준치 이상 사용이 완전히 차단될 예정입니다. 데이터 사용량은 월드 인스턴스 전체를 기준으로 한 번에 계산됩니다. `DataStorage` 관련 함수 호출 시 **Credit**이 소모됩니다. 기본 규칙은 **요청(Reques [original] | # 학습 과정 소개 DataStorage를 기준치 이상으로 사용할 경우 크리티컬 리포트에 기록됩니다. 향후 기준치 이상 사용할 수 없도록 제한이 도입될 예정입니다. 크리에이터는 데이터 사용량을 사전에 점검하기를 권장합니다. 출시된 월드에서만 DataStorage 사용량이 제한됩니다. # 데이터 요청과 Credit 소모 데이터 사용량은 크리에이터가 제작한 월드의 월드 인스턴스 전체를 한 번에 계산해 적용됩니다. DataStorage류의 함수는 기본적으로 **요청(Request) 1개 당 1개의 Credit**을 사용합니다. [chunk_id] | Guides:1044:0
[task] | wikipedia [title] | 멀티 터치 [category] | Guides [rephrased] | # 멀티 터치 멀티 터치(Multi Touch)는 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 동작을 의미합니다. 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 이러한 멀티 터치를 인식하여 월드 플레이에 활용할 수 있습니다. `ScreenTouch` 계열 이벤트는 화면이 터치될 때 [InputService](/apiReference/Services/InputService)에서 발생하며, 구체적인 이벤트로는 [ScreenTouchEvent](/apiReference/ [original] | # 학습 과정 소개 멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 이번 과정에서는 예제를 통해 멀티 터치 활용 방법을 알아봅시다. # 멀티 터치 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다. 아래의 `ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다. * [Sc [chunk_id] | Guides:1048:0
[task] | extract_knowledge [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | # DB DataStorage Credit 소모 규칙 ## 개념 설명 mLua에서 DataStorage의 `Transact` 계열 함수와 `Batch` 계열 함수는 유사한 동작을 수행합니다. 그러나 `Transact` 계열은 트랜잭션 보장을 위해 추가적인 처리가 필요하므로, 동일한 작업을 수행할 때 `Batch` 계열 함수보다 **2배의 Credit**을 소모합니다. 또한, 특정 조건 하에서는 Credit이 소모되지 않습니다. 이미 다른 함수를 통해 해당 Page가 데이터베이스에서 불러와진 상태라면, 동일한 Page를 대상으로 [original] | Transact 계열 함수는 batch 계열 함수와 비슷하게 동작합니다. 다만 트랜잭션 보장을 위해 더 많은 처리가 필요하므로 batch 계열 함수보다 **2배의 Credit**을 소모합니다. #### Credit을 소모하지 않는 함수 어떤 함수를 사용했지만, 이미 다른 함수가 Page를 불러왔을 때는 Credit을 소모하지 않습니다. 대표적으로 `MoveToNextPageAndWait()`, `LoadNextPageAndWait()` 함수는 상황에 따라 Credit을 소모하지 않습니다. 예를 들어, GlobalDataStor [chunk_id] | Guides:1045:1
[task] | diverse_qa [title] | 정규식 언어 [category] | Guides [rephrased] | 질문: 수량자(Quantifiers)의 정의는 무엇인가요? 답변: 수량자는 일치 항목의 입력에 있어야 하는 문자, 그룹 또는 문자 클래스의 인스턴스 수를 지정합니다. 질문: `*` 수량자는 이전 요소를 어떻게 찾나요? 답변: `*` 수량자는 이전 요소를 0개 이상 찾습니다. 질문: 무늬 `a.*c`가 `"abcbc"`와 매칭될 때 일치하는 항목은 무엇인가요? 답변: `"abcbc"` 전체가 일치합니다. 질문: `+` 수량자의 동작 방식을 설명해 주세요. 답변: `+` 수량자는 이전 요소를 1개 이상 찾습니다. 질문: 무늬 ` [original] | 수량자(Quantifiers)는 일치 항목의 입력에 있어야 하는 문자, 그룹 또는 문자 클래스의 인스턴스 수를 지정합니다. | 수량자 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `*` | 이전 요소를 0개 이상 찾습니다. | `a.*c` | `"abcbc"`의 `"abcbc"` | | `+` | 이전 요소를 1개 이상 찾습니다. | `be+` | `"been"`의 `"bee"`, `"bent"`의 `"be"` | | `?` | 이전 요소를 0개 또는 1개 찾습니다. | `rai?` | `"rain [chunk_id] | Guides:1043:4
[task] | diverse_qa [title] | 루아 프로파일링 요약 보고서 [category] | Guides [rephrased] | 질문: 루아 프로파일링 요약 리포트를 XML 파일로 내보내기 위해 루아 프로파일러에서 어떤 메뉴를 클릭해야 하나요? 답변: 루아 프로파일러에서 File - Export Report를 클릭하면 루아 프로파일링 요약 리포트를 XML로 Export할 수 있습니다. 질문: 루아 프로파일링 요약 리포트에서 Tick 단위는 무엇이며, 프로파일링 시간을 초 단위로 계산하는 공식은 무엇인가요? 답변: Tick은 10ns 단위이며, 프로파일링 시간은 (EndTime - StartTime) / 10,000,000 식으로 계산됩니다. 질문: 요약 [original] | # 학습 과정 소개 루아 프로파일링 요약 보고서에서 어떤 정보가 제공되는지 살펴봅시다. ##### 참고 가이드 [루아 프로파일러를 활용하여 최적화하기](/docs/?postId=762) # 루아 프로파일링 요약 보고서 루아 프로파일러에서 **File - Export Report**를 클릭하면 루아 프로파일링 요약 리포트를 XML로 Export할 수 있습니다. 다음은 요약 리포트에서 제공되는 정보 목록입니다. | 항목 | 설명 | | --- | --- | | Name | 콘텍스트 이름 | | FrameCount | 계측된 프 [chunk_id] | Guides:1046:0
[task] | distill [title] | 멀티 터치 [category] | Guides [rephrased] | # 이벤트 멀티 터치 멀티 터치는 포인터(손가락 등) 여러 개가 동시에 화면을 터치하는 동작입니다. `ScreenTouch` 계열 또는 `Touch` 계열 이벤트를 통해 인식합니다. ## 이벤트 종류 ### 1. ScreenTouch 계열 * **발생 조건**: 화면 터치 시 [InputService](/apiReference/Services/InputService)에서 발생. * **이벤트**: * [ScreenTouchEvent](/apiReference/Events/ScreenTouchEvent) [original] | # 학습 과정 소개 멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 이번 과정에서는 예제를 통해 멀티 터치 활용 방법을 알아봅시다. # 멀티 터치 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다. 아래의 `ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다. * [Sc [chunk_id] | Guides:1048:0
[task] | diverse_qa [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | 질문: DataStorage의 name, key, tag, version의 제한 용량은 각각 얼마인가요? 답변: DataStorage name은 1 ~ 64 byte, key는 1 ~ 100 byte, tag는 0 ~ 64 byte, version은 0 ~ 64 byte입니다. 질문: DataStorage의 update와 set 연산 시 허용되는 최대 용량은 각각 얼마인가요? 답변: update 연산은 0 ~ 50,000 byte, set 연산은 0 ~ 300,000 byte까지 허용됩니다. 질문: DataStorage에서 문자 [original] | # 학습 과정 소개 DataStorage를 사용할 때는 제한 용량과 Credit 제한을 확인하고 용량에 맞게 사용해야 합니다. DataStorage 사용량 제한에 관해 알아보겠습니다. # DataStorage 제한 용량 DataStorage의 용량 제한은 다음과 같습니다. 문자열 값 크기는 UTF-8 인코딩을 통해 Byte 배열로 변환했을 때의 Byte 수로 계산됩니다. |구분 | 제한 용량| | --- | --- | | DataStorage name| 1 ~ 64 byte | | DataStorage key| 1 ~ 10 [chunk_id] | Guides:1045:0
[task] | extract_knowledge [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | # DB DataStorage API 구조 ## 개념 설명 `DataStorageService`는 메이플스토리 월드에서 데이터 저장소(DataStorage)를 관리하기 위한 서비스입니다. 데이터 저장소는 사용 목적과 범위에 따라 **GlobalDataStorage**, **UserDataStorage**, **CreatorDataStorage**, **SortableDataStorage**의 네 가지 유형으로 구분됩니다. 각 저장소 유형은 공통적인 데이터 접근 패턴(읽기, 쓰기, 삭제, 목록 조회)을 제공하며, 실행 방식에 따 [original] | | Type | Functions | FunctionGroup | | --- | --- | --- | | @cols=1:@rows=23:DataStorageService | DeleteCreatorDataStorageAndWait | Delete DataStorage | | DeleteCreatorDataStorageAsync | Delete DataStorage | | DeleteGlobalDataStorageAndWait | Delete DataStorage | | DeleteGlobalDataStorageAsync | De [chunk_id] | Guides:1044:1
[task] | knowledge_list [title] | 멀티 터치 [category] | Guides [rephrased] | ```lua -- 문서에서 추출한 핵심 사실 목록 local facts = { "멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 의미합니다.", "메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다.", "`ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다.", [original] | # 학습 과정 소개 멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 이번 과정에서는 예제를 통해 멀티 터치 활용 방법을 알아봅시다. # 멀티 터치 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다. 아래의 `ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다. * [Sc [chunk_id] | Guides:1048:0
[task] | wikipedia [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | # DataStorage 사용량 제한 활용하기 mLua 스크립트 개발에서 `DataStorage`를 활용할 때는 서버에 저장할 수 있는 데이터의 용량과 요청 횟수에 대한 제한을 반드시 이해해야 합니다. `DataStorage`는 데이터베이스 요청 수를 관리하기 위한 Credit 제도와 각 필드별 용량 제한을 적용하며, 이 제한 사항을 준수하지 않으면 데이터 저장 또는 조회에 실패할 수 있습니다. ## 용량 제한 `DataStorage`의 각 구성 요소와 운영(Update/Set) 시에는 다음과 같은 용량 제한이 적용됩니다. 모 [original] | # 학습 과정 소개 DataStorage를 사용할 때는 제한 용량과 Credit 제한을 확인하고 용량에 맞게 사용해야 합니다. DataStorage 사용량 제한에 관해 알아보겠습니다. # DataStorage 제한 용량 DataStorage의 용량 제한은 다음과 같습니다. 문자열 값 크기는 UTF-8 인코딩을 통해 Byte 배열로 변환했을 때의 Byte 수로 계산됩니다. |구분 | 제한 용량| | --- | --- | | DataStorage name| 1 ~ 64 byte | | DataStorage key| 1 ~ 10 [chunk_id] | Guides:1045:0
[task] | distill [title] | 루아 프로파일링 요약 보고서 [category] | Guides [rephrased] | # 루아 프로파일링 요약 보고서 **File - Export Report**를 통해 XML 형식으로 내보낼 수 있는 루아 프로파일링 요약 보고서의 구성과 필드 정의입니다. ## 1. 리포트 루트 정보 | 항목 | 설명 | | :--- | :--- | | `Name` | 콘텍스트 이름 | | `FrameCount` | 계측된 프레임 수 | | `StartTime` | 프로파일링 시작 Tick (10ns 단위) | | `EndTime` | 프로파일링 종료 Tick (10ns 단위)<br>※ 소요 시간(초) = `(EndTime - [original] | # 학습 과정 소개 루아 프로파일링 요약 보고서에서 어떤 정보가 제공되는지 살펴봅시다. ##### 참고 가이드 [루아 프로파일러를 활용하여 최적화하기](/docs/?postId=762) # 루아 프로파일링 요약 보고서 루아 프로파일러에서 **File - Export Report**를 클릭하면 루아 프로파일링 요약 리포트를 XML로 Export할 수 있습니다. 다음은 요약 리포트에서 제공되는 정보 목록입니다. | 항목 | 설명 | | --- | --- | | Name | 콘텍스트 이름 | | FrameCount | 계측된 프 [chunk_id] | Guides:1046:0
[task] | distill [title] | 멀티 터치 [category] | Guides [rephrased] | **이벤트 멀티 터치** `TouchReceiveComponent`가 있는 엔티티를 터치하면 엔티티가 손가락을 따라 이동하는 예제입니다. ### 1. 설정 1. `object-44`, `object-49` 엔티티를 씬에 배치합니다. 2. 두 엔티티에 **TouchReceiveComponent**를 추가합니다. (터치 이벤트 발생 필수 조건) 3. 새 스크립트 컴포넌트 `MultitouchTest`를 생성해 두 엔티티에 추가합니다. ### 2. 프로퍼티 ```lua Property: [None] SyncTable<integer> [original] | **TouchReceiveComponent**를 추가한 엔티티 한 개 또는 여러 개를 터치한 상태로 움직이면 엔티티가 따라서 이동하는 예제를 살펴봅시다. 1. **Preset List - Object**에서 원하는 엔티티 2개를 **Scene**에 배치합니다. 예제에서는 **object-44**와 **object-49**를 사용했습니다. 2. 본 예제에서는 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`를 활용할 예정입니다. 이 이벤트들은 엔티티에 **TouchRec [chunk_id] | Guides:1048:1
[task] | wikipedia [title] | 정규식 언어 [category] | Guides [rephrased] | ## 정규식 언어: 교체 구문과 대체 정규식 언어는 텍스트 처리를 위한 패턴 매칭과 치환 기능을 제공합니다. 이 섹션에서는 패턴 내에서 조건부 분기를 허용하는 **교체 구문(Alternation Constructs)**과, 일치한 텍스트를 새로운 문자열로 바꾸는 **대체(Substitutions)** 구문에 대해 설명합니다. ### 교체 구문(Alternation Constructs) 교체 구문은 정규식 패턴이 `either/or` 관계나 조건부 일치 로직을 따르도록 수정하는 문법 요소입니다. 이는 세로 막대(`|`)를 이용한 [original] | 교체 구문(Alternation Constructs)은 either/or 또는 조건부 일치를 허용하도록 정규식을 수정합니다. | 교체 구문 | 설명 | 무늬 | 일치 항목 | | -- | -- | -- | -- | | `\|` | 세로 막대(\|)로 구분된 한 가지 요소와 일치합니다. | `th(e\|is\|at)` | `"this is the day."`의 `"the"`, `"this"` | | `(?(`*표현식*`)`*예*`\|`*아니오*`)` 또는 `(?(`*표현식*`)`*예*`)` | *표현식*으로 지정한 정규식 패턴이 일치 [chunk_id] | Guides:1043:5
[task] | knowledge_list [title] | DataStorage 사용량 제한 알아보기 [category] | Guides [rephrased] | ```lua -- DataStorageService 함수 목록 및 기능 요약 -- 문서 위치: [Guides] 기본 제작 가이드 > 데이터 > DB DataStorage 사용량 제한 알아보기 -- 1. DataStorageService 타입의 함수들 -- DeleteCreatorDataStorageAndWait: Creator DataStorage를 삭제합니다. (동기화: Wait) -- DeleteCreatorDataStorageAsync: Creator DataStorage를 삭제합니다. (동기화: Async) -- Delet [original] | | Type | Functions | FunctionGroup | | --- | --- | --- | | @cols=1:@rows=23:DataStorageService | DeleteCreatorDataStorageAndWait | Delete DataStorage | | DeleteCreatorDataStorageAsync | Delete DataStorage | | DeleteGlobalDataStorageAndWait | Delete DataStorage | | DeleteGlobalDataStorageAsync | De [chunk_id] | Guides:1044:1
[task] | diverse_qa [title] | 멀티 터치 [category] | Guides [rephrased] | 질문: 멀티 터치(Multi Touch) 동작은 무엇으로 정의되나요? 답변: 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 질문: 메이플스토리 월드에서 멀티 터치를 인식하기 위해 사용할 수 있는 이벤트 계열은 무엇인가요? 답변: `ScreenTouch` 계열 이벤트와 `Touch` 계열 이벤트를 통해 멀티 터치를 인식할 수 있습니다. 질문: `ScreenTouch` 계열 이벤트는 어떤 서비스에서 발생하나요? 답변: [InputService](/apiReference/Services/InputService [original] | # 학습 과정 소개 멀티 터치 동작은 포인터(예: 손가락) 여러 개가 동시에 화면을 터치하는 것을 말합니다. 이번 과정에서는 예제를 통해 멀티 터치 활용 방법을 알아봅시다. # 멀티 터치 메이플스토리 월드에서는 `ScreenTouch` 계열 이벤트 또는 `Touch` 계열 이벤트를 통해 멀티 터치를 인식하고 월드 플레이에 활용할 수 있습니다. 아래의 `ScreenTouch` 계열 이벤트는 화면을 터치했을 때 [InputService](/apiReference/Services/InputService)에서 발생합니다. * [Sc [chunk_id] | Guides:1048:0
[task] | knowledge_list [title] | 멀티 터치 [category] | Guides [rephrased] | 제시된 문서 내용을 바탕으로 추출한 핵심 사실 목록입니다. 1. 엔티티에 `TouchReceiveComponent`가 존재해야만 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`가 발생하며, 이 컴포넌트가 없는 경우 해당 터치 이벤트들은 트리거되지 않습니다. 2. `TouchEvent`는 `TouchReceiveComponent`가 발신하는 네이티브 이벤트로, 실행 공간은 Client이며, 이벤트 객체에서 `event.TouchId`와 `event.TouchPoint` 매개변수를 조회 [original] | **TouchReceiveComponent**를 추가한 엔티티 한 개 또는 여러 개를 터치한 상태로 움직이면 엔티티가 따라서 이동하는 예제를 살펴봅시다. 1. **Preset List - Object**에서 원하는 엔티티 2개를 **Scene**에 배치합니다. 예제에서는 **object-44**와 **object-49**를 사용했습니다. 2. 본 예제에서는 `TouchEvent`, `TouchHoldEvent`, `TouchReleaseEvent`를 활용할 예정입니다. 이 이벤트들은 엔티티에 **TouchRec [chunk_id] | Guides:1048:1
[task] | wikipedia [title] | 루아 프로파일링 요약 보고서 [category] | Guides [rephrased] | # 루아 프로파일링 요약 보고서 루아 프로파일링 요약 보고서는 메이플스토리 월드 스크립트 성능 분석을 위해 수집된 계측 데이터를 XML 형식으로 내보내기 위한 기능입니다. 이 보고서는 루아 프로파일러 인터페이스의 **File - Export Report** 메뉴를 통해 생성되며, 전체적인 프레임 성능, 네트워크 통신량, 메모리 사용량, 그리고 개별 함수 호출 수준의 상세 프로파일링 정보를 제공합니다. ## 보고서 구조 및 주요 항목 요약 리포트는 크게 전체 세션에 대한 개요 정보와 개별 샘플(Sample)에 대한 상세 정보로 [original] | # 학습 과정 소개 루아 프로파일링 요약 보고서에서 어떤 정보가 제공되는지 살펴봅시다. ##### 참고 가이드 [루아 프로파일러를 활용하여 최적화하기](/docs/?postId=762) # 루아 프로파일링 요약 보고서 루아 프로파일러에서 **File - Export Report**를 클릭하면 루아 프로파일링 요약 리포트를 XML로 Export할 수 있습니다. 다음은 요약 리포트에서 제공되는 정보 목록입니다. | 항목 | 설명 | | --- | --- | | Name | 콘텍스트 이름 | | FrameCount | 계측된 프 [chunk_id] | Guides:1046:0
[task] | knowledge_list [title] | DataStorage 사용량 제한 활용하기 [category] | Guides [rephrased] | ```lua -- 핵심 사실 추출 목록 -- 각 항목은 독립적으로 이해되는 완결된 문장이며, API 이름, 매개변수, 반환 타입, 동기화/서버·클라이언트 제약을 명시합니다. local facts = { [1] = "DataStorage의 name 속성은 1 ~ 64 byte 크기의 문자열 값을 가질 수 있으며, 이는 서버와 클라이언트 양쪽에서 모두 적용되는 제약입니다.", [2] = "DataStorage의 key 속성은 1 ~ 100 byte 크기의 문자열 값을 가질 수 있으며, 이는 서버와 클라이언트 양쪽에서 모 [original] | # 학습 과정 소개 DataStorage를 사용할 때는 제한 용량과 Credit 제한을 확인하고 용량에 맞게 사용해야 합니다. DataStorage 사용량 제한에 관해 알아보겠습니다. # DataStorage 제한 용량 DataStorage의 용량 제한은 다음과 같습니다. 문자열 값 크기는 UTF-8 인코딩을 통해 Byte 배열로 변환했을 때의 Byte 수로 계산됩니다. |구분 | 제한 용량| | --- | --- | | DataStorage name| 1 ~ 64 byte | | DataStorage key| 1 ~ 10 [chunk_id] | Guides:1045:0