Skip to content

Commit ebe49ef

Browse files
authored
Update reviews
1 parent 37decef commit ebe49ef

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

content/docs/state-and-lifecycle.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ ReactDOM.render(
7373
State는 props와 유사하지만, 비공개이며 컴포넌트에 의해 완전히 제어됩니다.
7474

7575

76-
## 함수형에서 클래스로 변환하기 {#converting-a-function-to-a-class}
76+
## 함수에서 클래스로 변환하기 {#converting-a-function-to-a-class}
7777

78-
다섯 단계로 `Clock`과 같은 함수형 컴포넌트를 클래스로 변환할 수 있습니다.
78+
다섯 단계로 `Clock`과 같은 함수 컴포넌트를 클래스로 변환할 수 있습니다.
7979

80-
1. `React.Component`를 확장하는 동일한 이름의 [ES6 class](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes)를 생성합니다.
80+
1. `React.Component`를 확장하는 동일한 이름의 [ES6 class](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes)를 생성합니다.
8181

8282
2. `render()`라고 불리는 빈 메서드를 추가합니다.
8383

@@ -125,7 +125,7 @@ class Clock extends React.Component {
125125
}
126126
```
127127

128-
2) 초기 `this.state`를 지정하는 [클래스 constructor](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes#Constructor)를 추가합니다.
128+
2) 초기 `this.state`를 지정하는 [class constructor](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes#Constructor_(%EC%83%9D%EC%84%B1%EC%9E%90))를 추가합니다.
129129

130130
```js{4}
131131
class Clock extends React.Component {
@@ -198,11 +198,11 @@ ReactDOM.render(
198198

199199
## 생명주기 메서드를 클래스에 추가하기 {#adding-lifecycle-methods-to-a-class}
200200

201-
많은 컴포넌트가 있는 응용프로그램에서 컴포넌트가 삭제될 때 해당 컴포넌트가 사용 중이던 리소스를 확보하는 것이 중요합니다.
201+
많은 컴포넌트가 있는 애플리케이션에서 컴포넌트가 삭제될 때 해당 컴포넌트가 사용 중이던 리소스를 확보하는 것이 중요합니다.
202202

203203
`Clock`이 처음 DOM에 렌더링 될 때마다 [타이머를 설정](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval)하려고 합니다. 이것은 React에서 "마운팅"이라고 합니다.
204204

205-
또한 `Clock`에 의해 생산된 DOM이 삭제될 때마다 [타이머를 해제](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval)하려고 합니다.
205+
또한 `Clock`에 의해 생성된 DOM이 삭제될 때마다 [타이머를 해제](https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval)하려고 합니다.
206206

207207
컴포넌트 클래스에서 특별한 메서드를 선언하여 컴포넌트가 마운트되거나 언마운트 될 때 일부 코드를 작동할 수 있습니다.
208208

@@ -232,9 +232,9 @@ class Clock extends React.Component {
232232
}
233233
```
234234

235-
이러한 메서드들은 "생명주기 매서드"라고 불립니다.
235+
이러한 메서드들은 "생명주기 메서드"라고 불립니다.
236236

237-
`componentDidMount()` 메서드는 컴포넌트 출력물이 DOM에 렌더링 된 후에 실행됩니다. 이 장소가 타이머를 설정하기에 가장 좋아 보입니다.
237+
`componentDidMount()` 메서드는 컴포넌트 출력물이 DOM에 렌더링 된 후에 실행됩니다. 이 장소가 타이머를 설정하기에 좋은 장소입니다.
238238

239239
```js{2-5}
240240
componentDidMount() {
@@ -245,9 +245,9 @@ class Clock extends React.Component {
245245
}
246246
```
247247

248-
`this`에서 어떻게 타이머 ID를 제대로 저장하는지 유의하십시오.
248+
`this`에서 어떻게 타이머 ID를 제대로 저장하는지 주의해주세요.
249249

250-
`this.props`가 React에 의해 스스로 설정되고 `this.state`가 특수한 의미가 있지만, (타이머 ID)와 같이 데이터 흐름 안에 포함되지 않는 어떤 항목을 보관할 필요가 있다면 자유롭게 클래스에 수동으로 부가적인 필드를 추가해도 됩니다.
250+
`this.props`가 React에 의해 스스로 설정되고 `this.state`가 특수한 의미가 있지만, 타이머 ID와 같이 데이터 흐름 안에 포함되지 않는 어떤 항목을 보관할 필요가 있다면 자유롭게 클래스에 수동으로 부가적인 필드를 추가해도 됩니다.
251251

252252
`componentWillUnmount()` 생명주기 메서드 안에 있는 타이머를 분해해 보겠습니다.
253253

@@ -305,23 +305,23 @@ ReactDOM.render(
305305

306306
이제 시계는 매초 째깍거립니다.
307307

308-
현재 어떤 상황이고 매서드가 어떻게 호출되는지 순서대로 빠르게 요약해 보겠습니다.
308+
현재 어떤 상황이고 메서드가 어떻게 호출되는지 순서대로 빠르게 요약해 보겠습니다.
309309

310310
1) `<Clock />``ReactDOM.render()`로 전달되었을 때 React는 `Clock` 컴포넌트의 constructor를 호출합니다. `Clock`이 현재 시각을 표시해야 하기 때문에 현재 시각이 포함된 객체로 `this.state`를 초기화합니다. 나중에 이 state를 업데이트할 것입니다.
311311

312-
2) React는 `Clock` 컴포넌트의 `render()` 메서드를 호출합니다. 이를 통해 React는 화면에 표시되어야 할 내용을 알게 됩니다. 그다음 React는 `Clock`의 렌더링 출력값을 일치시키기 위해 DOM을 업데이트합니다.
312+
2) React는 `Clock` 컴포넌트의 `render()` 메서드를 호출합니다. 이를 통해 React는 화면에 표시되어야 할 내용을 알게 됩니다. 그 다음 React는 `Clock`의 렌더링 출력값을 일치시키기 위해 DOM을 업데이트합니다.
313313

314314
3) `Clock` 출력값이 DOM에 삽입되면, React는 `componentDidMount()` 생명주기 메서드를 호출합니다. 그 안에서 `Clock` 컴포넌트는 매초 컴포넌트의 `tick()` 메서드를 호출하기 위한 타이머를 설정하도록 브라우저에 요청합니다.
315315

316-
4) 매초 브라우저가 `tick()` 메서드를 호출합니다. 그 안에서 `Clock` 컴포넌트는 `setState()` 현재 시각을 포함하는 객체를 호출하면서 UI 업데이트를 진행합니다. `setState()` 호출 덕분에 React는 state가 변경된 것을 인지하고 화면에 표시될 내용을 알아내기 위해 `render()` 메서드를 다시 호출합니다.
316+
4) 매초 브라우저가 `tick()` 메서드를 호출합니다. 그 안에서 `Clock` 컴포넌트는 `setState()` 현재 시각을 포함하는 객체를 호출하면서 UI 업데이트를 진행합니다. `setState()` 호출 덕분에 React는 state가 변경된 것을 인지하고 화면에 표시될 내용을 알아내기 위해 `render()` 메서드를 다시 호출합니다. 이 때 `render()` 메서드 안의 `this.state.date`가 달라지고 렌더링 출력값은 업데이트된 시각을 포함합니다. React는 이에 따라 DOM을 업데이트합니다.
317317

318318
5) `Clock` 컴포넌트가 DOM으로부터 한 번이라도 삭제된 적이 있다면 React는 타이머를 멈추기 위해 `componentWillUnmount()` 생명주기 메서드를 호출합니다.
319319

320320
## State를 올바르게 사용하기 {#using-state-correctly}
321321

322322
`setState()`에 대해서 알아야 할 세 가지가 있습니다.
323323

324-
### 직접 State를 수정하지 마십시오 {#do-not-modify-state-directly}
324+
### 직접 State를 수정하지 마세요 {#do-not-modify-state-directly}
325325

326326
예를 들어, 이 코드는 컴포넌트를 다시 렌더링하지 않습니다.
327327

@@ -363,7 +363,7 @@ this.setState((state, props) => ({
363363
}));
364364
```
365365

366-
위에서는 [화살표 함수](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions)를 사용했지만, 일반적인 함수에서도 정상적으로 작동합니다.
366+
위에서는 [화살표 함수](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/%EC%95%A0%EB%A1%9C%EC%9A%B0_%ED%8E%91%EC%85%98)를 사용했지만, 일반적인 함수에서도 정상적으로 작동합니다.
367367

368368
```js
369369
// Correct
@@ -408,11 +408,11 @@ this.setState(function(state, props) {
408408
}
409409
```
410410

411-
T병합은 얕게 이루어지기 때문에 `this.setState({comments})``this.state.posts`에 영향을 주진 않지만 `this.state.comments`는 완전히 대체됩니다.
411+
병합은 얕게 이루어지기 때문에 `this.setState({comments})``this.state.posts`에 영향을 주진 않지만 `this.state.comments`는 완전히 대체됩니다.
412412

413-
## 데이터 흐름은 아래로 {#the-data-flows-down}
413+
## 데이터는 아래로 흐릅니다 {#the-data-flows-down}
414414

415-
부모 컴포넌트나 자식 컴포넌트 모두 특정 컴포넌트가 유상태인지 또는 무상태인지 알 수 없고, 그들이 함수형이나 클래스로 정의되었는지에 대해서 관심을 가질 필요가 없습니다.
415+
부모 컴포넌트나 자식 컴포넌트 모두 특정 컴포넌트가 유상태인지 또는 무상태인지 알 수 없고, 그들이 함수이나 클래스로 정의되었는지에 대해서 관심을 가질 필요가 없습니다.
416416

417417
이 때문에 state는 종종 로컬 또는 캡슐화라고 불립니다. state가 소유하고 설정한 컴포넌트 이외에는 어떠한 컴포넌트에도 접근할 수 없습니다.
418418

@@ -440,9 +440,9 @@ function FormattedDate(props) {
440440

441441
일반적으로 이를 "하향식(top-down)" 또는 "단방향식" 데이터 흐름이라고 합니다. 모든 state는 항상 특정한 컴포넌트가 소유하고 있으며 그 state로부터 파생된 UI 또는 데이터는 오직 트리구조에서 자신의 "아래"에 있는 컴포넌트에만 영향을 미칩니다.
442442

443-
트리구조가 prop들의 폭포라고 상상하면 각 컴포넌트의 state는 임의의 점에서 만나지만 동시에 아래로 흐르는 부가적인 수원이라고 할 수 있습니다.
443+
트리구조가 props들의 폭포라고 상상하면 각 컴포넌트의 state는 임의의 점에서 만나지만 동시에 아래로 흐르는 부가적인 수원(water source)이라고 할 수 있습니다.
444444

445-
모든 컴포넌트가 완전히 독립적이라는 것을 보여주기 위해 `App` 렌더링하는 세 개의 `<Clock>`을 만들었습니다.
445+
모든 컴포넌트가 완전히 독립적이라는 것을 보여주기 위해 `App` 렌더링하는 세 개의 `<Clock>`을 만들었습니다.
446446

447447
```js{4-6}
448448
function App() {

0 commit comments

Comments
 (0)