[React] React hook + Material UI error :: findDOMNode is deprecated in StrictMode.
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 20. 21:08

React์™€ Material UI๋ผ๋Š” React UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ์ค‘, ์ œ๋ชฉ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. findDOMNode is deprecated in StrictMode. KOS ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๋ฐœ๊ฒฌํ–ˆ๋˜ ์˜ค๋ฅœ๋ฐ ๋Œ€์ˆ˜๋กญ์ง€ ์•Š๊ฒŒ ๋„˜๊ฒผ๋”๋‹ˆ ์—ฌ๊ธฐ์„œ ๊ฑธ๋ฆฌ์ ๊ฑฐ๋ฆฌ๋Š”๊ตฐ ใ… ใ…  ์–ด์จŒ๋“  ํ•ด๊ฒฐํ•ด๋ณด์ž. ์ด์œ  ์ €๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋จผ์ €, create-react-app์„ ํ†ตํ•ด React ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, index.js๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค. import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM..

[React] React JSX์—์„œ forEach ์•ˆ๋  ๋•Œ
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 20. 21:06

React JSX์—์„œ array๋‚˜ dictionary๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด forEach ๋ฌธ์„ ์ผ๋‹ค๋ฉด, map์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•œ๋‹ค. map ํ•จ์ˆ˜๋Š” ์—ฐ์‚ฐ ํ›„์— ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ array / dictionary๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— JSX์—์„œ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜์ง€๋งŒ, forEach๋ฌธ์€ ๋ณ€์ˆ˜์—๋งŒ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๊ฐ€ ์ ์šฉ๋˜๊ณ  ๋ฐ˜ํ™˜ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ, forEach ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์—ฐ์‚ฐ๋งŒ ๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” JSX๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

[ESLint] React hook + Typescript ํ”„๋กœ์ ํŠธ ์‹œ ์„ค์ •ํ•œ rule ๊ณต์œ 
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 14:01

module.exports = { 'parser': '@typescript-eslint/parser', 'plugins': ['@typescript-eslint'], 'env': { 'commonjs': true, 'browser': true, 'es2021': true, 'node' : true }, 'extends': [ 'airbnb', 'airbnb/hooks', 'plugin:@typescript-eslint/recommended' ], 'parserOptions': { 'project': './tsconfig.json', 'ecmaFeatures': { 'jsx': true, }, 'ecmaVersion': 12, 'sourceType': 'module', }, 'rules': { 'inden..

[Typescript] ๊ธฐ์กด React + js ํ”„๋กœ์ ํŠธ ts๋กœ ๋ฐ”๊พธ๊ธฐ
์›น (WEB)/๊ณต๋ถ€ 2020. 12. 14. 13:58

Typescript ์ฐธ๊ณ  : https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html (Typescript ๊ณต์‹ ์‚ฌ์ดํŠธ) ๋ฐฐ์šฐ๋Š” ์ด์œ  JS์—์„œ๋Š” Type์ด ๊ณ„์† ์ฒดํฌ๋˜์ง€ ์•Š๋Š”๋‹ค. 1. ์ด๋Š” ์•”๋ฌต์  ํ˜•๋ณ€ํ™˜, hoisting, ๋ณต์žก์„ฑ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ƒ์˜ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด typescript๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. hoisting : ๋Œ์–ด์˜ฌ๋ฆฐ๋‹ค๋Š” ๋œป. javascript์—์„œ ์„ ์–ธ๋ฌธ์„ ๋Œ์–ด์˜ฌ๋ ค ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ . typescript๋Š” ๋ณต์žกํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ฝ”๋“œ ์—†์ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 2. ํ˜‘์—… ์‹œ์—๋‚˜ ์ถ”ํ›„์— ๋ณธ์ธ์ด ์ง  ์ฝ”๋“œ๋ฅผ ๋ณด์•˜์„ ๋•Œ ํƒ€์ž…์ด ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํ•˜๋‚˜..

[ESLint] The react-srcipts package provided by Create React App requires a dependency :: ์˜์กด์„ฑ ๋ฌธ์ œ
์›น (WEB)/์—๋Ÿฌํ•ด๊ฒฐ 2020. 12. 3. 14:42

์˜์กด์„ฑ ์—๋Ÿฌ ํ•ด๊ฒฐ ์—๋Ÿฌ ๋ฐœ์ƒ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. CRA๊ฐ€ ์ œ๊ณตํ•˜๋Š” react-scripts ํŒจํ‚ค์ง€๊ฐ€ eslint 6.6.0 ๋ฒ„์ „์— ์˜์กดํ•˜๋Š”๋ฐ, 7.2.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค. ์ € ๋ฐ‘์— ๋‚˜์˜ค๋Š” ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๋”ฐ๋ผํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค ใ…Ž... ์ €๋ฒˆ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๋กœ ์†์ฉ์—ฌ์„œ ์ด๋ฒˆ์—” ์ œ๋Œ€๋กœ ๊ฐ์žก๊ณ  ํ•ด๊ฒฐํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ด์œ  ๋ฐœ๊ฒฌ ์ด์œ ๋Š” ๊ตฌ๊ธ€๋งํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ(https://github.com/wesbos/eslint-config-wesbos/issues/17) , react-scripts์˜ eslint ์˜์กด์„ฑ ๋ฒ„์ „๊ณผ airbnb linting์—์„œ์˜ eslint ์˜์กด์„ฑ ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š์•„์„œ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋ป˜์ง“ ๊ทธ๋ž˜์„œ ์ผ๋‹จ react-scripts version์„ `npm view react-s..

[NERA ํ›„๊ธฐ] CSUOS ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•จ๊ป˜ํ•˜๋ฉด์„œ ๋Š๋‚€ ๊ฒƒ๋“ค
๋„์ ์ด๋Š” ๊ธ€/๊ฐœ๋ฐœ์ž๋กœ์„œ ๋„์ ์ด๋Š” ๊ธ€ 2020. 9. 7. 16:32

csuos ๋ธ”๋กœ๊ทธ์—๋„ ๊ฐ™์€ ๊ธ€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘‰ csuos.github.io/nera-review-heeeun ์•ˆ๋…•ํ•˜์„ธ์š”, CSUOS์˜ ์ฒซ ํ”„๋กœ์ ํŠธ NERA์—์„œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก๊ณ  ์žˆ๋Š” '์šฐํฌ์€'์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ(2020-09-04์ผ ๊ธฐ์ค€) CSUOS์˜ ๋ฉค๋ฒ„๋ฅผ ๋ชจ์ง‘ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํ˜น์‹œ๋‚˜ ์ง€์›์„ ๋ง์„ค์ด์‹œ๋Š” ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋ ๊นŒํ•ด์„œ ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ, CSUOS๋ฅผ ์ ‘ํ–ˆ์„ ๋•Œ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ ๋Š๋‚€ ์ ์ด๋‚˜ ์–ป์€ ๊ฒƒ๋“ค์„ ์ง„์†”ํ•˜๊ฒŒ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๐Ÿ˜ƒ CSUOS์˜ ์‹œ์ž‘ ์ฒ˜์Œ CSUOS๋ฅผ ์ ‘ํ•˜๊ฒŒ ๋œ ๊ฑด ํŽ˜์ด์Šค๋ถ์—์„œ ๋ชจ์ง‘๊ณต๊ณ ๋ฅผ ๋ณด์•˜์„ ๋•Œ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ NERA์˜ ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ €์ด์‹  '์ด์™„ํ•ด' ํ•™์šฐ๋‹˜์ด ์˜ฌ๋ฆฌ์‹  ๊ณต๊ณ ๋ฅผ ๋ณด๊ณ  ์ง€์›ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. NERA ๋ชจ์ง‘ ๊ณต๊ณ  : h..

[React] Hook์— ๋Œ€ํ•œ ์„ค๋ช… (useState, useEffect, ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊นŒ์ง€)
์›น (WEB)/๊ณต๋ถ€ 2020. 8. 2. 16:04

React Hook React ๊ณต์‹์‚ฌ์ดํŠธ ์ฐธ์กฐ : https://ko.reactjs.org/docs/hooks-intro.html Hook ์†Œ๊ฐœ Hook์€ ์–ด๋–ค ๊ฒƒ์ด๊ณ  ์™œ ๋‚˜์˜ค๊ฒŒ ๋˜์—ˆ์„๊นŒ? Hook์ด๋ž€? ์šฐ์„  Hook์€ React 16.8 ๋ฒ„์ „์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์ตœ์‹  ๊ธฐ๋Šฅ์œผ๋กœ, ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ณ ์ž ๋‚˜์˜จ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค. Hook์€ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ๋„ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค. ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ž€? // ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ import React, { Component } from 'react'; class App extends Component { render(){ return ( //jsx ); } } export default App; // ํ•จ์ˆ˜ํ˜•..