React FE

¸â¹ö 16 ¸í [º¸±â] | Àüü±Û 13 °³ | ¸Å´ÏÀú - ¾ÆÀÌ¿À´Ï¾È

React, NextJS, TypeScript, NodeJS, ORM, Auth, Tailwind, State Management and #ServiceWorker

[Æ®·£µå]

React 19 °ú React.Compiler

rank ¾ÆÀÌ¿À´Ï¾È 2024-05-30 (¸ñ) 22:26 Á¶È¸ : 386 Ãßõ : 7  

React 19 °ú React.Compiler


ÀÌ ±ÛÀÌ ÀÛ¼ºµÇ°í ÀÖ´Â 2024.05.30 ½ÃÁ¡¿¡¼­, React Conference 2024 °¡ ÇÖÇÕ´Ï´Ù. 

ÄÁÆÛ·±½º¿¡¼­´Â React 19 ÀÌ ¾ðÁ¦ ¹ßÇ¥µÉÁö ±â´ë¸¦ ¸ðÀ¸°í Àִµ¥¿ä,

RC 2024 ¿¡¼­ Áö±Ý °¡Àå ÇÖ ÇÑ °ü½ÉÀº React Compiler ÀÎ °Í °°°í, React Compiler ´Â °¡Àå ÇÖÇÑ À̽´°¡ µÇ¾î¼­ ´Ù¸¥ ¸ðµç À̽´µéÀ» ºí·¢È¦Ã³·³ »¡¾ÆµéÀÌ°í ÀÖ´Â °Í °°½À´Ï´Ù.


React 19 ´Â, ¿Ã °¡À» Âë¿¡ Á¤½Ä °ø°³µÉ ¿¹Á¤À¸·Î ¾Ë·ÁÁ® ÀÖÁÒ.

Meta ´Â ÀÌ¹Ì ¸î ´Þ Àü¿¡, React 19 ¿¡´Â React-Compiler °¡ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù°í, °ø½Ä Æ®À­À» ÅëÇØ ¸ø¹Ú¾Æ µ×´ø ¹Ù Àִµ¥¿ä,

±×¸®°í ¿Ã ¿¬¸»Âë, ¸¶ÀÌ³Ê ¾÷±×·¹À̵忡¼­ React-Compiler °¡ Ãß°¡µÉ °ÍÀ¸·Î ¿¹»óµÇ°í ÀÖ¾ú½À´Ï´Ù.


ÇÏÁö¸¸ React-Compiler ¿¡ ´ëÇÑ ±â´ë°¡ ¿ö³« Ä¿Á®¼­ Àϱî¿ä.. RC 2024 ¿¡¼­ »ç¶÷µéÀÇ °ü½ÉÀº React-Compiler ·Î ½ò¸®°í ÀÖ´Â °Í °°½À´Ï´Ù.

±×·¡¼­, React-Compiler ¿¡ °üÇÑ Á¦ Á¤º¸¿Í »ý°¢À» Á¶±ÝÀ̳ª¸¶ °øÀ¯Çغ¸·Á°í ÇÕ´Ï´Ù.




React ¿¡¼­´Â ¸ðµç ¸®·»´õ¸µÀ» ºñ¿ëÀ¸·Î º¸±âµµ ÇÏÁÒ. ¸®·»´õ¸µ°ú ¿¬»êÀÇ ¹«ÀǹÌÇÑ ¹Ýº¹À» ÇÇÇϱâ À§ÇØ React 18 ¿¡¼­´Â ¸Þ¸ðÀÌÁ¦ÀÌ¼Ç ±â¹ýÀ» »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù.

¹®Á¦´Â ÀÌ°Ô ¹ø°Å·Ó±âµµ ÇÏ°í °¡µ¶¼ºÀ» ¹æÇØÇÑ´Ù´Â Á¡Àε¥, ÀÌ ¶§¹®¿¡ memoization ÀÇ ¹Ý´ëµÇ´Â °³³äÀ¸·Î, React.Forget À̶ó´Â ¾ÆÀ̵ð¾î°¡ µîÀåÇϱ⵵ Çß½À´Ï´Ù. ¸®¾×Æ®ÀÇ build.time ¿¡ react.memo ¸¦ ¾Ë¾Æ¼­ ó¸®ÇØÁÖ°Ú´Ù´Â »ý°¢ÀÌÁÒ.

React.Compiler °¡ ÁÖ¸ñÀ» ¹Þ°í ÀÖ´Â µ¥¿¡´Â ÀÌ·± ¹è°æÀÌ ÀÖ¾ú½À´Ï´Ù.



React 19 ¿¡ React.Compiler °¡ Æ÷ÇÔµÉÁö´Â ¾ÆÁ÷ ¾Æ¹«µµ ¾Ë ¼ö ¾ø½À´Ï´Ù.

React.Compiler ´Â ¾ÆÁ÷ Á¤½Ä °ø°³µÇÁö ¾Ê¾ÒÁö¸¸, React & React-Dom ÀÇ ½ÃÇè ¹öÀüÀº ÀÌ¹Ì Meta ¿¡¼­ °¡µ¿µÇ°í ÀÖÀ¸¸ç, ¿ì¸®µµ Áö±Ý ¹Ù·Î »ç¿ëÇغ¼ ¼ö ÀÖ½À´Ï´Ù.


ÂüÁ¶¹®¼­:

https://react.dev/blog/2024/04/25/react-19-upgrade-guide

https://react.dev/learn/react-compiler




  1. install React.19 RC

npm install react@rc react-dom@rc




Typescript ÀÇ Å¸ÀÔ Áö¿ø ¼³Á¤ :


// package.json ¿¡ ´ÙÀ½À» Ãß°¡
{
  "dependencies": {
    "@types/react": "npm:types-react@rc",
    "@types/react-dom": "npm:types-react-dom@rc"
  },
  "overrides": {
    "@types/react": "npm:types-react@rc",
    "@types/react-dom": "npm:types-react-dom@rc"
  }
}





  1. Codebase ¶óÀ̺귯¸®ÀÇ È£È¯¼º °Ë»ç

# npx react-compiler-healthcheck@latest

// ÀÌ·± Ãß°¡ ÀνºÅçÀÌ ÇÊ¿äÇÏ´Ù´Â ÇÁ·ÒÇÁÆ®°¡ ³ª¿À¸é,
Need to install the following packages:
[email protected]
// 'y' ¸¦ ÃÄÁݽôÙ.
Successfully compiled 48 out of 56 components.
StrictMode usage not found.
Found no usage of incompatible libraries.
// incompatible libraries °¡ ¾ø´Ù¸é free to go

react »ýÅÂ°è ¸ðµç ¶óÀ̺귯¸®ÀÇ Á¤»óÀÛµ¿ÀÌ º¸ÀåµÇÁö ¾Ê½À´Ï´Ù.




  1. EsLint

npm install eslint-plugin-react-compiler

// eslint config ¿¡ Ãß°¡
module.exports = {
  plugins: [
    'eslint-plugin-react-compiler',
  ],
  rules: {
    'react-compiler/react-compiler': "error",
  },
}







  1. ¹øµé·¯ Ưȭ ¼³Á¤


    1. Babel
    
    npm install babel-plugin-react-compiler
    // babel.config.js
    const ReactCompilerConfig = {  };
    
    module.exports = function () {
      return {
        plugins: [
          ['babel-plugin-react-compiler', ReactCompilerConfig], // must run first!
          // ...
        ],
      };
    };
    
    

    b. vite

    
    // vite.config.js
    const ReactCompilerConfig = {  };
    
    export default defineConfig(() => {
      return {
        plugins: [
          react({
            babel: {
              plugins: [
                ["babel-plugin-react-compiler", ReactCompilerConfig],
              ],
            },
          }),
        ],
        // ...
      };
    });
    
    // Reactt.Compiler ÀÇ ¿É¼Ç ¼³Á¤
    // µðÆúÆ® ¼³Á¤Àº ¸ðµç ÄÄÆ÷³ÍÆ®¿¡¼­ ÄÄÆÄÀÏ·¯ true ÀÔ´Ï´Ù.
    // annotation ¸ðµå¸¦ ¼³Á¤ÇØÁÖ¸é, °¢ ÄÄÆ÷³ÍÆ®¿¡¼­ use memo ½ºÅ×ÀÌÆ®¸ÕÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
    const ReactCompilerConfig = { 
      compilationMode: "annotation",
    };
    
    
    

    c. Next.js

    
    // Next.js canary, which uses React 19 Release Candidate
    npm install next@canary babel-plugin-react-compiler
    
    // next.config.js
    
    const nextConfig = {
      experimental: {
        reactCompiler: true,
        // ¶Ç´Â
        // reactCompiler: "annotation"
      },
    };
    
    module.exports = nextConfig;
    
    
    

    d. Remix

    ..´Â ¹®ÇåÀ» ÂüÁ¶




ÄÄÆ÷³ÍÆ®¿¡¼­ React.Compiler »ç¿ë:





¸â¹ö 16 ¸í | Àüü±Û 13 °³ | ¸Å´ÏÀú - ¾ÆÀÌ¿À´Ï¾È

React, NextJS, TypeScript, NodeJS, ORM, Auth, Tailwind, State Management and #ServiceWorker

´ñ±Û 2°³
´ñ±Û¾²±â
¾ÆÀÌ¿À´Ï¾È±Û¾´ÀÌ 2024-06-01 (Åä) 15:18
°Ô½Ã±ÛÀÇ Æ÷¸ËÀÌ ¾û¸ÁÀε¥,
¹®Á¦´Â ¾ÆÁ÷ º°´Ù¸¥ ´ëÃ¥ÀÌ ¾ø´Ù´Â Á¡À̳׿ä...

ä³ÎÀÌ ÁöÇâÇÏ´Â °ü½É°ú Ư¼º»ó,
°Ô½Ã±Û¿¡ ÄÚµå ºí·°ÀÌ ÀÚÀ¯·Ó°Ô »ðÀԵǰí Ç¥ÇöµÇ¾î¾ß¸¸ ÇÒ °Í °°Àºµ¥,
¾Æ¹«¸® °í¹ÎÇصµ ÇØ°á¹æ¹ýÀ» ¸ø ã°Ú½À´Ï´Ù.
ÀÌÅä·£µåÀÇ ¸®Ä¡ÅؽºÆ®¿¡µðÅÍ°¡ Çã¿ëÇÏ´Â Æ÷¸ËÀ̾î¾ß ÇÏ°í, ÀÌÅä·£µå ¼­¹ö Æļ­ÀÇ °ËÁõµµ Åë°úÇØ¾ß ÇÑ´Ù´Â Á¦¾àÀÌ Àֳ׿ä.

°³¹ßÀڵ鸸 º¸´Â ä³ÎÀ̶ó¼­, tampermonkey/greasemonkey ½ºÅ©¸³Æ®¸¦ ÅëÇØ À¯Àú ½ºÅ©¸³Æ® ÁÖÀÔÀº °¡´ÉÇÒ °Í °°¾Æ¼­ À̰͵µ ½Ãµµ ÇغýÀ´Ï´Ù.
highlight.js ¸¦ À¯Àú½ºÅ©¸³Æ®·Î »ðÀÔÇØ ºÃ´Âµ¥,
ÀÌ ¿ª½Ã ¾È¸ÔÈ÷³×¿ä... Ä¿½ºÅ͸¶ÀÌ¡ÀÌ ÇÊ¿äÇѵ¥ Á¦°¡ ¸ø ã°í ÀÖ´Â °ÍÀÎÁö ¸ð¸£°Ú½À´Ï´Ù¸¸, ÄÚµåºí·°ÀÇ ·¹À̾ƿôÀÌ ±úÁö³×¿ä.

´©±º°¡ ÁÁÀº ¾ÆÀ̵ð¾î¸¦ °®°í °è½Ã°Å³ª, µµ¿òÀÌ µÉ ¸¸ÇÑ ·¹ÆÛ·±½º¸¦ ¾Ë°í °è½Ã¸é °øÀ¯, Á¦¾ÈÀ» ºÎŹµå·Á º¾´Ï´Ù.
¿£ÀÚÀÓ 2024-06-02 (ÀÏ) 20:42
°¨»çÇÕ´Ï´Ù

¹øÈ£ Á¦¸ñ ±Û¾´ÀÌ ³¯Â¥ Ãßõ Á¶È¸
[°øÁö]  [Çʵ¶] React FE ä³Î ±ÔÄ¢  rank¾ÆÀÌ¿À´Ï¾È 05-30 6 315
13 [ÄÚµå]  #5. React-Router-Dom  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 07-24 4 46
12 [Æ®·£µå]  State of React 2023 Survey °á°ú ¹ßÇ¥  rank¾ÆÀÌ¿À´Ï¾È 07-23 5 48
11 [ÄÚµå]  #4-1 useAxiosFetch º¸¿Ï  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 07-14 2 98
10 [ÄÚµå]  #4. Form handling in React  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 07-13 3 82
9 [ÄÚµå]  #3. more hooks & custom hooks  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 07-03 6 110
8 [Æ®·£µå]  State of JS 2023 ¹ßÇ¥  rank¾ÆÀÌ¿À´Ï¾È 06-28 5 123
7 [ÄÚµå]  #2. npm create vite@latest & first hooks  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 06-25 3 103
6 [ÄÚµå]  #1. ¸®¾×Æ®¸¦ ¹è¿ì±â À§ÇÑ »çÀü Áغñ  (1) À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 06-25 3 141
5 [ÄÚµå]  #0. React ¸¦ ¹è¿öº¾½Ã´Ù.  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 06-25 3 142
4 [ÄÚµå]  React Project : zustand-and-useContext  À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 06-08 3 170
3 [ÀÚÀ¯]  °³¹ß Ãʱ⿡´Â ¾à°£ÀÇ Áߺ¹À» Çã¿ëÇÏ°í Ãß»óÈ­¸¦ ±â´Ù·Á¾ß ÇÔ  (4) À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 06-03 6 308
2 [Æ®·£µå]  React 19 °ú React.Compiler  (2) À̹ÌÁö rank¾ÆÀÌ¿À´Ï¾È 05-30 7 386
1 [°øÁö]  [Çʵ¶] React FE ä³Î ±ÔÄ¢  rank¾ÆÀÌ¿À´Ï¾È 05-30 6 315
React FE ¿ù°£ Ãßõ  (´õº¸±â)
React FE ¿ù°£ Á¶È¸  (´õº¸±â)
React FE ¿ù°£ ´ñ±Û  (´õº¸±â)

°øÀ¯Çϱâ

ÀÌÅä·£µå ·Î°í

°èÁ¤ ã±â ȸ¿ø°¡ÀÔ
¼Ò¼È·Î±×ÀÎ