๊ฐœ๋ฐœ ๊ณต๋ถ€/๋ฐ๋ธŒ์ฝ”์Šค TIL

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240201 - ํ”ผ๊ทธ๋งˆ ์ปดํฌ๋„ŒํŠธ / Node.js ๊ธฐ์ดˆ

๊ฐ€์šค์ด 2024. 2. 1. 23:55

Intro


์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ์™€ Node.js์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

๋‚ด์ผ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ฒŒ ๋  ๋ฆฌ์•กํŠธ ๊ธฐ๋Œ€๊ฐ€ ๋œ๋‹ค.

 

 

 

 

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ

: ํ”ผ๊ทธ๋งˆ / Node.js


ํ”ผ๊ทธ๋งˆ - ์ปดํฌ๋„ŒํŠธ

  • ๋ ˆ์ด์–ด ํด๋ฆญ ์‹œ Create Component ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™” ๋œ๋‹ค. 

 

  • ์ปดํฌ๋„ŒํŠธ๋Š” ๋ ˆ์ด์–ด ์ƒ์œ„์— ์ƒ์„ฑ์ด ๋˜๊ณ  ์ตœ์ดˆ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋œ๋‹ค.
  • ๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฅธ ํŽ˜์ด์ง€์—์„œ๋„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ์— ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค์—๋„ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋œ๋‹ค.
  • ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅํ•˜๋‚˜ ๊ฐ€๊ธ‰์  ์ง€์–‘ํ•œ๋‹ค.
  • ๋…๋ฆฝ ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•ด์ œํ•˜๋Š” Detach Instance๋ฅผ ํด๋ฆญํ•ด์•ผ ํ•œ๋‹ค.
  • ์˜ค๋ฅธ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”์— ์žˆ๋Š” Properties๋Š” ๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค
    • variant: ์„ค์ •ํ•œ ์˜ต์…˜ ๊ฐ’์„ ์ธ์Šคํ„ด์Šค์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํ”ผ๊ทธ๋งˆ ์ปดํฌ๋„ŒํŠธ ์‹ค์Šต

 

  • variant์—์„œ ๊ฐ’์„ true/false๋‚˜ on/off๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค์—์„œ ์Šค์œ„์น˜ ์•„์ด์ฝ˜์œผ๋กœ ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค.

 

 

 

ํ”ผ๊ทธ๋งˆ - ๋ฐ˜์‘ํ˜• Constraints

 

 

  • CSS์—์„œ Position๊ณผ ์œ ์‚ฌํ•˜๋‹ค. (๋ถ€๋ชจ์— ๋งž์ถฐ ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ)
  • ํ”„๋ ˆ์ž„ ํ•˜์œ„ ๋ ˆ์ด์–ด ํด๋ฆญ ์‹œ Constraints ํ™œ์„ฑํ™” ๋จ
  • constraints: ์ œ์•ฝ, ์ œํ•œ
  • ์ˆ˜ํ‰, ์ˆ˜์ง ์กฐ์ • ๊ฐ€๋Šฅ
  • scale: ๋ถ€๋ชจ์˜ ๋„“์ด์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ์กฐ์ •์ด ๋จ
  • cmd + ํ”„๋ ˆ์ž„ resize๋ฅผ ํ•  ๊ฒฝ์šฐ, constraints ๊ด€๊ณ„ ์—†์ด ํ”„๋ ˆ์ž„ ์‚ฌ์ด์ฆˆ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘ฉ‍๐Ÿ’ป Top bar (header)์—๋Š” Left and right, Top์„ ์ฃผ๊ณ  Bottom bar (footer)๋Š” Left and right, Bottom์„ ์„ค์ •ํ•˜๋ฉด ๋ฐ˜์‘ํ˜• UI๋ฅผ ํŽธํ•˜๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ!!

 

 

min width, max width

  • ํ”ผ๊ทธ๋งˆ์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ
  • ์˜คํ† ๋ ˆ์ด์•„์›ƒ์ด ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • min width, max width ์„ค์ • ์‹œ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค์–ด/์ปค์ ธ๋„ min/max width ์ดํ•˜ ํฌ๊ธฐ๋กœ ์ค„์–ด๋“ค/์ปค์ง€์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 


 

Node.js ๊ธฐ์ดˆ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.

๊ธฐ์กด์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ์™ธ์—์„  ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ๋Š”๋ฐ Chrome ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ธ V8์—”์ง„์œผ๋กœ ๋ธŒ๋ผ์šฐ์ € ์™ธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ธ Node.js๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ดํ›„, ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

Node.js๋ฅผ ์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ธฐ์ˆ ๋กœ ์ž˜๋ชป ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฝค ์žˆ์œผ๋‚˜ Node.js๋Š” ๋‹จ์ˆœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ด๋‹ค.

(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฒŒ์ž„์ด๊ณ  Node.js๋Š” ๊ฒŒ์ž„์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒŒ์ž„๊ธฐ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.)'

 

 

Node.js ์„ค์น˜

 

https://nodejs.org/en

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

LTS(Long Term Support)๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ์•ˆ์ •์ ์ธ ๋ฒ„์ „์ด๋ผ๋Š” ๋œป์œผ๋กœ, ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด๋‚˜ ๊ฒฐํ•จ์— ๋Œ€ํ•œ ์œ ์ง€ ๋ณด์ˆ˜๋ฅผ ์˜ค๋žซ๋™์•ˆ ์ง€์›ํ•˜๋Š” ์˜๋ฏธ๋กœ LTS ๋ฒ„์ „์„ ์„ค์น˜ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

 

 

๋ชจ๋“ˆ ๋‚ด๋ณด๋‚ด๊ธฐ

require์ด๋ผ๋Š” Node.js ๋‚ด์žฅ ํ•จ์ˆ˜๋กœ ๋ชจ๋“ˆ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. (node.js์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„  ๋ถˆ๊ฐ€ํ•จ)

  • index.js
require('./calc')

console.log(calc.add(1, 2)) // 3
console.log(calc.sub(10, 2)) // 8
  • calc.js
const add = (a, b) => a + b
const sub = (a, b) => a - b

module.exports = {
  moduleName: 'calc-module',
  add: add,
  sub: sub
}

 

 

module.exports๋กœ ๋‚ด๋ณด๋‚ด๊ณ  require๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ชจ๋“ˆ ์‹œ์Šคํ…œ โžก๏ธ commonJS

์™ธ์—๋„ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์œผ๋กœ ES modules์ด ์กด์žฌํ•จ (import/export)

 

ํŒจํ‚ค์ง€ ์ƒ์„ฑ - NPM (Node Package Manager)

https://www.npmjs.com/

 

npm | Home

Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

  • npm init
    • node.js ํŒจํ‚ค์ง€ ์ดˆ๊ธฐํ™” ๋ช…๋ น์–ด
    • package.json์ด ์ƒ์„ฑ๋จ
  • package-lock.json
    • npm install์‹œ ์ƒ์„ฑ๋จ 
    • ์ •ํ™•ํ•œ ๋ฒ„์ „ ๋ช…์€ package-lock.json์—์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋งˆ๋ฌด๋ฆฌ


1/30์ผ ๊ฐ•์˜์™€ ์˜ค๋Š˜ ๊ฐ•์˜๋ฅผ ๋‹ค ๋“ค์—ˆ๋‹ค. ๐Ÿ˜ƒ

๋‚ด์ผ์€ 1/31์ผ ๊ฐ•์˜์™€ ๋‚ด์ผ ๊ฐ•์˜ ๋‹ค ๋๋‚ด์•ผ์ง€..!!