Skip to content

Commit 10d7c21

Browse files
committed
wip
1 parent e699aa5 commit 10d7c21

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

src/content/reference/eslint-plugin-react-hooks/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ version: rc
99

1010
</Intro>
1111

12-
이 플러그인은 빌드 시간에 React 규칙 위반을 감지하여 컴포넌트와 Hook이 정확성과 성능을 위한 React 규칙을 따르도록 도와줍니다. 린트는 기본적인 React 패턴(`exhaustive-deps``rules-of-hooks`)과 React 컴파일러가 표시하는 문제를 모두 다룹니다. React 컴파일러 진단은 ESLint 플러그인에 의해 자동으로 표시되며, 앱이 아직 컴파일러를 도입하지 않았더라도 사용할 수 있습니다.
12+
이 플러그인은 빌드 시간에 React 규칙 위반을 감지하여 컴포넌트와 Hook이 정확성과 성능을 위한 React 규칙을 따르도록 도와줍니다. 린트는 기본적인 React 패턴(`exhaustive-deps``rules-of-hooks`)과 React 컴파일러가 표시하는 문제를 모두 다룹니다. React 컴파일러 진단은 ESLint 플러그인에 의해 자동으로 표시되며, 앱이 아직 컴파일러를 도입하지 않았더라도 사용할 수 있습니다.
1313

1414
<Note>
1515
컴파일러가 진단을 보고하면 컴파일러가 지원되지 않거나 React 규칙을 위반하는 패턴을 정적으로 감지했다는 것을 의미합니다. 이를 감지하면 해당 컴포넌트와 Hook을 **자동으로** 건너뛰고 나머지 앱은 계속 컴파일합니다. 이렇게 하면 앱을 손상시키지 않는 안전한 최적화의 최적 적용 범위를 보장합니다.

src/content/reference/eslint-plugin-react-hooks/lints/exhaustive-deps.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ React Hook의 의존성 배열에 필요한 모든 의존성이 포함되어 있
88

99
</Intro>
1010

11-
## 규칙 자세히보기 {/*rule-details*/}
11+
## 규칙 세부 사항 {/*rule-details*/}
1212

13-
`useEffect`, `useMemo`, `useCallback`과 같은 React Hook은 의존성 배열을 받습니다. 이 Hook들 안에서 참조한 값이 의존성 배열에 포함되지 않으면 그 값이 바뀌어도 React가 effect를 다시 실행하거나 값을 다시 계산하지 않습니다. 그 결과 Hook이 예전 값을 계속 붙잡고 사용하는 "stale closure(오래된 클로저)" 문제가 생겨 최신 값이 아닌 상태로 동작하게 됩니다.
13+
`useEffect`, `useMemo`, `useCallback`과 같은 React Hook은 의존성 배열을 받습니다. 이 Hook들 안에서 참조한 값이 의존성 배열에 포함되지 않으면, 그 값이 바뀌어도 React가 Effect를 다시 실행하거나 값을 다시 계산하지 않습니다. 그 결과 Hook이 예전 값을 계속 붙잡고 사용하는 오래된 클로저<sup>Stale Closure</sup> 문제가 생겨 최신 값이 아닌 상태로 동작하게 됩니다.
1414

15-
## 흔한 위반 사항 {/*common-violations*/}
15+
## 일반적인 위반 사례 {/*common-violations*/}
1616

17-
이 오류는 effect 실행 시점을 조절하려고 의존성을 의도적으로 누락할 때 자주 발생합니다. Effect는 컴포넌트를 외부 시스템과 동기화하기 위한 용도여야 합니다. 의존성 배열은 effect가 어떤 값을 사용하고 있는지 React에게 알려주며, React는 이를 바탕으로 언제 다시 동기화해야 하는지 판단합니다.
17+
이 오류는 Effect 실행 시점을 조절하기 위해 의존성을 의도적으로 누락할 때 자주 발생합니다. Effect는 컴포넌트를 외부 시스템과 동기화하기 위한 용도여야 합니다. 의존성 배열은 Effect가 어떤 값을 사용하고 있는지 React에게 알려주며, React는 이를 바탕으로 언제 다시 동기화해야 하는지 판단합니다.
1818

19-
린터 경고를 계속 피하려고 하거나 맞추기 어렵다고 느낀다면, 코드 구조를 다시 구성해야 할 가능성이 큽니다. 방법은 [Effect의 의존성 제거하기](/learn/removing-effect-dependencies) 문서를 참고하세요.
19+
린터와 싸우고 있는 자신을 발견한다면, 아마도 코드 구조를 다시 구성해야 할 가능성이 큽니다. 자세한 방법은 [Effect의 의존성 제거하기](/learn/removing-effect-dependencies) 문서를 참고하세요.
2020

21-
### 유효하지 않음 {/*invalid*/}
21+
### 잘못된 예 {/*invalid*/}
2222

23-
이 규칙에 대한 잘못된 코드 예시
23+
이 규칙에 대한 잘못된 코드 예시입니다.
2424

2525
```js
2626
// ❌ Missing dependency
@@ -39,9 +39,9 @@ useMemo(() => {
3939
}, [items]); // Missing 'sortOrder'
4040
```
4141

42-
### 유효 {/*valid*/}
42+
### 올바른 예 {/*valid*/}
4343

44-
이 규칙에 대한 올바른 예시
44+
이 규칙에 대한 올바른 예시입니다.
4545

4646
```js
4747
// ✅ All dependencies included
@@ -59,7 +59,7 @@ useEffect(() => {
5959

6060
### 함수를 의존성으로 추가하면 무한 루프가 발생할 수 있습니다 {/*function-dependency-loops*/}
6161

62-
effect를 사용하고 있지만, 렌더링이 일어날 때마다 새로운 함수를 매번 생성하고 있습니다.
62+
Effect를 사용하고 있지만, 렌더링이 일어날 때마다 새로운 함수를 매번 생성하고 있습니다.
6363

6464
```js
6565
// ❌ Causes infinite loop
@@ -72,7 +72,7 @@ useEffect(() => {
7272
}, [logItems]); // Infinite loop!
7373
```
7474

75-
대부분의 경우 effect는 필요하지 않습니다. 대신 그 동작이 실제로 발생하는 지점에서 함수를 호출하세요.
75+
대부분의 경우 Effect는 필요하지 않습니다. 대신 그 동작이 실제로 발생하는 지점에서 함수를 호출하세요.
7676

7777
```js
7878
// ✅ Call it from the event handler
@@ -88,7 +88,7 @@ items.forEach(item => {
8888
});
8989
```
9090

91-
정말로 effect가 필요한 경우(예: 외부 무언가를 구독해야 하는 경우)에는, 의존성이 안정적이도록 만드세요.
91+
정말로 Effect가 필요한 경우(예: 외부 무언가를 구독해야 하는 상황)에는, 의존성이 안정적이도록 만드세요.
9292

9393
```js
9494
// ✅ useCallback keeps the function reference stable
@@ -106,9 +106,9 @@ useEffect(() => {
106106
}, [items]);
107107
```
108108

109-
### effect를 한 번만 실행하기 {/*effect-on-mount*/}
109+
### Effect를 한 번만 실행하기 {/*effect-on-mount*/}
110110

111-
마운트 시점에 effect를 한 번만 실행하고 싶지만, 린터가 누락된 의존성에 대해 경고합니다.
111+
마운트 시점에 Effect를 한 번만 실행하고 싶지만, 린터가 누락된 의존성에 대해 경고합니다.
112112

113113
```js
114114
// ❌ Missing dependency
@@ -117,7 +117,7 @@ useEffect(() => {
117117
}, []); // Missing 'userId'
118118
```
119119

120-
의존성을 포함하는 것이 권장되며, 정말로 한 번만 실행해야 한다면 Ref를 사용하세요.
120+
의존성을 포함하는 것을 권장하며, 정말로 한 번만 실행해야 한다면 Ref를 사용하세요.
121121

122122
```js
123123
// ✅ Include dependency
@@ -140,7 +140,7 @@ useEffect(() => {
140140

141141
## 옵션 {/*options*/}
142142

143-
공유 ESLint 설정을 사용해 커스텀 Effect Hook을 설정할 수 있습니다(`eslint-plugin-react-hooks` 6.1.1 이상에서 지원).
143+
공유 ESLint 설정을 사용해 커스텀 Effect Hook을 설정할 수 있습니다. (`eslint-plugin-react-hooks` 6.1.1 이상에서 지원.)
144144

145145
```js
146146
{
@@ -152,9 +152,9 @@ useEffect(() => {
152152
}
153153
```
154154

155-
- `additionalEffectHooks`: 철저한 의존성 검사를 적용해야 하는 커스텀 Hook을 정규식 패턴으로 지정합니다. 이 설정은 모든 `react-hooks` 규칙에서 공통으로 사용됩니다.
155+
- `additionalEffectHooks`: Exhaustive Deps 검사를 적용해야 하는 커스텀 Hook을 정규식 패턴으로 지정합니다. 이 설정은 모든 `react-hooks` 규칙에서 공통으로 사용됩니다.
156156

157-
하위 호환성을 위해 이 규칙은 규칙 단위 옵션도 함께 지원합니다.
157+
하위 호환성을 위해 이 규칙은 규칙 단위<sup>Rule Level</sup> 옵션도 함께 지원합니다.
158158

159159
```js
160160
{
@@ -166,4 +166,4 @@ useEffect(() => {
166166
}
167167
```
168168

169-
- `additionalHooks`: 빠짐없는 의존성 검사(exhaustive deps)를 적용해야 하는 Hook을 정규식으로 지정합니다. **참고:**규칙별 옵션을 지정하면 공유 `settings` 설정보다 우선 적용됩니다.
169+
- `additionalHooks`: Exhaustive Deps 검사를 적용해야 하는 Hook을 정규식으로 지정합니다. **참고:**규칙 단위 옵션을 지정하면 공유 `settings` 설정보다 우선 적용됩니다.

0 commit comments

Comments
 (0)