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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (311)

Daehyunii's Dev-blog

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-119 Vue, ๋ผ์ดํ”„ ์‚ฌ์ดํด, ํ…œํ”Œ๋ฆฟ ๋ฌธ๋ฒ•, Proxy

Vue๋ž€? ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. Vue 3 ๋ฒ„์ „์ด ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์ด๋ฉฐ, Vue 2 ๋ฒ„์ „์—์„œ Vue 3 ๋ฒ„์ „์œผ๋กœ ๋„˜์–ด๊ฐ€๊ณ  ์žˆ๋Š” ๊ณผ๋„๊ธฐ์ด๋‹ค. ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ทฐ ๋ ˆ์ด์–ด๋งŒ ์ดˆ์ ์„ ๋งž์ถ”์–ด ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์™€ ํ†ตํ•ฉ์ด ์‰ฝ๋‹ค. ๋ ˆ์ด์•„์›ƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค. 1. ์„ ์–ธ์  ๋ Œ๋”๋ง ๊ฐ„๋‹จํ•œ ํ…œํ”Œ๋ฆฟ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ DOM์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ์™€ DOM์ด ์—ฐ๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ๋ฐ˜์‘ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€” ๋•Œ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํ™”๋ฉด๋„ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ฐ˜์‘์„ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฐ˜์‘ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์„ ์–ธํ•˜๊ณ  ํ™”๋ฉด์— ๋ Œ๋”๋งํ•ด๋ณด์ž. ์ฐธ๊ณ ๋กœ setInterval() ์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” this๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ณณ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™”์‚ดํ‘œํ•จ์ˆ˜๋กœ..

var/let/const ํ‚ค์›Œ๋“œ

๋ณ€์ˆ˜ ์„ ์–ธ์˜ ์‹คํ–‰ ์‹œ์ ๊ณผ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ๋ณ€์ˆ˜ ์„ ์–ธ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๋‹จ๊ณ„์— ๊ฑฐ์ณ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ ์–ธ ๋‹จ๊ณ„ : ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ๋“ฑ๋ก(์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ๋ ‰์‹œ์ปฌ ํ™˜๊ฒฝ)ํ•ด์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ๋ณ€์ˆ˜์˜ ์กด์žฌ๋ฅผ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„ : ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ณ  ์•”๋ฌต์ ์œผ๋กœ undefined๋ฅผ ํ• ๋‹นํ•ด ์ดˆ๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค. (const ์ œ์™ธ) console.log(score); // undefined var score = 'Hello World' console.log(score); // 'Hello World' var hoisting = '์„ ์–ธ๋ฌธ์ด ์Šค์ฝ”ํ”„์˜ ์„ ๋‘๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์˜ ๊ณ ์œ ํ•œ ํŠน์ง•์ธ ํ˜ธ์ด์ŠคํŒ… ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค' var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ํŠน์ง• 1. ๋ณ€..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-115 CSS Grid

Grid๋ž€? 2์ฐจ์› ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค. row์™€ column 2๊ฐœ์˜ ์ถ•์„ ์‚ฌ์šฉํ•ด์„œ ๋ ˆ์ด์•„์›ƒ์„ ์ž‘์—…ํ•œ๋‹ค. display: grid๋ฅผ ์ ์šฉํ•œ ๊ณณ์„ grid container๋ผ๊ณ  ํ•˜๊ณ , ๊ทธ ํ•˜์œ„ ์š”์†Œ๋“ค์„ grid items๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ˆ˜ํ‰ ์ •๋ ฌ ์‹œ, grid ๋˜๋Š” inline-grid๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. grid: grid container๊ฐ€ block ์š”์†Œ์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์ˆ˜์ง ์ •๋ ฌ, ๊ฐ€๋กœ ๋„ˆ๋น„๋ฅผ ์ตœ๋Œ€๋กœ, ์„ธ๋กœ ๋„ˆ๋น„๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋ ค๋Š” ํŠน์ง• inline-grid: grid container๊ฐ€ inline ์š”์†Œ์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์ˆ˜ํ‰ ์ •๋ ฌ, ๊ฐ€๋กœ ์„ธ๋กœ ๋„ˆ๋น„๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋ ค๋Š” ํŠน์ง• grid container์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 1. grid-template-rows ํ–‰ ์ถ•์˜..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-114 Float, Position, Flex

Float ์ˆ˜ํ‰์ •๋ ฌ ๋ ˆ์ด์•„์›ƒ์—์„œ ์‚ฌ์šฉํ•˜๊ธด ํ•˜์ง€๋งŒ, ์š”์ฆ˜์€ ๋Œ€๋ถ€๋ถ„ flex๋กœ ํ•œ๋‹ค. float๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์š”์†Œ๋“ค๋งŒ ํ˜•์ œ์š”์†Œ๋กœ ๋ฌถ๊ณ , ๋ถ€๋ชจ์— clearfix ํด๋ž˜์Šค๋ฅผ ์ ์šฉํ•ด์„œ ๊ด€๋ฆฌํ•ด์•ผ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค. float๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด flex, inline-flex, grid๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” display๊ฐ€ block์œผ๋กœ ๋ฐ”๋€๋‹ค. 1. Float ํ•ด์ œ ๋ฐฉ๋ฒ• float๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ ์š”์†Œ์— ์˜ํ–ฅ์ด ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— float ์†์„ฑ์„ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๋‹ค. ์ด 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•˜๋‚˜, 3๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. clear๋ฅผ ์ ์šฉํ•  ๋งˆ์ง€๋ง‰ ์š”์†Œ์˜ ๋‹ค์Œ ํ˜•์ œ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ถ€๋ชจ์— overflow: hidden์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ::after๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  clear๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ::after๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ..

[๋ฐ๋ธŒ์ฝ”์Šค] TIL-113 module, promise

ES6 module ์ด๋ž€? 1. import export ํ‚ค์›Œ๋“œ๋กœ ๋‚ด๋ณด๋‚ด์ง„ ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. import๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์›น ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์šฐ๋ฆฌ๋Š” npx serve ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ์›น์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ณ  ์žˆ์–ด ์ƒ๊ด€์—†๋‹ค. from ์ดํ›„ ๋ชจ๋“ˆ ์ด๋ฆ„ ๋งจ ๋’ค์— .js๋ฅผ ๋นผ๋จน์ง€ ์•Š์•˜๋Š”์ง€ ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค. import defaultExport from 'module-name; ์œ„์˜ ๊ฒฝ์šฐ์—๋Š” module-name ๋‚ด์— export default๋กœ ๋‚ด๋ณด๋‚ด์ง„ ๊ฒƒ์„ ๊ฐ€์ ธ์˜จ๋‹ค. ๋ณดํ†ต ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— export default๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค. import * as allItems from 'module-name' ์œ„์˜ ๊ฒฝ์šฐ์—๋Š” module-name ๋‚ด์—์„œ e..