Skip to content

Commit

Permalink
Merge pull request CryptozombiesHQ#53 from studroid/lang-ko-patch
Browse files Browse the repository at this point in the history
Improve overall Korean translations
  • Loading branch information
jamesmartinduffy authored Jan 31, 2018
2 parents 54208a9 + ce0a3ce commit e4fd46b
Show file tree
Hide file tree
Showing 17 changed files with 71 additions and 71 deletions.
4 changes: 2 additions & 2 deletions ko/1/arrays.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ uint[] dynamicArray;
Person[] people; // 이는 동적 배열로, 원소를 계속 추가할 수 있다.
```

상태 변수가 블록체인에 영구적으로 저장될 수 있다는 걸 기억하나? 그러니 이처럼 구조체의 동적 배열을 생성하면 마치 데이터베이스처럼 컨트렉트에 구조화된 데이터를 저장하는 데 유용하네.
상태 변수가 블록체인에 영구적으로 저장될 수 있다는 걸 기억하나? 그러니 이처럼 구조체의 동적 배열을 생성하면 마치 데이터베이스처럼 컨트랙트에 구조화된 데이터를 저장하는 데 유용하네.

## Public 배열

Expand All @@ -66,7 +66,7 @@ Person[] people; // 이는 동적 배열로, 원소를 계속 추가할 수 있
Person[] public people;
```

그러면 다른 컨트렉트들이 이 배열을 읽을 수 있게 되지 (쓸 수는 없네). 이는 컨트렉트에 공개 데이터를 저장할 때 유용한 패턴이지.
그러면 다른 컨트랙트들이 이 배열을 읽을 수 있게 되지 (쓸 수는 없네). 이는 컨트랙트에 공개 데이터를 저장할 때 유용한 패턴이지.

# 직접 해보기

Expand Down
6 changes: 3 additions & 3 deletions ko/1/arraysstructs2.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct Person {
Person[] public people;
```

이제 새로운 `Person`를 생성하고 `people` 배열에 추가하는 방법을 살펴 보도록 하지.
이제 새로운 `Person`를 생성하고 `people` 배열에 추가하는 방법을 살펴보도록 하지.

```
// 새로운 사람을 생성한다:
Expand All @@ -76,7 +76,7 @@ people.push(satoshi);
people.push(Person(16, "Vitalik"));
```

참고로 `array.push()`는 무언가를 배열의 ****에 추가해서 모든 원소가 순서를 유지하도록 하네. 다음 예시를 살펴 보도록 하지:
참고로 `array.push()`는 무언가를 배열의 ****에 추가해서 모든 원소가 순서를 유지하도록 하네. 다음 예시를 살펴보도록 하지:

```
uint[] numbers;
Expand All @@ -90,5 +90,5 @@ numbers.push(15);

createZombie 함수가 무언가 할 수 있도록 만들어 보세!

1. 함수의 몸체에 코드를 넣어 새로운 `Zombie`를 생성하여 `zombies` 배열에 추가하도록 한다. 새로운 좀비를 위한 `name``dna``createZombie`함수의 인자값이어야 한다.
1. 함수에 코드를 넣어 새로운 `Zombie`를 생성하여 `zombies` 배열에 추가하도록 한다. 새로운 좀비를 위한 `name``dna``createZombie`함수의 인자값이어야 한다.
2. 코드를 한 줄로 간결하게 작성해 보자.
18 changes: 9 additions & 9 deletions ko/1/contracts.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
title: "컨트렉트"
title: "컨트랙트"
actions: ['정답 확인하기', '힌트 보기']
material:
editor:
language: sol
startingCode: |
pragma solidity //1. 여기에 솔리디티 버전 적기
//2. 여기에 컨트렉트 생성
//2. 여기에 컨트랙트 생성
answer: >
pragma solidity ^0.4.19;
Expand All @@ -19,9 +19,9 @@ material:

완전 기초부터 시작하기:

솔리디티 코드는 **컨트렉트** 안에 싸여 있지. `컨트렉트`는 이더리움 애플리케이션의 기초 건축 블록으로, 모든 변수와 함수는 어느 한 컨트렉트에 속하게 마련이지. 컨트렉트는 자네의 모든 프로젝트의 시작 지점이라고 할 수 있지.
솔리디티 코드는 **컨트랙트** 안에 싸여 있지. `컨트랙트`는 이더리움 애플리케이션의 기본적인 구성 요소로, 모든 변수와 함수는 어느 한 컨트랙트에 속하게 마련이지. 컨트랙트는 자네의 모든 프로젝트의 시작 지점이라고 할 수 있지.

비어 있는 `HelloWorld` 컨트렉트는 다음과 같네:
비어 있는 `HelloWorld` 컨트랙트는 다음과 같네:

```
contract HelloWorld {
Expand All @@ -31,11 +31,11 @@ contract HelloWorld {

## Version Pragma

모든 솔리디티 소스 코드는 "version pragma"로 시작해야 하는데, 이는 해당 코드가 이용해야 하는 솔리디티 버전을 선언하는 것이지. 이를 통해 이후에 출시될 컴파일러 버전이 잠재적으로 코드를 깨뜨리는 변화를 가져올 수 있다는 문제를 예방하고자 하는 거지.
모든 솔리디티 소스 코드는 "version pragma"로 시작해야 하는데, 이는 해당 코드가 이용해야 하는 솔리디티 버전을 선언하는 것이지. 이를 통해 이후에 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방하는 거지.

선언은 다음과 같이 하면 되네: `pragma solidity ^0.4.19;` (이 코스 집필 시 최신 버전이 0.4.19임).

종합하자면 컨트렉트 초기 뼈대는 다음과 같네. 새로운 프로젝트를 시작할 때마다 이 뼈대를 제일 먼저 작성해야 하지:
종합하자면 컨트랙트 초기 뼈대는 다음과 같네. 새로운 프로젝트를 시작할 때마다 이 뼈대를 제일 먼저 작성해야 하지:

```
pragma solidity ^0.4.19;
Expand All @@ -47,10 +47,10 @@ contract HelloWorld {

# 직접 해보기

우리의 좀비 군대 생성을 시작하기 위해 `ZombieFactory`라는 기본 컨트렉트를 생성해 보세!
우리의 좀비 군대 생성을 시작하기 위해 `ZombieFactory`라는 기본 컨트랙트를 생성해 보세!

1. 우측 박스에 우리 컨트렉트가 솔리디티 버전 `0.4.19`를 쓸 수 있도록 설정한다.
1. 우측 박스에 우리 컨트랙트가 솔리디티 버전 `0.4.19`를 쓸 수 있도록 설정한다.

2. `ZombieFactory`라는 빈 컨트렉트를 생성한다.
2. `ZombieFactory`라는 빈 컨트랙트를 생성한다.

다 마쳤으면 아래 "정답 확인하기"를 클릭하게. 막히는 부분이 있으면 "힌트 보기"를 클릭할 수도 있네.
6 changes: 3 additions & 3 deletions ko/1/datatypes.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ material:
}
---

잘 했네! 이제 우리 컨트렉트를 위한 뼈대를 갖추게 되었네. 이제 솔리디티가 변수를 다루는 방법을 배워 보도록 하지.
잘했네! 이제 우리 컨트랙트를 위한 뼈대를 갖추게 되었네. 이제 솔리디티에서 변수를 다루는 방법을 배워 보도록 하지.

**_상태 변수_**컨트렉트 저장소에 영구적으로 저장되네. 즉, 이더리움 블록체인에 기록된다는 거지. 데이터베이스에 데이터를 쓰는 것과 동일하네.
**_상태 변수_**컨트랙트 저장소에 영구적으로 저장되네. 즉, 이더리움 블록체인에 기록된다는 거지. 데이터베이스에 데이터를 쓰는 것과 동일하네.

##### 예시:
```
Expand All @@ -35,7 +35,7 @@ contract Example {
}
```

이 예시 컨트렉트에서는 `myUnsignedInteger`라는 `uint`를 생성하여 100이라는 값을 배정했네.
이 예시 컨트랙트에서는 `myUnsignedInteger`라는 `uint`를 생성하여 100이라는 값을 배정했네.

## 부호 없는 정수: `uint`

Expand Down
6 changes: 3 additions & 3 deletions ko/1/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ material:
}
---

우리의 컨트렉트가 거의 완성되어 가는군! 이제 **_이벤트_**를 추가해 보세.
우리의 컨트랙트가 거의 완성되어 가는군! 이제 **_이벤트_**를 추가해 보세.

**_이벤트_**는 자네의 컨트렉트가 블록체인 상에서 자네 앱의 사용자 단에 무언가 발생했다는 것에 대해 의사소통하는 방법이지. 컨트렉트는 특정 이벤트가 일어나는지 "귀를 기울이고" 그 이벤트가 발생하면 행동을 취하지.
**_이벤트_**는 자네의 컨트랙트가 블록체인 상에서 자네 앱의 사용자 단에서 무언가 액션이 발생했을 때 의사소통하는 방법이지. 컨트랙트는 특정 이벤트가 일어나는지 "귀를 기울이고" 그 이벤트가 발생하면 행동을 취하지.

예시:

Expand All @@ -101,7 +101,7 @@ YourContract.IntegersAdded(function(error, result) {

# 직접 해보기

좀비가 생성될 때마다 우리 앱의 사용자 단이 이에 대해 알고, 이를 표시하도록 하는 이벤트가 있으면 좋겠네.
좀비가 생성될 때마다 우리 앱의 사용자 단에서 이에 대해 알고, 이를 표시하도록 하는 이벤트가 있으면 좋겠네.

1. `NewZombie`라는 `event`를 선언한다. `zombieId` (`uint`형), `name` (`string`형), `dna` (`uint`형)을 인자로 전달받아야 한다.

Expand Down
4 changes: 2 additions & 2 deletions ko/1/functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ function eatHamburgers(string _name, uint _amount) {
}
```

이 함수는 `eatHamburgers`라는 함수로, `string``uint` 2개의 인자를 전달받고 있군. 현재로선 함수의 몸체가 비어 있네.
이 함수는 `eatHamburgers`라는 함수로, `string``uint` 2개의 인자를 전달받고 있군. 현재로선 함수의 내용이 비어 있네.

> 참고: 함수 인자명을 언더바(`_`)로 시작해서 전역 변수와 구별하는 것이 관례이네 (의무는 아님). 본 튜토리얼 전체에서 이 관례를 따를 것이네.
Expand All @@ -69,4 +69,4 @@ eatHamburgers("vitalik", 100);

1. `createZombie`라는 함수를 생성한다. 이 함수는 다음 2개의 인자를 전달받아야 한다: **__name_** (`string`형)과 **__dna_** (`uint`형).

함수의 몸체는 지금으로선 비어 두면 되네. 나중에 채울 것이니까.
함수의 내용은 지금으로선 비어 두면 되네. 나중에 채울 것이니까.
12 changes: 6 additions & 6 deletions ko/1/functions2.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,11 @@ material:
}
---

솔리디티에서 함수는 기본적으로 `public`으로 선언되네. 즉, 누구나 (혹은 다른 어느 컨트렉트가) 자네 컨트렉트의 함수를 호출하고 코드를 실행할 수 있다는 의미지.
솔리디티에서 함수는 기본적으로 `public`으로 선언되네. 즉, 누구나 (혹은 다른 어느 컨트랙트가) 자네 컨트랙트의 함수를 호출하고 코드를 실행할 수 있다는 의미지.

확실히 이는 항상 바람직한 건 아닐 뿐더러, 자네 컨트렉트를 공격에 취약하게 만들 수 있지. 그러니 기본적으로 함수를 `private`으로 선언하고, 공개할 함수만 `public`으로 선언하는 것이 좋지.
확실히 이는 항상 바람직한 건 아닐 뿐더러, 자네 컨트랙트를 공격에 취약하게 만들 수 있지. 그러니 기본적으로 함수를 `private`으로 선언하고, 공개할 함수만 `public`으로 선언하는 것이 좋지.

private 함수를 선언하는 방법을 살펴 보도록 하겠네:
private 함수를 선언하는 방법을 살펴보도록 하겠네:

```
uint[] numbers;
Expand All @@ -61,12 +61,12 @@ function _addToArray(uint _number) private {
}
```

private는 컨트렉트 내의 다른 함수들만이 이 함수를 호출하여 `numbers` 배열로 무언가를 추가할 수 있다는 것을 의미하지.
private는 컨트랙트 내의 다른 함수들만이 이 함수를 호출하여 `numbers` 배열로 무언가를 추가할 수 있다는 것을 의미하지.

위의 예시에 볼 수 있듯이 `private` 키워드는 함수명 다음에 적네. 함수 인자명과 마찬가지로 private 함수명도 언더바(`_`)로 시작하는 것이 관례라네.
위의 예시에서 볼 수 있듯이 `private` 키워드는 함수명 다음에 적네. 함수 인자명과 마찬가지로 private 함수명도 언더바(`_`)로 시작하는 것이 관례라네.

# 직접 해보기

우리 컨트렉트의 `createZombie` 함수는 현재 기본적으로 public으로 선언되어 있네. 즉, 누구나 이 함수를 호출해서 새로운 좀비를 컨트렉트에서 만들 수 있다는 뜻이지! 이 함수를 private로 선언해 보세.
우리 컨트랙트의 `createZombie` 함수는 현재 기본적으로 public으로 선언되어 있네. 즉, 누구나 이 함수를 호출해서 새로운 좀비를 컨트랙트에서 만들 수 있다는 뜻이지! 이 함수를 private로 선언해 보세.

1. `createZombie` 함수를 변경하여 private 함수로 만든다. 함수명에 대한 관례를 잊지 말 것!
10 changes: 5 additions & 5 deletions ko/1/functions3.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ material:
}
---

이번 챕터에서는 함수의 **_반환값_**과 함수 제어자에 대해서 알아 보겠네.
이번 챕터에서는 함수의 **_반환값_**과 함수 제어자에 대해서 알아보겠네.

## 반환값

Expand All @@ -79,7 +79,7 @@ function sayHello() public returns (string) {
function sayHello() public view returns (string) {
```

솔리디티는 **_pure_** 함수도 가지고 있는데, 이는 함수가 앱에서 어떤 데이터도 접근하지 않는 것을 의미하지. 다음을 살펴 보게:
솔리디티는 **_pure_** 함수도 가지고 있는데, 이는 함수가 앱에서 어떤 데이터도 접근하지 않는 것을 의미하지. 다음을 살펴보게:

```
function _multiply(uint a, uint b) private pure returns (uint) {
Expand All @@ -89,14 +89,14 @@ function _multiply(uint a, uint b) private pure returns (uint) {

이 함수는 앱에서 읽는 것도 하지 않고, 다만 반환값이 함수에 전달된 인자값에 따라서 달라지지. 그러니 이 경우에 함수를 **_pure_**로 선언하지.

> 참고: 함수를 pure나 view로 언제 표시할지 기억하기 어려울 수 있지. 운 좋게도 솔리디티 컴파일러는 어떤 제어자를 써야 하는지 경고 메시지를 통해 잘 알려 주네.
> 참고: 함수를 pure나 view로 언제 표시할지 기억하기 어려울 수 있지. 운 좋게도 솔리디티 컴파일러는 어떤 제어자를 써야 하는지 경고 메시지를 통해 잘 알려주네.
# 직접 해보기

스트링으로부터 랜덤 DNA 숫자를 생성하는 도우미 함수가 필요할 걸세.

1. `_generateRandomDna`라는 `private` 함수를 생성한다. 이 함수는 `_str` (`string`형)을 인자로 전달받고, `uint`을 반환할 것이다.

2. 이 함수는 컨트렉트 변수를 보지만 변경하지는 않을 것이므로 `view`로 선언한다.
2. 이 함수는 컨트랙트 변수를 보지만 변경하지는 않을 것이므로 `view`로 선언한다.

3. 이 함수의 몸체는 현재로서는 비어 있는 상태로 둔다. 나중에 채울 것이다.
3. 이 함수의 내용은 현재로서는 비어 있는 상태로 둔다. 나중에 채울 것이다.
4 changes: 2 additions & 2 deletions ko/1/keccak256.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ keccak256("aaaac");
## 형 변환

가끔씩 자네가 자료형 간에 변환을 할 필요가 있지. 다음 예시를 살펴 보세:
가끔씩 자네가 자료형 간에 변환을 할 필요가 있지. 다음 예시를 살펴보세:

```
uint8 a = 5;
Expand All @@ -92,7 +92,7 @@ uint8 c = a * uint8(b);

# 직접 해보기

`_generateRandomDna` 함수의 몸체를 채워 보세! 여기에 함수가 무엇을 해야 하는지 나와 있네:
`_generateRandomDna` 함수의 내용을 채워 보세! 여기에 함수가 무엇을 해야 하는지 나와 있네:

1. 코드 첫 줄에서는 `_str`을 이용한 `keccak256` 해시값을 받아서 의사 난수 16진수를 생성하고 이를 `uint`로 형 변환한 다음, `rand`라는 `uint`에 결과값을 저장해야 한다.

Expand Down
2 changes: 1 addition & 1 deletion ko/1/lessoncomplete.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ material:

### 1. 진도를 저장하려면 로그인하기

페이지 맨 윗부분에 "진도 저장하기" 링크를 클릭하여 자네의 진도를 저장하려면 **_로그인_**하게. 우리가 새로운 레슨을 추가하자 마자 자네에게 알려 주겠네.
페이지 맨 윗부분에 "진도 저장하기" 링크를 클릭하여 자네의 진도를 저장하려면 **_로그인_**하게. 우리가 새로운 레슨을 추가하면 바로 자네에게 알려 주겠네.

### 2. 자신의 좀비를 친구들과 공유하기

Expand Down
2 changes: 1 addition & 1 deletion ko/1/lessonoverview.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ material:
이를테면, 위의 예시 DNA에서 첫 2자리 숫자 `83`이네. 이를 좀비 머리 타입으로 매핑하기 위해 우리는 `83 % 7 + 1` = 7 연산을 하지. 그래서 이 DNA를 가진 좀비는 7번째 좀비 머리 타입을 갖게 되지.

우측 패널에서 `head gene` 슬라이더를 7번째 머리 타입 (산타 모자)로 이동시킨 다음, `83`에 어떤 특성이 대응되는지 살펴 보게.
우측 패널에서 `head gene` 슬라이더를 7번째 머리 타입 (산타 모자)로 이동시킨 다음, `83`에 어떤 특성이 대응되는지 살펴보게.

# 직접 해보기

Expand Down
4 changes: 2 additions & 2 deletions ko/1/puttingittogether.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ material:

1. `createRandomZombie`라는 `public`함수를 생성한다. 이 함수는 `_name`이라는 `string`형 인자를 하나 전달받는다. _(참고: 함수를 `private`로 선언한 것과 마찬가지로 함수를 `public`로 생성할 것)_

2. 이 함수의 첫 줄에서는 `_name`전달 받은 `_generateRandomDna` 함수를 호출하고, 이 함수의 ㅂ반환값을 `randDna`라는 `uint`형 변수에 저장해야 한다.
2. 이 함수의 첫 줄에서는 `_name`전달받은 `_generateRandomDna` 함수를 호출하고, 이 함수의 반환값을 `randDna`라는 `uint`형 변수에 저장해야 한다.

3. 두번째 줄에서는 `_createZombie` 함수를 호출하고 이 함수에 `_name``randDna`를 전달해야 한다.

4. 함수의 몸체를 닫는 `}`를 포함해서 코드가 4줄이어야 한다.
4. 함수의 내용을 닫는 `}`를 포함해서 코드가 4줄이어야 한다.
2 changes: 1 addition & 1 deletion ko/1/structs.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ material:
}
---

자네가 좀더 복잡한 자료형을 필요로 때가 가끔 있을 거네. 이를 위해 솔리디티는 **_구조체_**를 제공하지:
자네가 좀 더 복잡한 자료형을 필요로 때가 가끔 있을 거네. 이를 위해 솔리디티는 **_구조체_**를 제공하지:

```
struct Person {
Expand Down
Loading

0 comments on commit e4fd46b

Please sign in to comment.