๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge (167)

Daehyunii's Dev-blog

JSX๋ž€?

JSX๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ™•์žฅ ๋ฌธ๋ฒ•์ด๋ฉฐ XML๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค. ์šฐ์„  JSX๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜๊ธฐ ์ „ ๋ฒˆ๋“ค๋ง๋˜๋Š” ๊ณผ์ •์—์„œ ๋ฐ”๋ฒจ์„ ํ†ตํ•ด ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž. JSX function App() { return ( Hello react ) } ๋ณ€ํ™˜ function App() { return React.createElement("div", null, "Hello", React.createElement("b", null, "react")) } ์ด ์ฒ˜๋Ÿผ JSX๋ฅผ ํ†ตํ•ด์„œ ์šฐ๋ฆฌ๋Š” JavaScript๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋“ค์„ ๊ฐ„๋žตํ•˜๊ณ  ์‹œ๊ฐ์ ์œผ๋กœ๋„ ๋ณด๊ธฐ ์ข‹๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•œ ๋งˆ๋””๋กœ JSX๋Š” ๋ณด๊ธฐ ์‰ฝ๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋œ๋‹ค. ๋˜ํ•œ JSX ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ..

React, useEffect, useRef, props

React๋ž€? 1. React ์†Œ๊ฐœ ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ์ตœ๋Œ€์˜ ํšจ์œจ์„ ๋‚ด๊ธฐ ์œ„ํ•จ์ด๋‹ค. 2. React ํŠน์ง• Reactive Programming์ด๋‹ค. React๋Š” ์ƒํƒœ๋ฅผ ๊ด€์ฐฐํ•˜๊ณ  ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์—ฐ๊ด€๋œ ๊ณณ์—์„œ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋œ๋‹ค. MVC์—์„œ ๋ฆฌ์•กํŠธ๋Š” V๋งŒ ๊ด€๋ฆฌํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ View๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝ์ ์ธ ๊ฐ์ฒด์ด๋ฉฐ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์— ์‚ฌ์šฉ๋œ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์กฐํ•ฉ์œผ๋กœ View๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. Virtual DOM์ด๋‹ค. ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ•œ ๋ฒˆ์— ๋ Œ๋”๋งํ•œ๋‹ค. ์„ฑ๋Šฅ๋ณด๋‹ค๋Š” ๊ฐœ๋ฐœ์„ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. 2. create-react-app, JSX 2.1 create-react-app ์ƒˆ๋กœ์šด ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋งŒ..

classํ˜• ์ปดํฌ๋„ŒํŠธ - shouldComponentUpdate( )

shouldComponentUpdate ๋ผ์ดํ”„ ์‚ฌ์ดํด ๋ฉ”์„œ๋“œ ๋ Œ๋”๋ง์‹œ state, props์˜ ๋ณ€๊ฒฝ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ Œ๋”๋ง ๋  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” ์ตœ์ ํ™”์— ์œ ์šฉํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด click๋ฒ„ํŠผ์ด ์žˆ๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ์šฉ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค. click ์ด๋ฒคํŠธ๋ฅผ ๋„ฃ์–ด์คฌ์ง€๋งŒ click์„ ์—ฌ๋Ÿฌ๋ฒˆ ๋ˆ„๋ฅด๋”๋ผ๋„ ๊ณ„์†ํ•ด์„œ ๋™์ผํ•˜๊ฒŒ ๋นˆ ๊ฐ์ฒด๋กœ setStateํ•˜๊ธฐ ๋•Œ๋ฌธ์— state๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ์—ฌ๋Ÿฌ๋ฒˆ์˜ click์—๋„ state๋Š” ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์—†๋‹ค. ๋ฆฌ์•กํŠธ์˜ ํ•ต์‹ฌ์€ '์ƒํƒœ๊ฐ€ ๋ณ€ํ™”ํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ๊ทธ๋ฆฐ๋‹ค!' ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ์—์„œ ๋ฆฌ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ด๋‹ค. state๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜, props๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง๋˜๋ฉด ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋„ ๊ฐ™์ด ๋ฆฌ๋ Œ๋”๋ง๋˜๋Š” ๊ฒฝ์šฐ 3๊ฐ€์ง€ ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด..

web 1.0 / web 2.0 / web 3.0

์›น์ด๋ž€? 'World Wide Web'์˜ ์ค„์ž„๋ง๋กœ, ์ธํ„ฐ๋„ท ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๐Ÿ“š์œ ๋ž˜ 1989๋…„ 'ํŒ€ ๋ฒ„๋„ˆ์Šค ๋ฆฌ'์— ์˜ํ•ด์„œ ๋ถ™์—ฌ์ง„ ์ด๋ฆ„์ด ํ˜„์žฌ๊นŒ์ง€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์›น์€ ์ •๋ณด๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ๊ฐ€ ์‹ค์ด ์—‰์ผœ ์žˆ๋Š” ๊ฑฐ๋ฏธ์ค„ ๋ชจ์–‘๊ณผ ์œ ์‚ฌํ•ด ๊ฑฐ๋ฏธ์ค„์„ ์˜๋ฏธํ•˜๋Š” 'Web'์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์›น์€ ์‚ฌ์šฉ์ž๋“ค์ด ์ •๋ณด๋ฅผ ๋‚˜๋ˆ„๋Š” ์ •๋ณด์˜ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ด ์ค๋‹ˆ๋‹ค. ์›น์€ ํ•˜์ดํผํ…์ŠคํŠธ ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ธํ„ฐ๋„ท์ƒ์˜ ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ์ •๋ณด๋ฅผ ์„œ๋กœ ์—ฐ๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค. ์›น์€ ํƒ„์ƒ ์ด๋ž˜๋กœ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ฐœ์ „ํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ดˆ๊ธฐ ๋‹จ๊ณ„์ธ ์›น 1.0, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ต์ˆ™ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์›น2.0 ๊ทธ๋ฆฌ๊ณ  ์ด์ œ๋Š” ์›น3.0์œผ๋กœ ๋‚˜์•„๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์›น ๋’ค์— ์žˆ๋Š” ์ˆซ์ž๋Š” ์›น์˜ ๋ฐœ์ „ ๋‹จ๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.) ์›น 1.0..

var/let/const ํ‚ค์›Œ๋“œ

๋ณ€์ˆ˜ ์„ ์–ธ์˜ ์‹คํ–‰ ์‹œ์ ๊ณผ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๋‹จ๊ณ„์— ๊ฑฐ์ณ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธ ๋‹จ๊ณ„ : ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋“ฑ๋ก(์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ)ํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ๋ณ€์ˆ˜์˜ ์กด์žฌ๋ฅผ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ : ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ์•”๋ฌต์ ์œผ๋กœ undefined๋ฅผ ํ• ๋‹นํ•ด ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค. (const ์ œ์™ธ) console.log(score); // undefined var score = 'Hello World' console.log(score); // 'Hello World' var hoisting = '์„ ์–ธ๋ฌธ์ด ์Šค์ฝ”ํ”„์˜ ์„ ๋‘๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์˜ ๊ณ ์œ ํ•œ ํŠน์ง•์ธ ํ˜ธ์ด์ŠคํŒ… ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค' var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ํŠน์ง• 1. ๋ณ€..