Javascript

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด

    0. ํ•œ๋ˆˆ์— ๋น„๊ตํ•˜๋Š” ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ vs ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ 1. ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ shortCut : rcc (ํ•จ์ˆ˜ ์ปดํผ๋„ŒํŠธ ์ƒ์„ฑ์€ : rafce : react arrow function component export) import React, { Component } from 'react' export default class AppClass extends Component { render() { return ( AppClass ) } } function์ด class๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. AppClass.js : ํด๋ฆญ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฒ„ํŠผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ import React, { Component } from 'react'; import './App.css'; export default class ..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„

    ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„ Box 2๊ฐœ ๋งŒ๋“ค๊ธฐ(๋‚˜ ๋ฒ„์ „, ์ปดํ“จํ„ฐ ๋ฒ„์ „) src ์•„๋ž˜์— component ํด๋” ๋งŒ๋“ค๊ณ  Box.js ๋งŒ๋“ค์–ด์คŒ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ ๋‹จ์ถ•ํ‚ค : ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” ๋‹จ์ถ•ํ‚ค : rafce ๋‹จ์ถ•ํ‚ค๊ฐ€ ์•ˆ๋‚˜์˜ฌ ๊ฒฝ์šฐ ์„ค์น˜ extention ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค์‹œ ์ฃผ์˜์‚ฌํ•ญ: ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์€ ๋ฐ˜๋“œ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ ๋ฆฌ์•กํŠธ๊ฐ€ ์ปดํฌ๋„ŒํŠธ์™€ ์ผ๋ฐ˜ HTMLํƒœ๊ทธ(,๋“ฑ..)์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํƒœ๊ทธ๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ด๋‹ค ๋”ฐ๋ผ์„œ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘์„ ํ•˜๋ฉด ์ผ๋ฐ˜ HTMLํƒœ๊ทธ๋กœ ๋ถ„๋ฅ˜ํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ! App.js / Box.js / App.css ์ฝ”๋“œ (1) ์œ ์ €๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด ๋ฒ„ํŠผ (2) ์œ ์ €๊ฐ€ ์„ ํƒํ•œ ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด ์ด๋ฏธ์ง€๊ฐ€ ๋ณด์—ฌ์ง€๋Š” UI ์„ธํŒ… (3) ์ปดํ“จํ„ฐ ์ถœ๋ ฅ ๊ฐ€์œ„, ๋ฐ”์œ„, ..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state

    React! ๋Š” ๊ฐ’์˜ ๋ณ€ํ™”์— react ๋ฐ˜์‘ํ•˜๋‹ค๋ž€ ์ปจ์…‰์— ๊ฑธ๋งž๊ฒŒ ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ ๋งˆ๋‹ค getElementById~ innerText~ ์ผ์ผํžˆ ํ•ด์ฃผ๋˜๊ฑธ ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ฐ’์ด ๋ณ€ํ•˜๋ฉด UI๋„ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. -> State state๊ฐ€ ๋ณ€ํ•˜๋ฉด UI๊ฐ€ ๋ณ€ํ•˜๊ฒŒ ํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํด๋” ์ƒ์„ฑ mkdir react-test cd react-test npx create-react-app ํด๋”๋ช… ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” npx create-react-app rsp ๋กœ ํ•จ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‹œ๊ฐ„ ์ข€ ๊ฑธ๋ฆผ. cd rsp code . ํ•˜๋ฉด ๋ฐ”๋กœ ์„ธํŒ…๋œ ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ด๋ฆฐ๋‹ค. 1. App.js App.css ์ •๋ฆฌ App.css ํŒŒ์ผ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ ์ง€์›Œ์ค€๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด์ค€๋‹ค. impor..

    [Node.js] (5) ์š”์ฒญ๊ณผ ์‘๋‹ต ์—ฐ๊ฒฐํ•˜๊ธฐ, ๋ฒ„ํผ ๊ฐœ๋… (๋ฆฌ๋””๋ ‰์…˜, ์œ ์ €์ž…๋ ฅ๊ฐ’ ํŒŒ์ผ์ƒ์„ฑ ํ›„ ์ €์žฅ)

    [Node.js] (5) ์š”์ฒญ๊ณผ ์‘๋‹ต ์—ฐ๊ฒฐํ•˜๊ธฐ, ๋ฒ„ํผ ๊ฐœ๋… (๋ฆฌ๋””๋ ‰์…˜, ์œ ์ €์ž…๋ ฅ๊ฐ’ ํŒŒ์ผ์ƒ์„ฑ ํ›„ ์ €์žฅ)

    (1)~(4)๊นŒ์ง€๋Š” ์„œ๋ฒ„๋ฅผ ์Šคํ•€ ์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ, ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ์š”์ฒญ ๊ฐ์ฒด๋ฅผ ๋ฐ›๊ณ , ์‘๋‹ต์„ ๋Œ๋ ค์ค„ ์ˆ˜ ์žˆ๋Š” ์‘๋‹ต ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜์˜€๋‹ค. ํ„ฐ๋ฏธ๋„ ์„œ๋ฒ„ ์ข…๋ฃŒ ctrl + c ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ node app.js 1. ์‹ค์Šต์šฉ ์›น์„œ๋ฒ„ ์ฝ”๋“œ ์ž‘์„ฑ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ค€๋‹ค. const url = req.url; url์ด ๋ญ”์ง€์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋‚ด์šฉ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋„๋ก ํ•˜์ž. if (url === '/') { const http = require('http'); const server = http.createServer((req, res) => { const url = req.url; if (url === '/') { res.write(''); res.write(''); res.write(..

    [Node.js] (4) ์‘๋‹ต ์ „์†ก

    [Node.js] (4) ์‘๋‹ต ์ „์†ก

    const http = require('http'); const hostname = '127.0.0.1'; const port = 3001; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/html'); res.write(''); res.write(''); res.write('Hello from my Node.js Server!'); res.write(''); res.end('Hello Node'); //์ด ์‹œ์ ๋ถ€ํ„ฐ๋Š” ๋” ์ด์ƒ ์•„๋ฌด ๊ฒƒ๋„ ์ž…๋ ฅํ•ด์„œ๋Š” ์•ˆ๋จ //์ด ๋ถ€๋ถ„์€ ์šฐ๋ฆฌ๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ์ „์†กํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ, Node.js๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ re..

    [Node.js] (3) ์š”์ฒญ ๊ฐ์ฒด

    [Node.js] (3) ์š”์ฒญ ๊ฐ์ฒด

    const http = require('http'); const hostname = '127.0.0.1'; const port = 1080; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); console.log(req); res.end('Hello World'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); }); console.log(req); ์š”์ฒญ ๊ฐ์ฒด ํ—ค๋”๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ฆ‰, ์š”์ฒญ ๋ฐ ์‘๋‹ต์— ์ถ”๊ฐ€๋œ ๋ฉ”ํƒ€ ..

    [Node.js] (2) Node์˜ ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฐ ์ด๋ฒคํŠธ ๋ฃจํ”„

    const http = require('http'); const server = http.createServer((req, res) => { console.log(req); }); server.listen(3000); ์œ„ ์ฝ”๋“œ๋กœ ์ƒ์„ฑํ•œ ์„œ๋ฒ„๋Š” ์ œ๋Œ€๋กœ ๊ธฐ๋Šฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„์ง ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. Node.js๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„ ์ž‘์—…์ด ๋‚จ์•„ ์žˆ๋Š” ํ•œ ๊ณ„์†ํ•ด์„œ ์ž‘๋™ํ•˜๋Š” ๋ฃจํ”„ ํ”„๋กœ์„ธ์Šค๋กœ, ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๊ฐ€ ์žˆ๋Š”ํ•œ ๊ณ„์† ์ž‘๋™ํ•œ๋‹ค. ๋“ฑ๋ก ํ›„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์•˜๋˜ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(createServer์— ๊ณ„์†๋˜๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ)๋Š” ์„œ๋ฒ„๊ฐ€ ๊ณ„์† ์šด์˜๋˜๊ธฐ ์œ„ํ•ด ์ œ๊ฑฐํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ฝ”์–ด ๋…ธ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ด ์ด๋ฒคํŠธ ๋ฃจํ”„์— ์˜ํ•ด ๊ด€๋ฆฌ๋œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•  ๋•Œ๋„ ๋ฐ์ดํ„ฐ ์š”์ฒญ์„ ๋„ฃ์œผ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ..

    [Node.js] (1) ์ฒซ ์‹œ์ž‘, Node ์„œ๋ฒ„ ์ƒ์„ฑ

    [Node.js] (1) ์ฒซ ์‹œ์ž‘, Node ์„œ๋ฒ„ ์ƒ์„ฑ

    ๋ฏธ๋ฆฌ๋ณด๊ธฐ const http = require('http'); const server = http.createServer((req, res) => { console.log(req); }); server.listen(3000); ์ค€๋น„ : ํ”„๋กœ์ ํŠธ, ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ ์„ค๋ช…์„œ https://nodejs.dev/en/learn/ Introduction to Node.js Getting started guide to Node.js, the server-side JavaScript runtime environment. Node.js is built on top of the Google Chrome V8 JavaScript engine, and it's mainly used to create web servers - b..

    [Node.js] ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ํด๋” ์ด๋ฆ„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ›์•„์˜ค๊ธฐ

    node app.js ํŒŒ์ผ๋ช… ์œผ๋กœ ์‹คํ–‰ํ•ด์ฃผ๋ฉด, var os = require('os'); const path = require('path'); const folder = process.argv[2]; const workingDir = path.join(os.homedir(), 'Pictures', folder); if (!folder || !fs.existsSync(workingDir)) { console.error('Please enter a folder name in Picture'); } console.log('Working Directory: ' + workingDir); - process.argv ๊ธธ์ด๊ฐ€ 3์ธ ๋ฐฐ์—ด - process.argv[2] ํŒŒ์ผ๋ช… -const workingDir = pat..

    ๋ฐฐ์—ด์˜ ํ•จ์ˆ˜๋“ค

    ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๋ฐ˜ํ™˜ ์œ„์™€ ๊ฐ™์ด ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ์Šคํƒ€์ผ๋กœ ๋ถ„๋ฅ˜ ๊ฐ€๋Šฅ const ์ฃฝs = ['๋‚™์ง€์ฃฝ','์ „๋ณต์ฃฝ','ํ˜ธ๋ฐ•์ฃฝ','ํ••์ฃฝ']; //ํŠน์ •ํ•œ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋ฐฐ์—ด์ธ์ง€ ์ฒดํฌ console.log(Array.isArray(์ฃฝs)); // true console.log(Array.isArray({})); //false //ํŠน์ •ํ•œ ์•„์ดํ…œ์˜ ์œ„์น˜๋ฅผ ์ฐพ์„ ๋•Œ console.log(์ฃฝs.indexOf('ํ˜ธ๋ฐ•์ฃฝ')); //2 //๋ฐฐ์—ด ์•ˆ์— ํŠน์ •ํ•œ ์•„์ดํ…œ์ด ์žˆ๋Š”์ง€ ์ฒดํฌ console.log(์ฃฝs.includes('ํ˜ธ๋ฐ•์ฃฝ')); // true console.log(์ฃฝs.includes('์•ผ์ฑ„์ฃฝ')); //false // ์•„์ดํ…œ ์ถ”๊ฐ€ : ์ œ์ผ ๋’ค // ๋ฐฐ์—ด ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝ ์ฃฝs.push('์ฐธ์น˜์ฃฝ'); con..