Javascript
![[React + Node ๊ฐ์ด ๋๋ ค์ก๊ธฐ] (3) ๋ฆฌ์กํธ ํด๋์ค ์ปดํฌ๋ํธ, ๋ผ์ดํ ์ฌ์ดํด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjRmDa%2FbtrSUrjSMyo%2Fb3SNvuxoyyasjK9GKOW36K%2Fimg.png)
[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) ๋ฆฌ์กํธ ๊ฐ์๋ฐ์๋ณด ๊ฒ์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp5l2E%2FbtrSJYWPUWq%2F4GO10XroTKRWb0OvKVdBI0%2Fimg.png)
[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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKBKy6%2FbtrSISgTVwU%2FJCJSJxmw36V0oF2D6cDuPK%2Fimg.png)
[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) ์์ฒญ๊ณผ ์๋ต ์ฐ๊ฒฐํ๊ธฐ, ๋ฒํผ ๊ฐ๋
(๋ฆฌ๋๋ ์
, ์ ์ ์
๋ ฅ๊ฐ ํ์ผ์์ฑ ํ ์ ์ฅ)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnTrOS%2FbtrS1JxpIEi%2FIBKoEd00O1Thqy8y8ahjM0%2Fimg.png)
[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) ์๋ต ์ ์ก](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbttedn%2FbtrRXFR3cZd%2FZTn3nDlWwiZo2o9xkBDja1%2Fimg.png)
[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) ์์ฒญ ๊ฐ์ฒด](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0fJb1%2FbtrRTtREJaO%2FXCekVKP4ibI869WVtEqZJk%2Fimg.png)
[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 ์๋ฒ ์์ฑ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FETBQS%2FbtrRRYbzFh6%2FNaDPJEzxaOWbz0MkaSYokk%2Fimg.png)
[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..