@intlayer/docs 8.9.6 โ†’ 8.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  2. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  3. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  4. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  5. package/blog/en/vue-i18n_vs_intlayer.md +0 -2
  6. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  7. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  8. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  9. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  10. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  11. package/blog/id/vue-i18n_vs_intlayer.md +0 -2
  12. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  13. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  14. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  15. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  16. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  17. package/blog/pl/vue-i18n_vs_intlayer.md +0 -2
  18. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  19. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  20. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  21. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  22. package/blog/tr/vue-i18n_vs_intlayer.md +0 -2
  23. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  24. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  25. package/blog/uk/vue-i18n_vs_intlayer.md +0 -2
  26. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  27. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -3
  28. package/blog/vi/vue-i18n_vs_intlayer.md +0 -2
  29. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
  30. package/dist/cjs/blog.cjs.map +1 -1
  31. package/dist/cjs/common.cjs.map +1 -1
  32. package/dist/cjs/doc.cjs.map +1 -1
  33. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  34. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  35. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  36. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  37. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  38. package/dist/cjs/legal.cjs.map +1 -1
  39. package/dist/esm/blog.mjs.map +1 -1
  40. package/dist/esm/common.mjs.map +1 -1
  41. package/dist/esm/doc.mjs.map +1 -1
  42. package/dist/esm/frequentQuestions.mjs.map +1 -1
  43. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  44. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  45. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  46. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  47. package/dist/esm/legal.mjs.map +1 -1
  48. package/dist/types/blog.d.ts.map +1 -1
  49. package/dist/types/common.d.ts.map +1 -1
  50. package/dist/types/doc.d.ts.map +1 -1
  51. package/dist/types/frequentQuestions.d.ts.map +1 -1
  52. package/dist/types/legal.d.ts.map +1 -1
  53. package/docs/ar/interest_of_intlayer.md +105 -80
  54. package/docs/bn/interest_of_intlayer.md +235 -0
  55. package/docs/cs/interest_of_intlayer.md +235 -0
  56. package/docs/de/interest_of_intlayer.md +96 -74
  57. package/docs/en/configuration.md +2 -1
  58. package/docs/en/interest_of_intlayer.md +1 -3
  59. package/docs/en-GB/configuration.md +2 -1
  60. package/docs/en-GB/interest_of_intlayer.md +57 -33
  61. package/docs/es/interest_of_intlayer.md +26 -2
  62. package/docs/fr/interest_of_intlayer.md +45 -21
  63. package/docs/hi/interest_of_intlayer.md +112 -88
  64. package/docs/id/interest_of_intlayer.md +80 -82
  65. package/docs/it/interest_of_intlayer.md +94 -69
  66. package/docs/ja/interest_of_intlayer.md +106 -81
  67. package/docs/ko/interest_of_intlayer.md +99 -74
  68. package/docs/nl/interest_of_intlayer.md +235 -0
  69. package/docs/pl/interest_of_intlayer.md +84 -84
  70. package/docs/pt/interest_of_intlayer.md +89 -67
  71. package/docs/ru/interest_of_intlayer.md +93 -69
  72. package/docs/tr/interest_of_intlayer.md +94 -91
  73. package/docs/uk/interest_of_intlayer.md +93 -97
  74. package/docs/ur/interest_of_intlayer.md +235 -0
  75. package/docs/vi/interest_of_intlayer.md +81 -80
  76. package/docs/zh/interest_of_intlayer.md +97 -72
  77. package/docs/zh-TW/interest_of_intlayer.md +235 -0
  78. package/package.json +6 -6
  79. package/src/blog.ts +4 -1
  80. package/src/frequentQuestions.ts +4 -1
  81. package/src/legal.ts +4 -1
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2024-08-14
3
- updatedAt: 2025-08-20
4
- title: Intlayer์˜ ์ค‘์š”์„ฑ
5
- description: ํ”„๋กœ์ ํŠธ์—์„œ Intlayer๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ด์ ๊ณผ ์žฅ์ ์„ ์•Œ์•„๋ณด์„ธ์š”. Intlayer๊ฐ€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ฐจ๋ณ„ํ™”๋˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์„ธ์š”.
3
+ updatedAt: 2025-09-27
4
+ title: Intlayer์˜ ์žฅ์ 
5
+ description: ํ”„๋กœ์ ํŠธ์—์„œ Intlayer๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ด์ ๊ณผ ์žฅ์ ์„ ์•Œ์•„๋ณด์„ธ์š”. Intlayer๊ฐ€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ฐจ๋ณ„ํ™”๋˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•ด ๋ณด์„ธ์š”.
6
6
  keywords:
7
7
  - ์ด์ 
8
8
  - ์žฅ์ 
@@ -13,32 +13,35 @@ slugs:
13
13
  - doc
14
14
  - why
15
15
  history:
16
+ - version: 7.3.1
17
+ date: 2025-11-27
18
+ changes: "์ปดํŒŒ์ผ๋Ÿฌ ๋ฆด๋ฆฌ์Šค"
16
19
  - version: 5.8.0
17
20
  date: 2025-08-19
18
21
  changes: "๋น„๊ต ํ‘œ ์—…๋ฐ์ดํŠธ"
19
22
  - version: 5.5.10
20
23
  date: 2025-06-29
21
- changes: "์ด๋ ฅ ์ดˆ๊ธฐํ™”"
24
+ changes: "์ดˆ๊ธฐ ๊ธฐ๋ก"
22
25
  ---
23
26
 
24
27
  # ์™œ Intlayer๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋‚˜์š”?
25
28
 
26
29
  ## Intlayer๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?
27
30
 
28
- **Intlayer**๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ๊ตญ์ œํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ์–ด๋””์—์„œ๋‚˜ ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ  ์„ ์–ธ์„ ๊ตฌ์กฐํ™”๋œ ์‚ฌ์ „์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฝ”๋“œ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ **Intlayer**๋Š” ๊ฐœ๋ฐœ์„ ๋”์šฑ ๊ฒฌ๊ณ ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
31
+ **Intlayer**๋Š” JavaScript ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ๊ตญ์ œํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ  ์„ ์–ธ์„ ๊ตฌ์กฐํ™”๋œ ์‚ฌ์ „์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฝ”๋“œ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ **Intlayer**๋Š” ๊ฐœ๋ฐœ์„ ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
29
32
 
30
33
  ## Intlayer๋Š” ์™œ ๋งŒ๋“ค์–ด์กŒ๋‚˜์š”?
31
34
 
32
- Intlayer๋Š” `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl`, `vue-i18n`๊ณผ ๊ฐ™์€ ๋ชจ๋“  ์ผ๋ฐ˜์ ์ธ i18n ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ณตํ†ต ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
35
+ Intlayer๋Š” `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-intl`, ๊ทธ๋ฆฌ๊ณ  `vue-i18n`๊ณผ ๊ฐ™์€ ๋ชจ๋“  ์ผ๋ฐ˜์ ์ธ i18n ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ณตํ†ต์ ์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
33
36
 
34
- ์ด ๋ชจ๋“  ์†”๋ฃจ์…˜์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์•™ ์ง‘์ค‘์‹ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:
37
+ ์ด ๋ชจ๋“  ์†”๋ฃจ์…˜์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋‚˜์—ดํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์•™ ์ง‘์ค‘์‹ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:
35
38
 
36
39
  ```bash
37
40
  .
38
41
  โ”œโ”€โ”€ locales
39
42
  โ”‚ โ”œโ”€โ”€ en.json
40
- โ”‚ โ”œโ”€โ”€ fr.json
41
- โ”‚ โ””โ”€โ”€ es.json
43
+ โ”‚ โ”œโ”€โ”€ es.json
44
+ โ”‚ โ””โ”€โ”€ fr.json
42
45
  โ”œโ”€โ”€ i18n.ts
43
46
  โ””โ”€โ”€ src
44
47
  โ””โ”€โ”€ components
@@ -67,29 +70,29 @@ Intlayer๋Š” `next-intl`, `react-i18next`, `react-intl`, `next-i18next`, `react-i
67
70
  โ””โ”€โ”€ index.tsx
68
71
  ```
69
72
 
70
- ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ณ  ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ๋” ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
73
+ ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Šฆ์ถ”๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
71
74
 
72
- 1. **์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ํ•ด์•ผ ํ•  ์ผ:**
73
- - `locales` ํด๋”์— ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค/๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
74
- - ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ์šด ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ž„ํฌํŠธํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋ง์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
75
- - ์ฝ˜ํ…์ธ ๋ฅผ ๋ฒˆ์—ญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (์ข…์ข… AI ์ œ๊ณต์ž๋กœ๋ถ€ํ„ฐ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๋กœ ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰๋จ).
75
+ 1. **์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.**
76
+ - `locales` ํด๋”์— ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค/๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ
77
+ - ํŽ˜์ด์ง€์—์„œ ์ƒˆ๋กœ์šด ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ์žŠ์ง€ ์•Š๊ธฐ
78
+ - ์ฝ˜ํ…์ธ  ๋ฒˆ์—ญ(์ข…์ข… AI ์ œ๊ณต์—…์ฒด๋กœ๋ถ€ํ„ฐ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰๋จ)
76
79
 
77
- 2. **์ปดํฌ๋„ŒํŠธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ํ•ด์•ผ ํ•  ์ผ:**
78
- - ๊ด€๋ จ ๋ฆฌ์†Œ์Šค/๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค (์ปดํฌ๋„ŒํŠธ์™€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์Œ).
79
- - ์ฝ˜ํ…์ธ ๋ฅผ ๋ฒˆ์—ญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
80
- - ๋ชจ๋“  ๋กœ์ผ€์ผ์— ๋Œ€ํ•ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
81
- - ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ‚ค/๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€ ๊ฒ€์ฆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
82
- - ๋ชจ๋“  ๋กœ์ผ€์ผ์— ๋Œ€ํ•ด JSON ํŒŒ์ผ์˜ ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
80
+ 2. **์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.**
81
+ - ๊ด€๋ จ ๋ฆฌ์†Œ์Šค/๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ฒ€์ƒ‰(์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์Œ)
82
+ - ์ฝ˜ํ…์ธ  ๋ฒˆ์—ญ
83
+ - ๋ชจ๋“  ๋กœ์ผ€์ผ์— ๋Œ€ํ•ด ์ฝ˜ํ…์ธ ๊ฐ€ ์ตœ์‹  ์ƒํƒœ์ธ์ง€ ํ™•์ธ
84
+ - ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ‚ค/๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธ
85
+ - ๋ชจ๋“  ๋กœ์ผ€์ผ์— ๋Œ€ํ•ด JSON ํŒŒ์ผ ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธ
83
86
 
84
- ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋ฌธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ฝ˜ํ…์ธ  ๋ฒˆ์—ญ ๊ด€๋ฆฌ๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋น„์šฉ์ด ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
87
+ ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋ฌธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ฝ˜ํ…์ธ  ๋ฒˆ์—ญ ๊ด€๋ฆฌ๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ์ข…์ข… ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์ด๋Š” ๋น ๋ฅด๊ฒŒ ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
85
88
 
86
- ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Intlayer๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ , CSS(`styled-components`), ํƒ€์ž…, ๋ฌธ์„œ(`storybook`), ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(`jest`)์™€ ๊ฐ™์ด ์ปดํฌ๋„ŒํŠธ ๊ฐ€๊นŒ์ด์— ์ฝ˜ํ…์ธ ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.
89
+ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Intlayer๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ข…์ข… CSS(`styled-components`), ํƒ€์ž…, ๋ฌธ์„œ(`storybook`), ๋˜๋Š” ์œ ๋‹› ํ…Œ์ŠคํŠธ(`jest`)์—์„œ ํ•˜๋“ฏ์ด ์ฝ˜ํ…์ธ ๋ฅผ ์ปดํฌ๋„ŒํŠธ ๊ทผ์ฒ˜์— ์œ ์ง€ํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.
87
90
 
88
91
  ```bash codeFormat="typescript"
89
92
  .
90
93
  โ””โ”€โ”€ components
91
94
  โ””โ”€โ”€ MyComponent
92
- โ”œโ”€โ”€ index.content.tsx
95
+ โ”œโ”€โ”€ index.content.ts
93
96
  โ”œโ”€โ”€ index.test.tsx
94
97
  โ”œโ”€โ”€ index.stories.tsx
95
98
  โ””โ”€โ”€ index.tsx
@@ -142,69 +145,91 @@ export const ComponentExample = () => {
142
145
  };
143
146
  ```
144
147
 
145
- ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์Œ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค:
148
+ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
146
149
 
147
150
  1. **๊ฐœ๋ฐœ ์†๋„ ํ–ฅ์ƒ**
148
- - `.content.{{ts|mjs|cjs|json}}` ํŒŒ์ผ์€ VSCode ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
149
- - IDE ๋‚ด ์ž๋™์™„์„ฑ AI ๋„๊ตฌ(์˜ˆ: GitHub Copilot)๊ฐ€ ์ฝ˜ํ…์ธ  ์„ ์–ธ์„ ๋„์™€ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ์ž‘์—…์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.
151
+ - VSCode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ `.content.{{ts|mjs|cjs|json}}` ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
152
+ - IDE์˜ ์ž๋™ ์™„์„ฑ AI ๋„๊ตฌ(์˜ˆ: GitHub Copilot)๊ฐ€ ์ฝ˜ํ…์ธ  ์„ ์–ธ์„ ๋„์™€ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ์ค„์—ฌ์ค๋‹ˆ๋‹ค.
150
153
 
151
154
  2. **์ฝ”๋“œ๋ฒ ์ด์Šค ์ •๋ฆฌ**
152
155
  - ๋ณต์žก์„ฑ ๊ฐ์†Œ
153
- - ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ
156
+ - ์œ ์ง€ ๊ด€๋ฆฌ ์šฉ์ด์„ฑ ํ–ฅ์ƒ
154
157
 
155
- 3. **์ปดํฌ๋„ŒํŠธ์™€ ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋ณต์ œํ•˜๊ธฐ (์˜ˆ: ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ์ปดํฌ๋„ŒํŠธ ๋“ฑ)**
156
- - ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ˜ํ…์ธ ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์œ„ํ—˜์„ ์ œํ•œํ•˜์—ฌ
157
- - ์™ธ๋ถ€ ์˜์กด์„ฑ ์—†์ด ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ๊ฐ€๋Šฅ
158
+ 3. **์ปดํฌ๋„ŒํŠธ ๋ฐ ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋ณต์ œ(์˜ˆ: ๋กœ๊ทธ์ธ/๊ฐ€์ž… ์ปดํฌ๋„ŒํŠธ ๋“ฑ)**
159
+ - ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ˜ํ…์ธ ์— ์˜ํ–ฅ์„ ์ค„ ์œ„ํ—˜ ์ œํ•œ
160
+ - ์™ธ๋ถ€ ์ข…์†์„ฑ ์—†์ด ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ
158
161
 
159
- 4. **์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ํ‚ค/๊ฐ’์œผ๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š์Œ**
162
+ 4. **์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ‚ค/๊ฐ’์œผ๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ์˜ค์—ผ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€**
160
163
  - ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด Intlayer๋Š” ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
161
- - ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๊ด€๋ จ ์ฝ˜ํ…์ธ ๊ฐ€ ๋™์ผํ•œ ํด๋”์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
164
+ - ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๊ฐ™์€ ํด๋”์— ์žˆ์œผ๋ฏ€๋กœ ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ ๋” ์‰ฝ๊ฒŒ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
162
165
 
163
- 5. **AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์ถ”๋ก  ๋น„์šฉ ๊ฐ์†Œ**
164
- - AI ์—์ด์ „ํŠธ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ๊ตฌํ˜„ํ•  ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์Šค์บ”ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
165
- - IDE ๋‚ด ์ž๋™์™„์„ฑ AI ๋„๊ตฌ(์˜ˆ: GitHub Copilot)๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
166
+ 5. **AI ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๋ก  ๋น„์šฉ ๊ฐ์†Œ**
167
+ - AI ์—์ด์ „ํŠธ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๊ตฌํ˜„ํ•  ์œ„์น˜๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์Šค์บ”ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
168
+ - IDE์˜ ์ž๋™ ์™„์„ฑ AI ๋„๊ตฌ(์˜ˆ: GitHub Copilot)๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
169
+
170
+ 6. **๋กœ๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”**
171
+ - ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ง€์—ฐ ๋กœ๋“œ(lazy-load)๋˜๋Š” ๊ฒฝ์šฐ ๊ด€๋ จ ์ฝ˜ํ…์ธ ๋„ ๋™์‹œ์— ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
166
172
 
167
173
  ## Intlayer์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ
168
174
 
169
- | ๊ธฐ๋Šฅ | ์„ค๋ช… |
170
- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
171
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **ํฌ๋กœ์Šค ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›**<br><br>Intlayer๋Š” Next.js, React, Vite, Vue.js, Nuxt, Preact, Express ๋“ฑ ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. |
172
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ**<br><br>์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์œ ์—ฐ์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์„ธ์š”. <br><br> - [์ฝ˜ํ…์ธ  ์„ ์–ธ](https://intlayer.org/doc/concept/content) |
173
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **๋กœ์ผ€์ผ๋ณ„ ์ฝ˜ํ…์ธ  ์„ ์–ธ ํŒŒ์ผ**<br><br>์ž๋™ ์ƒ์„ฑ ์ „์— ์ฝ˜ํ…์ธ ๋ฅผ ํ•œ ๋ฒˆ ์„ ์–ธํ•˜์—ฌ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด์„ธ์š”.<br><br> - [๋กœ์ผ€์ผ๋ณ„ ์ฝ˜ํ…์ธ  ์„ ์–ธ ํŒŒ์ผ](https://intlayer.org/doc/concept/per-locale-file) |
174
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **ํƒ€์ž… ์•ˆ์ „ ํ™˜๊ฒฝ**<br><br>TypeScript๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ •์˜์™€ ์ฝ”๋“œ์— ์˜ค๋ฅ˜๊ฐ€ ์—†๋„๋ก ๋ณด์žฅํ•˜๊ณ , IDE ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ๋„ ํ•จ๊ป˜ ๋ˆ„๋ฆฌ์„ธ์š”.<br><br> - [TypeScript ์„ค์ •](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
175
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **๊ฐ„์†Œํ™”๋œ ์„ค์ •**<br><br>์ตœ์†Œํ•œ์˜ ๊ตฌ์„ฑ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•˜์„ธ์š”. ๊ตญ์ œํ™”, ๋ผ์šฐํŒ…, AI, ๋นŒ๋“œ ๋ฐ ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ ์„ค์ •์„ ์†์‰ฝ๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.<br><br> - [Next.js ํ†ตํ•ฉ ํƒ์ƒ‰](https://intlayer.org/doc/environment/nextjs) |
176
- | ![๊ธฐ๋Šฅ](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **๊ฐ„์†Œํ™”๋œ ์ฝ˜ํ…์ธ  ์กฐํšŒ**<br><br>๊ฐ ์ฝ˜ํ…์ธ ๋งˆ๋‹ค `t` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํ›…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ์ง์ ‘ ์กฐํšŒํ•˜์„ธ์š”.<br><br> - [React ํ†ตํ•ฉ](https://intlayer.org/doc/environment/create-react-app) |
177
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **์ผ๊ด€๋œ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„**<br><br>Next.js ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— ์™„๋ฒฝํ•˜๊ฒŒ ์ ํ•ฉํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋‘์— ๋™์ผํ•œ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋งˆ๋‹ค `t` ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. <br><br> - [์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
178
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **์ฒด๊ณ„์ ์ธ ์ฝ”๋“œ๋ฒ ์ด์Šค**<br><br>์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋” ์ฒด๊ณ„์ ์œผ๋กœ ์œ ์ง€ํ•˜์„ธ์š”: 1 ์ปดํฌ๋„ŒํŠธ = ๊ฐ™์€ ํด๋” ๋‚ด 1 ์‚ฌ์ „. ๊ฐ ์ปดํฌ๋„ŒํŠธ์— ๊ฐ€๊นŒ์šด ๋ฒˆ์—ญ์€ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ๋ช…ํ™•์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. <br><br> - [Intlayer ์ž‘๋™ ๋ฐฉ์‹](https://intlayer.org/doc/concept/how-works-intlayer) |
179
- | ![๊ธฐ๋Šฅ](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **ํ–ฅ์ƒ๋œ ๋ผ์šฐํŒ…**<br><br>Next.js, React, Vite, Vue.js ๋“ฑ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ์— ์›ํ™œํ•˜๊ฒŒ ์ ์‘ํ•˜๋Š” ์•ฑ ๋ผ์šฐํŒ…์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.<br><br> - [Next.js ํ†ตํ•ฉ ํƒ์ƒ‰ํ•˜๊ธฐ](https://intlayer.org/doc/environment/nextjs) |
180
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **๋งˆํฌ๋‹ค์šด ์ง€์›**<br><br>๊ฐœ์ธ์ •๋ณด ์ฒ˜๋ฆฌ๋ฐฉ์นจ, ๋ฌธ์„œ ๋“ฑ ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋ฅผ ์œ„ํ•ด ๋กœ์ผ€์ผ ํŒŒ์ผ๊ณผ ์›๊ฒฉ ๋งˆํฌ๋‹ค์šด์„ ๊ฐ€์ ธ์™€ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ๋งˆํฌ๋‹ค์šด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•˜์—ฌ ์ฝ”๋“œ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.<br><br> - [์ฝ˜ํ…์ธ  ํŒŒ์ผ](https://intlayer.org/doc/concept/content/file) |
181
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **๋ฌด๋ฃŒ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ ๋ฐ CMS**<br><br>์ฝ˜ํ…์ธ  ์ž‘์„ฑ์ž๋ฅผ ์œ„ํ•ด ๋ฌด๋ฃŒ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ์™€ CMS๊ฐ€ ์ œ๊ณต๋˜์–ด ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. Git์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ๋™๊ธฐํ™” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ CMS๋ฅผ ํ†ตํ•ด ์ฝ˜ํ…์ธ ๋ฅผ ์™„์ „ํžˆ ๋˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์™ธ๋ถ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.<br><br> - [Intlayer ์—๋””ํ„ฐ](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
182
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **ํŠธ๋ฆฌ ์‰์ด์ปค๋ธ” ์ฝ˜ํ…์ธ **<br><br>์ตœ์ข… ๋ฒˆ๋“ค์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” ํŠธ๋ฆฌ ์‰์ด์ปค๋ธ” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•˜๋ฉฐ, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ ๋Š” ๋ฒˆ๋“ค์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ๋กœ๋”ฉ ํšจ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ง€์—ฐ ๋กœ๋”ฉ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [์•ฑ ๋นŒ๋“œ ์ตœ์ ํ™”](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
183
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **์ •์  ๋ Œ๋”๋ง**<br><br>์ •์  ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. <br><br> - [Next.js ํ†ตํ•ฉ](https://intlayer.org/doc/environment/nextjs) |
184
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ**<br><br>Intlayer์˜ ๊ณ ๊ธ‰ AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ AI ์ œ๊ณต์ž/API ํ‚ค๋กœ ๋‹จ ํ•œ ๋ฒˆ์˜ ํด๋ฆญ๋งŒ์œผ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ 231๊ฐœ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜์„ธ์š”. <br><br> - [CI/CD ํ†ตํ•ฉ](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [์ž๋™ ์ฑ„์šฐ๊ธฐ](https://intlayer.org/doc/concept/auto-fill) |
185
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP ์„œ๋ฒ„ ํ†ตํ•ฉ**<br><br>IDE ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ MCP(๋ชจ๋ธ ์ปจํ…์ŠคํŠธ ํ”„๋กœํ† ์ฝœ) ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋‚ด์—์„œ ์›ํ™œํ•œ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ๋ฐ ๊ตญ์ œํ™”(i18n) ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [MCP ์„œ๋ฒ„](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/mcp_server.md) |
186
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode ํ™•์žฅ ๊ธฐ๋Šฅ**<br><br>Intlayer๋Š” ์ฝ˜ํ…์ธ  ๋ฐ ๋ฒˆ์—ญ ๊ด€๋ฆฌ๋ฅผ ๋•๊ธฐ ์œ„ํ•ด VSCode ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „์„ ๊ตฌ์ถ•ํ•˜๊ณ , ์ฝ˜ํ…์ธ ๋ฅผ ๋ฒˆ์—ญํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [VSCode ํ™•์žฅ ๊ธฐ๋Šฅ](https://intlayer.org/doc/vs-code-extension) |
187
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **์ƒํ˜ธ ์šด์šฉ์„ฑ**<br><br>react-i18next, next-i18next, next-intl, react-intl๊ณผ์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [Intlayer์™€ react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer์™€ next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer์™€ next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
175
+ | ๊ธฐ๋Šฅ | ์„ค๋ช… |
176
+ | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
177
+ | ![๊ธฐ๋Šฅ](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **๊ต์ฐจ ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›**<br><br>Intlayer๋Š” Next.js, React, Vite, Vue.js, Nuxt, Preact, Express ๋“ฑ์„ ํฌํ•จํ•œ ๋ชจ๋“  ์ฃผ์š” ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. |
178
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ**<br><br>JavaScript์˜ ์œ ์—ฐ์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์„ธ์š”. <br><br> - [์ฝ˜ํ…์ธ  ์„ ์–ธ](https://intlayer.org/doc/concept/content) |
179
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="๊ธฐ๋Šฅ" width="700"> | **์ปดํŒŒ์ผ๋Ÿฌ**<br><br>Intlayer ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์ž๋™์œผ๋กœ ์ถ”์ถœํ•˜๊ณ  ์‚ฌ์ „ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.<br><br> - [์ปดํŒŒ์ผ๋Ÿฌ](https://intlayer.org/doc/compiler) |
180
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **๋กœ์ผ€์ผ๋ณ„ ์ฝ˜ํ…์ธ  ์„ ์–ธ ํŒŒ์ผ**<br><br>์ž๋™ ์ƒ์„ฑ ์ „ ์ฝ˜ํ…์ธ ๋ฅผ ํ•œ ๋ฒˆ ์„ ์–ธํ•˜์—ฌ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด์„ธ์š”.<br><br> - [๋กœ์ผ€์ผ๋ณ„ ์ฝ˜ํ…์ธ  ์„ ์–ธ ํŒŒ์ผ](https://intlayer.org/doc/concept/per-locale-file) |
181
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **ํƒ€์ž… ์•ˆ์ „ ํ™˜๊ฒฝ**<br><br>TypeScript๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ  ์ •์˜์™€ ์ฝ”๋“œ๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  IDE ์ž๋™ ์™„์„ฑ์˜ ์ด์ ์„ ๋ˆ„๋ฆฌ์„ธ์š”.<br><br> - [TypeScript ๊ตฌ์„ฑ](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
182
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **๊ฐ„์†Œํ™”๋œ ์„ค์ •**<br><br>์ตœ์†Œํ•œ์˜ ๊ตฌ์„ฑ์œผ๋กœ ์‹ ์†ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ์‹คํ–‰ํ•˜์„ธ์š”. ๊ตญ์ œํ™”, ๋ผ์šฐํŒ…, AI, ๋นŒ๋“œ ๋ฐ ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ ์„ค์ •์„ ์‰ฝ๊ฒŒ ์กฐ์ •ํ•˜์„ธ์š”. <br><br> - [Next.js ํ†ตํ•ฉ ์•Œ์•„๋ณด๊ธฐ](https://intlayer.org/doc/environment/nextjs) |
183
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **๊ฐ„์†Œํ™”๋œ ์ฝ˜ํ…์ธ  ๊ฒ€์ƒ‰**<br><br>๊ฐ ์ฝ˜ํ…์ธ  ํ•ญ๋ชฉ์— ๋Œ€ํ•ด `t` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ฝ˜ํ…์ธ ๋ฅผ ์ง์ ‘ ๊ฒ€์ƒ‰ํ•˜์„ธ์š”.<br><br> - [React ํ†ตํ•ฉ](https://intlayer.org/doc/environment/create-react-app) |
184
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **์ผ๊ด€๋œ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„**<br><br>Next.js ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— ์™„๋ฒฝํ•˜๊ฒŒ ์ ํ•ฉํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋‘์— ๋™์ผํ•œ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— `t` ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. <br><br> - [์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
185
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **์ •๋ฆฌ๋œ ์ฝ”๋“œ๋ฒ ์ด์Šค**<br><br>์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋” ์ฒด๊ณ„์ ์œผ๋กœ ์œ ์ง€ํ•˜์„ธ์š”: 1 ์ปดํฌ๋„ŒํŠธ = ๋™์ผํ•œ ํด๋” ๋‚ด 1 ์‚ฌ์ „. ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ๊ฐ€๊นŒ์šด ๋ฒˆ์—ญ์€ ์œ ์ง€ ๊ด€๋ฆฌ์„ฑ๊ณผ ๋ช…ํ™•์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. <br><br> - [Intlayer ์ž‘๋™ ๋ฐฉ์‹](https://intlayer.org/doc/concept/how-works-intlayer) |
186
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **ํ–ฅ์ƒ๋œ ๋ผ์šฐํŒ…**<br><br>์•ฑ ๋ผ์šฐํŒ…์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜์—ฌ Next.js, React, Vite, Vue.js ๋“ฑ์˜ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ์— ์›ํ™œํ•˜๊ฒŒ ์ ์‘ํ•ฉ๋‹ˆ๋‹ค.<br><br> - [Next.js ํ†ตํ•ฉ ์•Œ์•„๋ณด๊ธฐ](https://intlayer.org/doc/environment/nextjs) |
187
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown ์ง€์›**<br><br>๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ์ •์ฑ…, ๋ฌธ์„œ ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค๊ตญ์–ด ์ฝ˜ํ…์ธ ๋ฅผ ์œ„ํ•ด ๋กœ์ผ€์ผ ํŒŒ์ผ ๋ฐ ์›๊ฒฉ Markdown์„ ๊ฐ€์ ธ์˜ค๊ณ  ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. Markdown ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ฝ”๋“œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.<br><br> - [์ฝ˜ํ…์ธ  ํŒŒ์ผ](https://intlayer.org/doc/concept/content/file) |
188
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **๋ฌด๋ฃŒ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ ๋ฐ CMS**<br><br>์ฝ˜ํ…์ธ  ์ž‘์„ฑ์ž๋ฅผ ์œ„ํ•ด ๋ฌด๋ฃŒ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ์™€ CMS๊ฐ€ ์ œ๊ณต๋˜๋ฏ€๋กœ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Git์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜ํ…์ธ ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ CMS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ๋˜๋Š” ์ผ๋ถ€๋ฅผ ์™ธ๋ถ€ํ™”ํ•˜์„ธ์š”.<br><br> - [Intlayer ์—๋””ํ„ฐ](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
189
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable ์ฝ˜ํ…์ธ **<br><br>์ตœ์ข… ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์ฃผ๋Š” Tree-shakable ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋‹น ์ฝ˜ํ…์ธ ๋ฅผ ๋กœ๋“œํ•˜์—ฌ ๋ฒˆ๋“ค์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ์•ฑ ๋กœ๋”ฉ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ง€์—ฐ ๋กœ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [์•ฑ ๋นŒ๋“œ ์ตœ์ ํ™”](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
190
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **์ •์  ๋ Œ๋”๋ง**<br><br>์ •์  ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. <br><br> - [Next.js ํ†ตํ•ฉ](https://intlayer.org/doc/environment/nextjs) |
191
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ**<br><br>์ž์ฒด AI ์ œ๊ณต์—…์ฒด/API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Intlayer์˜ ๊ณ ๊ธ‰ AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ ๋„๊ตฌ๋กœ ๋‹จ ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ 231๊ฐœ ์–ธ์–ด๋กœ ๋ณ€ํ™˜ํ•˜์„ธ์š”. <br><br> - [CI/CD ํ†ตํ•ฉ](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [์ž๋™ ์ฑ„์šฐ๊ธฐ](https://intlayer.org/doc/concept/auto-fill) |
192
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP ์„œ๋ฒ„ ํ†ตํ•ฉ**<br><br>IDE ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ MCP(Model Context Protocol) ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋‚ด์—์„œ ์›ํ™œํ•œ ์ฝ˜ํ…์ธ  ๊ด€๋ฆฌ ๋ฐ i18n ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [MCP ์„œ๋ฒ„](https://github.com/aymericzip/intlayer/blob/main/docs/ko/mcp_server.md) |
193
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ**<br><br>Intlayer๋Š” ์ฝ˜ํ…์ธ  ๋ฐ ๋ฒˆ์—ญ ๊ด€๋ฆฌ, ์‚ฌ์ „ ๊ตฌ์ถ•, ์ฝ˜ํ…์ธ  ๋ฒˆ์—ญ ๋“ฑ์„ ๋•๋Š” VSCode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. <br><br> - [VSCode ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ](https://intlayer.org/doc/vs-code-extension) |
194
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **์ƒํ˜ธ ์šด์šฉ์„ฑ**<br><br>react-i18next, next-i18next, next-intl ๋ฐ react-intl๊ณผ์˜ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. <br><br> - [Intlayer ๋ฐ react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer ๋ฐ next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer ๋ฐ next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
195
+ | ๋ˆ„๋ฝ๋œ ๋ฒˆ์—ญ ํ…Œ์ŠคํŠธ (CLI/CI) | โœ… CLI: npx intlayer content test (CI ์นœํ™”์  ๊ฐ์‚ฌ) |
188
196
 
189
197
  ## Intlayer์™€ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜ ๋น„๊ต
190
198
 
191
- | ๊ธฐ๋Šฅ | Intlayer | React-i18next / i18next | React-Intl (FormatJS) | LinguiJS | next-intl | next-i18next | vue-i18n |
192
- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------- |
193
- | **์ปดํฌ๋„ŒํŠธ ๊ทผ์ฒ˜ ๋ฒˆ์—ญ** | ์˜ˆ, ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ํ•จ๊ป˜ ๋ฐฐ์น˜๋œ ์ฝ˜ํ…์ธ  | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์˜ˆ - `Single File Components` (SFCs) ์‚ฌ์šฉ |
194
- | **TypeScript ํ†ตํ•ฉ** | ๊ณ ๊ธ‰, ์ž๋™ ์ƒ์„ฑ ์—„๊ฒฉํ•œ ํƒ€์ž… | ๊ธฐ๋ณธ; ์•ˆ์ „์„ ์œ„ํ•œ ์ถ”๊ฐ€ ๊ตฌ์„ฑ ํ•„์š” | ์ข‹์Œ, ํ•˜์ง€๋งŒ ๋œ ์—„๊ฒฉํ•จ | ํƒ€์ž… ์ •์˜, ๊ตฌ์„ฑ ํ•„์š” | ์ข‹์Œ | ๊ธฐ๋ณธ | ์ข‹์Œ (ํƒ€์ž… ์‚ฌ์šฉ ๊ฐ€๋Šฅ; ํ‚ค ์•ˆ์ „์„ฑ ์„ค์ • ํ•„์š”) |
195
- | **๋ˆ„๋ฝ๋œ ๋ฒˆ์—ญ ๊ฐ์ง€** | ๋นŒ๋“œ ์‹œ ์˜ค๋ฅ˜/๊ฒฝ๊ณ  | ๋Œ€๋ถ€๋ถ„ ๋Ÿฐํƒ€์ž„ ์‹œ ๋Œ€์ฒด ๋ฌธ์ž์—ด ์‚ฌ์šฉ | ๋Œ€์ฒด ๋ฌธ์ž์—ด ์‚ฌ์šฉ | ์ถ”๊ฐ€ ์„ค์ • ํ•„์š” | ๋Ÿฐํƒ€์ž„ ๋Œ€์ฒด ๋ฌธ์ž์—ด ์‚ฌ์šฉ | ๋Ÿฐํƒ€์ž„ ๋Œ€์ฒด ๋ฌธ์ž์—ด ์‚ฌ์šฉ | ๋Ÿฐํƒ€์ž„ ๋Œ€์ฒด ๋ฌธ์ž์—ด/๊ฒฝ๊ณ  (์„ค์ • ๊ฐ€๋Šฅ) |
196
- | **๋ฆฌ์น˜ ์ฝ˜ํ…์ธ  (JSX/๋งˆํฌ๋‹ค์šด/์ปดํฌ๋„ŒํŠธ)** | React ๋…ธ๋“œ๊นŒ์ง€ ์ง์ ‘ ์ง€์› | ์ œํ•œ์  / ๋ณด๊ฐ„๋ฒ•๋งŒ ์ง€์› | ICU ๋ฌธ๋ฒ•, ์‹ค์ œ JSX ์•„๋‹˜ | ์ œํ•œ์  | ๋ฆฌ์น˜ ๋…ธ๋“œ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์ง€ ์•Š์Œ | ์ œํ•œ์  | ์ œํ•œ์  (`<i18n-t>`๋ฅผ ํ†ตํ•œ ์ปดํฌ๋„ŒํŠธ, ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ ๋งˆํฌ๋‹ค์šด) |
197
- | **AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ** | ์˜ˆ, ์—ฌ๋Ÿฌ AI ์ œ๊ณต์—…์ฒด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์ฝ˜ํ…์ธ  ๋ฒ”์œ„์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” | ์•„๋‹ˆ์š” |
198
- | **๋น„์ฃผ์–ผ ์—๋””ํ„ฐ** | ์˜ˆ, ๋กœ์ปฌ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ + ์„ ํƒ์  CMS; ์ฝ”๋“œ๋ฒ ์ด์Šค ์ฝ˜ํ…์ธ  ์™ธ๋ถ€ํ™” ๊ฐ€๋Šฅ; ์ž„๋ฒ ๋“œ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ํ˜„์ง€ํ™” ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ |
199
- | **๋กœ์ปฌ๋ผ์ด์ฆˆ๋œ ๋ผ์šฐํŒ…** | ๋‚ด์žฅ, ๋ฏธ๋“ค์›จ์–ด ์ง€์› | ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ์ˆ˜๋™ ๊ตฌ์„ฑ | ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์Œ | ํ”Œ๋Ÿฌ๊ทธ์ธ/์ˆ˜๋™ ๊ตฌ์„ฑ | ๋‚ด์žฅ | ๋‚ด์žฅ | Vue Router๋ฅผ ํ†ตํ•œ ์ˆ˜๋™ ๊ตฌ์„ฑ (Nuxt i18n์ด ์ฒ˜๋ฆฌํ•จ) |
200
- | **๋™์  ๋ผ์šฐํŠธ ์ƒ์„ฑ** | ์˜ˆ | ํ”Œ๋Ÿฌ๊ทธ์ธ/์—์ฝ”์‹œ์Šคํ…œ ๋˜๋Š” ์ˆ˜๋™ ์„ค์ • | ์ œ๊ณต๋˜์ง€ ์•Š์Œ | ํ”Œ๋Ÿฌ๊ทธ์ธ/์ˆ˜๋™ | ์˜ˆ | ์˜ˆ | ์ œ๊ณต๋˜์ง€ ์•Š์Œ (Nuxt i18n์—์„œ ์ œ๊ณต) |
201
- | **๋ณต์ˆ˜ํ˜• ์ฒ˜๋ฆฌ(Pluralization)** | ์—ด๊ฑฐ ๊ธฐ๋ฐ˜ ํŒจํ„ด; ๋ฌธ์„œ ์ฐธ์กฐ | ๊ตฌ์„ฑ ๊ฐ€๋Šฅ (i18next-icu์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ) | ๊ณ ๊ธ‰ (ICU) | ๊ณ ๊ธ‰ (ICU/messageformat) | ์šฐ์ˆ˜ | ์šฐ์ˆ˜ | ๊ณ ๊ธ‰ (๋‚ด์žฅ๋œ ๋ณต์ˆ˜ํ˜• ๊ทœ์น™) |
202
- | **ํ˜•์‹ ์ง€์ •(๋‚ ์งœ, ์ˆซ์ž, ํ†ตํ™”)** | ์ตœ์ ํ™”๋œ ํฌ๋งคํ„ฐ(Intl ๊ธฐ๋ฐ˜) | ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ๋งž์ถค Intl ์‚ฌ์šฉ์„ ํ†ตํ•ด | ๊ณ ๊ธ‰ ICU ํฌ๋งคํ„ฐ | ICU/CLI ๋„์šฐ๋ฏธ | ์šฐ์ˆ˜ํ•จ (Intl ๋„์šฐ๋ฏธ) | ์šฐ์ˆ˜ํ•จ (Intl ๋„์šฐ๋ฏธ) | ๋‚ด์žฅ ๋‚ ์งœ/์ˆซ์ž ํฌ๋งคํ„ฐ(Intl) |
203
- | **์ฝ˜ํ…์ธ  ํ˜•์‹** | .tsx, .ts, .js, .json, .md, .txt | .json | .json, .js | .po, .json | .json, .js, .ts | .json | .json, .js |
204
- | **ICU ์ง€์›** | ์ง„ํ–‰ ์ค‘ (๋„ค์ดํ‹ฐ๋ธŒ ICU) | ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ (i18next-icu) | ์˜ˆ | ์˜ˆ | ์˜ˆ | ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ (i18next-icu) | ๋งž์ถค ํฌ๋งคํ„ฐ/์ปดํŒŒ์ผ๋Ÿฌ ์‚ฌ์šฉ |
205
- | **SEO ๋„์šฐ๋ฏธ (hreflang, ์‚ฌ์ดํŠธ๋งต)** | ๋‚ด์žฅ ๋„๊ตฌ: ์‚ฌ์ดํŠธ๋งต, **robots.txt**, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋„์šฐ๋ฏธ | ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ/์ˆ˜๋™ | ํ•ต์‹ฌ ์•„๋‹˜ | ํ•ต์‹ฌ ์•„๋‹˜ | ์šฐ์ˆ˜ | ์šฐ์ˆ˜ | ํ•ต์‹ฌ ์•„๋‹˜ (Nuxt i18n์ด ๋„์šฐ๋ฏธ ์ œ๊ณต) |
206
- | **์—์ฝ”์‹œ์Šคํ…œ / ์ปค๋ฎค๋‹ˆํ‹ฐ** | ์ž‘์ง€๋งŒ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๊ณ  ๋ฐ˜์‘์„ฑ์ด ๋›ฐ์–ด๋‚จ | ๊ฐ€์žฅ ํฌ๊ณ  ๊ฐ€์žฅ ์„ฑ์ˆ™ํ•จ | ๋Œ€๊ทœ๋ชจ, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ | ์„ฑ์žฅ ์ค‘, ์ž‘์Œ | ์ค‘๊ฐ„ ๊ทœ๋ชจ, Next.js ์ค‘์‹ฌ | ์ค‘๊ฐ„ ๊ทœ๋ชจ, Next.js ์ค‘์‹ฌ | Vue ์—์ฝ”์‹œ์Šคํ…œ ๋‚ด ๋Œ€๊ทœ๋ชจ |
207
- | **์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๋ฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ** | ์˜ˆ, SSR / React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Œ | ์ง€์›๋˜๋‚˜ ์ผ๋ถ€ ์„ค์ • ํ•„์š” | Next.js์—์„œ ์ง€์›๋จ | ์ง€์›๋จ | ์™„์ „ ์ง€์› | ์™„์ „ ์ง€์› | Nuxt/Vue SSR์„ ํ†ตํ•œ SSR (RSC๋Š” ์—†์Œ) |
208
- | **ํŠธ๋ฆฌ ์‰์ดํ‚น (์‚ฌ์šฉ๋œ ์ฝ˜ํ…์ธ ๋งŒ ๋กœ๋“œ)** | ์˜ˆ, Babel/SWC ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ ๋นŒ๋“œ ์‹œ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ | ๋ณดํ†ต ๋ชจ๋‘ ๋กœ๋“œ๋จ (๋„ค์ž„์ŠคํŽ˜์ด์Šค/์ฝ”๋“œ ๋ถ„ํ• ๋กœ ๊ฐœ์„  ๊ฐ€๋Šฅ) | ๋ณดํ†ต ๋ชจ๋‘ ๋กœ๋“œ๋จ | ๊ธฐ๋ณธ๊ฐ’ ์•„๋‹˜ | ๋ถ€๋ถ„ ์ง€์› | ๋ถ€๋ถ„ ์ง€์› | ๋ถ€๋ถ„ ์ง€์› (์ฝ”๋“œ ๋ถ„ํ• /์ˆ˜๋™ ์„ค์ • ํ•„์š”) |
209
- | **์ง€์—ฐ ๋กœ๋”ฉ** | ์˜ˆ, ๋กœ์ผ€์ผ๋ณ„/์ปดํฌ๋„ŒํŠธ๋ณ„ | ์˜ˆ (์˜ˆ: ๋ฐฑ์—”๋“œ/๋„ค์ž„์ŠคํŽ˜์ด์Šค ํ•„์š” ์‹œ ๋กœ๋”ฉ) | ์˜ˆ (๋กœ์ผ€์ผ ๋ฒˆ๋“ค ๋ถ„ํ• ) | ์˜ˆ (๋™์  ์นดํƒˆ๋กœ๊ทธ ์ž„ํฌํŠธ) | ์˜ˆ (๊ฒฝ๋กœ๋ณ„/๋กœ์ผ€์ผ๋ณ„) | ์˜ˆ (๊ฒฝ๋กœ๋ณ„/๋กœ์ผ€์ผ๋ณ„) | ์˜ˆ (๋น„๋™๊ธฐ ๋กœ์ผ€์ผ ๋ฉ”์‹œ์ง€) |
210
- | **๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ** | ๋ชจ๋“ˆํ™” ๊ถŒ์žฅ, ๋””์ž์ธ ์‹œ์Šคํ…œ์— ์ ํ•ฉ | ํŒŒ์ผ ๊ด€๋ฆฌ ๊ทœ์œจ ํ•„์š” | ์ค‘์•™ ์นดํƒˆ๋กœ๊ทธ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Œ | ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ | ์„ค์ •๊ณผ ํ•จ๊ป˜ ๋ชจ๋“ˆํ™” | ์„ค์ •๊ณผ ํ•จ๊ป˜ ๋ชจ๋“ˆํ™” | Vue Router/Nuxt i18n ์„ค์ •๊ณผ ํ•จ๊ป˜ ๋ชจ๋“ˆํ™” |
199
+ | ๊ธฐ๋Šฅ | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
200
+ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
201
+ | **์ปดํฌ๋„ŒํŠธ ๊ทผ์ฒ˜์˜ ๋ฒˆ์—ญ** | โœ… ์˜ˆ, ์ฝ˜ํ…์ธ ๊ฐ€ ๊ฐ ์ปดํฌ๋„ŒํŠธ์™€ ๋™์ผํ•œ ์œ„์น˜์— ์žˆ์Œ | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โœ… ์˜ˆ - `Single File Components`(SFC) ์‚ฌ์šฉ ์‹œ |
202
+ | **TypeScript ํ†ตํ•ฉ** | โœ… ๊ณ ๊ธ‰, ์ž๋™ ์ƒ์„ฑ๋œ ์—„๊ฒฉํ•œ ํƒ€์ž… | โš ๏ธ ๊ธฐ๋ณธ; ์•ˆ์ „์„ ์œ„ํ•ด ์ถ”๊ฐ€ ๊ตฌ์„ฑ ํ•„์š” | โœ… ์ข‹์Œ, ํ•˜์ง€๋งŒ ๋œ ์—„๊ฒฉํ•จ | โš ๏ธ ํƒ€์ดํ•‘, ๊ตฌ์„ฑ ํ•„์š” | โœ… ์ข‹์Œ | โš ๏ธ ๊ธฐ๋ณธ | โœ… ์ข‹์Œ (ํƒ€์ž… ์‚ฌ์šฉ ๊ฐ€๋Šฅ; ํ‚ค ์•ˆ์ „์—๋Š” ์„ค์ • ํ•„์š”) |
203
+ | **๋ˆ„๋ฝ๋œ ๋ฒˆ์—ญ ๊ฐ์ง€** | โœ… TypeScript ์˜ค๋ฅ˜ ๊ฐ•์กฐ ํ‘œ์‹œ ๋ฐ ๋นŒ๋“œ ์‹œ ์˜ค๋ฅ˜/๊ฒฝ๊ณ  | โš ๏ธ ์ฃผ๋กœ ๋Ÿฐํƒ€์ž„ ์‹œ ํด๋ฐฑ(fallback) ๋ฌธ์ž์—ด | โš ๏ธ ํด๋ฐฑ ๋ฌธ์ž์—ด | โš ๏ธ ์ถ”๊ฐ€ ๊ตฌ์„ฑ ํ•„์š” | โš ๏ธ ๋Ÿฐํƒ€์ž„ ํด๋ฐฑ | โš ๏ธ ๋Ÿฐํƒ€์ž„ ํด๋ฐฑ | โš ๏ธ ๋Ÿฐํƒ€์ž„ ํด๋ฐฑ/๊ฒฝ๊ณ  (๊ตฌ์„ฑ ๊ฐ€๋Šฅ) |
204
+ | **ํ’๋ถ€ํ•œ ์ฝ˜ํ…์ธ  (JSX/Markdown/์ปดํฌ๋„ŒํŠธ)** | โœ… ์ง์ ‘ ์ง€์› | โš ๏ธ ์ œํ•œ์  / ๋ณด๊ฐ„๋งŒ ๊ฐ€๋Šฅ | โš ๏ธ ICU ๊ตฌ๋ฌธ, ์‹ค์ œ JSX ์•„๋‹˜ | โš ๏ธ ์ œํ•œ์  | โŒ ํ’๋ถ€ํ•œ ๋…ธ๋“œ์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์ง€ ์•Š์Œ | โš ๏ธ ์ œํ•œ์  | โš ๏ธ ์ œํ•œ์  (`<i18n-t>`๋ฅผ ํ†ตํ•œ ์ปดํฌ๋„ŒํŠธ, ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•œ Markdown) |
205
+ | **AI ๊ธฐ๋ฐ˜ ๋ฒˆ์—ญ** | โœ… ์˜ˆ, ์—ฌ๋Ÿฌ AI ์ œ๊ณต์—…์ฒด ์ง€์›. ์ž์ฒด API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌธ๋งฅ๊ณผ ์ฝ˜ํ…์ธ  ๋ฒ”์œ„๋ฅผ ๊ณ ๋ คํ•จ | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” | โŒ ์•„๋‹ˆ์š” |
206
+ | **๋น„์ฃผ์–ผ ์—๋””ํ„ฐ** | โœ… ์˜ˆ, ๋กœ์ปฌ ๋น„์ฃผ์–ผ ์—๋””ํ„ฐ + ์„ ํƒ์  CMS; ์ฝ”๋“œ๋ฒ ์ด์Šค ์ฝ˜ํ…์ธ  ์™ธ๋ถ€ํ™” ๊ฐ€๋Šฅ; ์ž„๋ฒ ๋“œ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š” / ์™ธ๋ถ€ ๋กœ์ปฌ๋ผ์ด์ œ์ด์…˜ ํ”Œ๋žซํผ์„ ํ†ตํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ |
207
+ | **๋กœ์ปฌ๋ผ์ด์ฆˆ๋“œ ๋ผ์šฐํŒ…** | โœ… ์˜ˆ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ๋ผ์ด์ฆˆ๋“œ ๊ฒฝ๋กœ ์ง€์› (Next.js ๋ฐ Vite์™€ ์ž‘๋™) | โš ๏ธ ๋‚ด์žฅ ๊ธฐ๋Šฅ ์—†์Œ, ํ”Œ๋Ÿฌ๊ทธ์ธ(์˜ˆ: `next-i18next`) ๋˜๋Š” ์ปค์Šคํ…€ ๋ผ์šฐํ„ฐ ๊ตฌ์„ฑ ํ•„์š” | โŒ ์•„๋‹ˆ์š”, ๋ฉ”์‹œ์ง€ ํฌ๋งทํŒ…๋งŒ ์ œ๊ณต, ๋ผ์šฐํŒ…์€ ์ˆ˜๋™์ด์–ด์•ผ ํ•จ | โš ๏ธ ๋‚ด์žฅ ๊ธฐ๋Šฅ ์—†์Œ, ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ์ˆ˜๋™ ๊ตฌ์„ฑ ํ•„์š” | โœ… ๋‚ด์žฅ, App Router๋Š” `[locale]` ์„ธ๊ทธ๋จผํŠธ ์ง€์› | โœ… ๋‚ด์žฅ | โœ… ๋‚ด์žฅ |
208
+ | **๋™์  ๊ฒฝ๋กœ ์ƒ์„ฑ** | โœ… ์˜ˆ | โš ๏ธ ํ”Œ๋Ÿฌ๊ทธ์ธ/์—์ฝ”์‹œ์Šคํ…œ ๋˜๋Š” ์ˆ˜๋™ ์„ค์ • | โŒ ์ œ๊ณต๋˜์ง€ ์•Š์Œ | โš ๏ธ ํ”Œ๋Ÿฌ๊ทธ์ธ/์ˆ˜๋™ | โœ… ์˜ˆ | โœ… ์˜ˆ | โŒ ์ œ๊ณต๋˜์ง€ ์•Š์Œ (Nuxt i18n์—์„œ ์ œ๊ณต) |
209
+ | **๋ณต์ˆ˜ํ˜•ํ™”** | โœ… ์—ด๊ฑฐํ˜• ๊ธฐ๋ฐ˜ ํŒจํ„ด | โœ… ๊ตฌ์„ฑ ๊ฐ€๋Šฅ (i18next-icu์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ) | โœ… (ICU) | โœ… (ICU/messageformat) | โœ… ์ข‹์Œ | โœ… ์ข‹์Œ | โœ… ๋‚ด์žฅ ๋ณต์ˆ˜ํ˜• ๊ทœ์น™ |
210
+ | **ํฌ๋งทํŒ… (๋‚ ์งœ, ์ˆซ์ž, ํ†ตํ™”)** | โœ… ์ตœ์ ํ™”๋œ ํฌ๋งทํ„ฐ (๋‚ด๋ถ€์ ์œผ๋กœ Intl ์‚ฌ์šฉ) | โš ๏ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜๋Š” ์ปค์Šคํ…€ Intl ์‚ฌ์šฉ์„ ํ†ตํ•ด | โœ… ICU ํฌ๋งทํ„ฐ | โœ… ICU/CLI ํ—ฌํผ | โœ… ์ข‹์Œ (Intl ํ—ฌํผ) | โœ… ์ข‹์Œ (Intl ํ—ฌํผ) | โœ… ๋‚ด์žฅ ๋‚ ์งœ/์ˆซ์ž ํฌ๋งทํ„ฐ (Intl) |
211
+ | **์ฝ˜ํ…์ธ  ํ˜•์‹** | โœ… .tsx, .ts, .js, .json, .md, .txt, (.yaml ์ž‘์—… ์ค‘) | โš ๏ธ .json | โœ… .json, .js | โš ๏ธ .po, .json | โœ… .json, .js, .ts | โš ๏ธ .json | โœ… .json, .js |
212
+ | **ICU ์ง€์›** | โš ๏ธ ์ž‘์—… ์ค‘ | โš ๏ธ ํ”Œ๋Ÿฌ๊ทธ์ธ(i18next-icu)์„ ํ†ตํ•ด | โœ… ์˜ˆ | โœ… ์˜ˆ | โœ… ์˜ˆ | โš ๏ธ ํ”Œ๋Ÿฌ๊ทธ์ธ(`i18next-icu`)์„ ํ†ตํ•ด | โš ๏ธ ์ปค์Šคํ…€ ํฌ๋งทํ„ฐ/์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด |
213
+ | **SEO ํ—ฌํผ (hreflang, sitemap)** | โœ… ๋‚ด์žฅ ๋„๊ตฌ: sitemap, robots.txt, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์šฉ ํ—ฌํผ | โš ๏ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ/์ˆ˜๋™ | โŒ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์•„๋‹˜ | โŒ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์•„๋‹˜ | โœ… ์ข‹์Œ | โœ… ์ข‹์Œ | โŒ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์•„๋‹˜ (Nuxt i18n์—์„œ ํ—ฌํผ ์ œ๊ณต) |
214
+ | **์—์ฝ”์‹œ์Šคํ…œ / ์ปค๋ฎค๋‹ˆํ‹ฐ** | โš ๏ธ ๊ทœ๋ชจ๋Š” ์ž‘์ง€๋งŒ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅ ์ค‘์ด๋ฉฐ ๋ฐ˜์‘์ด ๋น ๋ฆ„ | โœ… ๊ฐ€์žฅ ํฌ๊ณ  ์„ฑ์ˆ™ํ•จ | โœ… ํผ | โš ๏ธ ์ž‘์Œ | โœ… ์ค‘๊ฐ„ ๊ทœ๋ชจ, Next.js ์ค‘์‹ฌ | โœ… ์ค‘๊ฐ„ ๊ทœ๋ชจ, Next.js ์ค‘์‹ฌ | โœ… Vue ์—์ฝ”์‹œ์Šคํ…œ์—์„œ ํผ |
215
+ | **์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๋ฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ** | โœ… ์˜ˆ, SSR / React ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์— ์ตœ์ ํ™”๋จ | โš ๏ธ ํŽ˜์ด์ง€ ๋ ˆ๋ฒจ์—์„œ ์ง€์›๋˜์ง€๋งŒ ํ•˜์œ„ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— t-ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•จ | โš ๏ธ ์ถ”๊ฐ€ ์„ค์ •์œผ๋กœ ํŽ˜์ด์ง€ ๋ ˆ๋ฒจ์—์„œ ์ง€์›๋˜์ง€๋งŒ ํ•˜์œ„ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— t-ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•จ | โœ… ์ง€์›, ์„ค์ • ํ•„์š” | โš ๏ธ ํŽ˜์ด์ง€ ๋ ˆ๋ฒจ์—์„œ ์ง€์›๋˜์ง€๋งŒ ํ•˜์œ„ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— t-ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•จ | โš ๏ธ ํŽ˜์ด์ง€ ๋ ˆ๋ฒจ์—์„œ ์ง€์›๋˜์ง€๋งŒ ํ•˜์œ„ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์— t-ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•จ | โœ… Nuxt/Vue SSR์„ ํ†ตํ•œ SSR (RSC ์—†์Œ) |
216
+ | **Tree-shaking (์‚ฌ์šฉ๋œ ์ฝ˜ํ…์ธ ๋งŒ ๋กœ๋“œ)** | โœ… ์˜ˆ, Babel/SWC ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด ๋นŒ๋“œ ์‹œ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ์ˆ˜ํ–‰ | โš ๏ธ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋‘ ๋กœ๋“œ (๋„ค์ž„์ŠคํŽ˜์ด์Šค/์ฝ”๋“œ ๋ถ„ํ• ๋กœ ๊ฐœ์„  ๊ฐ€๋Šฅ) | โš ๏ธ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋‘ ๋กœ๋“œ | โŒ ๊ธฐ๋ณธ ์•„๋‹˜ | โš ๏ธ ๋ถ€๋ถ„์  | โš ๏ธ ๋ถ€๋ถ„์  | โš ๏ธ ๋ถ€๋ถ„์  (์ฝ”๋“œ ๋ถ„ํ• /์ˆ˜๋™ ์„ค์ • ์‚ฌ์šฉ ์‹œ) |
217
+ | **์ง€์—ฐ ๋กœ๋”ฉ** | โœ… ์˜ˆ, ๋กœ์ผ€์ผ๋ณ„ / ์‚ฌ์ „๋ณ„ | โœ… ์˜ˆ (์˜ˆ: ์˜จ๋””๋งจ๋“œ ๋ฐฑ์—”๋“œ/๋„ค์ž„์ŠคํŽ˜์ด์Šค) | โœ… ์˜ˆ (๋กœ์ผ€์ผ ๋ฒˆ๋“ค ๋ถ„ํ• ) | โœ… ์˜ˆ (๋™์  ์นดํƒˆ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ) | โœ… ์˜ˆ (๊ฒฝ๋กœ๋ณ„/๋กœ์ผ€์ผ๋ณ„), ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ ํ•„์š” | โœ… ์˜ˆ (๊ฒฝ๋กœ๋ณ„/๋กœ์ผ€์ผ๋ณ„), ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ ํ•„์š” | โœ… ์˜ˆ (๋น„๋™๊ธฐ ๋กœ์ผ€์ผ ๋ฉ”์‹œ์ง€) |
218
+ | **์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฝ˜ํ…์ธ  ์‚ญ์ œ** | โœ… ์˜ˆ, ๋นŒ๋“œ ์‹œ ์‚ฌ์ „๋ณ„๋กœ ์ˆ˜ํ–‰ | โŒ ์•„๋‹ˆ์š”, ์ˆ˜๋™ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ถ„ํ• ์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š”, ์„ ์–ธ๋œ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฒˆ๋“ค๋ง๋จ | โœ… ์˜ˆ, ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํ‚ค๊ฐ€ ๊ฐ์ง€๋˜์–ด ๋นŒ๋“œ ์‹œ ์‚ญ์ œ๋จ | โŒ ์•„๋‹ˆ์š”, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š”, ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ | โŒ ์•„๋‹ˆ์š”, ์ˆ˜๋™ ์ง€์—ฐ ๋กœ๋”ฉ์„ ํ†ตํ•ด์„œ๋งŒ ๊ฐ€๋Šฅ |
219
+ | **๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ** | โœ… ๋ชจ๋“ˆํ™”๋ฅผ ์žฅ๋ คํ•˜๋ฉฐ ๋””์ž์ธ ์‹œ์Šคํ…œ์— ์ ํ•ฉํ•จ | โš ๏ธ ์–‘ํ˜ธํ•œ ํŒŒ์ผ ๊ทœ์œจ ํ•„์š” | โš ๏ธ ์ค‘์•™ ์นดํƒˆ๋กœ๊ทธ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Œ | โš ๏ธ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ | โœ… ๊ตฌ์„ฑ์„ ํ†ตํ•œ ๋ชจ๋“ˆํ™” | โœ… ๊ตฌ์„ฑ์„ ํ†ตํ•œ ๋ชจ๋“ˆํ™” | โœ… Vue Router/Nuxt i18n ๊ตฌ์„ฑ์„ ํ†ตํ•œ ๋ชจ๋“ˆํ™” |
220
+
221
+ ---
222
+
223
+ ## GitHub ์Šคํƒ€
224
+
225
+ GitHub ์Šคํƒ€๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ธ๊ธฐ, ์ปค๋ฎค๋‹ˆํ‹ฐ ์‹ ๋ขฐ ๋ฐ ์žฅ๊ธฐ์ ์ธ ๊ด€๋ จ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ•๋ ฅํ•œ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์  ํ’ˆ์งˆ์„ ์ง์ ‘์ ์œผ๋กœ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ง„ํ–‰ ์ƒํ™ฉ์„ ํŒ”๋กœ์šฐํ•˜๋ฉฐ ์ฑ„ํƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”์ง€๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์น˜๋ฅผ ํ‰๊ฐ€ํ•  ๋•Œ ์Šคํƒ€๋Š” ๋Œ€์•ˆ ๊ฐ„์˜ ๊ฒฌ์ธ๋ ฅ์„ ๋น„๊ตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ ์ƒํƒœ๊ณ„ ์„ฑ์žฅ์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
226
+
227
+ [![Star History Chart](https://api.star-history.com/chart?repos=formatjs/formatjs%2Ci18next/react-i18next%2Ci18next/i18next%2Ci18next/next-i18next%2Clingui/js-lingui%2Camannn/next-intl%2Cintlify/vue-i18n%2Caymericzip/intlayer%2Copral/inlang&type=date&legend=top-left)](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
228
+
229
+ ---
230
+
231
+ ## ์ƒํ˜ธ ์šด์šฉ์„ฑ
232
+
233
+ `intlayer`๋Š” `react-intl`, `react-i18next`, `next-intl`, `next-i18next` ๋ฐ `vue-i18n` ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
234
+
235
+ `intlayer`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„ ํ˜ธํ•˜๋Š” i18n ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•์‹์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, intlayer๋Š” ์„ ํƒํ•œ ์œ„์น˜(์˜ˆ: `/messages/{{locale}}/{{namespace}}.json`)์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.