Skip to content

Commit c1c89d9

Browse files
committed
refine Korean translations in async-iterators-generators article
- Change section heading from "페이지네이션된 데이터" to "페이지네이션이 적용된 데이터" for more natural Korean phrasing - Rename smart box header from "내부적인 구조" to "내부 동작의 차이" with improved body text - Rephrase function* description to improve sentence structure - Split fetchCommits step 3 into main text and sub-bullet for readability - Minor wording improvements in inline comments and sandbox note
1 parent c3e5cb4 commit c1c89d9

1 file changed

Lines changed: 9 additions & 8 deletions

File tree

  • 1-js/12-generators-iterators/2-async-iterators-generators

1-js/12-generators-iterators/2-async-iterators-generators/article.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ let range = {
9696
*/!*
9797

9898
*!*
99-
// 주목할 점: async next() 내부에서는 "await"를 사용할 수 있습니다.
99+
// 주의: async next() 내부에서는 "await"를 사용할 수 있습니다.
100100
await new Promise(resolve => setTimeout(resolve, 1000)); // (3)
101101
*/!*
102102

@@ -155,7 +155,7 @@ alert( [...range] ); // Symbol.iterator가 없기 때문에 에러 발생
155155
156156
핵심만 간단히 말하면, 제너레이터는 '값을 생성(yield)하는 함수'입니다. 자세한 설명은 [](info:generators) 챕터를 참고하세요.
157157
158-
제너레이터는 `function*`으로 선언하고(별표에 주목하세요), `yield`로 값을 생성하며, `for..of`로 반복할 수 있습니다.
158+
제너레이터는 별표가 붙은 `function*`으로 선언하고, `yield`로 값을 생성하며, `for..of`로 반복할 수 있습니다.
159159
160160
다음 예시는 시작(`start`) 값부터 끝(`end`) 값까지 연속된 값을 생성하는 코드입니다.
161161
@@ -248,8 +248,8 @@ for(let value of range) {
248248
249249
제너레이터가 비동기이므로 내부에서 `await`를 사용할 수 있고, 프라미스나 네트워크 요청 등도 자유롭게 활용할 수 있습니다.
250250
251-
````smart header="내부적인 구조"
252-
제너레이터의 내부 동작을 잘 알고 있는 독자라면, async 제너레이터에는 내부적인 차이가 있다는 것을 눈치챘을 것입니다.
251+
````smart header="내부 동작의 차이"
252+
제너레이터의 세부 동작을 잘 기억하고 있다면, 일반 제너레이터와 비동기 제너레이터 간 내부적인 차이가 있다는 것을 눈치챘을 것입니다.
253253
254254
비동기 제너레이터는 `generator.next()` 메서드가 비동기로 동작하며 프라미스를 반환합니다.
255255
@@ -305,7 +305,7 @@ let range = {
305305
다만 실제로 그렇게 할 일은 거의 없습니다.
306306
```
307307

308-
## 실제 사례: 페이지네이션된 데이터
308+
## 실제 사례: 페이지네이션이 적용된 데이터
309309

310310
지금까진 아주 간단한 예시들만 살펴보며, async 제너레이터에 대한 기초를 다졌습니다. 이제 실무에서 접할법한 유스 케이스를 살펴보겠습니다.
311311

@@ -364,8 +364,9 @@ async function* fetchCommits(repo) {
364364
- 시작 URL은 `https://api.github.com/repos/<repo>/commits`이며, 다음 페이지 URL은 응답의 `Link` 헤더에 담겨 옵니다.
365365
- `fetch` 메서드를 사용하면 필요 시 인증 정보나 헤더를 함께 전송할 수 있습니다. GitHub`User-Agent` 헤더를 필수로 요구합니다.
366366
2. 커밋은 JSON 형식으로 반환됩니다.
367-
3. 응답의 `Link` 헤더에서 다음 페이지의 URL을 추출합니다. 헤더의 형식이 특수하여 정규표현식을 사용합니다([정규표현식](info:regular-expressions) 챕터에서 자세히 다룹니다). 다음 페이지 URL`https://api.github.com/repositories/93253246/commits?page=2`와 같은 형태로, GitHub가 자체적으로 생성합니다.
368-
4. 이후 커밋을 하나씩 yield하며, 모두 반환된 뒤에는 다음 `while(url)` 반복이 실행되어 서버에 추가 요청을 보냅니다.
367+
3. 응답의 `Link` 헤더에서 다음 페이지의 URL을 추출합니다. 헤더의 형식이 특수하여 정규표현식을 사용합니다([정규표현식](info:regular-expressions) 챕터에서 자세히 다룹니다).
368+
- 다음 페이지 URL`https://api.github.com/repositories/93253246/commits?page=2`와 같은 형태로, GitHub가 자체적으로 생성합니다.
369+
4. 커밋을 하나씩 반환하는데, 전체 다 반환되면 다음 while(url) 반복문이 트리거 되어 서버에 다시 요청을 보냅니다.
369370

370371
사용법은 다음과 같습니다(콘솔 창을 열어 각 커밋의 author를 확인해보세요).
371372

@@ -385,7 +386,7 @@ async function* fetchCommits(repo) {
385386
}
386387
})();
387388
388-
// 주의: 외부 샌드박스(외부 실행 환경)에서 테스트해 보실 분들은, 앞서 살펴본 fetchCommits 함수 코드를 여기에 복사·붙여넣기 해야 정상적으로 동작합니다.
389+
// 주의: 외부 샌드박스(외부 실행 환경)에서 실행할 경우, 앞서 살펴본 fetchCommits 함수 코드를 여기에 복사·붙여넣기 해야 정상적으로 동작합니다.
389390
```
390391

391392
처음에 구상했던 API가 구현되었습니다.

0 commit comments

Comments
 (0)