Javascript

    [React] ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ์™€ ๊ด€๋ จ Hooks ์ •๋ฆฌ

    [React] ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ์™€ ๊ด€๋ จ Hooks ์ •๋ฆฌ

    - ๋ผ์šฐํ„ฐ ๊ฐœ๋…์ดํ•ด + Link ๊ฐœ๋… - restful route ๊ฐœ๋… ์ดํ•ด - react hook ์ค‘์—์„œ useNavigate, useParams, useSearchParams์ดํ•ด Route๋Š” ๊ฒฝ๋กœ๋ž€ ๋œป์ด๋‹ค. ์›นํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค๊ณ , ์ด ๊ฐ๊ฐ์˜ ์›นํŽ˜์ด์ง€๋ฅผ ๊ฐ€๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์„ค์น˜ ๋ช…๋ น์–ด npm install react-router-dom BrowserRouter ๋‹ค๋ฅธ ์ฐฝ์˜ URL์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค import * as React from "react"; import * as ReactDOM from "react-dom"; import { BrowserRouter } from "react-router-dom"; ReactDOM.render( , root ); R..

    [Node.js] (8) ๊ฐœ๋ฐœ ํŽธ์˜ ์˜ฌ๋ ค! npm start์— nodemon ์ ์šฉํ•˜์—ฌ ์ €์žฅ์‹œ ์ž๋™์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ์„ค์ •ํ•˜๊ธฐ!

    package.json "start":"node app.js" ๋กœ ์„ค์ •ํ•ด์ฃผ์–ด npm start๋งŒ ํ•ด๋„ ์•ฑ์ด ๊ตฌ๋™๋จ์„ ์•Œ๋ ค์คŒ + ์‹œ์ž‘์  js๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Œ { "name": "node-test", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start":"node app.js" }, "author": "", "license": "ISC" } "start-server":"node app.js" ์‹์œผ๋กœ ๋ช…๋ช…ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•œ๋ฐ start๋Š” ํŠน์ˆ˜ํ•œ ๋ช…๋ น์–ด์ด๊ณ  start-server๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ช…๋ น์–ด์ด๋ฏ€๋กœ npm run ..

    [Node.js] (7) Node ๋ชจ๋“ˆ ์‹œ์Šคํ…œ ์‚ฌ์šฉ

    ํฌ์ŠคํŒ… (6)๊นŒ์ง€ ์™„์„ฑํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋Š” app.js ์•ˆ์—์„œ ์ฝ”๋“œ๊ฐ€ ๊ธธ๊ฒŒ ๋‚˜์—ด๋˜์–ด ์žˆ๋Š” ํ˜•์‹์ด์—ˆ๋‹ค. ๋…ธ๋“œ์˜ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•ด์„œ requestHandler๋ฅผ ๋งŒ๋“ค์–ด๋‹ฌ๊ณ , app.js๋ฅผ ๊ฐ€๋ณ๊ฒŒ ๋ฐ”๊พธ์–ด๋ณธ๋‹ค. app.js : ๋‹จ 4์ค„! const http = require('http'); const routes = require('./routes'); const server = http.createServer(routes); server.listen(3000); routes.js : app.js์— ์ฃผ๋ ์ฃผ๋  ๋‹ฌ๋ ค์žˆ๋˜ ์‘๋‹ต, ์š”์ฒญ, ํŒŒ์ผ์‹œ์Šคํ…œ ๋กœ์ง์„ ์ „๋ถ€ ์˜ฎ๊ฒจ์ฃผ์—ˆ๋‹ค. module.exports = requestHandler; { const url = req.url; const method = req.method; ..

    [Next.js] Next.js๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

    [Next.js] Next.js๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

    ํ™ˆํŽ˜์ด์ง€ ๋Œ€๋ฌธ์—๋Š” ํ”„๋กœ๋•์…˜์šฉ React ํ”„๋ ˆ์ž„์›Œํฌ ๋ผ๊ณ  ์จ์ ธ์žˆ๋Š” Next.js React ๊ฐœ๋ฐœ์ž์—๊ฒŒ, NextJS์˜ ์‚ฌ์šฉ์ด ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž React๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์ถ•์„ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ReactJS๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ํŒจํ‚ค์ง€๋กœ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. React๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํ˜ธ ์ž‘์šฉ์ด ๊ฐ€๋Šฅํ•œ(๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ๋ณต์žกํ•œ) ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„์‚ฌ์ด๋“œ ๋ Œ๋”๋ง : ํด๋ผ์ด์–ธํŠธ ์ธก์ด ์•„๋‹Œ ์„œ๋ฒ„ ์ธก์˜ ํŽ˜์ด์ง€ ์ƒ์— ๋ Œ๋”๋ง๋˜๋Š” ์ฝ˜ํ…์ธ  ์ฒ˜๋ฆฌ๋ฅผ ์˜๋ฏธํ•จ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง์ด ๋˜๋Š” ์ฆ‰, ์š”์ฒญ์ด ์„œ๋ฒ„๋กœ ๋„๋‹ฌํ•  ๋•Œ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์ด ์„œ๋ฒ„ ์ธก์—์„œ ์ฒ˜๋ฆฌ๋œ๋‹ค๋ฉด ๋ชจ๋“  ๋‚ด์šฉ์„ ํฌํ•จํ•œ ํŽ˜์ด์ง€๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๊ฒ€์ƒ‰ ์—”์ง„ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ์ œ๊ณต๋  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ..

    [Postman] Rest APIs ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํฌ์ŠคํŠธ๋งจ ์…‹์—…

    [Postman] Rest APIs ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํฌ์ŠคํŠธ๋งจ ์…‹์—…

    Get ์š”์ฒญ ์€ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค. ์ž‘์„ฑํ•ด๋‘” ๋ณ€์ˆ˜ base๋Š” {{base}}

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (6) npm ๋ฆฌ์•กํŠธ ๋กœ๋”ฉ์Šคํ”ผ๋„ˆ + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ์™„์„ฑ

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (6) npm ๋ฆฌ์•กํŠธ ๋กœ๋”ฉ์Šคํ”ผ๋„ˆ + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ์™„์„ฑ

    npm ๋ฆฌ์•กํŠธ ๋กœ๋”ฉ์Šคํ”ผ๋„ˆ https://www.npmjs.com/package/react-spinners react-spinners A collection of react loading spinners. Latest version: 0.13.7, last published: 7 days ago. Start using react-spinners in your project by running `npm i react-spinners`. There are 714 other projects in the npm registry using react-spinners. www.npmjs.com npm install --save react-spinners Example import { useState, CSSPrope..

    [Next.js] ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด๋ณด๊ธฐ

    npm init npm i next@9 npm i react react-dom package.json์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ { "name": "nodebird", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "next", "build": "next build" }, "author": "", "license": "ISC", "dependencies": { "next": "^9.5.5", "react": "^16.14.0", "react-dom": "^16.14.0" } } ํด๋” pages ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๊ทธ ์•ˆ์— ํŒŒ์ผ index.js ๋งŒ๋“ค๊ธฐ index.js const Home = () = { return( Hello ..

    [Node.js] (6) Single Thread, Event Loop & Blocking Code

    [Node.js] (6) Single Thread, Event Loop & Blocking Code

    ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ (Single JavaScript Thread ) NodeJs๋Š” ํ•˜๋‚˜์˜ JavaScript ์Šค๋ ˆ๋“œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด ์šด์˜ ์ฒด์ œ์—์„œ์˜ ํ”„๋กœ์„ธ์Šค๋กœ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ๋‹ค๋ฃจ๋Š”์ง€์˜ ๊ถ๊ธˆํ•ด์ง„๋‹ค. ๊ฐ ์š”์ฒญ๋งˆ๋‹ค ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, ๊ฒฐ๊ตญ ๋ชจ๋‘ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋  ๊ฒƒ. ์ด๋ฒคํŠธ๋ฃจํ”„ ( Event Loop ) ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” Node.js ๊ฐ€ ์‹œ์ž‘ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์‹œ์ž‘๋œ๋‹ค. ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์ด๋ฒคํŠธ ์ฝœ๋ฐฑ์„ ๋‹ค๋ฃฌ๋‹ค. ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ๋ฐ”๋กœ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ชจ๋“  ์ฝœ๋ฐฑ์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๋นจ๋ฆฌ ๋๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ ์ฝœ๋ฐฑ๋งŒ์„ ๋‹ค๋ฃฌ๋‹ค. ๋ญ๋‹ˆ๋ญ๋‹ˆํ•ด๋„ ์›๋ณธ ๋„ํ๋จผํŠธ๊ฐ€ ์ตœ๊ณ  ์•„๋‹ˆ๊ฒ ๋Š”๊ฐ€ : https://n..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (5) react one-way data flow + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ๊ณ„์† making

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (5) react one-way data flow + ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ ๊ณ„์† making

    ํฌ์ŠคํŒ… ์œ„์น˜ ๋„์‹œ๊ธฐ๋ฐ˜ ๋‚ ์”จ์•ฑ(4)์— ์ด์€ ๋งˆ๋ฌด๋ฆฌ ์ž‘์—… App.js๊ฐ€ ๋ชจ๋“  ๋กœ์ง์„ ๋‹ค ๊ฐ–๊ณ  ์žˆ๊ณ , ์ปดํฌ๋„ŒํŠธ์— ๋ณด๋‚ด์ฃผ๋Š” ์‹์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด๋ณด๋„๋ก ํ•œ๋‹ค. react one-way data flow ๋•Œ๋ฌธ์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ ํ˜•์ œ๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์–ด๋ ต๋‹ค. ๋ฆฌ์•กํŠธ ํŠน์ง• one-way reactive data flow https://tkssharma.gitbook.io/react-training/day-01/react-js-3-principles/one-way-data- The foundation of understanding component relationships in React and parent component hierarchyโ€ฆ Props stands for properties. It is ..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )

    1. ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ //1. ์•ฑ์ด ์‹คํ–‰๋˜์ž๋งˆ์ž ํ˜„์žฌ ์œ„์น˜ ๊ธฐ๋ฐ˜์˜ ๋‚ ์”จ๊ฐ€ ๋ณด์ธ๋‹ค. //2. ๋‚ ์”จ ์ •๋ณด์—๋Š” ๋„์‹œ, ์„ญ์”จ, ํ™”์”จ ๋‚ ์”จ ์ƒํƒœ //3. 5๊ฐœ์˜ ๋ฒ„ํŠผ์ด ์žˆ๋‹ค (1๊ฐœ๋Š” ํ˜„์žฌ ์œ„์น˜, 4๊ฐœ๋Š” ๋‹ค๋ฅธ ๋„์‹œ) //4. ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ 2. weather api https://openweathermap.org/api Weather API - OpenWeatherMap Please, sign up to use our fast and easy-to-work weather APIs. As a start to use OpenWeather products, we recommend our One Call API 3.0. For more functionality, please consider our products, ..