# Education : 교육

:ballot\_box\_with\_check:속성 중 **Key** 이름은 가이드에 나와있는 **Key** 이름을 그대로 사용 해 주세요.\
(임의로 변경시 대시보드에서 데이터 확인이 어렵습니다.  > class\_id , class\_name 등)

## 출석 체크

출석 체크를 완료되는 시점에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_check_attendance"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_check_attendance" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_check_attendance";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_check_attendance";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_check_attendance";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_attendance"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_check_attendance"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_check_attendance"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_check_attendance");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 공부 인증하기

공부 인증하기를 완료되는 시점에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_check_study");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_check_study"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_check_study"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_check_study" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_check_study";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_check_study";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_check_study";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_study"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_check_study"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_check_study"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_check_study");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 강의 수강하기

강의 수강을 완료하는 시점에 아래 코드를 추가합니다.

**선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>class_id</td><td>RW202008170</td><td>string</td><td>강의 고유번호</td></tr><tr><td>class_name</td><td>큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비</td><td>string</td><td>강의 이름</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_take_classes");
eventMap.put("class_id", "RW202008170");
eventMap.put("class_name", "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_take_classes"
eventMap["class_id"] = "RW202008170"
eventMap["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_take_classes"
event["class_id"] = "RW202008170"
event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_take_classes" forKey:@"event"];
[event setValue:@"RW202008170" forKey:@"class_id"];
[event setValue:@"큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비" forKey:@"class_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_take_classes";
    event["class_id"] = "RW202008170";
    event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";        
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_take_classes";
    event["class_id"] = "RW202008170";
    event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_take_classes";
event["class_id"] = "RW202008170";
event["class_name"] = "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_check_study",
              class_id : "RW202008170",
              class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_take_classes",
    class_id : "RW202008170",
    class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	event : "w_take_classes",
	    class_id : "RW202008170",
	    class_name : "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_take_classes");
eventDic.Add("event", "RW202008170");
eventDic.Add("event", "큰별쌤 최태성의 별별한국사 수능개념 2023학년도 수능 대비");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 레벨테스트 완료

레벨테스트를 완료되는 시점에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_leveltest_complete");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_leveltest_complete"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_leveltest_complete"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_leveltest_complete" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_leveltest_complete";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_leveltest_complete";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_leveltest_complete";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_leveltest_complete"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_leveltest_complete"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_leveltest_complete"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_leveltest_complete");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 파트너 프로그램 등록 완료

파트너 프로그램 등록을 완료되는 시점에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_partner_application_complete");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_partner_application_complete"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_partner_application_complete"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_partner_application_complete" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_partner_application_complete";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_partner_application_complete";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_partner_application_complete";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_partner_application_complete"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_partner_application_complete"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    	    event : "w_partner_application_complete"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_partner_application_complete");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 자료 다운로드하기

자료 다운로드를 완료하는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="207">Key</th><th width="252">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>document_id</td><td>789456</td><td>string</td><td>자료 고유번호</td></tr><tr><td>document_name</td><td>빠른독해 바른독해 구문독해 [2022 개정]</td><td>string</td><td>자료 이름</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_download_documents");
eventMap.put("document_id", "789456");
eventMap.put("document_name", "빠른독해 바른독해 구문독해 [2022 개정]");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_download_documents"
eventMap["document_id"] = "789456"
eventMap["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_download_documents"
event["document_id"] = "789456"
event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_download_documents" forKey:@"event"];
[event setValue:@"789456" forKey:@"document_id"];
[event setValue:@"빠른독해 바른독해 구문독해 [2022 개정]" forKey:@"document_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_documents";
    event["document_id"] = "789456";
    event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_documents";
    event["document_id"] = "789456";
    event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_download_documents";
event["document_id"] = "789456";
event["document_name"] = "빠른독해 바른독해 구문독해 [2022 개정]";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_download_documents",
              document_id : "789456",
              document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_download_documents",
    document_id : "789456",
    document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
    		event : "w_download_documents",
		document_id : "789456",
		document_name : "빠른독해 바른독해 구문독해 [2022 개정]"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_download_documents");
eventDic.Add("document_id", "789456");
eventDic.Add("document_name", "빠른독해 바른독해 구문독해 [2022 개정]");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 스터디그룹 이벤트

### 그룹 개설하기

그룹 개설하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_create_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_create_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_create_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_create_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_create_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_create_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_create_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_create_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
		    event : "w_create_group",
		    group_id : "M380",
		    group_name : "[수능개념] 윤혜정의 나비효과",
		    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_create_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 가입하기

그룹 가입을 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_join_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_join_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_join_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_join_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_join_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_join_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_join_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_join_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_join_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 삭제하기

그룹 삭제하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_remove_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_remove_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_remove_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_remove_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_remove_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_remove_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_remove_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_remove_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_remove_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 그룹 탈퇴하기

그룹 탈퇴하기를 완료되는 시점에 아래 코드를 추가합니다.

#### 선택 속성

<table data-header-hidden><thead><tr><th width="182">Key</th><th width="201">Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>group_id</td><td>M380</td><td>string</td><td>그룹 고유번호</td></tr><tr><td>group_name</td><td>[수능개념] 윤혜정의 나비효과</td><td>string</td><td>그룹 이름</td></tr><tr><td>group_dist</td><td>10</td><td>string</td><td>그룹 인원수 분포</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_unsubscribe_group");
eventMap.put("group_id", "M380");
eventMap.put("group_name", "[수능개념] 윤혜정의 나비효과");
eventMap.put("group_dist", "w_check_attendance");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_unsubscribe_group"
eventMap["group_id"] = "M380"
eventMap["group_name"] = "[수능개념] 윤혜정의 나비효과"
eventMap["group_dist"] = "w_check_attendance"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_unsubscribe_group"
event["group_id"] = "M380"
event["group_name"] = "[수능개념] 윤혜정의 나비효과"
event["group_dist"] = "10"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_unsubscribe_group" forKey:@"event"];
[event setValue:@"M380" forKey:@"group_id"];
[event setValue:@"[수능개념] 윤혜정의 나비효과" forKey:@"group_name"];
[event setValue:@"10" forKey:@"group_dist"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_unsubscribe_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_unsubscribe_group";
    event["group_id"] = "M380";
    event["group_name"] = "[수능개념] 윤혜정의 나비효과";
    event["group_dist"] = "10";  
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때
Map event = {};
event["event"] = "w_unsubscribe_group";
event["group_id"] = "M380";
event["group_name"] = "[수능개념] 윤혜정의 나비효과";
event["group_dist"] = "10";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_unsubscribe_group",
              group_id : "M380",
              group_name : "[수능개념] 윤혜정의 나비효과",
              group_dist : "10"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_unsubscribe_group",
    group_id : "M380",
    group_name : "[수능개념] 윤혜정의 나비효과",
    group_dist : "10"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_unsubscribe_group",
	    group_id : "M380",
	    group_name : "[수능개념] 윤혜정의 나비효과",
	    group_dist : "10"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_unsubscribe_group");
eventDic.Add("group_id", "M380");
eventDic.Add("group_name", "[수능개념] 윤혜정의 나비효과");
eventDic.Add("group_dist", "10");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}
