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

๋ชฉ๋ก๐Ÿ–Œ๏ธWeb (39)

ruriruriya

[React] ๋ฆฌ์•กํŠธ - Vite๋กœ React ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๋นŒ๋“œ ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•

Vite๋Š” ๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์šด ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ ๋„๊ตฌ๋กœ, ๊ธฐ์กด์˜ create-react-app๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ React ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 1๏ธโƒฃ Vite๋กœ React ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ๐Ÿ“ŒVite ์„ค์น˜ ๋ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑVite๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰- my-project ๋Š” ํ”„๋กœ์ ํŠธ ํด๋”๋ช…์ด๋‹ค. ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝnpm create vite@latest my-project --template react ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™ํ•œ๋‹ค.cd my-project ๐Ÿ“Œ ์˜์กด์„ฑ ์„ค์น˜์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด Vite ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.npm install 2๏ธโƒฃ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐVite์˜ ๊ฐ€์žฅ ํฐ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ๋น ๋ฅธ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ ์†๋„์ด๋‹ค.(์ถ”์ฒœ ์ด์œ )npm ru..

๐Ÿ–Œ๏ธWeb/React 2025. 3. 13. 20:05
[React] ๋ฆฌ์•กํŠธ - DOM(Document Object Model) ๊ฐœ๋…

React๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด DOM(Document Object Model)์ด๋ผ๋Š” ๊ฐœ๋…์ด ์ž์ฃผ ๋“ฑ์žฅํ•œ๋‹ค.React๋Š” ์ผ๋ฐ˜ DOM๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ƒ DOM(Virtual DOM)์„ ์‚ฌ์šฉํ•œ๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด ์ผ๋ฐ˜ DOM๊ณผ ๊ฐ€์ƒ DOM์˜ ์ฐจ์ด์ , ๊ทธ๋ฆฌ๊ณ  React์—์„œ DOM์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด์ž. 1๏ธโƒฃ DOM์ด๋ž€? โœ… DOM (๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ, Document Object Model)HTML ๋ฌธ์„œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์ด๋‹ค.์ฆ‰, ์›นํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.๐Ÿ“Œ DOM์˜ ์˜ˆ์‹œHTML์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์•ˆ๋…•, React! ํด๋ฆญโžก๏ธ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด HTML์„ DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.Document โ”œโ”€โ”€ โ”œโ”€โ”€ ..

๐Ÿ–Œ๏ธWeb/React 2025. 3. 10. 19:04
[React] ๋ฆฌ์•กํŠธ - ๊ฐ์ฒด(Object)๋ž€?

React์—์„œ **๊ฐ์ฒด(Object)**๋Š” ์ƒํƒœ(state)๋‚˜ props๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ์ฒด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†์„ฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. React์—์„œ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ๊ณผ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.1๏ธโƒฃ ๊ฐ์ฒด(Object)๋ž€?๊ฐ์ฒด๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ ํ•˜๋‚˜์˜ ๊ตฌ์กฐ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. JavaScript์—์„œ๋Š” {}(์ค‘๊ด„ํ˜ธ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.const user = { name: "์ฒ ์ˆ˜", age: 25, isAdmin: false};user๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , name, age, isAdmin์ด๋ผ๋Š” ์†์„ฑ์„ ๊ฐ€์ง„๋‹ค.์†์„ฑ ๊ฐ’์€ ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋  ์ˆ˜ ์žˆ๋‹ค. 2๏ธโƒฃ React์—์„œ ๊ฐ์ฒด๋ฅผ..

๐Ÿ–Œ๏ธWeb/React 2025. 3. 10. 17:55
[Spring Boot] ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ํ™˜๊ฒฝ์„ค์ •

์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ™˜๊ฒฝ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.0. Tool ์ค€๋น„IDE๋Š” STS(Spring Tool Suite)๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด์œ ๋Š” ํšŒ์‚ฌ์—์„œ ์‹ค๋ฌด๋กœ IntelliJ๋Š” ๋น„์‹ธ๊ณ  vscode๋Š” ์จ๋ดค์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹จ ์ƒ๊ฐ์ด ์•ˆ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— STS๋ฅผ ์„ ํƒํ–ˆ๋‹ค.1. ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐPackage Explorer -> Create new Spring Starter Project ํด๋ฆญ New Spring Starter Project ์ฐฝ์ด ๋œจ๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜๊ณ  Next > ๋ฒ„ํŠผ ํด๋ฆญName : ํ”„๋กœ์ ํŠธ ๋ช…์„ ์ž‘์„ฑLocation : ํ”„๋กœ์ ํŠธ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ์ž‘์„ฑType : Gradle (์‹ค๋ฌด์—์„œ๋Š” Maven์ผ ์ˆ˜๋„ ์žˆ์Œ..)Packaging : JarJava Version : 17..

[React] ๋ฆฌ์•กํŠธ - React Router๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋” ํ‘ธํ„ฐ ๊ณ ์ •ํ•˜๊ธฐ(BrowserRouter, Routes, Route)

BrowserRouter, Routes, Route๋Š” react-router-dom ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋กœ, React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ผ์šฐํŒ…์„ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.์‰ฝ๊ณ  ์‹ฌํ”Œํ•œ ์ฝ”๋“œ๋กœ ํ—ค๋”์™€ ํ‘ธํ„ฐ๋ฅผ ๊ณ ์ •ํ•ด๋ณด์ž.1. BrowserRouter, Routes, Route1-1. BrowserRouter BrowserRouter๋Š” HTML5์˜ History API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ UI๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  URL์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ผ์šฐํ„ฐ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ์‹ธ์ ธ์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.import { BrowserRouter as Router } from 'react-router-dom';const App = () => ( ..

๐Ÿ–Œ๏ธWeb/React 2024. 5. 20. 23:07
[React] ๋ฆฌ์•กํŠธ - React์—์„œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ๋งŒ๋“ค๊ธฐ(react-router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)

react์—์„œ๋Š” ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ?react-router ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ชจ๋“ˆํ™” ์‹œํ‚ค๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ผ์šฐํŒ… ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. react-router ์ฃผ์š” ๊ธฐ๋Šฅ๋™์  ๋ผ์šฐํŒ…( Dynamic Routing) : ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ •  URL์— ์ ‘๊ทผํ•  ๋•Œ ํ•ด๋‹น URL์— ํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง๋ผ์šฐํŠธ ๊ฐ€๋“œ(Route Guards) : ์‚ฌ์šฉ์ž ์ธ์ฆ ์ƒํƒœ ๋“ฑ์— ๋”ฐ๋ผ ํŠน์ • ๋ผ์šฐํŠธ๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Œ.๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ : 'Outlet'๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ์„ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ์ „๋žต : ๋กœ๋”ฉ๊ณผ ํŽ˜์นญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ 'Loader' ๊ธฐ๋Šฅ์ด ์ œ๊ณต์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…(Code Splitting) :  'React.lazy'์™€ 'Suspense'๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ผ์šฐํŠธ๋งŒ ๋กœ๋“œํ•˜๊ณ , ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ ..

๐Ÿ–Œ๏ธWeb/React 2024. 5. 7. 22:47
[React] ๋ฆฌ์•กํŠธ - props ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

React์˜ props๋Š” ํ•œ๋งˆ๋””๋กœ ์–˜๊ธฐํ•˜๋ฉด '์†์„ฑ'์ด๋‹ค.์‹ค์ œ๋กœ properties์˜ ์ค„์ž„๋ง! props๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ, ์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.์ฃผ๋กœ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ใ…—๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.1. props ์‚ฌ์šฉ๋ฐฉ๋ฒ•  props ์ „๋‹ฌํ•˜๊ธฐ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ props๋ฅผ ์ „๋‹ฌํ•  ๋•Œ,HTML ํƒœ๊ทธ ์†์„ฑ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค. props ์‚ฌ์šฉํ•˜๊ธฐ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ „๋‹ฌ๋ฐ›์€ props๋ฅผ ์ด์šฉํ•˜์—ฌ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ๋กœ์ง์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.// ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธfunction App() { return ( ์‚ฌ์šฉ์ž ์ •๋ณด );}// ์ž์‹ ์ปดํฌ๋„ŒํŠธfun..

๐Ÿ–Œ๏ธWeb/React 2024. 4. 29. 22:47