- Ready to learn this topic?
+ ์ด ์ฃผ์ ๋ฅผ ๋ฐฐ์ธ ์ค๋น๊ฐ ๋์
จ๋์?
{children}
{path ? (
@@ -202,7 +202,7 @@ function LearnMore({
label="Read More"
href={path}
type="primary">
- Read More
+ ๋ ๋ณด๊ธฐ
) : null}
@@ -253,7 +253,7 @@ function YouWillLearn({
children: any;
isChapter?: boolean;
}) {
- let title = isChapter ? 'In this chapter' : 'You will learn';
+ let title = isChapter ? '์ด ์ฅ์์๋' : 'ํ์ต ๋ด์ฉ';
return
{children} ;
}
diff --git a/src/components/MDX/Recap.tsx b/src/components/MDX/Recap.tsx
index 293304367..98059aa13 100644
--- a/src/components/MDX/Recap.tsx
+++ b/src/components/MDX/Recap.tsx
@@ -20,7 +20,7 @@ function Recap({children}: RecapProps) {
return (
- Recap
+ ์์ฝ
{children}
diff --git a/src/components/MDX/Sandpack/CustomPreset.tsx b/src/components/MDX/Sandpack/CustomPreset.tsx
index 4a241c87c..f5c2f8e93 100644
--- a/src/components/MDX/Sandpack/CustomPreset.tsx
+++ b/src/components/MDX/Sandpack/CustomPreset.tsx
@@ -110,7 +110,7 @@ const SandboxShell = memo(function SandboxShell({
className="inline me-1.5 text-xl"
displayDirection={isExpanded ? 'up' : 'down'}
/>
- {isExpanded ? 'Show less' : 'Show more'}
+ {isExpanded ? '๊ฐ๋ตํ ๋ณด๊ธฐ' : '์์ธํ ๋ณด๊ธฐ'}
)}
diff --git a/src/components/MDX/Sandpack/DownloadButton.tsx b/src/components/MDX/Sandpack/DownloadButton.tsx
index b51627d89..95ea9c89a 100644
--- a/src/components/MDX/Sandpack/DownloadButton.tsx
+++ b/src/components/MDX/Sandpack/DownloadButton.tsx
@@ -109,7 +109,7 @@ ${css}
onClick={downloadHTML}
title="Download Sandbox"
type="button">
-
Download
+
๋ค์ด๋ก๋
);
}
diff --git a/src/components/MDX/Sandpack/NavigationBar.tsx b/src/components/MDX/Sandpack/NavigationBar.tsx
index 3fe743a2d..184ed2675 100644
--- a/src/components/MDX/Sandpack/NavigationBar.tsx
+++ b/src/components/MDX/Sandpack/NavigationBar.tsx
@@ -111,7 +111,10 @@ export function NavigationBar({providedFiles}: {providedFiles: Array
}) {
*
* Plus, it should only prompt if there's any file changes
*/
- if (sandpack.editorState === 'dirty' && confirm('Clear all your edits?')) {
+ if (
+ sandpack.editorState === 'dirty' &&
+ confirm('๋ชจ๋ ์์ ์ฌํญ์ด ์ด๊ธฐํ๋ฉ๋๋ค. ๊ณ์ํ์๊ฒ ์ต๋๊น?')
+ ) {
sandpack.resetAllFiles();
}
refresh();
diff --git a/src/components/MDX/Sandpack/OpenInCodeSandboxButton.tsx b/src/components/MDX/Sandpack/OpenInCodeSandboxButton.tsx
index 83b968fab..ae1603c84 100644
--- a/src/components/MDX/Sandpack/OpenInCodeSandboxButton.tsx
+++ b/src/components/MDX/Sandpack/OpenInCodeSandboxButton.tsx
@@ -22,7 +22,7 @@ export const OpenInCodeSandboxButton = () => {
width="1em"
height="1em"
/>
- Fork
+ ํฌํฌ
);
};
diff --git a/src/components/MDX/Sandpack/ReloadButton.tsx b/src/components/MDX/Sandpack/ReloadButton.tsx
index 71a25ea47..8d6cb7f48 100644
--- a/src/components/MDX/Sandpack/ReloadButton.tsx
+++ b/src/components/MDX/Sandpack/ReloadButton.tsx
@@ -20,10 +20,10 @@ export function ReloadButton({onReload}: ReloadButtonProps) {
- Reload
+ ์๋ก๊ณ ์นจ
);
}
diff --git a/src/components/MDX/Sandpack/ResetButton.tsx b/src/components/MDX/Sandpack/ResetButton.tsx
new file mode 100644
index 000000000..d9bf5412c
--- /dev/null
+++ b/src/components/MDX/Sandpack/ResetButton.tsx
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ */
+
+import * as React from 'react';
+import {IconRestart} from '../../Icon/IconRestart';
+export interface ResetButtonProps {
+ onReset: () => void;
+}
+
+export function ResetButton({onReset}: ResetButtonProps) {
+ return (
+
+ ์ด๊ธฐํ
+
+ );
+}
diff --git a/src/components/MDX/TerminalBlock.tsx b/src/components/MDX/TerminalBlock.tsx
index 0fd0160d6..a4c1e3e23 100644
--- a/src/components/MDX/TerminalBlock.tsx
+++ b/src/components/MDX/TerminalBlock.tsx
@@ -64,7 +64,7 @@ function TerminalBlock({level = 'info', children}: TerminalBlockProps) {
- Terminal
+ ํฐ๋ฏธ๋
{' '}
- {copied ? 'Copied' : 'Copy'}
+ {copied ? '๋ณต์ฌ๋จ' : '๋ณต์ฌ'}
diff --git a/src/components/SocialBanner.tsx b/src/components/SocialBanner.tsx
index 4e404adcf..da518ecb6 100644
--- a/src/components/SocialBanner.tsx
+++ b/src/components/SocialBanner.tsx
@@ -9,9 +9,9 @@ import {useRef, useEffect} from 'react';
import cn from 'classnames';
import {ExternalLink} from './ExternalLink';
-const bannerText = 'Join us for React Conf on Oct 7-8.';
+const bannerText = '10์ 7-8์ผ React Conf์ ํจ๊ปํ์ธ์.';
const bannerLink = 'https://conf.react.dev/';
-const bannerLinkText = 'Learn more.';
+const bannerLinkText = '๋ ์์๋ณด๊ธฐ.';
export default function SocialBanner() {
const ref = useRef
(null);
diff --git a/src/components/Tag.tsx b/src/components/Tag.tsx
index 9a69d179c..f415d1b46 100644
--- a/src/components/Tag.tsx
+++ b/src/components/Tag.tsx
@@ -14,23 +14,23 @@ import type {RouteTag} from './Layout/getRouteMeta';
const variantMap = {
foundation: {
- name: 'Foundation',
+ name: '๊ธฐ์ด',
classes: 'bg-yellow-50 text-white',
},
intermediate: {
- name: 'Intermediate',
+ name: '์ค๊ธ',
classes: 'bg-purple-40 text-white',
},
advanced: {
- name: 'Advanced',
+ name: '์ฌํ',
classes: 'bg-green-40 text-white',
},
experimental: {
- name: 'Experimental',
+ name: '์คํ์ ',
classes: 'bg-ui-orange text-white',
},
deprecated: {
- name: 'Deprecated',
+ name: '๋ ์ด์ ์ฌ์ฉ๋์ง ์์',
classes: 'bg-red-40 text-white',
},
};
diff --git a/src/content/blog/2020/12/21/data-fetching-with-react-server-components.md b/src/content/blog/2020/12/21/data-fetching-with-react-server-components.md
index b0bc9f558..190461156 100644
--- a/src/content/blog/2020/12/21/data-fetching-with-react-server-components.md
+++ b/src/content/blog/2020/12/21/data-fetching-with-react-server-components.md
@@ -1,34 +1,34 @@
---
-title: "Introducing Zero-Bundle-Size React Server Components"
+title: "์ ๋ก ๋ฒ๋ค ์ฌ์ด์ฆ React ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํฉ๋๋ค"
author: Dan Abramov, Lauren Tan, Joseph Savona, and Sebastian Markbage
date: 2020/12/21
-description: 2020 has been a long year. As it comes to an end we wanted to share a special Holiday Update on our research into zero-bundle-size React Server Components.
+description: 2020๋
์ ๊ธด ํ ํด์์ต๋๋ค. ์ฐ๋ง์ด ๋ค๊ฐ์ด์ ๋ฐ๋ผ ์ ๋ก ๋ฒ๋ค ์ฌ์ด์ฆ์ React ์๋ฒ ์ปดํฌ๋ํธ ์ฐ๊ตฌ์ ๋ํ ํน๋ณ ์ฐํด ์
๋ฐ์ดํธ๋ฅผ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
---
-December 21, 2020 by [Dan Abramov](https://bsky.app/profile/danabra.mov), [Lauren Tan](https://twitter.com/potetotes), [Joseph Savona](https://twitter.com/en_JS), and [Sebastian Markbรฅge](https://twitter.com/sebmarkbage)
+2020๋
12์ 21์ผ, [Dan Abramov](https://twitter.com/dan_abramov), [Lauren Tan](https://twitter.com/potetotes), [Joseph Savona](https://twitter.com/en_JS), [Sebastian Markbรฅge](https://twitter.com/sebmarkbage)
---
-2020 has been a long year. As it comes to an end we wanted to share a special Holiday Update on our research into zero-bundle-size **React Server Components**.
+2020๋
์ ๊ธด ํ ํด์์ต๋๋ค. ์ฐ๋ง์ด ๋ค๊ฐ์ด์ ๋ฐ๋ผ ์ ๋ก ๋ฒ๋ค ์ฌ์ด์ฆ **React ์๋ฒ ์ปดํฌ๋ํธ** ์ฐ๊ตฌ์ ๋ํ ํน๋ณ ์ฐํด ์
๋ฐ์ดํธ๋ฅผ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.
---
-To introduce React Server Components, we have prepared a talk and a demo. If you want, you can check them out during the holidays, or later when work picks back up in the new year.
+React ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํ๊ธฐ ์ํด ๊ฐ์ฐ๊ณผ ๋ฐ๋ชจ๋ฅผ ์ค๋นํ์ต๋๋ค. ์ด๋ ์ฐํด ๊ธฐ๊ฐ ๋๋ ์ํด์ ์
๋ฌด๊ฐ ์ฌ๊ฐ๋๋ ์์ ์ ํ์ธํ ์ ์์ต๋๋ค.
-**React Server Components are still in research and development.** We are sharing this work in the spirit of transparency and to get initial feedback from the React community. There will be plenty of time for that, so **don't feel like you have to catch up right now!**
+**React ์๋ฒ ์ปดํฌ๋ํธ๋ ์์ง ์ฐ๊ตฌ ๊ฐ๋ฐ ๋จ๊ณ์
๋๋ค.** ํฌ๋ช
์ฑ์ ์ ์งํ๊ณ React ์ปค๋ฎค๋ํฐ๋ก๋ถํฐ ์ด๊ธฐ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์ํด ์์
์ ๊ณต์ ํ๊ณ ์์ต๋๋ค. ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ด๋ฏ๋ก **์ง๊ธ ๋น์ฅ ๋ฐ๋ผ์ก์์ผ ํ๋ค๊ณ ๋๋ผ์ง ๋ง์ธ์!**
-If you want to check them out, we recommend going in the following order:
+์ด๋ฅผ ํ์ธํ๊ธฐ ์ํด ์๋์ ๊ฐ์ ์์๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
-1. **Watch the talk** to learn about React Server Components and see the demo.
+1. **๊ฐ์ฐ**์ ์์ฒญํ์ฌ React ์๋ฒ ์ปดํฌ๋ํธ์ ๋ํด ํ์ตํ๊ณ ๋ฐ๋ชจ๋ฅผ ํ์ธํ์ธ์.
-2. **[Clone the demo](http://github.com/reactjs/server-components-demo)** to play with React Server Components on your computer.
+2. [๋ฐ๋ชจ๋ฅผ ํด๋ก ](http://github.com/reactjs/server-components-demo) ํ์ฌ ์ปดํจํฐ์์ React ์๋ฒ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์.
-3. **[Read the RFC (with FAQ at the end)](https://github.com/reactjs/rfcs/pull/188)** for a deeper technical breakdown and to provide feedback.
+3. ์์ธํ ๊ธฐ์ ๋ถ์๊ณผ ํผ๋๋ฐฑ ์ ๊ณต์ ์ํด [RFC(FAQ๊ฐ ๋ง์ง๋ง์ ํฌํจ๋์ด ์์ต๋๋ค)](https://github.com/reactjs/rfcs/pull/188) ๋ฅผ ์ฝ์ด๋ณด์ธ์.
-We are excited to hear from you on the RFC or in replies to the [@reactjs](https://twitter.com/reactjs) Twitter handle. Happy holidays, stay safe, and see you next year!
+RFC ๋๋ [@reactjs](https://twitter.com/reactjs) ํธ์ํฐ ๊ณ์ ์์ ์ฌ๋ฌ๋ถ์ ์๊ฒฌ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค. ์ฆ๊ฑฐ์ด ์ฐ๋ง์ฐ์ ์์ ํ๊ฒ ๋ณด๋ด์๊ณ ๋ด๋
์ ๋ต๊ฒ ์ต๋๋ค!
diff --git a/src/content/blog/2021/06/08/the-plan-for-react-18.md b/src/content/blog/2021/06/08/the-plan-for-react-18.md
index bed24396d..c9719277e 100644
--- a/src/content/blog/2021/06/08/the-plan-for-react-18.md
+++ b/src/content/blog/2021/06/08/the-plan-for-react-18.md
@@ -1,71 +1,71 @@
---
-title: "The Plan for React 18"
+title: "React 18์ ๋ํ ๊ณํ"
author: Andrew Clark, Brian Vaughn, Christine Abernathy, Dan Abramov, Rachel Nabors, Rick Hanlon, Sebastian Markbage, and Seth Webster
date: 2021/06/08
-description: The React team is excited to share a few updates. Weโve started work on the React 18 release, which will be our next major version. Weโve created a Working Group to prepare the community for gradual adoption of new features in React 18. Weโve published a React 18 Alpha so that library authors can try it and provide feedback...
+description: React ํ์ ๋ช ๊ฐ์ง ์
๋ฐ์ดํธ๋ฅผ ๊ณต์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๋ค์ ์ฃผ์ ๋ฒ์ ์ด ๋ React 18 ๋ฆด๋ฆฌ์ฆ์ ๋ํ ์์
์ ์์ํ์ต๋๋ค. ์ปค๋ฎค๋ํฐ๊ฐ React 18์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ์ฑํํ ์ ์๋๋ก ์ค๋นํ๊ธฐ ์ํด ์ํน ๊ทธ๋ฃน์ ๋ง๋ค์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ฌ์ฉํด ๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๋๋ก React 18 Alpha๋ฅผ ๊ฒ์ํ์ต๋๋ค...
---
-June 8, 2021 by [Andrew Clark](https://twitter.com/acdlite), [Brian Vaughn](https://github.com/bvaughn), [Christine Abernathy](https://twitter.com/abernathyca), [Dan Abramov](https://bsky.app/profile/danabra.mov), [Rachel Nabors](https://twitter.com/rachelnabors), [Rick Hanlon](https://twitter.com/rickhanlonii), [Sebastian Markbรฅge](https://twitter.com/sebmarkbage), and [Seth Webster](https://twitter.com/sethwebster)
+2021๋
6์ 8์ผ, [Andrew Clark](https://twitter.com/acdlite), [Brian Vaughn](https://github.com/bvaughn), [Christine Abernathy](https://twitter.com/abernathyca), [Dan Abramov](https://twitter.com/dan_abramov), [Rachel Nabors](https://twitter.com/rachelnabors), [Rick Hanlon](https://twitter.com/rickhanlonii), [Sebastian Markbรฅge](https://twitter.com/sebmarkbage), [Seth Webster](https://twitter.com/sethwebster)
---
-The React team is excited to share a few updates:
+React ํ์ ๋ช ๊ฐ์ง ์
๋ฐ์ดํธ๋ฅผ ๊ณต์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
-1. Weโve started work on the React 18 release, which will be our next major version.
-2. Weโve created a Working Group to prepare the community for gradual adoption of new features in React 18.
-3. Weโve published a React 18 Alpha so that library authors can try it and provide feedback.
+1. ๋ค์๋ฒ ์ฃผMajor, ไธป ๋ฒ์ ์ด ๋ React 18 ๋ฆด๋ฆฌ์ฆ์ ๋ํ ์์
์ ์์ํ์ต๋๋ค.
+2. ์ปค๋ฎค๋ํฐ๊ฐ React 18์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ์ฑํํ ์ ์๋๋ก ์ค๋นํ๊ธฐ ์ํด ์ํน ๊ทธ๋ฃนWorking Group ์ ๋ง๋ค์์ต๋๋ค.
+3. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ฌ์ฉํด ๋ณด๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ ์ ์๋๋ก React 18 Alpha๋ฅผ ๊ฒ์ํ์ต๋๋ค.
-These updates are primarily aimed at maintainers of third-party libraries. If youโre learning, teaching, or using React to build user-facing applications, you can safely ignore this post. But you are welcome to follow the discussions in the React 18 Working Group if you're curious!
+์ด๋ฒ ์
๋ฐ์ดํธ๋ ์ฃผ๋ก ์๋ํํฐThird Party ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. React๋ฅผ ๋ฐฐ์ฐ๊ฑฐ๋ ๊ฐ๋ฅด์น๊ฑฐ๋, ํน์ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ๊ฒ์๋ฌผ์ ๋ฌด์ํด๋ ๋ฉ๋๋ค. ํ์ง๋ง ๊ถ๊ธํ ์ ์ด ์์ผ์๋ค๋ฉด React 18 ์ํน ๊ทธ๋ฃน์ ํ ๋ก ์ ์ฐธ์ฌํ์
๋ ์ข์ต๋๋ค!
---
-## Whatโs coming in React 18 {/*whats-coming-in-react-18*/}
+## React 18์ ์๋ก์ด ๊ธฐ๋ฅ {/*whats-coming-in-react-18*/}
-When itโs released, React 18 will include out-of-the-box improvements (like [automatic batching](https://github.com/reactwg/react-18/discussions/21)), new APIs (like [`startTransition`](https://github.com/reactwg/react-18/discussions/41)), and a [new streaming server renderer](https://github.com/reactwg/react-18/discussions/37) with built-in support for `React.lazy`.
+React 18์ด ์ถ์๋๋ฉด [์๋ ์ผ๊ด ์ฒ๋ฆฌAutomatic Batching ](https://github.com/reactwg/react-18/discussions/21)์ ๊ฐ์ ๊ธฐ๋ณธ ๊ฐ์ ์ฌํญ ๋ฐ [`startTransition`](https://github.com/reactwg/react-18/discussions/41)๊ณผ ๊ฐ์ ์๋ก์ด API, `React.lazy`๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ๋ [์๋ก์ด ์คํธ๋ฆฌ๋ฐ ์๋ฒ ๋ ๋๋ฌStreaming Server Renderer ](https://github.com/reactwg/react-18/discussions/37)๊ฐ ํฌํจ๋ ์์ ์
๋๋ค.
-These features are possible thanks to a new opt-in mechanism weโre adding in React 18. Itโs called โconcurrent renderingโ and it lets React prepare multiple versions of the UI at the same time. This change is mostly behind-the-scenes, but it unlocks new possibilities to improve both real and perceived performance of your app.
+์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ React 18์ ์ถ๊ฐ๋ ์๋ก์ด ์ ํ์ Opt-In ๋ฉ์ปค๋์ฆ ๋๋ถ์ ๊ฐ๋ฅํด์ก์ต๋๋ค. ์ด๋ฅผ "๋์์ฑ ๋ ๋๋งConcurrent Rendering "์ด๋ผ๊ณ ํ๋ฉฐ, ์ด ๊ธฐ๋ฅ์ ํตํด React๋ ๋์์ ์ฌ๋ฌ ๋ฒ์ ์ UI๋ฅผ ์ค๋นํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ๋ค์ ๋๋ถ๋ถ ์ง์ ๋ณผ ์๋ ์์ง๋ง, ์ฑ์ ์ค์ ์ฑ๋ฅ๊ณผ ์ฒด๊ฐ ์ฑ๋ฅ์ ๋ชจ๋ ๊ฐ์ ํ ์ ์๋ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค.
-If you've been following our research into the future of React (we don't expect you to!), you might have heard of something called โconcurrent modeโ or that it might break your app. In response to this feedback from the community, weโve redesigned the upgrade strategy for gradual adoption. Instead of an all-or-nothing โmodeโ, concurrent rendering will only be enabled for updates triggered by one of the new features. In practice, this means **you will be able to adopt React 18 without rewrites and try the new features at your own pace.**
+React์ ๋ฏธ๋์ ๋ํ ์ ํฌ๋ค์ ์ฐ๊ตฌ๋ฅผ ๊ณ์ ์ง์ผ๋ณด์
จ๋ค๋ฉด(๋ฌผ๋ก , ๊ทธ๋ด ํ์๋ ์์ต๋๋ค!), "๋์์ฑ ๋ชจ๋Concurrent Mode "๋ผ๋ ๊ธฐ๋ฅ์ ๋ํด ๋ค์ด๋ณด์
จ๊ฑฐ๋, ๊ทธ๊ฒ์ด ์ฌ๋ฌ๋ถ๋ค์ ์ฑ์ ๋ง์น ์ ์๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ๋ค์ผ์
จ์ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ์ปค๋ฎค๋ํฐ์ ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ ์ ์ง์ ์ธ ๋์
์ ์ํ ์
๊ทธ๋ ์ด๋ ์ ๋ต์ ์ฌ์ค๊ณํ์ต๋๋ค. "๋ชจ๋"๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์๋ ๋์ , ๋์์ฑ ๋ ๋๋งConcurrent Rendering ์ ์๋ก์ด ๊ธฐ๋ฅ ์ค ํ๋์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ์
๋ฐ์ดํธ์ ๋ํด์๋ง ํ์ฑํ๋ฉ๋๋ค. ์ฆ, **์ฌ์์ฑ ์์ด React 18์ ๋์
ํ๊ณ ์์ ์ ์๋์ ๋ง์ถฐ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค**.
-## A gradual adoption strategy {/*a-gradual-adoption-strategy*/}
+## ์ ์ง์ ์ธ ๋์
์ ๋ต {/*a-gradual-adoption-strategy*/}
-Since concurrency in React 18 is opt-in, there are no significant out-of-the-box breaking changes to component behavior. **You can upgrade to React 18 with minimal or no changes to your application code, with a level of effort comparable to a typical major React release**. Based on our experience converting several apps to React 18, we expect that many users will be able to upgrade within a single afternoon.
+React 18์ ๋์์ฑ์ ์ ํ์ Opt-In ์ด๋ฏ๋ก ์ปดํฌ๋ํธ ๋์์ ๋ํ ์ค์ ๋ณ๊ฒฝ ์ฌํญBreaking Changes ์ ์์ต๋๋ค. **์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ฅผ ๊ฑฐ์ ๋๋ ์ ํ ๋ณ๊ฒฝํ์ง ์๊ณ ๋, ์ผ๋ฐ์ ์ธ ์ฃผ์ React ๋ฆด๋ฆฌ์ฆ์ ๋น์ทํ ์์ค์ ๋
ธ๋ ฅ์ผ๋ก React 18๋ก ์
๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค**. ์ฌ๋ฌ ์ฑ์ React 18๋ก ์ ํํ ๊ฒฝํ์ ๋น์ถ์ด ๋ณผ ๋, ๋ง์ ์ฌ์ฉ์๊ฐ ๋ฐ๋์ ์์ ์
๊ทธ๋ ์ด๋ํ ์ ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
-We successfully shipped concurrent features to tens of thousands of components at Facebook, and in our experience, we've found that most React components โjust workโ without additional changes. We're committed to making sure this is a smooth upgrade for the entire community, so today we're announcing the React 18 Working Group.
+์ฐ๋ฆฌ๋ ํ์ด์ค๋ถFacebook ์์ ์๋ง ๊ฐ์ ์ปดํฌ๋ํธ์ ๋์์ฑ ๊ธฐ๋ฅ๋ค์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ์ผ๋ฉฐ, ๊ฒฝํ์ ๋๋ถ๋ถ์ React ์ปดํฌ๋ํธ๊ฐ ์ถ๊ฐ ๋ณ๊ฒฝ ์์ด "๋ฐ๋ก ์๋"ํ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ ์ ์ฒด๋ฅผ ์ํ ์ํํ ์
๊ทธ๋ ์ด๋๊ฐ ๋ ์ ์๋๋ก ์ต์ ์ ๋คํ๊ณ ์์ผ๋ฉฐ, ์ค๋ React 18 ์ํน ๊ทธ๋ฃน์ ๋ฐํํฉ๋๋ค.
-## Working with the community {/*working-with-the-community*/}
+## ์ปค๋ฎค๋ํฐ์์ ํ๋ ฅ {/*working-with-the-community*/}
-Weโre trying something new for this release: We've invited a panel of experts, developers, library authors, and educators from across the React community to participate in our [React 18 Working Group](https://github.com/reactwg/react-18) to provide feedback, ask questions, and collaborate on the release. We couldn't invite everyone we wanted to this initial, small group, but if this experiment works out, we hope there will be more in the future!
+์ด๋ฒ ๋ฆด๋ฆฌ์ฆ์์๋ ์๋ก์ด ์๋๋ฅผ ํ๊ณ ์์ต๋๋ค. React ์ปค๋ฎค๋ํฐ์ ์ ๋ฌธ๊ฐ, ๊ฐ๋ฐ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์, ๊ต์ก์๋ค๋ก ๊ตฌ์ฑ๋ ํจ๋์ [React 18 ์ํน ๊ทธ๋ฃน](https://github.com/reactwg/react-18)์ ์ด๋ํ์ฌ ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ณ , ์ง๋ฌธํ๊ณ , ๋ฆด๋ฆฌ์ฆ์ ๋ํด ํ์
ํ ์ ์๋๋ก ํ์ต๋๋ค. ์ด๋ฒ ์๊ท๋ชจ ๊ทธ๋ฃน์ ์ํ๋ ๋ชจ๋ ๋ถ๋ค์ ์ด๋ํ ์๋ ์์์ง๋ง, ์ด๋ฒ ์คํ์ด ์ฑ๊ณตํ์ฌ ์์ผ๋ก ๋ ๋ง์ ๋ถ์ ์ด๋ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
-**The goal of the React 18 Working Group is to prepare the ecosystem for a smooth, gradual adoption of React 18 by existing applications and libraries.** The Working Group is hosted on [GitHub Discussions](https://github.com/reactwg/react-18/discussions) and is available for the public to read. Members of the working group can leave feedback, ask questions, and share ideas. The core team will also use the discussions repo to share our research findings. As the stable release gets closer, any important information will also be posted on this blog.
+**React 18 ์ํน ๊ทธ๋ฃน์ ๋ชฉํ๋ ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ React 18์ ์ํํ๊ณ ์ ์ง์ ์ผ๋ก ์ฑํํ ์ ์๋ ์ํ๊ณ๋ฅผ ์ค๋นํ๋ ๊ฒ์
๋๋ค.** ์ํน ๊ทธ๋ฃน์ [๊นํ๋ธ ํ ๋ก GitHub Discussions ](https://github.com/reactwg/react-18/discussions)์์ ํธ์คํ
๋๋ฉฐ, ์ผ๋ฐ์ธ๋ ์ด๋ํ ์ ์์ต๋๋ค. ์ํน ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ ํผ๋๋ฐฑ์ ๋จ๊ธฐ๊ณ , ์ง๋ฌธํ๊ณ , ์์ด๋์ด๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ํต์ฌ ํ๋ ํ ๋ก ์ ์ฅ์Repository ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ ๊ฒ์
๋๋ค. ์์ ์ ์ธ ๋ฒ์ ์ ์ถ์๊ฐ ๊ฐ๊น์์ง๋ฉด, ์ค์ ์ ๋ณด๋ค์ ๋ธ๋ก๊ทธ์ ๊ฒ์ํ ๊ฒ์
๋๋ค.
-For more information on upgrading to React 18, or additional resources about the release, see the [React 18 announcement post](https://github.com/reactwg/react-18/discussions/4).
+React 18๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ด๋, ๋ฆด๋ฆฌ์ฆ์ ๋ํ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ค์ [React 18 ๋ฐํ ๊ฒ์๋ฌผ](https://github.com/reactwg/react-18/discussions/4)์ ์ฐธ๊ณ ํ์ธ์.
-## Accessing the React 18 Working Group {/*accessing-the-react-18-working-group*/}
+## React 18 ์ํน ๊ทธ๋ฃน์ ์ ๊ทผํ๊ธฐ {/*accessing-the-react-18-working-group*/}
-Everyone can read the discussions in the [React 18 Working Group repo](https://github.com/reactwg/react-18).
+๋๊ตฌ๋ [React 18 ์ํน ๊ทธ๋ฃน ์ ์ฅ์](https://github.com/reactwg/react-18)์์ ํ ๋ก ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค.
-Because we expect an initial surge of interest in the Working Group, only invited members will be allowed to create or comment on threads. However, the threads are fully visible to the public, so everyone has access to the same information. We believe this is a good compromise between creating a productive environment for working group members, while maintaining transparency with the wider community.
+์ํน ๊ทธ๋ฃน์ ๋ํ ์ด๊ธฐ ๊ด์ฌ์ด ๊ธ์ฆํ ๊ฒ์ผ๋ก ์์๋๋ฏ๋ก, ์ด๋๋ฐ์ ํ์๋ง ์ค๋ ๋๋ฅผ ๋ง๋ค๊ฑฐ๋ ๋๊ธ์ ๋ฌ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋, ํ ๋ก ๊ธ์ ๋ชจ๋ ์ฌ๋์๊ฒ ์์ ํ ๊ณต๊ฐ๋๋ฏ๋ก ๋ชจ๋ ์ฌ๋์ด ๋์ผํ ์ ๋ณด์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๋ ์ํน ๊ทธ๋ฃน ๊ตฌ์ฑ์์ ์ํ ์์ฐ์ ์ธ ํ๊ฒฝ์ ์กฐ์ฑํ๋ ๋์์ ๋ ๋ง์ ์ปค๋ฎค๋ํฐ์์ ํฌ๋ช
์ฑ์ ์ ์งํ๋ ์ข์ ์ ์ถฉ์์ด๋ผ ์๊ฐํฉ๋๋ค.
-As always, you can submit bug reports, questions, and general feedback to our [issue tracker](https://github.com/facebook/react/issues).
+์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด [์ด์ ํธ๋์ปค](https://github.com/facebook/react/issues)์ ๋ฒ๊ทธ ๋ณด๊ณ ์, ์ง๋ฌธ ๋ฐ ์ผ๋ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ์ถํ ์ ์์ต๋๋ค.
-## How to try React 18 Alpha today {/*how-to-try-react-18-alpha-today*/}
+## ์ง๊ธ React 18 Alpha๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ {/*how-to-try-react-18-alpha-today*/}
-New alphas are [regularly published to npm using the `@alpha` tag](https://github.com/reactwg/react-18/discussions/9). These releases are built using the most recent commit to our main repo. When a feature or bugfix is merged, it will appear in an alpha the following weekday.
+์๋ก์ด Alpha๋ [์ ๊ธฐ์ ์ผ๋ก `@alpha` ํ๊ทธ๋ฅผ ํตํด npm์ ๋ฐฐํฌ๋ฉ๋๋ค](https://github.com/reactwg/react-18/discussions/9). ์ด๋ฌํ ๋ฆด๋ฆฌ์ฆ๋ ๋ฉ์ธ ์ ์ฅ์Main Repo ์ ๋ํ ๊ฐ์ฅ ์ต๊ทผ ์ปค๋ฐ์ ์ฌ์ฉํ์ฌ ๋น๋๋ฉ๋๋ค. ๊ธฐ๋ฅ ํน์ ๋ฒ๊ทธ ์์ ์ด ๋ณํฉ๋๋ฉด ๊ทธ ๋ค์์ฃผ์ Alpha๋ก ๋ฐฐํฌ๋ฉ๋๋ค.
-There may be significant behavioral or API changes between alpha releases. Please remember that **alpha releases are not recommended for user-facing, production applications**.
+Alpha ๋ฆด๋ฆฌ์ฆ ์ฌ์ด์๋ ์ค์ํ ๋์ ๋๋ API ๋ณ๊ฒฝ์ด ์์ ์ ์์ต๋๋ค. **Alpha ๋ฆด๋ฆฌ์ฆ๋ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ๋ ํ๋ก๋์
์ ํ๋ฆฌ์ผ์ด์
์ ๊ถ์ฅํ์ง ์๋๋ค๋ ์ **์ ๊ธฐ์ตํ์ธ์.
-## Projected React 18 release timeline {/*projected-react-18-release-timeline*/}
+## ์์ React 18 ๋ฆด๋ฆฌ์ฆ ์ผ์ {/*projected-react-18-release-timeline*/}
-We don't have a specific release date scheduled, but we expect it will take several months of feedback and iteration before React 18 is ready for most production applications.
+๊ตฌ์ฒด์ ์ธ ๋ฆด๋ฆฌ์ฆ ๋ ์ง๋ ์์ ๋์ด ์์ง ์์ง๋ง, ๋๋ถ๋ถ์ ํ๋ก๋์
์ ํ๋ฆฌ์ผ์ด์
์์ React 18์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ค๋ฉด ๋ช ๋ฌ ๋์ ํผ๋๋ฐฑ๊ณผ ๋ฐ๋ณต ์์
์ ๊ฑฐ์ณ์ผ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
-* Library Alpha: Available today
-* Public Beta: At least several months
-* Release Candidate (RC): At least several weeks after Beta
-* General Availability: At least several weeks after RC
+* ๋ผ์ด๋ธ๋ฌ๋ฆฌ Alpha: ์ค๋ ์ฌ์ฉ ๊ฐ๋ฅ
+* ๊ณต๊ฐ ๋ฒ ํ: ์ต์ ๋ช ๊ฐ์
+* ๋ฆด๋ฆฌ์ฆ ํ๋ณด (RC): Beta ์ถ์ ํ ์ต์ ๋ช ์ฃผ ํ
+* ์ผ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅ: RC ์ดํ ์ต์ ๋ช ์ฃผ ํ
-More details about our projected release timeline are [available in the Working Group](https://github.com/reactwg/react-18/discussions/9). We'll post updates on this blog when we're closer to a public release.
+์์ ๋ฆด๋ฆฌ์ฆ ์ผ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ [์ํน ๊ทธ๋ฃน์์ ํ์ธ](https://github.com/reactwg/react-18/discussions/9)ํ ์ ์์ต๋๋ค. ๊ณต๊ฐ ๋ฆด๋ฆฌ์ฆ์ ๊ฐ๊น์์ง๋ฉด ์ด ๋ธ๋ก๊ทธ์ ์
๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ๊ฒ ์ต๋๋ค.
diff --git a/src/content/blog/2021/12/17/react-conf-2021-recap.md b/src/content/blog/2021/12/17/react-conf-2021-recap.md
index c9e75ff7b..70ae528ea 100644
--- a/src/content/blog/2021/12/17/react-conf-2021-recap.md
+++ b/src/content/blog/2021/12/17/react-conf-2021-recap.md
@@ -1,53 +1,53 @@
---
-title: "React Conf 2021 Recap"
+title: "React Conf 2021 ์์ฝ"
author: Jesslyn Tannady and Rick Hanlon
date: 2021/12/17
-description: Last week we hosted our 6th React Conf. In previous years, we've used the React Conf stage to deliver industry changing announcements such as React Native and React Hooks. This year, we shared our multi-platform vision for React, starting with the release of React 18 and gradual adoption of concurrent features.
+description: ์ง๋์ฃผ, 6๋ฒ์งธ React Conf๋ฅผ ๊ฐ์ตํ์ต๋๋ค. ์ง๋ ๋ช ๋
๋์ React Conf ๋ฌด๋๋ฅผ ํตํด React Native, React Hook๊ณผ ๊ฐ์ ์
๊ณ ๋ณํ๋ฅผ ์๋ฆฌ๋ ๋ฐํ๋ฅผ ํ์ต๋๋ค. ์ฌํด๋ React 18์ ์ถ์ ๋ฐ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ๋์
์ ์์์ผ๋ก React์ ๋ฉํฐ ํ๋ซํผ ๋น์ ์ ๊ณต์ ํ์ต๋๋ค.
---
-December 17, 2021 by [Jesslyn Tannady](https://twitter.com/jtannady) and [Rick Hanlon](https://twitter.com/rickhanlonii)
+2021๋
12์ 17์ผ, [Jesslyn Tannady](https://twitter.com/jtannady), [Rick Hanlon](https://twitter.com/rickhanlonii)
---
-Last week we hosted our 6th React Conf. In previous years, we've used the React Conf stage to deliver industry changing announcements such as [_React Native_](https://engineering.fb.com/2015/03/26/android/react-native-bringing-modern-web-techniques-to-mobile/) and [_React Hooks_](https://reactjs.org/docs/hooks-intro.html). This year, we shared our multi-platform vision for React, starting with the release of React 18 and gradual adoption of concurrent features.
+์ง๋์ฃผ, 6๋ฒ์งธ React Conf๋ฅผ ๊ฐ์ตํ์ต๋๋ค. ์ง๋ ๋ช ๋
๋์ React Conf ๋ฌด๋๋ฅผ ํตํด [_React Native_](https://engineering.fb.com/2015/03/26/android/react-native-bringing-modern-web-techniques-to-mobile/), [_React Hook_](https://reactjs.org/docs/hooks-intro.html)๊ณผ ๊ฐ์ ์
๊ณ ๋ณํ๋ฅผ ์๋ฆฌ๋ ๋ฐํ๋ฅผ ํ์ต๋๋ค. ์ฌํด๋ React 18์ ์ถ์ ๋ฐ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ๋์
์ ์์์ผ๋ก React์ ๋ฉํฐ ํ๋ซํผ ๋น์ ์ ๊ณต์ ํ์ต๋๋ค.
---
-This was the first time React Conf was hosted online, and it was streamed for free, translated to 8 different languages. Participants from all over the world joined our conference Discord and the replay event for accessibility in all timezones. Over 50,000 people registered, with over 60,000 views of 19 talks, and 5,000 participants in Discord across both events.
+React Conf๊ฐ ์จ๋ผ์ธ์ผ๋ก ๊ฐ์ต๋ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด๋ฉฐ, 8๊ฐ ์ธ์ด๋ก ๋ฒ์ญ๋์ด ๋ฌด๋ฃ๋ก ์คํธ๋ฆฌ๋ฐ๋์์ต๋๋ค. ์ ์ธ๊ณ์ ์ฐธ๊ฐ์๋ค์ ๋ค์ํ ์๊ฐ๋์์์ ์ฐธ์ฌ๋ฅผ ์ํด ์ปจํผ๋ฐ์ค Discord์ ๋ฆฌํ๋ ์ด ์ด๋ฒคํธ๋ฅผ ์ด์ฉํ์ต๋๋ค. 50,000๋ช
์ด์์ด ๋ฑ๋กํ์ผ๋ฉฐ, 19๊ฐ ๊ฐ์ฐ์ ์กฐํ์๋ 60,000ํ๋ฅผ ๋์๊ณ , ๋ ์ด๋ฒคํธ์ ๊ฑธ์ณ 5,000๋ช
์ด Discord์ ์ฐธ์ฌํ์ต๋๋ค.
-All the talks are [available to stream online](https://www.youtube.com/watch?v=FZ0cG47msEk&list=PLNG_1j3cPCaZZ7etkzWA7JfdmKWT0pMsa).
+๋ชจ๋ ๊ฐ์ฐ์ [์จ๋ผ์ธ ์คํธ๋ฆฌ๋ฐ์ด ๊ฐ๋ฅ](https://www.youtube.com/watch?v=FZ0cG47msEk&list=PLNG_1j3cPCaZZ7etkzWA7JfdmKWT0pMsa)ํฉ๋๋ค.
-Hereโs a summary of what was shared on stage:
+๋ฌด๋์์ ๊ณต์ ๋ ๋ด์ฉ์ ์์ฝํ์์ต๋๋ค.
-## React 18 and concurrent features {/*react-18-and-concurrent-features*/}
+## React 18 ๋ฐ ๋์์ฑ ๊ธฐ๋ฅ {/*react-18-and-concurrent-features*/}
-In the keynote, we shared our vision for the future of React starting with React 18.
+๊ธฐ์กฐ์ฐ์ค์์ React 18์ ์์์ผ๋ก React์ ๋ฏธ๋์ ๋ํ ๋น์ ์ ๊ณต์ ํ์ต๋๋ค.
-React 18 adds the long-awaited concurrent renderer and updates to Suspense without any major breaking changes. Apps can upgrade to React 18 and begin gradually adopting concurrent features with the amount of effort on par with any other major release.
+React 18์ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ ๋์์ฑ ๋ ๋๋ฌConcurrent Renderer ๋ฅผ ์ถ๊ฐํ๊ณ Suspense๋ฅผ ์ฃผMajor, ไธป (์ญ์. Breaking Change๋ฅผ ์ผ์ผํค๋) ๋ณ๊ฒฝ ์์ด ์
๋ฐ์ดํธํ์ต๋๋ค. ์ฑ์ React 18๋ก ์
๊ทธ๋ ์ด๋ํ์ฌ ๋ค๋ฅธ ์ฃผMajor, ไธป ๋ฆด๋ฆฌ์ฆ์ ๋๋ฑํ ์์ค์ ๋
ธ๋ ฅ์ผ๋ก ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ง์ ์ผ๋ก ๋์
ํ ์ ์์ต๋๋ค.
-**This means there is no concurrent mode, only concurrent features.**
+**์ด๋ ๋์์ฑ ๋ชจ๋๊ฐ ์๊ณ ๋์์ฑ ๊ธฐ๋ฅ๋ง ์์์ ์๋ฏธํฉ๋๋ค.**
-In the keynote, we also shared our vision for Suspense, Server Components, new React working groups, and our long-term many-platform vision for React Native.
+๊ธฐ์กฐ์ฐ์ค์์๋ Suspense, ์๋ฒ ์ปดํฌ๋ํธ, ์๋ก์ด React ์ํน ๊ทธ๋ฃน์ ๋ํ ๋น์ ๊ณผ React Native์ ๋ํ ์ฅ๊ธฐ์ ์ธ ๋ฉํฐํ๋ซํผ ๋น์ ๋ ๊ณต์ ํ์ต๋๋ค.
-Watch the full keynote from [Andrew Clark](https://twitter.com/acdlite), [Juan Tejada](https://twitter.com/_jstejada), [Lauren Tan](https://twitter.com/potetotes), and [Rick Hanlon](https://twitter.com/rickhanlonii) here:
+[Andrew Clark](https://twitter.com/acdlite), [Juan Tejada](https://twitter.com/_jstejada), [Lauren Tan](https://twitter.com/potetotes), [Rick Hanlon](https://twitter.com/rickhanlonii)์ ๊ธฐ์กฐ์ฐ์ค ์ ๋ฌธ์ ์๋์์ ์์ฒญํ์ธ์.
-## React 18 for Application Developers {/*react-18-for-application-developers*/}
+## ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์๋ฅผ ์ํ React 18 {/*react-18-for-application-developers*/}
-In the keynote, we also announced that the React 18 RC is available to try now. Pending further feedback, this is the exact version of React that we will publish to stable early next year.
+๊ธฐ์กฐ์ฐ์ค์์๋ React 18 RC๋ฅผ ์ง๊ธ ๋ฐ๋ก ์ฌ์ฉํด๋ณผ ์ ์๋ค๋ ์ฌ์ค๋ ๋ฐํํ์ต๋๋ค. ์ถ๊ฐ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ฆฌ๋ ์ค์ด๋ฉฐ, ๋ด๋
์ด์ ์ ์ ๋ฒ์ ์ผ๋ก ์ถ์ํ ์์ ์
๋๋ค.
-To try the React 18 RC, upgrade your dependencies:
+React 18 RC๋ฅผ ์ฌ์ฉํด ๋ณด๋ ค๋ฉด ์์กด์ฑDependencies ์ ์
๊ทธ๋ ์ด๋ํ์ธ์.
```bash
npm install react@rc react-dom@rc
```
-and switch to the new `createRoot` API:
+๊ทธ๋ฆฌ๊ณ ์๋ก์ด `createRoot` API๋ก ์ ํํ์ธ์.
```js
// before
@@ -60,101 +60,101 @@ const root = ReactDOM.createRoot(container);
root.render( );
```
-For a demo of upgrading to React 18, see [Shruti Kapoor](https://twitter.com/shrutikapoor08)โs talk here:
+React 18 ์
๊ทธ๋ ์ด๋ ๋ฐ๋ชจ๋ ์๋์ [Shruti Kapoor](https://twitter.com/shrutikapoor08)์ ๊ฐ์ฐ์ ์ฐธ์กฐํ์ธ์.
-## Streaming Server Rendering with Suspense {/*streaming-server-rendering-with-suspense*/}
+## Suspense๊ฐ ์๋ ์คํธ๋ฆฌ๋ฐ ์๋ฒ ๋ ๋๋ง {/*streaming-server-rendering-with-suspense*/}
-React 18 also includes improvements to server-side rendering performance using Suspense.
+React 18์๋ Suspense๋ฅผ ์ฌ์ฉํ ์๋ฒ ์ธก ๋ ๋๋งSSR, Server Side Rendering ์ฑ๋ฅ ๊ฐ์ ์ฌํญ๋ ํฌํจ๋์ด ์์ต๋๋ค.
-Streaming server rendering lets you generate HTML from React components on the server, and stream that HTML to your users. In React 18, you can use `Suspense` to break down your app into smaller independent units which can be streamed independently of each other without blocking the rest of the app. This means users will see your content sooner and be able to start interacting with it much faster.
+์คํธ๋ฆฌ๋ฐ ์๋ฒ ๋ ๋๋ง์ ์ฌ์ฉํ๋ฉด, ์๋ฒ์ React ์ปดํฌ๋ํธ์์ HTML์ ์์ฑํ๊ณ ํด๋น HTML์ ์ฌ์ฉ์์๊ฒ ์คํธ๋ฆฌ๋ฐํ ์ ์์ต๋๋ค. React 18์์๋ `Suspense`๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋ ์์ ๋
๋ฆฝ ๋จ์๋ก ๋ถํดํ์ฌ, ๋๋จธ์ง ์ฑ์ ์ฐจ๋จํ์ง ์๊ณ ์๋ก ๋
๋ฆฝ์ ์ผ๋ก ์คํธ๋ฆฌ๋ฐํ ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์๊ฐ ์ฝํ
์ธ ๋ฅผ ๋ ๋นจ๋ฆฌ ๋ณด๊ณ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ํธ์์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
-For a deep dive, see [Shaundai Person](https://twitter.com/shaundai)โs talk here:
+๋ ์์ธํ ์์๋ณด๋ ค๋ฉด [Shaundai Person](https://twitter.com/shaundai)์ ๊ฐ์ฐ์ ์ฐธ์กฐํ์ธ์:
-## The first React working group {/*the-first-react-working-group*/}
+## ์ฒซ ๋ฒ์งธ React ์ํน ๊ทธ๋ฃน {/*the-first-react-working-group*/}
-For React 18, we created our first Working Group to collaborate with a panel of experts, developers, library maintainers, and educators. Together we worked to create our gradual adoption strategy and refine new APIs such as `useId`, `useSyncExternalStore`, and `useInsertionEffect`.
+React 18์์๋ ์ ๋ฌธ๊ฐ, ๊ฐ๋ฐ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์, ๊ต์ก์๋ค๋ก ๊ตฌ์ฑ๋ ํจ๋๊ณผ ํ๋ ฅํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ์ํน ๊ทธ๋ฃน์ ๋ง๋ค์์ต๋๋ค. ์ ํฌ๋ ํจ๊ป ์ ์ง์ ์ธ ์ฑํ ์ ๋ต์ ์ธ์ฐ๊ณ `useId`, `useSyncExternalStore`, `useInsertionEffect`์ ๊ฐ์ ์๋ก์ด API๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋
ธ๋ ฅํ์ต๋๋ค.
-For an overview of this work, see [Aakansha' Doshi](https://twitter.com/aakansha1216)'s talk:
+ํด๋น ์์
์ ๋ํ ๊ฐ์๋ [Aakansha' Doshi](https://twitter.com/aakansha1216)์ ๊ฐ์ฐ์ ์ฐธ์กฐํ์ธ์.
-## React Developer Tooling {/*react-developer-tooling*/}
+## React ๊ฐ๋ฐ์ ๋๊ตฌ {/*react-developer-tooling*/}
-To support the new features in this release, we also announced the newly formed React DevTools team and a new Timeline Profiler to help developers debug their React apps.
+์ด๋ฒ ๋ฆด๋ฆฌ์ฆ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ํด ์๋ก ๊ตฌ์ฑ๋ React ๊ฐ๋ฐ์ ๋๊ตฌ ํ๊ณผ ๊ฐ๋ฐ์๊ฐ React ์ฑ ๋๋ฒ๊น
์ ๋์์ด ๋๋ ์๋ก์ด ํ์๋ผ์ธ ํ๋กํ์ผ๋ฌTimeline Profiler ๋ ๋ฐํํ์ต๋๋ค.
-For more information and a demo of new DevTools features, see [Brian Vaughn](https://twitter.com/brian_d_vaughn)โs talk:
+์๋ก์ด ๊ฐ๋ฐ์ ๋๊ตฌ ๊ธฐ๋ฅ์ ๋ํ ์์ธํ ๋ด์ฉ๊ณผ ๋ฐ๋ชจ๋ [Brian Vaughn](https://twitter.com/brian_d_vaughn)์ ๊ฐ์ฐ์ ์ฐธ์กฐํ์ธ์.
-## React without memo {/*react-without-memo*/}
+## memo ์๋ React {/*react-without-memo*/}
-Looking further into the future, [Xuan Huang (้ป็)](https://twitter.com/Huxpro) shared an update from our React Labs research into an auto-memoizing compiler. Check out this talk for more information and a demo of the compiler prototype:
+๋ฏธ๋๋ฅผ ๋ด๋ค๋ณด๋ฉฐ, [Xuan Huang(้ป็)](https://twitter.com/Huxpro)์ด ์๋ ๋ฉ๋ชจํ ์ปดํ์ผ๋ฌ์ ๋ํ React Labs ์ฐ๊ตฌ์ ์
๋ฐ์ดํธ๋ฅผ ๊ณต์ ํ์ต๋๋ค. ์ด ๊ฐ์ฐ์์ ์์ธํ ์ ๋ณด์ ์ปดํ์ผ๋ฌ ํ๋กํ ํ์
๋ฐ๋ชจ๋ฅผ ํ์ธํ์ธ์.
-## React docs keynote {/*react-docs-keynote*/}
+## React ๋ฌธ์ ๊ธฐ์กฐ์ฐ์ค {/*react-docs-keynote*/}
-[Rachel Nabors](https://twitter.com/rachelnabors) kicked off a section of talks about learning and designing with React with a keynote about our investment in React's new docs ([now shipped as react.dev](/blog/2023/03/16/introducing-react-dev)):
+[Rachel Nabors](https://twitter.com/rachelnabors)๊ฐ React์ ์๋ก์ด ๋ฌธ์์ ๋ํ ํฌ์์ ๊ด๋ จํ ๊ธฐ์กฐ์ฐ์ค๋ก, React๋ก ํ์ตํ๊ณ ๋์์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ฐ์ ํ์ต๋๋ค. ([ํ์ฌ react.dev๋ก ๋ฐฐํฌ๋์์ต๋๋ค.](/blog/2023/03/16/introducing-react-dev))
-## And more... {/*and-more*/}
+## ๊ทธ๋ฆฌ๊ณ ... {/*and-more*/}
-**We also heard talks on learning and designing with React:**
+**React๋ก ํ์ตํ๊ณ ๋์์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ฐ**
-* Debbie O'Brien: [Things I learnt from the new React docs](https://youtu.be/-7odLW_hG7s).
-* Sarah Rainsberger: [Learning in the Browser](https://youtu.be/5X-WEQflCL0).
-* Linton Ye: [The ROI of Designing with React](https://youtu.be/7cPWmID5XAk).
-* Delba de Oliveira: [Interactive playgrounds with React](https://youtu.be/zL8cz2W0z34).
+* Debbie O'Brien: [์๋ก์ด React ๋ฌธ์์์ ๋ฐฐ์ด ๊ฒ๋ค](https://youtu.be/-7odLW_hG7s).
+* Sarah Rainsberger: [๋ธ๋ผ์ฐ์ ์์ ํ์ตํ๊ธฐ](https://youtu.be/5X-WEQflCL0).
+* Linton Ye: [React ๋์์ธ์์์ ROI](https://youtu.be/7cPWmID5XAk).
+* Delba de Oliveira: [React๋ฅผ ์ด์ฉํ ์ํธ์์ฉ ๋์ดํฐ](https://youtu.be/zL8cz2W0z34).
-**Talks from the Relay, React Native, and PyTorch teams:**
+**Relay, React Native, PyTorch ํ์ ๊ฐ์ฐ**
-* Robert Balicki: [Re-introducing Relay](https://youtu.be/lhVGdErZuN4).
-* Eric Rozell and Steven Moyes: [React Native Desktop](https://youtu.be/9L4FFrvwJwY).
-* Roman Rรคdle: [On-device Machine Learning for React Native](https://youtu.be/NLj73vrc2I8)
+* Robert Balicki: [Relay ์ฌ์๊ฐ](https://youtu.be/lhVGdErZuN4).
+* Eric Rozell๊ณผ Steven Moyes: [React Native ๋ฐ์คํฌํฑ](https://youtu.be/9L4FFrvwJwY).
+* Roman Rรคdle: [React Native๋ฅผ ์ํ ์จ๋๋ฐ์ด์ค ๋จธ์ ๋ฌ๋](https://youtu.be/NLj73vrc2I8).
-**And talks from the community on accessibility, tooling, and Server Components:**
+**์ ๊ทผ์ฑ, ํด๋ง ๋ฐ ์๋ฒ ์ปดํฌ๋ํธ์ ๋ํ ์ปค๋ฎค๋ํฐ ๊ฐ์ฐ**
-* Daishi Kato: [React 18 for External Store Libraries](https://youtu.be/oPfSC5bQPR8).
-* Diego Haz: [Building Accessible Components in React 18](https://youtu.be/dcm8fjBfro8).
-* Tafu Nakazaki: [Accessible Japanese Form Components with React](https://youtu.be/S4a0QlsH0pU).
-* Lyle Troxell: [UI tools for artists](https://youtu.be/b3l4WxipFsE).
+* Daishi Kato: [์ธ๋ถ ์คํ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํ React 18](https://youtu.be/oPfSC5bQPR8).
+* Diego Haz: [React 18์์ ์ ๊ทผ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ ๊ตฌ์ถํ๊ธฐ](https://youtu.be/dcm8fjBfro8).
+* Tafu Nakazaki: [React๋ก ์ ๊ทผ ๊ฐ๋ฅํ ์ผ๋ณธ์ด ํผ ์ปดํฌ๋ํธ](https://youtu.be/S4a0QlsH0pU).
+* Lyle Troxell: [์ํฐ์คํธ๋ฅผ ์ํ UI ๋๊ตฌ](https://youtu.be/b3l4WxipF).
* Helen Lin: [Hydrogen + React 18](https://youtu.be/HS6vIYkSNks).
-## Thank you {/*thank-you*/}
+## ๊ฐ์ฌ๋๋ฆฝ๋๋ค {/*thank-you*/}
-This was our first year planning a conference ourselves, and we have a lot of people to thank.
+์ฌํด๋ ์ ํฌ๊ฐ ์ง์ ์ปจํผ๋ฐ์ค๋ฅผ ๊ธฐํํ ์ฒซ ํด๋ก, ๋ง์ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
-First, thanks to all of our speakers [Aakansha Doshi](https://twitter.com/aakansha1216), [Andrew Clark](https://twitter.com/acdlite), [Brian Vaughn](https://twitter.com/brian_d_vaughn), [Daishi Kato](https://twitter.com/dai_shi), [Debbie O'Brien](https://twitter.com/debs_obrien), [Delba de Oliveira](https://twitter.com/delba_oliveira), [Diego Haz](https://twitter.com/diegohaz), [Eric Rozell](https://twitter.com/EricRozell), [Helen Lin](https://twitter.com/wizardlyhel), [Juan Tejada](https://twitter.com/_jstejada), [Lauren Tan](https://twitter.com/potetotes), [Linton Ye](https://twitter.com/lintonye), [Lyle Troxell](https://twitter.com/lyle), [Rachel Nabors](https://twitter.com/rachelnabors), [Rick Hanlon](https://twitter.com/rickhanlonii), [Robert Balicki](https://twitter.com/StatisticsFTW), [Roman Rรคdle](https://twitter.com/raedle), [Sarah Rainsberger](https://twitter.com/sarah11918), [Shaundai Person](https://twitter.com/shaundai), [Shruti Kapoor](https://twitter.com/shrutikapoor08), [Steven Moyes](https://twitter.com/moyessa), [Tafu Nakazaki](https://twitter.com/hawaiiman0), and [Xuan Huang (้ป็)](https://twitter.com/Huxpro).
+๋จผ์ , ๋ชจ๋ ์ฐ์ฌ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค [Aakansha Doshi](https://twitter.com/aakansha1216), [Andrew Clark](https://twitter.com/acdlite), [Brian Vaughn](https://twitter.com/brian_d_vaughn), [Daishi Kato](https://twitter.com/dai_shi), [Debbie O'Brien](https://twitter.com/debs_obrien), [Delba de Oliveira](https://twitter.com/delba_oliveira), [Diego Haz](https://twitter.com/diegohaz), [Eric Rozell](https://twitter.com/EricRozell), [Helen Lin](https://twitter.com/wizardlyhel), [Juan Tejada](https://twitter.com/_jstejada), [Lauren Tan](https://twitter.com/potetotes), [Linton Ye](https://twitter.com/lintonye), [Lyle Troxell](https://twitter.com/lyle), [Rachel Nabors](https://twitter.com/rachelnabors), [Rick Hanlon](https://twitter.com/rickhanlonii), [Robert Balicki](https://twitter.com/StatisticsFTW), [Roman Rรคdle](https://twitter.com/raedle), [Sarah Rainsberger](https://twitter.com/sarah11918), [Shaundai Person](https://twitter.com/shaundai), [Shruti Kapoor](https://twitter.com/shrutikapoor08), [Steven Moyes](https://twitter.com/moyessa), [Tafu Nakazaki](https://twitter.com/hawaiiman0), ๊ทธ๋ฆฌ๊ณ [Xuan Huang (้ป็)](https://twitter.com/Huxpro).
-Thanks to everyone who helped provide feedback on talks including [Andrew Clark](https://twitter.com/acdlite), [Dan Abramov](https://bsky.app/profile/danabra.mov), [Dave McCabe](https://twitter.com/mcc_abe), [Eli White](https://twitter.com/Eli_White), [Joe Savona](https://twitter.com/en_JS), [Lauren Tan](https://twitter.com/potetotes), [Rachel Nabors](https://twitter.com/rachelnabors), and [Tim Yung](https://twitter.com/yungsters).
+[Andrew Clark](https://twitter.com/acdlite), [Dan Abramov](https://twitter.com/dan_abramov), [Dave McCabe](https://twitter.com/mcc_abe), [Eli White](https://twitter.com/Eli_White), [Joe Savona](https://twitter.com/en_JS), [Lauren Tan](https://twitter.com/potetotes), [Rachel Nabors](https://twitter.com/rachelnabors), [Tim Yung](https://twitter.com/yungsters) ๋ฑ ๋๋ด์ ํผ๋๋ฐฑ์ ์ ๊ณตํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Lauren Tan](https://twitter.com/potetotes) for setting up the conference Discord and serving as our Discord admin.
+๋์ค์ฝ๋ ์ปจํผ๋ฐ์ค๋ฅผ ๊ฐ์คํ๊ณ ๋์ค์ฝ๋ ๊ด๋ฆฌ์๋ก ํ๋ํด ์ฃผ์ [Lauren Tan](https://twitter.com/potetotes)์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Seth Webster](https://twitter.com/sethwebster) for feedback on overall direction and making sure we were focused on diversity and inclusion.
+์ ๋ฐ์ ์ธ ๋ฐฉํฅ์ ๋ํ ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ณ ๋ค์์ฑ๊ณผ ํฌ์ฉ์ฑ์ ์ง์คํ ์ ์๋๋ก ๋์์ฃผ์ [Seth Webster](https://twitter.com/sethwebster)์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Rachel Nabors](https://twitter.com/rachelnabors) for spearheading our moderation effort, and [Aisha Blake](https://twitter.com/AishaBlake) for creating our moderation guide, leading our moderation team, training the translators and moderators, and helping to moderate both events.
+์ฌํ๋ฅผ ์งํํ์ [Rachel Nabors](https://twitter.com/rachelnabors)์ ์ฌํ ์งํ ๊ฐ์ด๋๋ฅผ ๋ง๋ค๊ณ , ์ฌํ ์งํ ํ์ ์ด๋๊ณ , ๋ฒ์ญ๊ฐ์ ์ฌํ์๋ฅผ ๊ต์กํ๊ณ , ๋ ์ด๋ฒคํธ์ ์ฌํ ์งํ์ ๋์์ฃผ์ [Aisha Blake](https://twitter.com/AishaBlake)๊ป๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to our moderators [Jesslyn Tannady](https://twitter.com/jtannady), [Suzie Grange](https://twitter.com/missuze), [Becca Bailey](https://twitter.com/beccaliz), [Luna Wei](https://twitter.com/lunaleaps), [Joe Previte](https://twitter.com/jsjoeio), [Nicola Corti](https://twitter.com/Cortinico), [Gijs Weterings](https://twitter.com/gweterings), [Claudio Procida](https://twitter.com/claudiopro), Julia Neumann, Mengdi Chen, Jean Zhang, Ricky Li, and [Xuan Huang (้ป็)](https://twitter.com/Huxpro).
+์ฌํ์ [Jesslyn Tannady](https://twitter.com/jtannady), [Suzie Grange](https://twitter.com/missuze), [Becca Bailey](https://twitter.com/beccaliz), [Luna Wei](https://twitter.com/lunaleaps), [Joe Previte](https://twitter.com/jsjoeio), [Nicola Corti](https://twitter.com/Cortinico), [Gijs Weterings](https://twitter.com/gweterings), [Claudio Procida](https://twitter.com/claudiopro), Julia Neumann, Mengdi Chen, Jean Zhang, Ricky Li ๋ฐ [Xuan Huang (้ป็)](https://twitter.com/Huxpro)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Manjula Dube](https://twitter.com/manjula_dube), [Sahil Mhapsekar](https://twitter.com/apheri0), and Vihang Patel from [React India](https://www.reactindia.io/), and [Jasmine Xie](https://twitter.com/jasmine_xby), [QiChang Li](https://twitter.com/QCL15), and [YanLun Li](https://twitter.com/anneincoding) from [React China](https://twitter.com/ReactChina) for helping moderate our replay event and keep it engaging for the community.
+๋ฆฌํ๋ ์ด ์ด๋ฒคํธ์ ์งํ์ ๋์์ฃผ์๊ณ ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌ๋ฅผ ์ด๋์ด์ฃผ์ [React India](https://www.reactindia.io/)์ [Manjula Dube](https://twitter.com/manjula_dube), [Sahil Mhapsekar](https://twitter.com/apheri0), [React China](https://twitter.com/ReactChina)์ [Jasmine Xie](https://twitter.com/jasmine_xby), [QiChang Li](https://twitter.com/QCL15), [YanLun Li](https://twitter.com/anneincoding)๊ป๋ ๊ฐ์ฌ์ ๋ง์์ ์ ํฉ๋๋ค.
-Thanks to Vercel for publishing their [Virtual Event Starter Kit](https://vercel.com/virtual-event-starter-kit), which the conference website was built on, and to [Lee Robinson](https://twitter.com/leeerob) and [Delba de Oliveira](https://twitter.com/delba_oliveira) for sharing their experience running Next.js Conf.
+์ปจํผ๋ฐ์ค ์น์ฌ์ดํธ์ ๊ธฐ๋ฐ์ด ๋ [๊ฐ์ ์ด๋ฒคํธ ์คํํฐ ํคํธ](https://vercel.com/virtual-event-starter-kit)๋ฅผ ๊ฒ์ํด์ฃผ์ Vercel๊ณผ Next.js Conf ์ด์ ๊ฒฝํ์ ๊ณต์ ํด์ฃผ์ [Lee Robinson](https://twitter.com/leeerob)๊ณผ [Delba de Oliveira](https://twitter.com/delba_oliveira)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Leah Silber](https://twitter.com/wifelette) for sharing her experience running conferences, learnings from running [RustConf](https://rustconf.com/), and for her book [Event Driven](https://leanpub.com/eventdriven/) and the advice it contains for running conferences.
+์ปจํผ๋ฐ์ค๋ฅผ ์ด์ํ ๊ฒฝํ, [RustConf](https://rustconf.com/)๋ฅผ ์ด์ํ๋ฉด์ ์ป์ ๊ตํ, [Event Driven](https://leanpub.com/eventdriven/)๊ณผ ์ปจํผ๋ฐ์ค๋ฅผ ์ด์ํ๊ธฐ ์ํ ์กฐ์ธ์ ๊ณต์ ํด์ฃผ์ [Leah Silber](https://twitter.com/wifelette)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Kevin Lewis](https://twitter.com/_phzn) and [Rachel Nabors](https://twitter.com/rachelnabors) for sharing their experience running Women of React Conf.
+Women of React Conf๋ฅผ ์ด์ํ ๊ฒฝํ์ ๊ณต์ ํด์ฃผ์ [Kevin Lewis](https://twitter.com/_phzn)์ [Rachel Nabors](https://twitter.com/rachelnabors)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Aakansha Doshi](https://twitter.com/aakansha1216), [Laurie Barth](https://twitter.com/laurieontech), [Michael Chan](https://twitter.com/chantastic), and [Shaundai Person](https://twitter.com/shaundai) for their advice and ideas throughout planning.
+๊ธฐํ ์ ๋ฐ์ ๊ฑธ์ณ ์กฐ์ธ๊ณผ ์์ด๋์ด๋ฅผ ์ ๊ณตํด์ฃผ์ [Aakansha Doshi](https://twitter.com/aakansha1216), [Laurie Barth](https://twitter.com/laurieontech), [Michael Chan](https://twitter.com/chantastic), [Shaundai Person](https://twitter.com/shaundai)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to [Dan Lebowitz](https://twitter.com/lebo) for help designing and building the conference website and tickets.
+์ปจํผ๋ฐ์ค ์น์ฌ์ดํธ์ ํฐ์ผ์ ๋์์ธํ๊ณ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ์ฃผ์ [Dan Lebowitz](https://twitter.com/lebo)๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to Laura Podolak Waddell, Desmond Osei-Acheampong, Mark Rossi, Josh Toberman and others on the Facebook Video Productions team for recording the videos for the Keynote and Meta employee talks.
+๊ธฐ์กฐ์ฐ์ค๊ณผ Meta ์ง์ ๋๋ด์ ๋์์์ ๋
นํํด์ฃผ์ Facebook ๋์์ ํ๋ก๋์
ํ์ Laura Podolak Waddell, Desmond Osei-Acheampong, Mark Rossi, Josh Toberman ๋ฐ ๊ธฐํ ์ง์๋ค๊ป๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Thanks to our partner HitPlay for helping to organize the conference, editing all the videos in the stream, translating all the talks, and moderating the Discord in multiple languages.
+์ปจํผ๋ฐ์ค๋ฅผ ๊ตฌ์ฑํ๊ณ , ์คํธ๋ฆผ์ ๋ชจ๋ ๋์์์ ํธ์งํ๊ณ , ๋ชจ๋ ๊ฐ์ฐ์ ๋ฒ์ญํ๊ณ , ์ฌ๋ฌ ์ธ์ด๋ก Discord๋ฅผ ์งํํ๋ ๋ฐ ๋์์ ์ฃผ์ ํํธ๋์ธ HitPlay๊ป๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
-Finally, thanks to all of our participants for making this a great React Conf!
+๋ง์ง๋ง์ผ๋ก, ๋ฉ์ง React ์ปจํผ๋ฐ์ค๋ฅผ ๋ง๋ค์ด์ฃผ์ ๋ชจ๋ ์ฐธ๊ฐ์ ์ฌ๋ฌ๋ถ๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
diff --git a/src/content/blog/2022/03/08/react-18-upgrade-guide.md b/src/content/blog/2022/03/08/react-18-upgrade-guide.md
index 9d34dfaaa..a08353f1d 100644
--- a/src/content/blog/2022/03/08/react-18-upgrade-guide.md
+++ b/src/content/blog/2022/03/08/react-18-upgrade-guide.md
@@ -1,47 +1,47 @@
---
-title: "How to Upgrade to React 18"
+title: "React 18๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ"
author: Rick Hanlon
date: 2022/03/08
-description: As we shared in the release post, React 18 introduces features powered by our new concurrent renderer, with a gradual adoption strategy for existing applications. In this post, we will guide you through the steps for upgrading to React 18.
+description: React 18์ ๋ฆด๋ฆฌ์ค ๋
ธํธ์์ ์ธ๊ธํ ๋๋ก ์๋ก์ด ๋์์ฑ ๋ ๋๋ฌ๋ฅผ ๋์
ํ์ฌ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ง์ ์ผ๋ก ์ ์ฉํ ๊ณํ์
๋๋ค. ์ด ๊ธ์์๋ React 18๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์๊ฐํ๊ฒ ์ต๋๋ค.
---
-March 08, 2022 by [Rick Hanlon](https://twitter.com/rickhanlonii)
+2022๋
3์ 8์ผ, [Rick Hanlon](https://twitter.com/rickhanlonii)
---
-As we shared in the [release post](/blog/2022/03/29/react-v18), React 18 introduces features powered by our new concurrent renderer, with a gradual adoption strategy for existing applications. In this post, we will guide you through the steps for upgrading to React 18.
+React 18์ [๋ฆด๋ฆฌ์ค ๋
ธํธ](/blog/2022/03/29/react-v18)์์ ์ธ๊ธํ ๋๋ก ์๋ก์ด ๋์์ฑ ๋ ๋๋ฌConcurrent Renderer ๋ฅผ ๋์
ํ์ฌ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ง์ ์ผ๋ก ์ ์ฉํ ๊ณํ์
๋๋ค. ์ด ๊ธ์์๋ React 18๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์๊ฐํ๊ฒ ์ต๋๋ค.
-Please [report any issues](https://github.com/facebook/react/issues/new/choose) you encounter while upgrading to React 18.
+React 18๋ก ์
๊ทธ๋ ์ด๋ํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ [๋ฌธ์ ๋ฅผ ์๋ ค์ฃผ์ธ์](https://github.com/facebook/react/issues/new/choose).
-For React Native users, React 18 will ship in a future version of React Native. This is because React 18 relies on the New React Native Architecture to benefit from the new capabilities presented in this blogpost. For more information, see the [React Conf keynote here](https://www.youtube.com/watch?v=FZ0cG47msEk&t=1530s).
+React Native ์ฌ์ฉ์์ ๊ฒฝ์ฐ, React 18์ React Native์ ํฅํ ๋ฒ์ ์ ํ์ฌ๋ ๊ฒ์
๋๋ค. ์ด๋ ์๋ก์ด ๊ธฐ๋ฅ์ ํ์ฉํ๊ธฐ ์ํด React 18์ด ์ด ๊ธ์์ ์๊ฐ๋๋ ์๋ก์ด React Native ์ํคํ
์ฒ์ ์์กดํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์์ธํ ์ ๋ณด๋ [React Conf ๊ธฐ์กฐ์ฐ์ค](https://www.youtube.com/watch?v=FZ0cG47msEk&t=1530s)์ ํ์ธํด์ฃผ์ธ์.
---
-## Installing {/*installing*/}
+## ์ค์น {/*installing*/}
-To install the latest version of React:
+์ต์ ๋ฒ์ ์ React๋ฅผ ์ค์นํ๊ธฐ ์ํด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ธ์.
```bash
npm install react react-dom
```
-Or if youโre using yarn:
+`yarn`์ ์ฌ์ฉํ๋ค๋ฉด ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ์ธ์.
```bash
yarn add react react-dom
```
-## Updates to Client Rendering APIs {/*updates-to-client-rendering-apis*/}
+## ํด๋ผ์ด์ธํธ ๋ ๋๋ง API ์
๋ฐ์ดํธ {/*updates-to-client-rendering-apis*/}
-When you first install React 18, you will see a warning in the console:
+React 18์ ์ฒ์ ์ค์นํ๋ฉด ์ฝ์ ์ฐฝ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ํ์๋ ๊ฒ์
๋๋ค.
@@ -49,41 +49,41 @@ ReactDOM.render is no longer supported in React 18. Use createRoot instead. Unti
-React 18 introduces a new root API which provides better ergonomics for managing roots. The new root API also enables the new concurrent renderer, which allows you to opt-into concurrent features.
+React 18์ ์ฌ์ฉ์๋ค์ด ๋ ํธ๋ฆฌํ๊ฒ Root ์์๋ค์ ๊ด๋ฆฌํ ์ ์๋ ์ต์ Root API๋ฅผ ๋์
ํ์ต๋๋ค. ์ด์ ๋๋ถ์ด ์ต์ Root API๋ ์๋ก์ด ๋์์ฑ ๋ ๋๋ฌ๋ฅผ ๋์์์ผ ๋์์ฑ ๊ธฐ๋ฅConcurrent Features ์ ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
```js
-// Before
+// ๋ณ๊ฒฝ ์
import { render } from 'react-dom';
const container = document.getElementById('app');
render( , container);
-// After
+// ๋ณ๊ฒฝ ํ
import { createRoot } from 'react-dom/client';
const container = document.getElementById('app');
-const root = createRoot(container); // createRoot(container!) if you use TypeScript
+const root = createRoot(container); // ๋ง์ฝ TypeScript๋ฅผ ์ฌ์ฉํ๋ค๋ฉด createRoot(container!)
root.render( );
```
-Weโve also changed `unmountComponentAtNode` to `root.unmount`:
+`unmountComponentAtNode`๋ `root.unmount`๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
```js
-// Before
+// ๋ณ๊ฒฝ ์
unmountComponentAtNode(container);
-// After
+// ๋ณ๊ฒฝ ํ
root.unmount();
```
-We've also removed the callback from render, since it usually does not have the expected result when using Suspense:
+Suspense๋ฅผ ์ฌ์ฉํ ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๊ธฐ ๋๋ฌธ์ ์ฝ๋ฐฑ ํจ์๋ฅผ ๋ ๋๋ง ๋ฉ์๋์์ ์ ๊ฑฐํ์ต๋๋ค.
```js
-// Before
+// ๋ณ๊ฒฝ ์
const container = document.getElementById('app');
render( , container, () => {
console.log('rendered');
});
-// After
+// ๋ณ๊ฒฝ ํ
function AppWithCallbackAfterRender() {
useEffect(() => {
console.log('rendered');
@@ -99,59 +99,59 @@ root.render( );
-There is no one-to-one replacement for the old render callback API โ it depends on your use case. See the working group post for [Replacing render with createRoot](https://github.com/reactwg/react-18/discussions/5) for more information.
+์ ๋ ๋๋ง ์ฝ๋ฐฑ API์ ์ ํํ ๋์ํ๋ ๋์์ ์์ผ๋ฉฐ, ์ฌ์ฉ์์ ์ฌ์ฉ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์์ธํ ์ ๋ณด๋ ํ์ฌ ์งํ ์ค์ธ ๊ทธ๋ฃน ํฌ์คํธ์ธ [Replacing render with `createRoot`](https://github.com/reactwg/react-18/discussions/5)๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
-Finally, if your app uses server-side rendering with hydration, upgrade `hydrate` to `hydrateRoot`:
+๋ง์ง๋ง์ผ๋ก, Hydration์ผ๋ก ์๋ฒ ์ธก ๋ ๋๋งSSR, Server Side Rendering ์ ์ด์ฉํ ๊ฒฝ์ฐ์๋ `hydrate`๋ฅผ `hydrateRoot`๋ก ์
๊ทธ๋ ์ด๋ํ์ธ์.
```js
-// Before
+// ๋ณ๊ฒฝ ์
import { hydrate } from 'react-dom';
const container = document.getElementById('app');
hydrate( , container);
-// After
+// ๋ณ๊ฒฝ ํ
import { hydrateRoot } from 'react-dom/client';
const container = document.getElementById('app');
const root = hydrateRoot(container, );
-// Unlike with createRoot, you don't need a separate root.render() call here.
+// createRoot์๋ ๋ฌ๋ฆฌ, root.render()๋ฅผ ๋ณ๋๋ก ํธ์ถํ ํ์๊ฐ ์์ต๋๋ค.
```
-For more information, see the [working group discussion here](https://github.com/reactwg/react-18/discussions/5).
+์์ธํ ์ ๋ณด๋ [์งํ ์ค์ธ ํ ๋ก ](https://github.com/reactwg/react-18/discussions/5)์์ ํ์ธํ ์ ์์ต๋๋ค.
-**If your app doesn't work after upgrading, check whether it's wrapped in ``.** [Strict Mode has gotten stricter in React 18](#updates-to-strict-mode), and not all your components may be resilient to the new checks it adds in development mode. If removing Strict Mode fixes your app, you can remove it during the upgrade, and then add it back (either at the top or for a part of the tree) after you fix the issues that it's pointing out.
+**์
๊ทธ๋ ์ด๋ ์ดํ์๋ ์ฑ์ด ์๋ํ์ง ์๋๋ค๋ฉด ``๋ก ๊ฐ์ธ์ฌ ์์ง ์์์ง ํ์ธํด ๋ณด์ธ์.** [React 18์์๋ Strict ๋ชจ๋๊ฐ ๋ ์๊ฒฉํด์ ธ์](#updates-to-strict-mode), ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ๊ฐ๋ฐ ๋ชจ๋์ ์ถ๊ฐ๋ ๊ฒ์ฌ ํญ๋ชฉ์ ๋ง์กฑํ์ง ๋ชปํ ์ ์์ต๋๋ค. Strict ๋ชจ๋๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๋ฉด, ์
๊ทธ๋ ์ด๋ ์ค์ ์ ๊ฑฐํ ๋ค์, ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ด๋ ์ฝ๋ ํธ์ง๊ธฐ๊ฐ ํ์ํ๋ ์ค๋ฅ๋ค์ ํด๊ฒฐํ ํ์ (ํธ๋ฆฌ์ ์๋จ ๋๋ ์ผ๋ถ๋ถ์) ๋ค์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
## Updates to Server Rendering APIs {/*updates-to-server-rendering-apis*/}
-In this release, weโre revamping our `react-dom/server` APIs to fully support Suspense on the server and Streaming SSR. As part of these changes, we're deprecating the old Node streaming API, which does not support incremental Suspense streaming on the server.
+์ด๋ฒ ๋ฆด๋ฆฌ์ฆ์์๋ ์๋ฒ์ ์คํธ๋ฆฌ๋ฐ SSR์์ Suspense๋ฅผ ์ต๋ํ ์ง์ํ๊ธฐ ์ํด `react-dom/server` API๋ฅผ ๊ฐํธํ์ต๋๋ค. ์ด๋ฒ ๊ฐํธ์ ํตํด, ์๋ฒ์์ ์ ์ง์ ์ธ Suspense ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ์ง ์๋ ๊ตฌํ Node ์คํธ๋ฆฌ๋ฐ API๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๊ฒ ๋์์ต๋๋ค.
-Using this API will now warn:
+์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
-* `renderToNodeStream`: **Deprecated โ๏ธ๏ธ**
+* `renderToNodeStream`: **๋ ์ด์ ์ฌ์ฉ๋์ง ์์ โ๏ธ๏ธ**
-Instead, for streaming in Node environments, use:
-* `renderToPipeableStream`: **New โจ**
+๋์ ์ Node ํ๊ฒฝ์์ ์คํธ๋ฆฌ๋ฐํ๋ ค๋ฉด ๋ค์ API๋ฅผ ์ฌ์ฉํ์ธ์.
+* `renderToPipeableStream`: **์๋ก ์ถ๊ฐ๋จ โจ**
-We're also introducing a new API to support streaming SSR with Suspense for modern edge runtime environments, such as Deno and Cloudflare workers:
-* `renderToReadableStream`: **New โจ**
+๋๋ถ์ด Deno๋ Cloudflare workers์ ๊ฐ์ ์ต์ ๋ฐํ์ ํ๊ฒฝ์์ Suspense๋ฅผ ํ์ฉํ์ฌ ์คํธ๋ฆฌ๋ฐ SSR๋ฅผ ์ง์ํ๊ธฐ ์ํด ์๋ก์ด API๋ฅผ ๋์
ํฉ๋๋ค.
+* `renderToReadableStream`: **์๋ก ์ถ๊ฐ๋จ โจ**
-The following APIs will continue working, but with limited support for Suspense:
-* `renderToString`: **Limited** โ ๏ธ
-* `renderToStaticMarkup`: **Limited** โ ๏ธ
+๋ค์ API๋ค์ ๊ณ์ ๋์ํ๊ธด ํ์ง๋ง, Suspense ์ง์์ด ์ ํ๋ ๊ฒ์
๋๋ค.
+* `renderToString`: **์ ํ๋จ** โ ๏ธ
+* `renderToStaticMarkup`: **์ ํ๋จ** โ ๏ธ
-Finally, this API will continue to work for rendering e-mails:
+๋ง์ง๋ง์ผ๋ก, ์ด API๋ ์์ผ๋ก๋ ์ด๋ฉ์ผ์ ๋ ๋๋งํ ์์ ์
๋๋ค.
* `renderToStaticNodeStream`
-For more information on the changes to server rendering APIs, see the working group post on [Upgrading to React 18 on the server](https://github.com/reactwg/react-18/discussions/22), a [deep dive on the new Suspense SSR Architecture](https://github.com/reactwg/react-18/discussions/37), and [Shaundai Personโs](https://twitter.com/shaundai) talk on [Streaming Server Rendering with Suspense](https://www.youtube.com/watch?v=pj5N-Khihgc) at React Conf 2021.
+์๋ฒ ๋ ๋๋ง API ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๊ด๋ จ๋ ์์ธํ ์ ๋ณด๋ ์์
์ค์ธ ๊ทธ๋ฃน ํฌ์คํธ [Upgrading to React 18 on the server](https://github.com/reactwg/react-18/discussions/22), [deep dive on the new Suspense SSR Architecture](https://github.com/reactwg/react-18/discussions/37), ๊ทธ๋ฆฌ๊ณ React Conf 2021์์ [Shaundai Person](https://twitter.com/shaundai)์ด ๋ฐํํ [Streaming Server Rendering with Suspense](https://www.youtube.com/watch?v=pj5N-Khihgc)์์ ํ์ธํ ์ ์์ต๋๋ค.
-## Updates to TypeScript definitions {/*updates-to-typescript-definitions*/}
+## TypeScript ์ฌ์ฉ ์ ํ์
์์ฑ์ ๋ํ ์
๋ฐ์ดํธ {/*updates-to-typescript-definitions*/}
-If your project uses TypeScript, you will need to update your `@types/react` and `@types/react-dom` dependencies to the latest versions. The new types are safer and catch issues that used to be ignored by the type checker. The most notable change is that the `children` prop now needs to be listed explicitly when defining props, for example:
+ํ๋ก์ ํธ์ TypeScript๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, `@types/react`์ `@types/react-dom` ์์กด์ฑ์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์๋ก์ด ํ์
๋ค์ ์ฌ์ฉํ๋ฉด ๋ ์์ ํ๊ฒ ์์
ํ ์ ์์ผ๋ฉฐ, ๊ธฐ์กด์ ํ์
๊ฒ์ฌ๊ฐ ๊ฐ์งํ์ง ๋ชปํ๋ ์ด์๋ค์ ์ฐพ์๋ผ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋์ ๋๋ ๋ณํ๋ `children` ํ๋กํผํฐ๋ฅผ ๋ช
ํํ ๋ฆฌ์คํธ๋ก ์ ์ํด์ผ ํ๋ค๋ ๊ฒ์
๋๋ค. ์๋ ์์๋ฅผ ํ์ธํด๋ณด์ธ์.
```typescript{3}
interface MyButtonProps {
@@ -160,51 +160,51 @@ interface MyButtonProps {
}
```
-See the [React 18 typings pull request](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210) for a full list of type-only changes. It links to example fixes in library types so you can see how to adjust your code. You can use the [automated migration script](https://github.com/eps1lon/types-react-codemod) to help port your application code to the new and safer typings faster.
+[React 18 typings pull request](https://github.com/DefinitelyTyped/DefinitelyTyped/pull/56210)์์ ํ์
๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฒด์ ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. ์ด ๋งํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์
์์ ๋ด์ฉ์ ๋ด๊ณ ์์ด ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ ํด์ผ ํ๋์ง ํ์ธํ ์ ์์ต๋๋ค. [automated migration script](https://github.com/eps1lon/types-react-codemod)๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋์ ์ต์ ์ด๊ณ ๋ ์์ ํ ํ์
์ ๋น ๋ฅด๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
-If you find a bug in the typings, please [file an issue](https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/new?category=issues-with-a-types-package) in the DefinitelyTyped repo.
+ํ์ดํ์ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด DefinitelyTyped ์ ์ฅ์์ [์ด์๋ฅผ ๋ณด๋ด์ฃผ์ธ์](https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/new?category=issues-with-a-types-package).
-## Automatic Batching {/*automatic-batching*/}
+## ์๋ Batching {/*automatic-batching*/}
-React 18 adds out-of-the-box performance improvements by doing more batching by default. Batching is when React groups multiple state updates into a single re-render for better performance. Before React 18, we only batched updates inside React event handlers. Updates inside of promises, setTimeout, native event handlers, or any other event were not batched in React by default:
+
+React 18์ ์๋์ผ๋ก ๋ ๋ง์ Batching์ ์ํํ์ฌ ๋๋ผ์ด ์ฑ๋ฅ ํฅ์์ ์ด๋ค์ต๋๋ค. Batching์ด๋ ๋ ๋์ ์ฑ๋ฅ์ ์ํด ์ฌ๋ฌ ๊ฐ์ ์ํ ์
๋ฐ์ดํธ๋ฅผ ๋จ ํ ๋ฒ์ ๋ฆฌ๋ ๋๋ง์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋งํฉ๋๋ค. React 18 ์ด์ ์๋ React ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์์์ ์ํ ์
๋ฐ์ดํธ๋ง Batching์ ์ํํด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก๋ฏธ์ค, `setTimeout`, ๋ค์ดํฐ๋ธ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋๋ ๋ค๋ฅธ ์ด๋ฒคํธ๋ค์ React์์ ๊ธฐ๋ณธ์ ์ผ๋ก Batching์ ์ํํ์ง ์์์ฃ . ๋ค์ ์์๋ฅผ ํ์ธํ์ธ์.
```js
-// Before React 18 only React events were batched
+// React 18 ์ด์ ์๋ ์ค์ง React ์ด๋ฒคํธ๋ค๋ง Batch๋์์ต๋๋ค.
function handleClick() {
setCount(c => c + 1);
setFlag(f => !f);
- // React will only re-render once at the end (that's batching!)
+ // React๋ ๋ง์ง๋ง์ ๋จ ํ ๋ฒ๋ง ๋ฆฌ๋ ๋๋งํฉ๋๋ค. (๊ทธ๊ฒ Batching์ด์ฃ !)
}
setTimeout(() => {
setCount(c => c + 1);
setFlag(f => !f);
- // React will render twice, once for each state update (no batching)
+ // React๋ ๊ฐ ์ํ ์
๋ฐ์ดํธ๋ง๋ค ํ ๋ฒ์ฉ, ์ด ๋ ๋ฒ ๋ ๋๋งํฉ๋๋ค. (Batching ์์)
}, 1000);
```
-
-Starting in React 18 with `createRoot`, all updates will be automatically batched, no matter where they originate from. This means that updates inside of timeouts, promises, native event handlers or any other event will batch the same way as updates inside of React events:
+React 18๋ฅผ ์์์ผ๋ก `createRoot`๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์
๋ฐ์ดํธ๊ฐ ์๋์ผ๋ก Batch๋ ๊ฒ์
๋๋ค. ์ด๋ `setTimeout`, ํ๋ก๋ฏธ์ค, ๋ค์ดํฐ๋ธ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋๋ ๋ค๋ฅธ ์ด๋ฒคํธ ๋ด์ ์
๋ฐ์ดํธ๋ React ์ด๋ฒคํธ ๋ด์ ์
๋ฐ์ดํธ์ ๊ฐ์ด Batch ๋ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
```js
-// After React 18 updates inside of timeouts, promises,
-// native event handlers or any other event are batched.
+// React 18 ์ดํ๋ก setTimeout, ํ๋ก๋ฏธ์ค,
+// ๋ค์ดํฐ๋ธ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋๋ ๋ค๋ฅธ ์ด๋ฒคํธ ๋ด์ ์
๋ฐ์ดํธ๋ Batch ๋ฉ๋๋ค.
function handleClick() {
setCount(c => c + 1);
setFlag(f => !f);
- // React will only re-render once at the end (that's batching!)
+ // React๋ ๋ง์ง๋ง์ ๋จ ํ ๋ฒ๋ง ๋ฆฌ๋ ๋๋งํฉ๋๋ค. (๊ทธ๊ฒ Batching์ด์ฃ !)
}
setTimeout(() => {
setCount(c => c + 1);
setFlag(f => !f);
- // React will only re-render once at the end (that's batching!)
+ // React๋ ๋ง์ง๋ง์ ๋จ ํ ๋ฒ๋ง ๋ฆฌ๋ ๋๋งํฉ๋๋ค. (๊ทธ๊ฒ Batching์ด์ฃ !)
}, 1000);
```
-This is a breaking change, but we expect this to result in less work rendering, and therefore better performance in your applications. To opt-out of automatic batching, you can use `flushSync`:
+์ด๋ ์์ฒญ๋ ๋ณํ์ด์ง๋ง, ์ด๋ฅผ ํตํด ๋ ๋๋ง ์์
์ ์๊ณ ๋ฅผ ์ค์ผ ์ ์๊ณ , ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ๋ ํฅ์๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์๋ Batching์ ์ํ์ง ์๋ ๊ฒฝ์ฐ, `flushSync`๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
```js
import { flushSync } from 'react-dom';
@@ -213,60 +213,61 @@ function handleClick() {
flushSync(() => {
setCounter(c => c + 1);
});
- // React has updated the DOM by now
+ // ์ด ์์ ์์ React๋ DOM์ ์
๋ฐ์ดํธํฉ๋๋ค.
flushSync(() => {
setFlag(f => !f);
});
- // React has updated the DOM by now
+ // ์ด ์์ ์์ React๋ DOM์ ์
๋ฐ์ดํธํฉ๋๋ค.
}
```
-For more information, see the [Automatic batching deep dive](https://github.com/reactwg/react-18/discussions/21).
+์์ธํ ์ ๋ณด๋ [Automatic batching deep dive](https://github.com/reactwg/react-18/discussions/21)์์ ํ์ธํ ์ ์์ต๋๋ค.
+
+## ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํ ์๋ก์ด API {/*new-apis-for-libraries*/}
-## New APIs for Libraries {/*new-apis-for-libraries*/}
+React 18 ์ํน ๊ทธ๋ฃน์ ์คํ์ผ์ด๋ ์ธ๋ถ ์ ์ฅ ์ฅ์น์ ๊ฐ์ ํน์ ๋ชฉ์ ์ ์ํ ๋์์ฑ ๋ ๋๋ง์ ์ง์ํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ์๋ค๊ณผ ํ๋ ฅํ์ฌ ์๋ก์ด API๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. React 18์ ์ง์ํ๊ธฐ ์ํด ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ API ์ค ํ๋๋ก ๋ณ๊ฒฝํด์ผ ํ ์๋ ์์ต๋๋ค.
-In the React 18 Working Group we worked with library maintainers to create new APIs needed to support concurrent rendering for use cases specific to their use case in areas like styles, and external stores. To support React 18, some libraries may need to switch to one of the following APIs:
+* `useSyncExternalStore`๋ ์ธ๋ถ ์ ์ฅ ์ฅ์น์ ์
๋ฐ์ดํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ์ฌ ์ธ๋ถ ์ ์ฅ ์ฅ์น๊ฐ ๋์์ฑ ๋ถ๋ฌ์ค๊ธฐConcurrent Read ๋ฅผ ์ง์ํ ์ ์๋๋ก ํ๋ ์๋ก์ด Hook์
๋๋ค. ์ด API๋ React ์ธ๋ถ์ ์ํ๋ฅผ ํฌํจํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ์์ธํ ์ ๋ณด๋ [`useSyncExternalStore` overview post](https://github.com/reactwg/react-18/discussions/70)์ [`useSyncExternalStore` API details](https://github.com/reactwg/react-18/discussions/86)์์ ํ์ธํ ์ ์์ต๋๋ค.
-* `useSyncExternalStore` is a new Hook that allows external stores to support concurrent reads by forcing updates to the store to be synchronous. This new API is recommended for any library that integrates with state external to React. For more information, see the [useSyncExternalStore overview post](https://github.com/reactwg/react-18/discussions/70) and [useSyncExternalStore API details](https://github.com/reactwg/react-18/discussions/86).
-* `useInsertionEffect` is a new Hook that allows CSS-in-JS libraries to address performance issues of injecting styles in render. Unless you've already built a CSS-in-JS library we don't expect you to ever use this. This Hook will run after the DOM is mutated, but before layout effects read the new layout. This solves an issue that already exists in React 17 and below, but is even more important in React 18 because React yields to the browser during concurrent rendering, giving it a chance to recalculate layout. For more information, see the [Library Upgrade Guide for ``), require careful positioning in the DOM due to style precedence rules. Building a stylesheet capability that allows for composability within components is hard, so users often end up either loading all of their styles far from the components that may depend on them, or they use a style library which encapsulates this complexity.
+์ธ๋ถ ๋งํฌ (` `)์ ์ธ๋ผ์ธ (``) ์คํ์ผ ์ํธ๋ ์คํ์ผ ์ฐ์ ์์ ๊ท์น์ผ๋ก ์ธํด DOM์์ ์์ ํ ์์น๋ฅผ ์๊ตฌํฉ๋๋ค. ์ปดํฌ๋ํธ ๋ด์์ ํฉ์ฑ ๊ฐ๋ฅ์ฑ์ ํ์ฉํ๋ ์คํ์ผ์ํธ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๋๊ฒ์ ์ด๋ ต์ต๋๋ค. ๊ทธ๋์ ์ฌ์ฉ์๋ค์ ์ข
์ข
์ปดํฌ๋ํธ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง ๊ณณ์์ ๋ชจ๋ ์คํ์ผ์ ๋ก๋ํ๊ฑฐ๋, ์ด๋ฌํ ๋ณต์ก์ฑ์ ์บก์ํํ๋ ์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
-In React 19, we're addressing this complexity and providing even deeper integration into Concurrent Rendering on the Client and Streaming Rendering on the Server with built in support for stylesheets. If you tell React the `precedence` of your stylesheet it will manage the insertion order of the stylesheet in the DOM and ensure that the stylesheet (if external) is loaded before revealing content that depends on those style rules.
+React 19์์๋ ์ด ๋ณต์ก์ฑ์ ๋์ํ๊ณ , ํด๋ผ์ด์ธํธ์์์ ๋์ ๋ ๋๋ง๊ณผ ์๋ฒ์์์ ์คํธ๋ฆฌ๋ฐ ๋ ๋๋ง์ ๋ํ ๋ ๊น์ ํตํฉ์ ์ ๊ณตํ๋ฉฐ, ์คํ์ผ์ํธ์ ๋ํ ๋ด์ฅ ์ง์์ ์ ๊ณตํฉ๋๋ค. ์คํ์ผ์ํธ์ `precedence`๋ฅผ React์๊ฒ ์๋ฆฌ๋ฉด, React๋ ์คํ์ผ์ํธ์ DOM ์ฝ์
์์๋ฅผ ๊ด๋ฆฌํ๊ณ , ์คํ์ผ ๊ท์น์ ์์กดํ๋ ์ฝํ
์ธ ๋ฅผ ๋
ธ์ถํ๊ธฐ ์ ์ (์ธ๋ถ์ ๊ฒฝ์ฐ) ์คํ์ผ์ํธ๊ฐ ๋ก๋๋ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
```js {4,5,17}
function ComponentOne() {
@@ -620,37 +624,37 @@ function ComponentTwo() {
return (
{...}
-
<-- will be inserted between foo & bar
+
<-- foo ์ bar ์ฌ์ด์ ์ฝ์
๋ ๊ฒ
)
}
```
-During Server Side Rendering React will include the stylesheet in the ``, which ensures that the browser will not paint until it has loaded. If the stylesheet is discovered late after we've already started streaming, React will ensure that the stylesheet is inserted into the `` on the client before revealing the content of a Suspense boundary that depends on that stylesheet.
+์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ์ค์ React๋ ์คํ์ผ์ํธ๋ฅผ ``์ ํฌํจํฉ๋๋ค. ์ด๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์คํ์ผ์ํธ๋ฅผ ๋ก๋ํ ๋๊น์ง ํ์ธํ
์ ํ์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค. ๋ง์ฝ ์คํธ๋ฆฌ๋ฐ์ ์์ํ ํ ๋ฆ๊ฒ ์คํ์ผ์ํธ๊ฐ ๋ฐ๊ฒฌ๋๋ค๋ฉด, React๋ ํด๋น ์คํ์ผ์ํธ์ ์์กดํ๋ Suspense ๊ฒฝ๊ณ์ ์ฝํ
์ธ ๋ฅผ ํ์ํ๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ์์ ์คํ์ผ์ํธ๊ฐ ``์ ์ฝ์
๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
-During Client Side Rendering React will wait for newly rendered stylesheets to load before committing the render. If you render this component from multiple places within your application React will only include the stylesheet once in the document:
+ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง ์ค์๋ React๊ฐ ๋ ๋๋ง์ ์ปค๋ฐํ๊ธฐ ์ ์ ์๋ก ๋ ๋๋ง๋ ์คํ์ผ์ํธ๊ฐ ๋ก๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ๋ฌ ์์น์์ ์ด ์ปดํฌ๋ํธ๋ฅผ ๋ ๋๋งํ๋๋ผ๋ React๋ ๋ฌธ์์ ์คํ์ผ์ํธ๋ฅผ ํ ๋ฒ๋ง ํฌํจํฉ๋๋ค.
```js {5}
function App() {
return <>
...
- // won't lead to a duplicate stylesheet link in the DOM
+ // DOM ๋ด์์ ์คํ์ผ ์ํธ ๋งํฌ๊ฐ ์ค๋ณต์ผ๋ก ์ด์ด์ง์ง ์์ต๋๋ค.
>
}
```
-For users accustomed to loading stylesheets manually this is an opportunity to locate those stylesheets alongside the components that depend on them allowing for better local reasoning and an easier time ensuring you only load the stylesheets that you actually depend on.
+์คํ์ผ์ํธ๋ฅผ ์๋์ผ๋ก ๋ก๋ํ๋ ๋ฐ ์ต์ํ ์ฌ์ฉ์๋ค์๊ฒ ์ด๊ฒ์ ์์กดํ๋ ์ปดํฌ๋ํธ ์์ ์คํ์ผ์ํธ๋ฅผ ๋ฐฐ์นํ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ๋์ ์ง์ญ์ ์ถ๋ก ์ด ๊ฐ๋ฅํ๊ณ ์ค์ ๋ก ์์กดํ๋ ์คํ์ผ์ํธ๋ง ๋ก๋ํ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ด ๋ ์ฌ์์ง๋๋ค.
-Style libraries and style integrations with bundlers can also adopt this new capability so even if you don't directly render your own stylesheets, you can still benefit as your tools are upgraded to use this feature.
+์คํ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ๋ค๋ฌ์ ํตํฉ๋ ์ด ์๋ก์ด ๊ธฐ๋ฅ์ ์ฑํํ ์ ์์ผ๋ฏ๋ก, ์ง์ ์คํ์ผ์ํธ๋ฅผ ๋ ๋๋งํ์ง ์๋๋ผ๋ ๋๊ตฌ๊ฐ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋๋ก ์
๊ทธ๋ ์ด๋๋๋ฉด ์ฌ์ ํ ํํ์ ๋ฐ์ ์ ์์ต๋๋ค.
-For more details, read the docs for [` `](/reference/react-dom/components/link) and [`
@@ -16,38 +16,38 @@ The [built-in browser `
```
-[See more examples below.](#usage)
+[์๋ ์์๋ฅผ ์ฐธ๊ณ ํ์ธ์.](#usage)
#### Props {/*props*/}
-`