Skip to content

Commit 27af636

Browse files
docs: Korean Exiled Docs Update (#563)
Update README-KR.md
1 parent aa4d639 commit 27af636

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

.github/documentation/localization/README-KR.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
</div>
1313

14-
EXILED는 SCP: 비밀 연구소 서버들을 위한 고급 플러그인 프레임워크입니다. 개발자가 게임의 코드를 바꾸거나 자신만의 기능을 넣을 수 있는 이벤트 시스템을 제공하며, 모든 EXILED 이벤트들은 Harmony로 작성되어 직접적으로 서버의 어셈블리를 바꿀 필요가 없어, 2가지의 장점을 만들어냅니다.
14+
EXILED는 SCP: 비밀 연구소 서버들을 위한 고급 플러그인 프레임워크입니다. 개발자가 게임의 코드를 바꾸거나 자신만의 기능을 넣을 수 있는 이벤트 시스템을 제공하며, 모든 EXILED 이벤트들은 Harmony로 작성되어 직접적으로 서버의 어셈블리를 바꿀 필요가 없다는 2가지의 장점이 있습니다.
1515

1616
- 첫째로, 모든 프레임워크의 코드는 자유롭게 공유되거나 배포될 수 있어, 개발자들이 _어떻게_ 프레임워크가 작동하고 기능을 추가하고나 바꾸는 방법을 배울 수 있습니다.
17-
- 둘째로, 프레임워크가 관련된 모든 코드가 서버 어셈블리 밖에서 작동되기 때문에, 만약 작은 업데이트가 존재하더라도, 프레임워크에는 아주 작은 영향을 미치게 됩니다. 이로 하여금 계속되는 업데이트와의 호환성이 (거의) 보장되며, 업데이트를 _필요할 _ 할 수 있습니다.
17+
- 둘째로, 프레임워크가 관련된 모든 코드가 서버 어셈블리 밖에서 작동되기 때문에, 만약 작은 업데이트가 존재하더라도, 프레임워크에는 아주 작은 영향을 미치게 됩니다. 이로 하여금 계속되는 업데이트와의 호환성이 (거의) 보장되며, 업데이트를 _필요할 때_만 해도 됩니다.
1818

1919
# EXILED 설치하기
2020

21-
EXILED의 설치 과정은 상당히 간단합니다. 노스우드의 Plugin API을 이용해 프레임워크를 불러오며, 이는 릴리즈 파일 `Exiled.tar.gz` 안에 2개의 폴더가 있는 이유가 됩니다. `SCP Secret Laboratory` 폴더는 `EXILED` 폴더에 있는 EXILED의 모든 기능을 불러오는데 필요한 파일들을 담고 있습니다. 이제 이 두 폴더를 (아래에 설명된) 위치로 옮기면, 짜잔! EXILED 설치 완료!
21+
EXILED의 설치 과정은 상당히 간단합니다. 노스우드의 Plugin API을 이용해 프레임워크를 불러오며, 이는 릴리즈 파일 `Exiled.tar.gz` 안에 2개의 폴더가 있는 이유입니다. `SCP Secret Laboratory` 폴더는 `EXILED` 폴더에 있는 EXILED의 모든 기능을 불러오는데 필요한 파일들을 담고 있습니다. 이제 이 두 폴더를 (아래에 설명된) 위치로 옮기면, 짜잔! EXILED 설치가 완료되었습니다!
2222

2323
만약 설치 프로그램을 사용한다면, 제대로 실행할 시 모든 EXILED의 기능을 자동으로 설치할 것입니다.
2424

@@ -30,7 +30,7 @@ EXILED의 설치 과정은 상당히 간단합니다. 노스우드의 Plugin API
3030

3131
- **[여기에서](https://github.com/ExMod-Team/EXILED/releases) `Exiled.Installer-Win.exe`** 를 다운로드합니다. (Assets 클릭 -> Exiled.Installer-Win.exe 클릭)
3232
- 서버와 같은 폴더에 프로그램을 위치시킵니다. (서버를 다운로드 받지 않았다면 설치하세요.)
33-
- **`Exiled.Installer.exe`** 를 실행하거나 프리릴리즈 버전을 설치하려면 **[.bat 파일](https://www.dropbox.com/scl/fi/7yh0r3q0vdn6ic4rhuu3l/install-prerelease.bat?rlkey=99fwjbwy1xg61qgtak0qzb9rd&st=8xs4xks8&dl=1)을 받아** 서버 폴더에 넣고 실행합니다.
33+
- **`Exiled.Installer.exe`** 를 실행하거나 프리릴리즈(사전 출시) 버전을 설치하려면 **[.bat 파일](https://www.dropbox.com/scl/fi/7yh0r3q0vdn6ic4rhuu3l/install-prerelease.bat?rlkey=99fwjbwy1xg61qgtak0qzb9rd&st=8xs4xks8&dl=1)을 받아** 서버 폴더에 넣고 실행합니다.
3434
- 플러그인을 다운로드하고 설치하려면, 아래 [플러그인 설치](#플러그인-설치) 문단을 참고하세요.
3535
**주의사항:** EXILED를 원격 서버에 설치하려고 한다면, .exe 파일을 실행할 때 SCP: 비밀 연구소 서버를 실행할 유저와 같은 유저인지, 또는 관리자 권한을 가진 유저인지 확인해주세요.
3636

@@ -47,7 +47,7 @@ EXILED의 설치 과정은 상당히 간단합니다. 노스우드의 Plugin API
4747

4848
### 플러그인 설치
4949

50-
자, 이제 모든 설치가 완료되었습니다! EXILED는 이제 설치되었고 다음 서버 구동시 활성화 될 것입니다. EXILED 자체로는 아무것도 하지 않습니다. **[저희의 디스코드 서버](https://discord.gg/PyUkWTg)** 에서 새롭고 재미있는 플러그인을 찾아보세요!
50+
자, 이제 모든 설치가 완료되었습니다! EXILED는 이제 설치되었고 다음 서버 구동시 활성화 될 것입니다. EXILED 자체로는 어떠한 일도 일어나지 않습니다. **[저희의 디스코드 서버](https://discord.gg/PyUkWTg)** 에서 새롭고 재미있는 플러그인을 찾아보세요!
5151

5252
- 플러그인을 설치하려면:
5353
- [_플러그인의_ 릴리즈 페이지](https://i.imgur.com/u34wgPD.jpg)에서 플러그인을 다운로드하세요. (**무조건 `.dll` 파일 형식이어야 합니다!**)
@@ -60,8 +60,8 @@ EXILED의 설치 과정은 상당히 간단합니다. 노스우드의 Plugin API
6060
**주의사항**: 설치 프로그램을 사용하기 전에, SCP: 비밀 연구소 서버를 실행할 유저와 같은 유저인지, 또는 `root` 유저인지 확인해주세요.
6161

6262
- **`Exiled.Installer-Linux`****[여기서](https://github.com/ExMod-Team/EXILED/releases)** 다운로드 하세요. (Assets 클릭 -> 설치 프로그램 다운로드)
63-
- **`./Exiled.Installer-Linux --path /path/to/server`** 를 입력해 설치하거나, 파일을 서버 폴더 안에 위치시키고 터미널을 이동시킨 다음 (`cd`) **`./Exiled.Installer-Linux`** 를 입력하세요.
64-
- 프리릴리즈 버전을 원한다면, 실행 시 **`--pre-releases`** 를 추가하세요. 예시: **`./Exiled.Installer-Linux /home/scp/server --pre-releases`**
63+
- **`./Exiled.Installer-Linux --path /path/to/server`** 를 입력해 설치하거나, 파일을 서버 폴더 안에 위치시키고 터미널(콘솔)의 경로를 이동시킨 다음 (`cd`) **`./Exiled.Installer-Linux`** 를 입력하세요.
64+
- 프리릴리즈(사전 출시) 버전을 원한다면, 실행 시 **`--pre-releases`** 를 추가하세요. 예시: **`./Exiled.Installer-Linux /home/scp/server --pre-releases`**
6565
- 또 다른 예시: 만약 `Exiled.Installer-Linux`를 서버 폴더 안에 위치시켰다면: **`/home/scp/server/Exiled.Installer-Linux --pre-releases`** 를 입력하세요.
6666
- 플러그인을 다운로드하고 설치하려면 [플러그인 설치](#플러그인-설치-1) 문단을 참고해주세요.
6767

@@ -91,16 +91,16 @@ EXILED 자체도 몇 가지 설정을 가지고 있습니다. 이 설정들은
9191

9292
# 개발자들을 위한 정보
9393

94-
만약 EXILED 플러그인을 만들고 싶다면, 사실 간단합니다. 튜토리얼을 원한다면 [여기 (영어)](GettingStarted.md)를 읽어주세요.
94+
만약 EXILED 플러그인을 만들고 싶다면, 간단한 방법이 있습니다. 튜토리얼을 원한다면 [여기 (영어)](GettingStarted.md)를 읽어주세요.
9595

96-
더 상세하고 자주 업데이트 되는 튜토리얼을 원한다면, [EXILED 웹사이트](https://exmod-team.github.io/EXILED/)를 방문해보세요.
96+
또는 조금 더 상세하고 자주 업데이트 되는 튜토리얼을 원한다면, [EXILED 웹사이트](https://exmod-team.github.io/EXILED/)를 방문해보세요.
9797

9898
하지만 플러그인을 만들기 전에, 몇 가지 주의사항을 알아두세요:
9999

100100
- 당신의 플러그인은 **무조건** `Exiled.API.Features.Plugin<>`을 상속받는 클래스를 가지고 있어야 합니다. 없다면 EXILED 실행 시 플러그인이 작동되지 않습니다.
101101
- 플러그인이 실행되면, `OnEnabled()` 메서드가 **바로** 실행됩니다. 다른 플러그인이 불러와질 때까지 기다리지도 않고, 서버 시작 절차가 끝날 때가지 기다리지도 않습니다. **_아무것도 기다리지 않아요._** `OnEnabled()` 메소드을 구현할 때, 아직 설정이 되지 않은 것들, 예를 들어 `ServerConsole.Port`, 혹은 `PlayerManager.localPlayer` 을 사용하고 있지는 않은지 확인하세요.
102102
- 만약 아직 설정이 되지 않은 것들을 빨리 사용하고 싶다면, `WaitingForPlayers` 이벤트를 기다리거나, 더 빨리, 최대한 빨리 사용하고 싶다면 코드를 `while(!x)` 안에 접근하고 싶은 것이 `null`이 아닌지 확인하는 코드와 함께 넣어주세요.
103-
- EXILED는 플러그인 어셈블리들을 서버 동작 중 동적으로 다시 불러올 수 있습니다. 플러그인을 업데이트하고 싶다면, 서버를 재시작할 필요가 없습니다. 하지만, 플러그인을 다시 불러온다면, 플러그인이 리로드를 지원하는지 확인하세요. 지원하지 않은 상태로 리로드를 시도하면, 아주, 매우, 안 좋은 시간을 보내게 될 겁니다. `동적 리로드` 문단을 읽어 보세요.
103+
- EXILED는 플러그인 어셈블리들을 서버 동작 중 동적으로 다시 불러올 수 있습니다. 플러그인을 업데이트하고 싶다면, 서버를 재시작할 필요가 없습니다. 하지만, 플러그인을 다시 불러온다면, 플러그인이 리로드를 지원하는지 확인하세요. 지원하지 않은 상태로 리로드를 시도하면, 매우 끔찍한 시간을 보내게 될 겁니다. `동적 리로드` 문단을 읽어 보세요.
104104
- OnUpdate, OnFixedUpdate 이나 OnLateUpdate는 EXILED에 **_존재하지 않습니다_**. 코드를 그 정도로 많이 실행시키고 싶다면, MEC 코루틴을 사용하여 1 프레임, 0.01초 기다리는 코루틴을 사용하거나 Timing 레이어 (Timing.FixedUpdate 등) 를 사용하세요.
105105

106106
### MEC 코루틴
@@ -123,34 +123,34 @@ public void SomeMethod()
123123

124124
public IEnumerator<float> MyCoroutine()
125125
{
126-
for (;;) // 무한 반복
126+
for (;;) // 무한 반복 (또는 while (true))
127127
{
128128
Log.Info("무⭐한⭐반⭐복!"); // 서버 로그를 생성합니다.
129-
yield return Timing.WaitForSeconds(5f); //코루틴에게 5초를 기다리라고 지시합니다.
129+
yield return Timing.WaitForSeconds(5f); //코루틴에게 5초를 대기하라고 지시합니다.
130130
}
131131
}
132132
```
133133

134-
MEC과 익숙치 않거나, 더 배우고 싶거나, 조언을 좀 받고 싶나, 도움이 필요하다면 구글링을 좀 하거나 디스코드에서 물어보는 것이 **_매우_** 추천됩니다. 질문들은 얼마나 '수준 낮은지' 와 상관없이, 플러그인 개발자분들에게 추진력을 실어주기 위해 항상 최대한 호의적이고 깔끔하게 답변될 것입니다. 더 좋은 코드는 모두에게 좋은 것이니까요!
134+
MEC과 익숙치 않거나, 더 배우고 싶거나, 조언을 좀 받고 싶거나, 도움이 필요하다면, 구글링을 조금 해보거나 디스코드에서 물어보는 것을 **_매우_** 추천합니다. 질문들은 얼마나 '수준 낮은지' 와 상관없이, 플러그인 개발자분들에게 추진력을 실어주기 위해 항상 최대한 호의적이고 깔끔하게 답변될 것입니다. 더 좋은 코드는 모두에게 좋은 것이니까요!
135135

136136
### 동적 리로드
137137

138-
EXILED는 플러그인 어셈블리를 서버를 재시작하지 않고도 동적으로 재시작 할 수 있는 프레임워크입니다.
139-
예를 들어, 만약 `Exiled.Events` 1개의 플러그인을 서버를 시작하고, 새로운 플러그인을 추가하고 실행하고 싶다면, 서버를 재시작 할 필요가 없습니다. `reload plugins`을 RA나 서버 콘솔에 입력해 모든 EXILED 플러그인-전에 없던 플러그인들도 리로딩할 수 있습니다.
138+
EXILED는 플러그인 어셈블리를 서버를 재시작하지 않고도 동적으로 재시작할 수 있는 프레임워크입니다.
139+
예를 들어, 만약 `Exiled.Events` 1개의 플러그인을 서버를 시작하고, 새로운 플러그인을 추가하고 실행하고 싶다면, 서버를 재시작할 필요가 없습니다. `reload plugins`을 RA나 서버 콘솔에 입력해 모든 EXILED 플러그인(전에 없던 플러그인들도 포함)들을 리로딩할 수 있습니다.
140140

141141
이것은 또한 플러그인을 완전히 서버를 재시작하지 않다고 *업데이트*를 할 수 있다는 것을 의미합니다. 하지만 이를 지원하기 위해, 플러그인 개발자들이 따라야 할 몇 가지 규칙이 있습니다.
142142

143143
**_서버 주인은_**
144144

145145
- 플러그인을 업데이트하고 있다면, 플러그인의 어셈블리 이름이 현재와 다른지 확인하세요. 플러그인 개발자가 동적 리로딩을 염두에 두고 플러그인을 개발해야 했으며, 파일 이름을 바꾸는 것 만으로는 충분하지 않습니다.
146-
- 만약 플러그인이 동적 리로딩을 지원한다면, 새로운 플러그인을 "Plugins" 폴더에 넣을 때, 전에 있던 플러그인을 먼저 지워야 합니다. 그렇지 않으면, 안 좋은 일이 많이 일어날 수 있습니다.
146+
- 만약 플러그인이 동적 리로딩을 지원한다면, 새로운 플러그인을 "Plugins" 폴더에 넣을 때, 전에 있던 플러그인을 먼저 지워야 합니다. 그렇지 않으면, 좋지 않은 일이 많이 일어날 수 있습니다.
147147
- 플러그인을 동적으로 리로딩하는데 생기는 모든 책임은 모두 플러그인 개발자 혹은 서버 주인에게 있습니다. EXILED가 동적 리로드를 지원하는데, 문제가 생기는 방법은 플러그인 개발자나 서버 주인이 무언가를 잘못하는 방법 밖에는 없습니다. EXILED 개발자들에게 동적 리로드로 버그를 신고하기 전에 둘 모두에게 모든 것이 제대로 동작되었는지 확인하세요.
148148

149149
**_개발자는_**
150150

151-
- 동적 리로딩을 지원하는 플러그인을 만들 때, 플러그인이 걸려있던 모든 이벤트들을 비활성화되거나 리로딩 할 때 해제되어야 합니다.
151+
- 동적 리로딩을 지원하는 플러그인을 만들 때, 플러그인이 걸려있던 모든 이벤트들을 비활성화되거나 리로딩할 때 해제되어야 합니다.
152152
- Harmony 패치가 있는 플러그인이라면 Harmony 인스턴스를 만들 때 이름을 일종의 항상 바뀌는 변수로 만들어야 합니다. 또한 플러그인이 비활성화되거나 리로딩 될 때 Harmony 패치를 `UnPatchAll()` 메소드로 해제해야 합니다.
153-
- `OnEnabled()` 메소드에서 시작된 모든 코루틴들은 플러그인이 비활성화되거나 리로딩 될 때 중지되어야 합니다.
153+
- `OnEnabled()` 메소드에서 시작된 모든 코루틴들은 플러그인이 비활성화되거나 리로딩될 때 중지되어야 합니다.
154154

155155
위의 모든 것들은 `OnReloaded()` 또는 `OnDisabled()` 메소드에서 수행될 수 있습니다. EXILED가 플러그인을 리로드할 때, `OnDisabled()`가 호출되고 `OnReloaded()`가 호출됩니다. 그리고 새로운 어셈블리를 로드하고 `OnEnabled()`가 호출됩니다.
156156

@@ -159,6 +159,6 @@ _새로운_ 어셈블리들이라는 것에 주목해주세요. 만약 똑같은
159159

160160
이 때문에, 동적 리로딩을 지원하는 플러그인을 만들 때, **_무조건_** 이러한 규칙을 따라야 합니다. 만약 이러한 규칙을 따르지 않는다면, 디스코드 서버에서 삭제될 수 있습니다.
161161

162-
모든 플러그인이 동적 리로딩을 지원하지 않아도 됩니다. 만약 동적 리로딩을 지원하지 않기로 생각했다면, 진짜 괜찮아요. :)
163-
플러그인의 어셈블리 버전을 바꾸는 것을 피하시고, 서버 주인분들에게 플러그인을 업데이트하기 위해 서버를 재시작하라고 요청하세요.
162+
모든 플러그인이 동적 리로딩을 지원하지 않아도 됩니다. 동적 리로딩을 지원하지 않는 것도 나쁘지 않습니다. :)
163+
플러그인의 어셈블리 버전을 바꾸는 것을 피하시고, 서버 주인분들에게 플러그인을 업데이트하기 위해 서버를 재시작하라고 당부해두세요.
164164

0 commit comments

Comments
 (0)