Skip to content

Commit 9c7fe6e

Browse files
committed
Improve translation of Hooks at Glance
1 parent 03ff614 commit 9c7fe6e

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

โ€Žcontent/docs/hooks-overview.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ next: hooks-state.html
66
prev: hooks-intro.html
77
---
88

9-
*Hook*์€ React 16.8์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. *Hook*์€ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ state์™€ ๋‹ค๋ฅธ React์˜ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
9+
*Hook*์€ React 16.8์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. *Hook*์€ class๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ state์™€ ๋‹ค๋ฅธ React์˜ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
1010

1111
Hook์€ [ํ•˜์œ„ ํ˜ธํ™˜์„ฑ](/docs/hooks-intro.html#no-breaking-changes)์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” React์— ๊ฒฝํ—˜์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ Hook์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋…ธ๋ž€์ƒ‰ ๋ฐ•์Šค๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
1212

@@ -18,7 +18,7 @@ Hook์€ [ํ•˜์œ„ ํ˜ธํ™˜์„ฑ](/docs/hooks-intro.html#no-breaking-changes)์„ ๊ฐ€์ง€
1818

1919
## ๐Ÿ“Œ State Hook {#state-hook}
2020

21-
๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์นด์šดํ„ฐ ์˜ˆ์ œ๊ฐ€ ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.
21+
๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์นด์šดํ„ฐ ์˜ˆ์‹œ๊ฐ€ ์—ฌ๊ธฐ ์žˆ์Šต๋‹ˆ๋‹ค.
2222

2323
```js{1,4,5}
2424
import React, { useState } from 'react';
@@ -38,11 +38,11 @@ function Example() {
3838
}
3939
```
4040

41-
์—ฌ๊ธฐ์„œ `useState`๊ฐ€ ๋ฐ”๋กœ *Hook* ์ž…๋‹ˆ๋‹ค(์ด๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€๋Š” ์•ž์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค). Hook์„ ํ˜ธ์ถœํ•ด ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ(function component) ์•ˆ์— state๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด state๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง ๋˜์–ด๋„ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. `useState`๋Š” *ํ˜„์žฌ์˜* state ๊ฐ’๊ณผ ์ด ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์Œ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํด๋ž˜์Šค์˜ `this.setState`์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ด์ „ state์— ์ƒˆ state๋ฅผ mergeํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (`useState`์™€ `this.state`๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ [Using the State Hook](/docs/hooks-state.html) ๋ฌธ์„œ์— ์žˆ์œผ๋‹ˆ ํ•œ๋ฒˆ ๋ณด์„ธ์š”.)
41+
์—ฌ๊ธฐ์„œ `useState`๊ฐ€ ๋ฐ”๋กœ *Hook* ์ž…๋‹ˆ๋‹ค(์ด๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€๋Š” ์•ž์œผ๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค). Hook์„ ํ˜ธ์ถœํ•ด ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ(function component) ์•ˆ์— state๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด state๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋‹ค์‹œ ๋ Œ๋”๋ง ๋˜์–ด๋„ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. `useState`๋Š” *ํ˜„์žฌ์˜* state ๊ฐ’๊ณผ ์ด ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์Œ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ํ•จ์ˆ˜๋ฅผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ class์˜ `this.setState`์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ด์ „ state์™€ ์ƒˆ๋กœ์šด state๋ฅผ ํ•ฉ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (`useState`์™€ `this.state`๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ [Using the State Hook](/docs/hooks-state.html) ๋ฌธ์„œ์— ์žˆ์œผ๋‹ˆ ํ•œ๋ฒˆ ๋ณด์„ธ์š”.)
4242

43-
`useState`๋Š” ์ธ์ž๋กœ ์ดˆ๊ธฐ state ๊ฐ’์„ ํ•˜๋‚˜ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์นด์šดํ„ฐ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ์˜ˆ์ œ์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ `0`์„ ๋„ฃ์–ด์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. `this.state`์™€๋Š” ๋‹ฌ๋ฆฌ `setState` Hook์˜ state๋Š” ๊ฐ์ฒด์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ์š”. ์ด ์ดˆ๊ธฐ๊ฐ’์€ ์ฒซ ๋ฒˆ์งธ ๋ Œ๋”๋ง์—๋งŒ ๋”ฑ ํ•œ๋ฒˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
43+
`useState`๋Š” ์ธ์ž๋กœ ์ดˆ๊ธฐ state ๊ฐ’์„ ํ•˜๋‚˜ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์นด์šดํ„ฐ๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ์˜ˆ์‹œ์—์„œ๋Š” ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ `0`์„ ๋„ฃ์–ด์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. `this.state`์™€๋Š” ๋‹ฌ๋ฆฌ `setState` Hook์˜ state๋Š” ๊ฐ์ฒด์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ์š”. ์ด ์ดˆ๊ธฐ๊ฐ’์€ ์ฒซ ๋ฒˆ์งธ ๋ Œ๋”๋ง์—๋งŒ ๋”ฑ ํ•œ๋ฒˆ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
4444

45-
#### ๋ณต์ˆ˜์˜-state-๋ณ€์ˆ˜-์„ ์–ธํ•˜๊ธฐ {#declaring-multiple-state-variables}
45+
#### ์—ฌ๋Ÿฌ state ๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ {#declaring-multiple-state-variables}
4646

4747
ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ State Hook์„ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
4848

@@ -60,9 +60,9 @@ function ExampleWithManyStates() {
6060

6161
#### ๊ทผ๋ฐ Hook์ด ๋ญ”๊ฐ€์š”? {#but-what-is-a-hook}
6262

63-
Hook์€ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ React state์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ(lifecycle features)์„ "์—ฐ๋™(hook into)"ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. Hook์€ ํด๋ž˜์Šค ์•ˆ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ํด๋ž˜์Šค ์—†์ด React๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์ด๋ฏธ ์งœ๋†“์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ชจ์กฐ๋ฆฌ ์žฌ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ [๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค](/docs/hooks-intro.html#gradual-adoption-strategy). ๋Œ€์‹  ์ƒˆ๋กœ ์ž‘์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ถ€ํ„ฐ๋Š” Hook์„ ์ด์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
63+
Hook์€ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ React state์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๊ธฐ๋Šฅ(lifecycle features)์„ "์—ฐ๋™(hook into)"ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. Hook์€ class ์•ˆ์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  class ์—†์ด React๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (ํ•˜์ง€๋งŒ ์ด๋ฏธ ์งœ๋†“์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ชจ์กฐ๋ฆฌ ์žฌ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ [๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค](/docs/hooks-intro.html#gradual-adoption-strategy). ๋Œ€์‹  ์ƒˆ๋กœ ์ž‘์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ถ€ํ„ฐ๋Š” Hook์„ ์ด์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
6464

65-
React๋Š” `useState` ๊ฐ™์€ ๋‚ด์žฅ Hook์„ ๋ช‡ ๊ฐ€์ง€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— stateful ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ custom Hook์„ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๋ฌผ๋ก  ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๋‚ด์žฅ Hook์„ ๋จผ์ € ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
65+
React๋Š” `useState` ๊ฐ™์€ ๋‚ด์žฅ Hook์„ ๋ช‡ ๊ฐ€์ง€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Hook์„ ์ง์ ‘ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๋‚ด์žฅ Hook์„ ๋จผ์ € ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
6666

6767
>์ž์„ธํ•œ ์„ค๋ช…
6868
>
@@ -72,9 +72,9 @@ React๋Š” `useState` ๊ฐ™์€ ๋‚ด์žฅ Hook์„ ๋ช‡ ๊ฐ€์ง€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„Œ
7272

7373
React ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๊ตฌ๋…ํ•˜๊ณ , DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” ์ž‘์—…์„ ์ด์ „์—๋„ ์ข…์ข… ํ•ด๋ณด์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ๋ชจ๋“  ๋™์ž‘์„ "side effects"(๋˜๋Š” ์งง๊ฒŒ "effects")๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ๋ Œ๋”๋ง ๊ณผ์ •์—์„œ๋Š” ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
7474

75-
Effect Hook, ์ฆ‰ `useEffect`๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์ด๋Ÿฐ side effects๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. React ํด๋ž˜์Šค์˜ `componentDidMount` ๋‚˜ `componentDidUpdate`, `componentWillUnmount`์™€ ๊ฐ™์€ ๋ชฉ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€๋งŒ, ํ•˜๋‚˜์˜ API๋กœ ํ†ตํ•ฉ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (`useEffect`์™€ ์ด ์„ธ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ [Using the Effect Hook](/docs/hooks-effect.html) ๋ฌธ์„œ์— ์žˆ์Šต๋‹ˆ๋‹ค.)
75+
Effect Hook, ์ฆ‰ `useEffect`๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์ด๋Ÿฐ side effects๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. React class์˜ `componentDidMount` ๋‚˜ `componentDidUpdate`, `componentWillUnmount`์™€ ๊ฐ™์€ ๋ชฉ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€๋งŒ, ํ•˜๋‚˜์˜ API๋กœ ํ†ตํ•ฉ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (`useEffect`์™€ ์ด ์„ธ ๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๋ฅผ ๋น„๊ตํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ [Using the Effect Hook](/docs/hooks-effect.html) ๋ฌธ์„œ์— ์žˆ์Šต๋‹ˆ๋‹ค.)
7676

77-
์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์˜ˆ์ œ๋Š” React๊ฐ€ DOM์„ ์—…๋ฐ์ดํŠธํ•œ ๋’ค์— ๋ฌธ์„œ์˜ ํƒ€์ดํ‹€์„ ๋ฐ”๊พธ๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.
77+
์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์˜ˆ์‹œ๋Š” React๊ฐ€ DOM์„ ์—…๋ฐ์ดํŠธํ•œ ๋’ค์— ๋ฌธ์„œ์˜ ํƒ€์ดํ‹€์„ ๋ฐ”๊พธ๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค.
7878

7979
```js{1,6-10}
8080
import React, { useState, useEffect } from 'react';
@@ -99,9 +99,9 @@ function Example() {
9999
}
100100
```
101101

102-
`useEffect`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, React๋Š” DOM์„ ๋ฐ”๊พผ ๋’ค์— "effect" ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Effects๋Š” ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์„ ์–ธ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— props์™€ state์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ React๋Š” ๋งค ๋ Œ๋”๋ง ์ดํ›„์— effects๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ Œ๋”๋ง๋„ *ํฌํ•จํ•ด์„œ์š”*. (ํด๋ž˜์Šค ์ƒ๋ช…์ฃผ๊ธฐ(lifecycle)์™€ ๋‹ค๋ฅธ ์ ์€ [Using the Effect Hook](/docs/hooks-effect.html) ๋ฌธ์„œ์—์„œ ๋” ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)
102+
`useEffect`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, React๋Š” DOM์„ ๋ฐ”๊พผ ๋’ค์— "effect" ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Effects๋Š” ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์„ ์–ธ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— props์™€ state์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ React๋Š” ๋งค ๋ Œ๋”๋ง ์ดํ›„์— effects๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ Œ๋”๋ง๋„ *ํฌํ•จํ•ด์„œ์š”*. (Class ์ƒ๋ช…์ฃผ๊ธฐ(lifecycle)์™€ ๋‹ค๋ฅธ ์ ์€ [Using the Effect Hook](/docs/hooks-effect.html) ๋ฌธ์„œ์—์„œ ๋” ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)
103103

104-
Effect๋ฅผ "ํ•ด์ œ"ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ•ด์ œํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์„ ํƒ์ ์ž…๋‹ˆ๋‹ค(optional). ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์นœ๊ตฌ์˜ ์˜จ๋ผ์ธ ์—ฌ๋ถ€๋ฅผ ๊ตฌ๋…ํ•˜๋Š” effect๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๊ตฌ๋…์„ ํ•ด์ง€ํ•จ์œผ๋กœ์จ ํ•ด์ œํ•ด์ค๋‹ˆ๋‹ค.
104+
Effect๋ฅผ "ํ•ด์ œ"ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ํ•ด์ œํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์„ ํƒ์ ์ž…๋‹ˆ๋‹ค(optional). ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ์ปดํฌ๋„ŒํŠธ๋Š” ์นœ๊ตฌ์˜ ์ ‘์† ์ƒํƒœ๋ฅผ ๊ตฌ๋…ํ•˜๋Š” effect๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ๊ตฌ๋…์„ ํ•ด์ง€ํ•จ์œผ๋กœ์จ ํ•ด์ œํ•ด์ค๋‹ˆ๋‹ค.
105105

106106
```js{10-16}
107107
import React, { useState, useEffect } from 'react';
@@ -128,7 +128,7 @@ function FriendStatus(props) {
128128
}
129129
```
130130

131-
์ด ์˜ˆ์ œ์—์„œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ unmount๋  ๋•Œ React๋Š” `ChatAPI`์—์„œ ๊ตฌ๋…์„ ํ•ด์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฌ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜ effect๋ฅผ ์žฌ์‹คํ–‰ํ•˜๊ธฐ ์ „์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ๋…์„ ํ•ด์ง€ํ•ฉ๋‹ˆ๋‹ค. (๋งŒ์•ฝ ์›ํ•œ๋‹ค๋ฉด `props.friend.id`๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์•˜์„ ๋•Œ [์žฌ๊ตฌ๋…์„ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ์„ค์ •](/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
131+
์ด ์˜ˆ์‹œ์—์„œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ unmount๋  ๋•Œ React๋Š” `ChatAPI`์—์„œ ๊ตฌ๋…์„ ํ•ด์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์žฌ ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜ effect๋ฅผ ์žฌ์‹คํ–‰ํ•˜๊ธฐ ์ „์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ๋…์„ ํ•ด์ง€ํ•ฉ๋‹ˆ๋‹ค. (๋งŒ์•ฝ ์›ํ•œ๋‹ค๋ฉด `props.friend.id`๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์•˜์„ ๋•Œ [์žฌ๊ตฌ๋…์„ ๊ฑด๋„ˆ๋›ฐ๋„๋ก ์„ค์ •](/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
132132

133133
`useState`์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ effect๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
134134

@@ -153,7 +153,7 @@ function FriendStatusWithCounter(props) {
153153
// ...
154154
```
155155

156-
Hook์„ ์‚ฌ์šฉํ•˜๋ฉด -- ๊ตฌ๋…์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๋กœ์ง ๊ฐ™์€ -- ์„œ๋กœ ๊ด€๋ จ ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ํ•œ๊ตฐ๋ฐ์— ๋ชจ์•„์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ(lifecycle methods) ๊ฐ๊ฐ์— ์ชผ๊ฐœ์„œ ๋„ฃ์–ด์•ผ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.
156+
Hook์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ๋…์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๋กœ์ง๊ณผ ๊ฐ™์ด ์„œ๋กœ ๊ด€๋ จ ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ํ•œ๊ตฐ๋ฐ์— ๋ชจ์•„์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด class ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ(lifecycle methods) ๊ฐ๊ฐ์— ์ชผ๊ฐœ์„œ ๋„ฃ์–ด์•ผ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.
157157

158158
>์ž์„ธํ•œ ์„ค๋ช…
159159
>
@@ -174,9 +174,9 @@ Hook์€ ๊ทธ๋ƒฅ JavaScript ํ•จ์ˆ˜์ด์ง€๋งŒ, ๋‘ ๊ฐ€์ง€ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ
174174
175175
## ๐Ÿ’ก ๋‚˜๋งŒ์˜ Hook ๋งŒ๋“ค๊ธฐ {#building-your-own-hooks}
176176

177-
๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” stateful ๋กœ์ง์„ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€ ์žˆ์—ˆ๋Š”๋ฐ, [higher-order components](/docs/higher-order-components.html)์™€ [render props](/docs/render-props.html)๊ฐ€ ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ž…๋‹ˆ๋‹ค. Custom Hook์€ ์ด๋“ค ๋‘˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— ์ƒˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„ ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
177+
๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ€๋” ์ƒํƒœ ๊ด€๋ จ ๋กœ์ง์„ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•์ด ๋‘ ๊ฐ€์ง€ ์žˆ์—ˆ๋Š”๋ฐ, [higher-order components](/docs/higher-order-components.html)์™€ [render props](/docs/render-props.html)๊ฐ€ ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ž…๋‹ˆ๋‹ค. Custom Hook์€ ์ด๋“ค ๋‘˜๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— ์ƒˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋„ ์ด๊ฒƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
178178

179-
์นœ๊ตฌ์˜ ์˜จ๋ผ์ธ ์—ฌ๋ถ€๋ฅผ ๊ตฌ๋…ํ•˜๊ธฐ ์œ„ํ•ด์„œ `useState`์™€ `useEffect` Hook์„ ์‚ฌ์šฉํ•œ `FriendStatus` ์ปดํฌ๋„ŒํŠธ ์˜ˆ์ œ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋กœ์ง์„ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ด…์‹œ๋‹ค.
179+
์นœ๊ตฌ์˜ ์ ‘์† ์ƒํƒœ๋ฅผ ๊ตฌ๋…ํ•˜๊ธฐ ์œ„ํ•ด์„œ `useState`์™€ `useEffect` Hook์„ ์‚ฌ์šฉํ•œ `FriendStatus` ์ปดํฌ๋„ŒํŠธ ์˜ˆ์‹œ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋กœ์ง์„ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ด…์‹œ๋‹ค.
180180

181181
๋จผ์ €, ์ด ๋กœ์ง์„ `useFriendStatus`๋ผ๋Š” custom Hook์œผ๋กœ ๋ฝ‘์•„๋ƒ…๋‹ˆ๋‹ค.
182182

@@ -201,7 +201,7 @@ function useFriendStatus(friendID) {
201201
}
202202
```
203203

204-
์ด Hook์€ `friendID`๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ์นœ๊ตฌ์˜ ์˜จ๋ผ์ธ ์—ฌ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.
204+
์ด Hook์€ `friendID`๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ์นœ๊ตฌ์˜ ์ ‘์† ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.
205205

206206
์ด์ œ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
207207

@@ -228,7 +228,7 @@ function FriendListItem(props) {
228228
}
229229
```
230230

231-
๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ state๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. Hook์€ state ๊ทธ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ, *stateful logic*์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐ๊ฐ์˜ Hook *ํ˜ธ์ถœ*์€ ์™„์ „ํžˆ ๋…๋ฆฝ๋œ state๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ฌ์ง€์–ด๋Š” ํ•œ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ฐ™์€ custom Hook์„ ๋‘ ๋ฒˆ ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
231+
๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ state๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ž…๋‹ˆ๋‹ค. Hook์€ state ๊ทธ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ, *์ƒํƒœ ๊ด€๋ จ ๋กœ์ง*์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐ๊ฐ์˜ Hook *ํ˜ธ์ถœ*์€ ์™„์ „ํžˆ ๋…๋ฆฝ๋œ state๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ฌ์ง€์–ด๋Š” ํ•œ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ๊ฐ™์€ custom Hook์„ ๋‘ ๋ฒˆ ์“ธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
232232

233233
Custom Hook์€ ๊ธฐ๋Šฅ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ์ปจ๋ฒค์…˜(convention)์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์ด "`use`"๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์•ˆ์—์„œ ๋‹ค๋ฅธ Hook์„ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ๊ทธ ํ•จ์ˆ˜๋ฅผ custom Hook์ด๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `useSomething`์ด๋ผ๋Š” ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜์€ linter ํ”Œ๋Ÿฌ๊ทธ์ธ์ด Hook์„ ์ธ์‹ํ•˜๊ณ  ๋ฒ„๊ทธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
234234

@@ -268,4 +268,4 @@ function Todos() {
268268

269269
๋˜ํ•œ [Hooks API reference](/docs/hooks-reference.html)์™€ [Hooks FAQ](/docs/hooks-faq.html)๋„ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
270270

271-
๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๊ฐ€ *์™œ* Hook์„ ์ถ”๊ฐ€ํ•˜๋Š”์ง€ ๊ทธ ์ด์œ ์™€, -- ์•ฑ์„ ์žฌ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ -- ํด๋ž˜์Šค์™€ ํ•จ๊ป˜ Hook์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ [์†Œ๊ฐœ ํŽ˜์ด์ง€](/docs/hooks-intro.html)๋„ ๋†“์น˜์ง€ ๋งˆ์„ธ์š”.
271+
๋งˆ์ง€๋ง‰์œผ๋กœ, ์šฐ๋ฆฌ๊ฐ€ *์™œ* Hook์„ ์ถ”๊ฐ€ํ•˜๋Š”์ง€ ๊ทธ ์ด์œ ์™€ ์•ฑ์„ ์žฌ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ class์™€ ํ•จ๊ป˜ Hook์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ [์†Œ๊ฐœ ํŽ˜์ด์ง€](/docs/hooks-intro.html)๋„ ๋†“์น˜์ง€ ๋งˆ์„ธ์š”.

0 commit comments

Comments
ย (0)