Posts by Year

2023

2022 ํšŒ๊ณ 

๋œฌ๊ธˆ์—†๋Š” ํšŒ๊ณ  ๐Ÿ’ฆ ใ…Žใ…Ž;; ํ•œ๋™์•ˆ ์ •๋ฆฌ๋‚˜ ๊ธ€์„ ์•ˆ ์“ฐ๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ํšŒ๊ณ ๋ฅผ ์“ฐ์ž๋‹ˆ ์ข€ ๊ทธ๋ ‡์ง€๋งŒ ํ•œ ํ•ด ์ •๋ฆฌ๋Š” ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ํ‚ค๋ณด๋“œ๋ฅผ ๋‘๋“œ๋ฆฌ๊ณ  ์žˆ๋‹ค. ์ž‘๋…„ 4์›”๋ถ€ํ„ฐ ์ผ์ ์œผ๋กœ๋‚˜ ๊ฐœ์ธ์ ์œผ๋กœ ๋ฐ”๋น ์„œ ์ž”๋””๋‚˜ ๊ฐœ์ธ์ ์ธ ๊ณต๋ถ€๋ฅผ ๋ช‡ ๋ฒˆ ๋นผ๋จน๊ฒŒ ๋˜๋”๋‹ˆ ์ญ‰ ์•ˆํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ญ ๊ทธ๋ž˜๋„ ์ด๋ฒˆ๋…„๋„๋ถ€ํ„ฐ(์Œ...

Back to top ↑

2022

Rust - chapter 10-3 Validate Refrerences with Lifetimes

Rust ๊ณต์‹๋ฌธ์„œ(๋งํฌ) ์™€ Rust ๋น„๊ณต์‹ ๋ฒˆ์—ญ ๋ฌธ์„œ(๋งํฌ) ์ฑ•ํ„ฐ 10-3 ๋ผ์ดํ”„ํƒ€์ž„์„ ์ด์šฉํ•œ ์ฐธ์กฐ์ž ์œ ํšจํ™”๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค.

Rust - chapter 10-2 trait

Rust ๊ณต์‹๋ฌธ์„œ(๋งํฌ) ์™€ Rust ๋น„๊ณต์‹ ๋ฒˆ์—ญ ๋ฌธ์„œ ์ฑ•ํ„ฐ 10-2 trait๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค.(๋งํฌ) ์›๋ž˜ ๊ณต์‹ ๋ฌธ์„œ๋Š” ์˜์–ด์ธ์ง€๋ผ ๋น„๊ณต์‹ ๋ฒˆ์—ญ ๋ฌธ์„œ๋ฅผ ์œ„์ฃผ๋กœ ๋ณด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ๋ฒˆ์—ญ๊ธ€์—์„œ ์—†๋Š” ๋‚ด์šฉ์ด ๊ณต์‹ ๋ฌธ์„œ์— ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ  ๊ฐ™์ด ๋„ฃ์—ˆ๋‹ค. ์—ญ์‹œ ์›๋ฌธ ๋ฌธ์„œ๋ฅผ ๋ณด๋Š” ๊ฒƒ...

Rust - chapter 10-1 generic

Rust ๋ฌธ์„œ ์ฑ•ํ„ฐ 10-1 ์ œ๋„ˆ๋ฆญ์„ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค.(๋งํฌ)

Rust - chapter 9 error handling

Rust ๋ฌธ์„œ ์ฑ•ํ„ฐ 9 ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค.(๋งํฌ)

Rust - chapter 8 quiz

8 ์ฑ•ํ„ฐ ๋งˆ์ง€๋ง‰ ์ •๋ฆฌ์— ํ€ด์ฆˆ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์‰ฝ๊ฒ ๊ฑฐ๋‹ˆ ํ–ˆ๋Š”๋ฐ ๋‚˜ํ•œํ…Œ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์› ๋‹ค. ๐Ÿฅถ ํ’€๊ธฐ๋Š” ์ง€๋‚œ์ฃผ์— ํ’€์—ˆ๋Š”๋ฐ ์ •๋ฆฌ์ฐจ ์˜ฌ๋ ค๋ณธ๋‹ค. ๋งํฌ ์ตœํ•˜๋‹จ์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. &, * ๋กœ ๊ทธ๋ฆฌ๊ณ  ์†Œ์œ ๊ถŒ ๋“ฑ ํ‰์†Œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐœ๋…์ด๋‹ค ๋ณด๋‹ˆ ํ™•์‹คํžˆ ๋‚ฏ์„ค์—ˆ๋‹ค.

Book - Clean Code

๊ธ‰์ž‘์Šค๋ ˆ ๋ญ” ์ฑ…์ธ๊ฐ€ ์‹ถ๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์‚ฌ๋‘๊ณ  ์ธํ…Œ๋ฆฌ์–ด์šฉ์œผ๋กœ ๋‚ก์•„๊ฐ€๊ณ  ์žˆ๋Š” ์ฑ…๋“ค์ด ๋งŽ์•„์„œ ํ•˜๋ฃจ์— ์กฐ๊ธˆ์”ฉ์ด๋ผ๋„ ์ฝ์–ด๋ณด๊ธฐ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. ๐Ÿ”ฅ ์ž‘์‹ฌ์‚ผ์ผ์ด ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ผ๋‹จ ์‹œ์ž‘ํ•ด๋ณด์ž ๐Ÿ˜“

Rust - chapter 8-1(์ปฌ๋ ‰์…˜-๋ฒกํ„ฐ)

๋‹ค๋ฅธ ์–ธ์–ด์—๋„ ์กด์žฌํ•˜๋Š” ์ปฌ๋ ‰์…˜์€ ๋‹ค์ˆ˜์˜ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์นญํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋Ÿฌ์ŠคํŠธ์—์„œ๋Š” ๋ฐฐ์—ด๊ณผ ํŠœํ”Œ๋„ ๋‹ค์ˆ˜์˜ ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ปฌ๋ ‰์…˜์˜ ๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํž™์— ์ €์žฅ์ด ๋˜๋ฉฐ, ์ด๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ๊ฒฐ์ •๋˜์ง€ ์•Š๊ณ  ๋Ÿฐํƒ€์ž„ ์ค‘์— ๋ณ€๋™์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค...

Rust - chapter 7(๋ชจ๋“ˆ)

๊ณต์‹ ๋ฌธ์„œ - ๋ฒˆ์—ญ๊ธ€์˜ 7๋ฒˆ์งธ ์ฑ•ํ„ฐ ์ •๋ฆฌ 'Hello world!' ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๋™์ž‘์€ ํ•œ ํŒŒ์ผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ ๊ฒฝ์šฐ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์กฐ์งํ™”๋ฅผ ์œ„ํ•ด์„œ ๊ธฐ์ค€๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ฒŒ ๋˜๊ณ  ๋Ÿฌ์ŠคํŠธ๋Š” ๋ถ„๋ฆฌ๋œ ์ฝ”๋“œ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

JS - Functional ๋น„๋™๊ธฐ์„ฑ1

ํ•จ์ˆ˜๋ฅผ ํ•ฉ์„ฑํ•˜๋‹ค๋ณด๋ฉด ์ค‘๊ฐ„์— ๋น„๋™๊ธฐ์ ์ด ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋น„๋™๊ธฐ ์ƒํ™ฉ์„ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š”์ง€ ์ ์–ด๋ณด์ž. ๋ชจ๋‚˜๋“œ์™€ ํด๋ ˆ์ด์Šฌ๋ฆฌ ํ•ฉ์„ฑ์˜ ๊ฒฝ์šฐ๋Š” ์•„์ง ์ž‘์„ฑ์ž๋„ ์ œ๋Œ€๋กœ ์ดํ•ด ๋ชป ํ–ˆ์œผ๋ฉฐ, ์ง์ ‘ ์ฐพ์•„๋ณด๊ณ  ์ดํ•ดํ•˜์‹œ๊ธธ ๋ถ€ํƒ๋“œ๋ฆฐ๋‹ค.

2021 ํšŒ๊ณ 

๋ฒŒ์จ 2์›”์ด์ง€๋งŒ 2021 ํšŒ๊ณ  ๐Ÿง 

JS - ์ง€์—ฐํ‰๊ฐ€ 2

JS - ์ง€์—ฐํ‰๊ฐ€ ์™€ ์ด์–ด์ง€๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ์ ์ธ ๋‚ด์šฉ๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ•จ์ˆ˜๋“ค๋งŒ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Rust - chapter 3

๊ณต์‹ ๋ฌธ์„œ - ๋ฒˆ์—ญ๊ธ€์˜ 3๋ฒˆ์งธ ์ฑ•ํ„ฐ ์ •๋ฆฌ

Rust - chapter 2

๊ณต์‹ ๋ฌธ์„œ - ๋ฒˆ์—ญ๊ธ€์˜ 2๋ฒˆ์งธ ์ฑ•ํ„ฐ ์ •๋ฆฌ

Rust - Hello world

๋Ÿฌ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ์‚ฌํ•ญ๊ณผ ์ƒ๊ฐ ๊ฐ„๋‹จ ์ •๋ฆฌ

Vim - ์„ธํŒ…

์–ด์ œ ์˜ค๋Š˜ ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ์—ด์–ด์„œ ํ™•์ธํ•  ์ผ์ด ๋งŽ์•˜์—ˆ๋Š”๋ฐ ์—๋””ํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋ฐ‹๋ฐ‹ํ•œ๊ฑฐ ๊ฐ™์•„์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ถ”๊ฐ€ ์…‹ํŒ…ํ–ˆ๋‹ค. Vim ์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๋ถ„๋“ค๋ณด๋ฉด VSCode ๋ž‘ ์ „ํ˜€ ์•ˆ ๊ฟ€๋ฆฌ๋˜๋ฐ ๊ทธ ์ •๋„๊นŒ์ง€๋Š” ๋ชปํ•˜๊ฒ ๊ณ  ์ƒ‰๊น” ๋„ฃ๊ณ  ์ธ๋ดํŠธ ์„ค์ • ์ •๋„๋งŒ ํ•˜์˜€๋‹ค. โ˜ ๏ธ ๊ตฌ๊ธ€๋ง ์ตœ์ƒ๋‹จ์— ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด...

Rust - ์‹œ์ž‘ํ•˜๊ธฐ

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์•„์ง ํšŒ๊ณ ๋ก์„ ์•ˆ ์ผ๋Š”๋ฐ ๊ธˆ๋…„๋„์— Rust ๋ฅผ ๊ฐ€๋ณ๊ฒŒ ์–ด๋–ค ์–ธ์–ด์ธ์ง€ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ ์‚ฌ๋‚ด์— ์Šคํ„ฐ๋””๋ฅผ ํ•˜์ž๊ณ  ํ•˜์˜€๋‹ค๊ฐ€ POC ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ใ…Žใ…Ž;; ๐Ÿ’ฆ

JS - ์ง€์—ฐ ํ‰๊ฐ€

๊ทธ๊ฐ„ ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ํšจ์œจ์„ฑ์„ ์ƒ๊ฐํ•  ๋•Œ ์ฆ‰์‹œํ‰๊ฐ€์— ๋Œ€ํ•ด์„œ ๊ณ ๋ คํ•ด๋ณธ ์ ์ด ์—†๋‹ค. ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋Š” lazy-loading ๋ฅผ ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์šฉํ–ˆ์œผ๋ฉด์„œ ์ง€์—ฐ์„ฑ์— ๋Œ€ํ•ด ์ง„์ง€ํ•˜๊ฒŒ ๊ณ ๋ฏผํ•ด๋ณธ ์ ์ด ์—†๋‹ค. ๐Ÿงจ ์ง€์—ฐ ํ‰๊ฐ€์— ๊ด€๋ จํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•œ ๋ฉ”๋ชจ.

JS - Functional programming ๊ธฐ์ดˆ

(์ž„์ธ๋…„๐Ÿฏ ์ƒˆํ•ด ์ฒซ ๊ธ€์ด๋‹ค. ํšŒ๊ณ ๋„ ์กฐ๋งŒ๊ฐ„ ํ•ด์•ผ์ง€โ€ฆ)

Back to top ↑

2021

JS - iterable ์นœํ•ด์ง€๊ธฐ

์ „๊ฐœ์—ฐ์‚ฐ์ž, ์ œ๋„ˆ๋ ˆ์ดํ„ฐ.. ๊ธฐ์กด์— ์•Œ๋˜ ๊ฐœ๋…์ด์ง€๋งŒ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ๊ด€์ ์—์„œ๋Š” ์ƒ๊ฐํ•ด๋ณธ์ ์ด ์—†๋Š”๊ฑฐ ๊ฐ™์•„ ์ •๋ฆฌํ•˜๋Š” ๋ฉ”๋ชจ.

JS - ECMAScript proposals

StateOfJs Survey ๋ฅผ ํ•˜๋˜ ๋„์ค‘ ์ƒ๊ฐ๋ณด๋‹ค ๋ชจ๋ฅด๋Š” ๊ธฐ๋Šฅ์ด ๋งŽ๊ธธ๋ž˜ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ ์˜ค๋žœ๋งŒ์— TC39 - Finished proposal ๋ฅผ ๋“ค์–ด๊ฐ€๋ดค๋‹ค. ๐Ÿš€

JS - fetch

10์›” ๋ง์— ๋‹ค์น˜๊ณ  ๋ถ€ํ„ฐ ์ƒํ™œํŒจํ„ด์ด ๊ผฌ์ด๋”๋‹ˆ ์ˆœ์‹๊ฐ„์— 2๋‹ฌ ๊ฐ€๋Ÿ‰ ํ๋ฅธ๊ฑฐ ๊ฐ™๋‹ค. ๊ทธ๋ƒฅ ๊ฒŒ์„๋Ÿฌ์กŒ๋‹ค.. ๐Ÿ„ ์—ฐ๋ง์ด ๋˜๋‹ˆ ๋ฒˆ๋œฉ ์ •์‹ ์ด ๋“ค๋”๋ผ.. ใ…Žใ…Ž; ๐Ÿ’ฆ

JS - readyState, defer, async..

์ž‘์ผ์— ์ž‘์„ฑ๋œ JS - ๋ฌธ์„œ์™€ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ๊ณผ ํ•ด๋‹น ๊ธ€์€ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋ชจ๋˜ JavaScript ํŠœํ† ๋ฆฌ์–ผ - ๋ฌธ์„œ์™€ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ๋ฅผ ๋ณด๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๊ธ€๋กœ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ขŒ์ธก์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ๋ณด์‹œ๋Š”๊ฒŒ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

JS - ๋ฌธ์„œ์™€ ๋ฆฌ์†Œ์Šค ๋กœ๋”ฉ

๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฌธ์„œ๋ฅผ ์—ด ๋•Œ ์ž‘์—… ์ง„ํ–‰ ์ •๋„์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋งŽ์€ ๊ฒƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ๋‚ด์šฉ์ด ์žˆ๋Š” ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ ์ดํƒˆํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ๊ณ ์ฐฝ ๋“ฑ์ด ์žˆ๊ฒ ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฌธ์„œ๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ.

JS - Web Workers

JS ๋ผ๊ณ  ์นดํ…Œ๊ณ ๋ฆฌ์— ๋„ฃ๊ธฐ๋Š” ํ•˜์˜€์ง€๋งŒ Web workers ๋Š” JS๊ฐ€ ์•„๋‹ˆ๋ผ Web API ์ด๋‹ค. ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋™์ž‘ํ•˜๋Š” JS์—์„œ ๋ณต์ˆ˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

JS - DataView

ArrayBuffer ๋ฅผ view ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ธ DataView ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ

AWS - CodeDeploy Error

๋ณธ๋ž˜ ๊ฐœ์ธ์ ์œผ๋กœ GCP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์ง€๋งŒ(๋”ฑํžˆ ๋ญ˜ ํ•œ๊ฑฐ ์•„๋‹ˆ์ง€๋งŒ ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜์— ๋งŒ๋“ค๊ณ  DNS ์ข€ ์“ฐ๋‹ค๊ฐ€ ์‹œ๊ฐ„์ด ๋‹ค ๊ฐ€๋ฒ„๋ ธ๋‹คโ€ฆ) ๋ฌด๋ฃŒ ํฌ๋ ˆ๋”ง๋„ ๋‹ค ๋–จ์–ด์ง„ ์ฐธ์— ํšŒ์‚ฌ์—์„œ๋„ AWS๋ฅผ ์ด์šฉ์ค‘์ด๊ธฐ์— AWS๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ณ ์ž ํ•˜์˜€๋‹ค. Lightsail๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ  CodeDep...

JS - TypedArray

์ €๋ฒˆ์— ์ž ๊น ArrayBuffer ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๋ฉด์„œ ์–ธ๊ธ‰ํ•œ TypedArray ์˜ค๋ธŒ์ ํŠธ์— ์ •๋ฆฌ๊ธ€์ด๋‹ค. ์ด ์—ญ์‹œ ์•„์ง ์‚ฌ์šฉํ•ด๋ณธ ์ ์ด ์—†๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์•Œ๊ฒŒ๋˜์—ˆ์œผ๋‹ˆ ๋ฉ”๋ชจ

Errors - React setting

React webpack ์„ค์ • ์ค‘ ๋งŒ๋‚ฌ๋˜ ์—๋Ÿฌ ์ •๋ฆฌ ์ž‘์„ฑ์ž์˜ ์›์ธ์„ ์ •๋ฆฌํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ™์€ ์—๋Ÿฌ๋ผ๋„ ์›์ธ์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

Errors - ๊ฒช์€ ์—๋Ÿฌ ๋ชจ์Œ

์ง€๋‚œ์ฃผ์— ๊ฒช์—ˆ๋˜ ์—๋Ÿฌ ๋ชจ์Œ. ํฐ ์‹œ๊ฐ„์„ ์•ˆ ๋“ค์ด๊ณ  ํ•ด๊ฒฐํ•˜์˜€๋˜ ๊ฑด๋“ค์ด๋ผ ํ•œ๊บผ๋ฒˆ์— ์ž‘์„ฑํ•จ. โ˜ ๏ธ ์ž‘์„ฑ์ž๊ฐ€ ํ•ด๊ฒฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์—†์Œ. macOS ํ™˜๊ฒฝ์—์„œ ๊ฒช์€ ์—๋Ÿฌ๋“ค์ด๋‹ค.

JS - event

์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ํด๋ฆญํ•˜๊ณ  ๋งˆ์šฐ์Šค๋ฅผ ์›€์ง์ด๊ณ  ๋‹ค์–‘ํ•œ ํ–‰๋™์„ ํ•˜๊ฒŒ ๋˜๊ณ  JS์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ–‰๋™์— ๋Œ€ํ•ด ์ •์˜ํ•˜๊ณ  ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ์–ด๋– ํ•œ ๋™์ž‘์„ ํ• ์ง€ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค๋ช…์ด ์ด์ƒํ•œ๊ฑฐ ๊ฐ™์€๋ฐ;; ๐Ÿ˜“ ์ขŒ์šฐ์ง€๊ฐ„ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ.

Diary - react ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค

Vue, React ์˜ ์ฐจ์ด์  ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ผฝ์œผ๋ผ๋ฉด ํŠน์ • ๊ธฐ๋Šฅ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ด์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํƒ์ง€์˜ ํญ๋„ ํ•˜๋‚˜ ํฌํ•จ๋˜๋Š”๊ฑฐ ๊ฐ™๋‹ค. ๐Ÿ˜‚ React ๋ฅผ ์“ฐ๊ฒŒ ๋  ๊ฒฝ์šฐ ์„ ํƒ์ง€๊ฐ€ ๋งŽ๋‹ค. ์žฅ์ ์ด์ž ๋‹จ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

JS - ArrayBuffer

์•„์ง๊นŒ์ง€ ์‚ฌ์šฉํ•ด๋ณธ์ ์€ ์—†์ง€๋งŒ ๊ฐ„๊ฐ„ํžˆ ์ ‘ํ•ด๋ดค๋˜ ArrayBuffer ์— ๋Œ€ํ•œ ๊ฐ„๋žต ๋ฉ”๋ชจ

JS - DOM

Vue.js ๋‚˜ React.js ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ์„ ํ†ตํ•ด js ์— ์ ‘ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์— DOM ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ผ์ด ๋งŽ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ DOM(Document Object Model)์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค.

Web - ๋ช…์„ธ์„œ ๋ชจ์Œ

์‚ฌ์‹ค ๋ง‰ ๊ณต๋ถ€๋ฅผ ํ•œ ์‹œ์ ์—์„œ๋Š” ๋ช…์„ธ์„œ๋ฅผ ์ฐพ์•„๋ณด๋Š” ์ผ์€ ๋ณ„๋กœ ์—†๋Š” ๊ฑฐ ๊ฐ™๋‹ค. ์–ด๋А์ •๋„ ์‹œ์ ์—์„œ ํ•„์š”์˜ ์˜ํ•ด ์ฐพ์•„๋ณด๋Š” ์ผ์ด ๋ฐœ์ƒํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

JS - module

JS๋Š” ์ฒ˜์Œ ๋งŒ๋“ค์–ด์งˆ ๋‹น์‹œ ์Šคํฌ๋ฆฝํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“ˆ ๊ด€๋ จ ๋ฌธ๋ฒ•์ด ์—†์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๊ธฐ ์‹œ์ž‘ํ•˜๋ฉฐ ES6์— ํ‘œ์ค€์œผ๋กœ ๋“ฑ๋ก๋˜์—ˆ๊ณ , ์ด์ „์— Node.js ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ๋ฒ•์€ CommonJS ์ด๋‹ค.

React - createPortal, forwardRef

React์˜ createPortal, forwardRef API ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ ๊ฐœ์ธ์ ์ธ ๋ฉ”๋ชจ์ธ์ง€๋ผ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜์˜ ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์ด๋กญ๋‹ค.

JS - bit ์—ฐ์‚ฐ์ž

์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๊ฐ€์žฅ ๊ทผ๋ณธ์ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„ํŠธ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด ๋ฉ”๋ชจํ•˜๋ คํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„ Byte ๋Š” 8bit ๊ฐ€ ๋ชจ์—ฌ์„œ ์ด๋ฃจ๋Š” ๋‹จ์œ„์ด๊ณ , 1bit ์˜ ๊ฐ’์€ 0, 1 ์ด๋‹ค.

JS - private, protected

์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด ์ ‘๊ทผ์ œ์–ด์ž(Access Modifier)๋ฅผ ๊ธฐ์–ตํ•˜์‹ค ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋„ ์Šฌ์Šฌ ๋„์ž…๋˜๋ ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

JS - Promise

JS๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™๊ธฐ๋กœ ์‹คํ–‰์ด ๋˜๋ฉฐ ๋น„๋™๊ธฐ๋กœ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ํ˜„์žฌ๋Š” Promise ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. ์ด Promise ์— ๋Œ€ํ•œ ๊ฐ„๋žตํžˆ ๋ฉ”๋ชจํ•ด๋ณด๋ คํ•œ๋‹ค.

CD - Bitbucket, AWS

Bitbucket, AWS CodeDeploy ๋ฅผ ์ด์šฉํ•œ CD ๊ฐ„๋‹จ ์ •๋ฆฌ ํ–ฅํ›„ ๋ฒ„์ „ ๋ณ€๊ฒฝ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋™์ž‘ ๋ฐฉ์‹์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ๋™์ž‘ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ!

Node - husky, lint-staged

CI/CD ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •์— ์žˆ์–ด์„œ ์ €์žฅ์†Œ ์ฝ”๋“œ๋ฅผ build ํ•  ๋•Œ lint ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์ด ๊นจ์ ธ์„œ ๋‹ค์‹œ ๋Œ๋ฆด ๊ฒฝ์šฐ ์‹œ๊ฐ„์ด ์•„๊นŒ์›Œ์„œ husky ์™€ lint-staged ๋ฅผ ๋™๋กํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

Postgresql - collate

์—…๋ฌด ์ค‘ ์ •๋ ฌ์ด ์ด์ƒํ•˜๋‹ค๋Š” ์ด์Šˆ๊ฐ€ ๋“ค์–ด์™”๋‹ค. ๋ณด์•„ํ•˜๋‹ˆ ์ฟผ๋ฆฌ๋กœ ์ •๋ ฌ(order by)ํ•˜์—ฌ ์กฐํšŒ ์ค‘์ด์˜€๋‹ค. ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์˜€๋‹ค.

React - ์ถ”๊ฐ€์  hooks

๋ฆฌ์•กํŠธ ๊ณต์‹๋ฌธ์„œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ hooks ์™ธ ์ถ”๊ฐ€์ ์ธ hooks ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ

Postgresql - explain

์—…๋ฌด ์ค‘์— ํŠน์ • ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ ๋‚˜์˜จ๋‹ค๋Š” ์ด์Šˆ๊ฐ€ ๋“ค์–ด์™”๋‹ค. ๋ฌด์–ธ์ธ๊ณ  ํ™•์ธ ํ•ด๋ณด๋‹ˆ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์†๋„๊ฐ€ 7s ๊ฑธ๋ฆฌ๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ’ฆ

Webpack - ๊ธฐ์ดˆ

๋ชจ๋˜ํ”„๋ ˆ์ž„์›Œํฌ(?) Vue, React๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ์„ ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ค„ ๋•Œ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ œ๋Œ€๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ์—(JSX๋‚˜ ESNext ๋“ฑ..) build๋ฅผ ํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ์ด ๋™์ž‘์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ Webpack ์ด๋‹ค.

JS - ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ”ํžˆ ๋“ฃ๊ฒŒ๋˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ๊ด€๋ จํ•˜์—ฌ ๊ธฐ์ดˆ์ ์ธ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.

JS - Decorator

๋จธ์ง€์•Š์€ ๊ณผ๊ฑฐ์— ํšก๋‹จ๊ด€์‹ฌ์‚ฌ์— ๋Œ€ํ•ด ๋„์ ์˜€๋‹ค. ๊ด€๋ จํ•˜์—ฌ JS์—์„œ๋Š” Proxy ๊ฐ์ฒด์™€, Decorator ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์Šทํ•œ ์ ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„ ๋ฉ”๋ชจํ•œ๋‹ค. Decorator๋งŒ ๐Ÿ’ฆ

React - Controlled/Uncontrolled Component

FE ์˜์—ญ์—์„œ ๋นผ๋†“์„ ์ˆ˜ ์—†๋Š” ๋ถ€๋ถ„์€ ์ƒํƒœ๊ด€๋ฆฌ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฌํ•œ ๋ถ€๋ถ„์— ์žˆ์–ด React ๋ฅผ ํ•™์Šตํ•˜๋˜ ์ค‘ ์•Œ๊ฒŒ๋œ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋…์„ ๋ฉ”๋ชจํ•œ๋‹ค.

Node - npm script ์†์„ฑ

npm ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋“ค์€ package.jsonํŒŒ์ผ์„ ์ง€๋‹ˆ๊ฒŒ ๋œ๋‹ค. package.json ํŒŒ์ผ ๋‚ด์—๋Š” scripts ๋ผ๋Š” ์†์„ฑ์ด ์žˆ๊ณ , ํ•ด๋‹น ์†์„ฑ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ง€์›ํ•˜๋Š” ์†์„ฑ๋“ค์ด ์žˆ๋‹ค.

Web - HTTP ํ—ค๋”

์ž‘์—… ์ค‘ ์š”์ฒญ์— ๋Œ€ํ•œ ํ—ค๋”๋ฅผ ์„ค์ •ํ•  ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ, ๋ฌธ๋“ ๋Œ€์†Œ๋ฌธ์ž ์—ฌ๋ถ€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค. ์ „์—๋„ ํ•œ ๋ฒˆ ์ฐพ์•„๋ดค๋˜ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊นŒ๋จน์—ˆ๊ธฐ์— ๋ฉ”๋ชจํ•ด๋‘”๋‹ค.

Diary - 1px ๋ณด๋‹ค ์–‡์€ ์„ 

1px ๋ณด๋‹ค ์–‡์€ ์„ ์„ ๋งŒ๋“ค์–ด์•ผ๋˜๋Š” ์ผ์ด ์žˆ์—ˆ๋‹ค. ์•„๋ฌด์ƒ๊ฐ ์—†์ด 0.7px ์„ ๋„ฃ์—ˆ์œผ๋‚˜ ์‹คํŒจ!

JS - fucntion

๊ฐ์ฒด์—๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์žˆ๋‹ค. JS ์—์„œ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์ธ๋ฐ ๊ทธ๋Ÿผ ํ”„๋กœํผํ‹ฐ๋Š”? ์ด์— ๋Œ€ํ•œ ๊ฐ„๋žต ๋ฉ”๋ชจ

React - routing

React routing ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ

Diary - Java encoding issue

Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์—ˆ๋Š”๋ฐ ํŠน์ • ๋„๋ฉ”์ธ์—์„œ ๋ฉ”์ผ ์ œ๋ชฉ์ด ?????? ๋กœ ๋‚˜์˜ค๋Š” ํ˜„์ƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค!! ๐Ÿ˜ต

JS - ์žฌ๊ท€ ๊นŠ์ด ์ œํ•œ

๋ชจ๋˜ JavaScript ํŠœํ† ๋ฆฌ์–ผ ์„ ๋ณด๋‹ค๊ฐ€ ๊นŠ์ด์— ๋Œ€ํ•œ ์ œํ•œ์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์–ด ๋ฉ”๋ชจ

JS - JSON

JSON (JavaScript Object Notation) ์€ ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํฌ๋งท์œผ๋กœ, RFC 4627 ์— ์ •์˜๋˜์–ด ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ๋ชฉ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ํฌ๋งท์ด๋‹ค. ์˜ˆ์ „์— ์ƒ๊ฐ์—†์ด ๋”ฅ์นดํ”ผ๋ฅผ ํ•˜๋ ค๊ณ  ๋งŽ์ด ์ผ์—ˆ๋‹ค.. ใ…Žใ…Ž; ์•Œ์•„๋‘๋ฉด ์ข‹์€ ๋ฉ”์„œ๋“œ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Diary - Bitbucket issue

์˜ค๋Š˜ ํ•œ๋™์•ˆ ์ˆ˜์ •ํ•  ์ผ ์—†์–ด์„œ ์ ‘๊ทผ์„ ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทผ๋ฐ ๋ถ€๋ชจ๋“ˆ์— ์ ‘๊ทผํ•˜๋ ค ํ•˜๋‹ˆ ๊ฐ‘์ž๊ธฐ ์—๋Ÿฌ๊ฐ€โ€ฆ!!? (์ €์žฅ์†Œ๋Š” Bitbucket ์„ ์“ฐ๊ณ  ์žˆ๋‹ค.)

React - CRA

React CRA ๋‚ด์šฉ ๋ฉ”๋ชจ, Vue-CLI ์˜ create ์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์…‹ํŒ…์„ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ

React - Lifecycle

React ์˜ LifeCycle ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. Vue ์™€ ๋น„์Šทํ•˜๊ฒŒ ์ด๋ฏธ ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ํ›…์„ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์ƒ์„ฑ๊ณผ ์ œ๊ฑฐ ์‚ฌ์ด ์‹œ์ ์— ์›ํ•˜๋Š” ๋™์ž‘์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

React - Get Started

React ์‹œ์ž‘ํ•˜๊ธฐ - ์˜ˆ์ „๋ถ€ํ„ฐ React ๋ฅผ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•ด์•ผ์ง€ ํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€, ์ž ๊น ํ–ฅ๋งŒ ๋งก๊ณ  ๋ง์•˜์—ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ๋ผ๋„ Next.js ๋ฅผ ์จ๋ณด๋Š”๋ฐ ๊นŒ์ง€ ๋ชฉํ‘œ๋ฅผ ์žก๊ณ  ๊ฐ€๋ณด๋ ค ํ•œ๋‹ค.

SELECT DISTINCT, ORDER BY expressions must appear in select list

๊ธˆ์ผ sql ๋ฅผ ๋งŒ์ง€๋‹ค๊ฐ€ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ์ด๋‹ค. ์ „์—๋„ ๊ฒช์—ˆ๋˜ ๋ฌธ์ œ๊ณ  ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋“ค์ง„ ์•Š์•˜์ง€๋งŒ ํ˜น์‹œ ๋ชฐ๋ผ ๋ฉ”๋ชจํ•ด๋‘”๋‹ค.

Diary - ์ •.์ฒ˜.๊ธฐ ์‹ค๊ธฐ

ํ•™๊ต ๋‹ค๋‹ ๋•Œ ๋„ˆ๋ฌด ๋†€์•˜๋Š”์ง€ ์ •.์ฒ˜.๊ธฐ. ์‹œํ—˜์„ ์ด์ œ ์ค€๋น„ํ•˜๊ณ  ์žˆ๋‹ค.

Postgresql - Date, Time

DB ์—์„œ ๊ฐ’์„ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜ ์œ ํšจํ•œ ๊ฐ’์„ ์ฐพ๊ฑฐ๋‚˜ ํ•˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„ ๊ด€๋ จํ•˜์—ฌ ๋งŽ์ด ์“ฐ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ ์ค‘์—์„œ ์ข€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ ์–ด๋‘๋ ค ํ•œ๋‹ค.

UI/UX - ๋Œ€๊ธฐ์ค‘โณ

๋‹น์—ฐํ•œ ์ด์•ผ๊ธฐ์ด์ง€๋งŒ ํ•œ๊ตญ ์‚ฌ๋žŒ์€ ๋นจ๋ฆฌ๋นจ๋ฆฌ ๋˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค. ์„ธ๊ณ„์ ์œผ๋กœ๋„ ๊ทธ๋Ÿฌํ•œ๊ฑฐ ๊ฐ™๋‹ค. ์›น์˜ ๋กœ๋”ฉ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๋ฐ˜์‘์ด ์—†์œผ๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋‹ค ๋‚˜๊ฐ„๋‹ค. ๐Ÿ’€

JS, CSS - CSS ๋ณ€์ˆ˜ ์‚ฌ์šฉ

CSS ์—์„œ๋„ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ ํ•  ๋•Œ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค. ์ผ๊ด„์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํ•˜๋ฉด ์ผ์ผ์ด ๋‹ค ๋ฐ”๊ฟ€ ํ•„์š”๋ฅผ ๋œ์–ด์ฃผ๊ณ  ํ•˜๋Š” ๋“ฑ์˜ ์ด์ ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  JS ์—์„œ๋„ ํŠน์ • ์ƒํ™ฉ์— ์ด ๊ฐ’์„ ๋ณ€๋™ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

Vue - dynamic component

Vue ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์ข…์ข… ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ๋‚˜ ๋ฐ”๊ฟ”์•ผ ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ทผ๋ฐ ์ด๊ฒŒ router ๋ฅผ ๊ฑฐ์ณ์„œ ์ด๋™๋˜๋Š” ๊ทธ๋Ÿฐ ์‚ฌํ•ญ์€ ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

Diary, Vue - ์‚ฝ์งˆ..

error ๋ผ๊ณ  ํ• ๋งŒํ•œ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ๊ทธ๋ƒฅ ์˜ค๋Š˜ ์˜คํƒ€์—์„œ ํ•œ์ฐธ ํ•ด๋งจ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์‚ฝ์งˆ์ด๋‹ค.

Diary - ์‚ฝ์งˆ - Redirect

์–ด๋А์ƒˆ 6์›”โ€ฆ ์ถœ๊ทผ๊ธธ์ด ์ ์  ํž˜๋“ค์–ด์ง€๊ณ  ์žˆ๋‹ค. ๐Ÿ˜“ ์˜ค๋Š˜๋„ ์–ด๊น€์—†์ด ์‚ฝ์งˆํ•œ ๋‚ด์šฉ์„ ๋‚จ๊ธด๋‹ค.

JS - this

JS ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹จ์—ฐ์ฝ” this ์ผ ๊ฒƒ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด์— ๊ฐ„๋‹จํžˆ ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ธด๋‹ค.

JS - Proxy

JS์—์„œ ํŠน์ • ๊ฐ์ฒด๋ฅผ Wrapping ํ•˜์—ฌ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” Proxy ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ

Diary - ์‚ฝ์งˆ..

์ž„์‹œ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์žˆ์–ด ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•  ์ผ์ด ์žˆ์—ˆ๋‹ค. ๊ฐœ๋ฐœ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ์—๋Š” letโ€™s encrypt๋ฅผ ๋ฐ›์•„ ์ ์šฉํ•˜๊ณ  ์žˆ๊ธฐ์— ์ ์šฉํ•˜๋ ค ํ•˜๋Š”๋ฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

Vue - Lifecycle

Vue ๋ฅผ ๋‚˜๋ฆ„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ธ๋ฐ ๊ธ€์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์•„ Lifecycle ๊ด€๋ จํ•˜์—ฌ ๋ฉ”๋ชจํ•ด๋ณธ๋‹ค.

Vue 2.6.x & TS - Custom Type

์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ทธ๋™์•ˆ Vue ์— ๋Œ€ํ•ด์„œ๋Š” ๋ฉ”๋ชจํ•œ ์ ์€ ํ•œ ๋ฒˆ๋„ ์—†๋‹ค. ๐Ÿ˜“ ๊ทธ๋ž˜์„œ ์“ฐ๋Š” ๊ฒƒ ์•„๋‹ˆ์ง€๋งŒ ๋ง‰์ƒ ๋ฉ”๋ชจํ• ๋ ค๊ณ  ๋ณด๋‹ˆ ์ƒ๊ฐ๋‚ฌ๋‹ค. ์ขŒ์šฐ์ง€๊ฐ„ Vue 2.6.x ๋ฒ„์ „์—์„œ TS Custom์— ๊ด€ํ•œ ๋ฉ”๋ชจ์ด๋‹ค.

JS - Class ์ฃผ์˜์‚ฌํ•ญ

JS ์˜ Class ์˜ ์ฃผ์˜์‚ฌํ•ญ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ๋ญ”๊ฐ€ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ฐ„๋žต ๋ฉ”๋ชจ

JS - Class constructor

JS Class์˜ constructor์— ๊ด€ํ˜„ ๊ฐ„๋žต ๋ฉ”๋ชจ

Web - File ๋‹ค์šด๋กœ๋“œ

BE์—์„œ ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  FE์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ๋‹ค์šด๋กœ๋“œ ํ•  ๊ฒฝ์šฐ ๊ฒช์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์— ๋Œ€ํ•ด ๋ฉ”๋ชจํ•œ๋‹ค.

JS - Set ๊ฐ์ฒด

JS์˜ ๊ฐ์ฒด ์ค‘ [๊ฐ’] ํ˜•ํƒœ๋กœ ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” Set ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ

JS - Map ๊ฐ์ฒด

JS์˜ ๊ฐ์ฒด ์ค‘ [ํ‚ค, ๊ฐ’] ํ˜•ํƒœ๋กœ ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” Map ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋‹ค.

Cookie - SameSite

Chrome ๋ธŒ๋ผ์šฐ์ €์—์„œ SameSite ๊ด€๋ จํ•˜์—ฌ Cookie๊ฐ€ ์ฐจ๋‹จ๋˜์–ด ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์ •์ƒ๋™์ž‘ ํ•˜์ง€ ๋ชปํ•˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค.

Web - CORS, SameSite

ํšŒ์‚ฌ์—์„œ ํ•œ๋™์•ˆ BE ์ธก๋ฉด์—์„œ๋งŒ ์ž‘์—…์„ ํ•˜์—ฌ FE ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์…‹ํŒ… ๋ฐ ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ์šด์˜ํ•  ์ผ ์—†์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ์ด๋ฒˆ์— ํ…Œ์ŠคํŠธ ํ•  ์ผ ์žˆ์–ด ์ง์ ‘ FE ์ชฝ ๋กœ์ปฌ ์…‹ํŒ… ํ›„ ๊ตฌ๋™ํ•˜๋‹ˆ ํฌ๋กฌ์—์„œ 401 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ์„ ํ™•์ธํ•˜์˜€๋‹ค.๐ŸŒ€ ๋ฌด์Šจ ๋ฌธ์ œ์ธ๊ฐ€ ๋ณด๋‹ˆ ํฌ๋กฌ SameSite ๊ด€๋ จ ์—๋Ÿฌ์˜€๋‹ค. FE...

JS - Generator ๊ฐ„๋žต ์ •๋ฆฌ

์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜๋Š” ๊ฐ’์„ ํ•˜๋‚˜๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ Generator ํ•จ์ˆ˜์ด๋‹ค.

CSS - BEM

HTML Class ์ด๋ฆ„์„ ์ง€์„ ๋•Œ ๋งˆ๋‹ค ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ•˜๋Š”๊ฑฐ ๊ฐ™๋‹ค.

JS - GC (Garbage Collector)

์ƒ๊ฐํ•ด๋ณด๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉฐ ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๊ฐ์ฒด, ๋ณ€์ˆ˜ ๋“ฑ์„ ์„ ์–ธํ•˜๊ณ  ์ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œํ•˜๋Š” ์ž‘์—…์„ ๋Œ€์ฒด๋กœ ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” JAVA์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์—ด์‹ฌํžˆ ์ผํ•˜๊ณ  ์žˆ๋Š” ๊นŒ๋‹ญ์ด๋‹ค. GC(Garbage Collector)์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ...

SQL - select for update

์กฐํšŒ๋œ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ๊ฒฝ์šฐ ๋™์‹œ์— ์กฐํšŒ๋  ๊ฒฝ์šฐ ์ž˜๋ชป๋œ ๋™์ž‘์„ ํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” select for update ๊ตฌ๋ฌธ์ด๋‹ค.

Postgres - coalesce, with as

์•Œ์•„๋‘๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ์“ฐ๊ณ  ์œ ์šฉํ•œ SQL ์ •๋ฆฌ

JS - Math Object

Math object ๋‚ด ์žˆ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜ ์ •๋ฆฌ

HTML5

HTML5์— ๋Œ€ํ•ด ๊ฐ„๋žต ์ •๋ฆฌ

JS - flat()

JS ES2019๋ถ€ํ„ฐ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋ฉ”์†Œ๋“œ ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค ํ•œ๋‹ค.

TS - DefinitelyTyped

TS์—์„œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ํƒ€์ž…์ด ์ •์˜ ๋˜์–ด ์žˆ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ์ง€๋งŒ ๋ณดํ†ต JS๋กœ ์งœ์—ฌ์ง„ ๋’ค ๊ด€๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค๋งŒ ํƒ€์ž…์ •์˜๊ฐ€ ์•ˆ๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ฐฐ๊ฒฝ์œผ๋กœ ๋‚˜์˜จ ํ”„๋กœ์ ํŠธ๊ฐ€ DefinitelyTyped ์ด๋‹ค.

js ๋ฐ˜๋ณต๋ฌธ ๋น ์ ธ๋‚˜์˜ค๊ธฐ

๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•์ธ ๋ฐ˜๋ณต๋ฌธ์—์„œ ํŠน์ • ์กฐ๊ฑด์ผ ๋•Œ ๋‹ค์Œ ์ˆœํšŒ๋กœ ๋„˜์–ด๊ฐ€๊ฑฐ๋‚˜ ์ˆœํšŒ์—์„œ ๋น ์ ธ๋‚˜์™€์•ผ ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ•„์—ฐ์ ์œผ๋กœ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. js์—์„œ๋Š” for, while๋“ฑ ๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋น ์ ธ๋‚˜์˜ค๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค ํ•œ๋‹ค.

SCSS - @mixin, @include

๋ณธ๋ž˜ ์ž‘์„ฑํ•˜๋ ค ํ•˜์˜€๋˜ @mixin, @include์— ๋Œ€ํ•œ ๊ธ€์ด๋‹ค.

SCSS

๋ณธ๋ž˜ @mixin, @include์— ๋Œ€ํ•ด ์ ์œผ๋ ค ํ•˜์˜€๋Š”๋ฐ SCSS์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด์ž ํ•œ๋‹ค.

์บ์‹œ ์˜ค์—ผ๊ณผ ์บ์‹œ ์ถฉ๋Œ

ํ•œ๋™์•ˆ ๊ฒŒ์„๋Ÿฌ์ ธ์„œ ์†์—์„œ ์ฑ…์„ ๋†“๊ณ  ์žˆ์—ˆ๋‹ค. ๋‹ค์‹œ ํŽผ์ณ๋ณธ ์ฑ…์—์„œ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๋ถ€๋ถ„์„ ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค.

์ผ์ƒ

์ถœ๊ทผํ•˜์—ฌ ํ•˜๋ฃจ ์ข…์ผ sql๋งŒ ๋ณด๊ณ  ๋งŒ์ง„ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฉํ•˜๋‹คโ€ฆ๐Ÿ’ฌ ์˜ˆ์ „์— ๊ฐ„๋‹จํ•œ JPA๋ฅผ ์จ๋ดค์„ ๋• ๊ทธ๊ฑธ mybatis๋กœ ๋ฐ”๊พธ๋ฉด์„œ ๋ณ„ ์–ด๋ ค์›€์„ ๋ชป ๋А๊ผˆ๋Š”๋ฐ ์ง„์งœ mybatis๋ฅผ ์ œ๋Œ€๋กœ ์“ฐ๊ณ  DB ๊ตฌ์กฐ๊ฐ€ ์–ด๋ ค์›Œ์ง€๋ฉด ํ˜„์žฌ ๋‚ด ์ˆ˜์ค€์—์„œ๋Š” ๋จธ๋ฆฌ๊ฐ€ ํ„ฐ์ง„๋‹คโ€ฆ.

Mac VSCode ๋‹จ์ถ•ํ‚ค

VSCode ์—์„œ ๋‚ด๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์ถ•ํ‚ค ์ •๋ฆฌ

DB Postgres json, array ๊ด€๋ จ ํ•จ์ˆ˜

์ด์ œ๊ป ๊ฐ„๋‹จํ•œ sql๋งŒ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋‹ˆ ๋ฐฐ์—ด๋กœ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ๋“ฑ ์ผ์ด ์—†์—ˆ์œผ๋‚˜ ์ด๋ฒˆ์— ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์ƒ๊ฒจ ์„œ์นญ์„ ํ•˜๋‹ค ์ƒ๋‹นํžˆ ๋งŽ์€ ํ•จ์ˆ˜๋“ค์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

์›น ์บ์‹œ ์ •์ฑ…

์บ์‰ฌ๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ณ  ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ ๋“ฑ ์ด์ ์ด ๋งŽ์ง€๋งŒ, ๊ฐœ์ธ ์ •๋ณด๋‚˜ ์‹ค์‹œ๊ฐ„ ๊ฐฑ์‹ ๋˜๋Š” ์ •๋ณด ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์บ์‰ฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.

์›น ์บ์‹œ ์ข…๋ฅ˜

ํ”ํžˆ๋“ค ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋งค ์š”์ฒญ๋งˆ๋‹ค ๊ฐ™์€ ์ž๋ฃŒ๋ฅผ ์š”์ฒญํ•  ๊ฒฝ์šฐ ๋งค๋ฒˆ ์›๋ณธ ์„œ๋ฒ„์—์„œ ๋‚ด๋ ค๋ฐ›๋Š” ๊ฑด ๊ต‰์žฅํžˆ ๋ถˆํ•„์š”ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์•…์˜ํ–ฅ์„ ์ฃผ๋Š” ์š”์†Œ์ด๋ฉฐ, ์ด๋ฅผ ํ”ผํ•˜๊ธธ ์œ„ํ•ด์„œ ๊ทผ์ฒ˜์— ์‚ฌ๋ณธ์„ ์ €์žฅํ•˜์—ฌ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ์บ์‰ฌ์„œ๋ฒ„๋ผ๊ณ  ํ•œ๋‹ค.

nload

๋ฆฌ๋ˆ…์Šค ๋“ฑ์˜ CLI ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋ณธ์ ์ธ netstat ๋“ฑ๊ณผ ๋ช…๋ น์–ด๋กœ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์˜ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‚˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๊ธฐ์—๋Š” ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ์žˆ๋‹ค.

Http/2

HTTP/1.1์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ์ง€์›๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„๋ฉ”์ธ ๋ถ„ํ•  ๊ธฐ๋ฒ• ๋“ฑ์˜ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜์˜€๋‹ค. ํ•˜์ง€๋งŒ HTTP/2์˜ ๊ฒฝ์šฐ๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ ๋“ฑ์˜ ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋˜๋ฉฐ ์›น์˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋„๋ฉ”์ธ ๋ถ„ํ•  ๊ธฐ๋ฒ• ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. HTTP/2 ์‚ฌ์šฉ ์‹œ ์›น...

JS template literal

ํ˜„์žฌ JS์—์„œ๋Š” ****์ด๋ผ๋Š” ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด๊ณผ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•œ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ Template Literal`์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๋ ค ํ•œ๋‹ค.

JS getter, setter

JS์˜ ES5์—์„œ๋„ getter, setter๋Š” ์กด์žฌํ•˜์˜€์œผ๋‚˜ ES6๋กœ ์˜ค๋ฉด์„œ ์ŠคํŽ™์˜ ๋ณ€๋™์ด ์žˆ์—ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์•„ํ‚คํ…์ฒ˜

์šฐ๋ฆฌ๊ฐ€ ์›น์„ ์†์‰ฝ๊ฒŒ ์ ‘์†ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.

์ ์ง„์  ํ–ฅ์ƒ โ†”๏ธ ์šฐ์•„ํ–” ์„ฑ๋Šฅ ์ €ํ•˜

์›น์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ์‚ฌ์šฉ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ํ˜น์€ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฒ„์ ผ์— ๋”ฐ๋ผ ์ง€์›๋˜๋Š” HTML, CSS ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด ๋งค์šฐ ๊ท€์ฐฎ๊ฒŒ ๋А๊ปด์งˆ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ž…์žฅ์—์„œ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ์ง€์›ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊นŒ์šด ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

CSS - ์šฐ์„ ์ˆœ์œ„ ๊ณ„์‚ฐ

CSS๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ํŠน์ •์š”์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด ๊ฒน์น  ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ทธ๋Ÿด ๊ฒฝ์šฐ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€๋‹ˆ๋Š” ์†์„ฑ์„ ์ ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

CSS - Flex Item

์ „์— Flex Container์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ, Flex Item์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐Ÿค“

CSS - Flex Container

CSS Flex ์†์„ฑ ๊ทธ ์ค‘์—์„œ๋„ Container๊ฐ€ ๊ฐ€์ง€๋Š” ์†์„ฑ์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ ์–ด๋ณด๋ ค ํ•œ๋‹ค.

JS - Unicode

JS์—์„œ๋Š” \u0031์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณธ๋ž˜ ES5์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฒ”์œ„ ๋ฐ–์— ์ง€์›ํ•˜์ง€ ์•Š์•˜์œผ๋‚˜ 4์ž๋ฆฌ ์ด์ƒ์„ 2๊ฐ€์ง€ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ์ด์–ด ๋ถ™์—ฌ์„œ ์ง€์›ํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ๊ณตํ–ˆ๊ณ  ์ด๋ฅผ Surrogate pair๋ผ๊ณ  ํ•œ๋‹ค.

JS - Number Object

JS๋Š” IEEE 754์— ์ •์˜๋œ 64bit ๋ถ€๋™์†Œ์ˆ˜์ ์œผ๋กœ ์ •์ˆ˜์™€ ์‹ค์ˆ˜ ๊ตฌ๋ถ„ ์—†์ด ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. IEEE ๋ถ€๋™์†Œ์ˆ˜์ 

TypeScript utility types

TypeScript๋Š” ์ผ๋ฐ˜์ ์ธ ์œ ํ˜•๋ณ€ํ™˜์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์œ ํ˜•๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ณต์‹ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž… ์•ˆ๋‚ด ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์ธ ํƒ€์ž… ๋ช‡๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค.

JS - ๊ฒฐํ•ฉ์„ฑ ๋ฐ try-catch

JS ํ‰์ƒ์‹œ ์ž์ฃผ ๊นŒ๋จน๋Š” ๊ด€๋ จํ•˜์—ฌ ํ‰์ƒ์‹œ ์ž์ฃผ ๋†“์น˜๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ คํ•œ๋‹ค.

CSS ๋‹ค๋‹จ (Multi Columns)

์ผ๋ฐ˜ ๋ธ”๋ก ๋ ˆ์ด์•„์›ƒ์„ ํ™•์žฅํ•˜์—ฌ ํ•œ ๋ธ”๋ก์— ์—ฌ๋Ÿฌ ์นผ๋Ÿผ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ, ๊ฐ€๋™์„ฑ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

TypeScript ํƒ€์ž…๋‹จ์–ธ, ํƒ€์ž…๊ฐ€๋“œ

Typescript๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ํƒ€์ž…์— ๋Œ€ํ•ด์„œ ์• ๋งคํ•ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ํƒ€์ž… ๋‹จ์–ธ, ํƒ€์ž… ๊ฐ€๋“œ์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด ๋ณด์ž.

TypeScript enum, generic

Typescirpt์—์„œ์˜ Enum๊ณผ Generic์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.

JS Iteration

Iteration์˜ ์‚ฌ์ „์  ์˜๋ฏธ๋Š” ๋ฐ˜๋ณต์œผ๋กœ ์˜๋ฏธ ๊ทธ๋Œ€๋กœ์ด๋‚˜ ์ผ๋ฐ˜์ ์ธ ๋ฐ˜๋ณต๋ฌธ for, while ๋“ฑ์˜ ๋ฐ˜๋ณต๊ณผ๋Š” ๊ฐœ๋…์˜ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

TypeScript type alias - interface

Typescript์—์„œ๋Š” ํƒ€์ž…๋ณ„์นญ(Type Alias)์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฐ ํƒ€์ž…๋ฅผ ์ง€์ •ํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Nginx worker connections ์˜ค๋ฅ˜

์„œ๋น„์Šค์— ๊ฐ„ํ—์ ์ธ 500 Error๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹น์—ฐํžˆ ์„œ๋ฒ„ ์—๋Ÿฌ์ธ ์ค„ ์•Œ์•˜์ง€๋งŒ ์„œ๋ฒ„ ์ชฝ์—๋Š” ์š”์ฒญ ์ž์ฒด๋ฅผ ๋ฐ›์ง€ ์•Š์€ ์ƒํ™ฉ์ด์˜€๋‹ค.

์—ฌ๊ธด์–ด๋”” ๋‚˜๋Š” ๋ˆ„๊ตฌ?

์ถœ๊ทผํ•˜๊ณ  ์ฝ”๋“œ ์ž‘์—…์€ 1์ž๋„ ์•ˆํ–ˆ๋Š”๋ฐ ๋‚˜๋Š” ์˜ค๋Š˜ ์™œ 8์‹œ ๋ฐ˜์— ์ถœ๊ทผ์„ ํ•˜์—ฌ 22์‹œ์— ํ‡ด๊ทผ์„ ํ•˜์˜€๋Š”๊ฐ€โ€ฆโ˜ ๏ธ

Postgres like ์กฐ๊ฑด

์˜ค๋Š˜ ์—…๋ฌด๋„์ค‘ log์„ฑ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์กฐํšŒํ•  ์ผ ์žˆ์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋ณ„ ์ƒ๊ฐ ์—†์ด like ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํšŒํ•˜์˜€์œผ๋‚˜ 10๋ถ„์ด ๊ฑธ๋ ค๋„ ์กฐํšŒ๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๐Ÿ˜ต

Arrow Function

Arrow-function๋„ ๋‚˜์˜จ์ง€ ์˜ค๋ž˜ ๋์ง€๋งŒ ๋‹ค์‹œ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋ ค ํ•œ๋‹ค.

TypeScript ์‹œ์ž‘ํ•˜๊ธฐ

๊ณต๋ถ€ํ•ด์•ผ์ง€.. ํ•˜๋˜ TypeScript๋ฅผ ์ด์ œ ๋ง‰ ์‹œ์ž‘ํ•˜์˜€๋‹ค. ์™„์ „ ์‹ ์ƒ์•„์ง€๋งŒ java ๊ฐ™์€ ๋А๋‚Œ์ด ๋“ ๋‹ค.

VScode md ์˜ค๋ฒ„๋ทฐ

VScode์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” md ์˜ค๋ฒ„๋ทฐ ๊ธฐ๋Šฅ๊ณผ ์‹ค์ œ jekyll์ด ํ…์ŠคํŠธ๋ฅผ ์ฝ์–ด์„œ ํ‘œ๊ธฐํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™๋‹ค. ์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ ๊ฑฐ๊ธฐ๋Š” ํ•œ๋ฐ๐Ÿค”

CSS position ์†์„ฑ

CSS์—์„œ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋Š” position์†์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

JS ๋ณ€์ˆ˜ ๋ฐ scope

ES6๊ฐ€ ๋˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ ์„ ์–ธ ์˜ˆ์•ฝ์–ด let, const๊ฐ€ ๋“ฑ์žฅํ•˜์˜€๋””. ์‚ฌ์‹ค ๋‚˜์˜จ์ง€ ์ด์ œ ์˜ค๋ž˜๋ฌ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์•ฝ์–ด๋“ค์ธ๋ฐ var์™€ ๊ฐ™์ด ๋ฉ”๋ชจํ•˜๋ ค ํ•œ๋‹ค.

๊ธ€๊ผด ๊ณ„์—ด ๊ด€๋ จ ๋ฉ”๋ชจ

CSS๋‚˜ font์˜ ๊ธ€๊ผด์€ ๊ณ„์—ด์„ ๊ฐ€์ง€๊ณ  ํ•ด๋‹น ๊ณ„์—ด์— ๋Œ€ํ•ด ์ž๊พธ ์žŠ์–ด๋จน์–ด์„œ ๋ฉ”๋ชจํ•˜๋ ค ํ•œ๋‹ค. ๐Ÿง

CSS ์•”๋ฌต์  ์‚ฌ์šฉ ๊ด€๋ จ ๋ฉ”๋ชจ

CSS์—์„œ๋Š” ๋ณธ๋ž˜์˜ ์˜๋„์™€ ๋‹ค๋ฅด๊ฒŒ ํ‘œ๊ธฐ๋˜๋Š” ๊ฑธ ํšŒํ”ผํ•˜๋Š” ์•”๋ฌต์  ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ๋‹ค. ์•ž์„  ๊ธ€๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•ˆ ์“ฐ๋ฉด ๊นŒ๋จน์œผ๋‹ˆ ๋ฉ”๋ชจ๐Ÿค–

์ถœ๊ทผ๊ธธ ๋‚œ์ด๋„ ํ—ฌ

์–ด์ œ ๊ฒจ์šธ์™•๊ตญ์ด ๋˜์–ด๋ฒ„๋ฆฐ ํŒ๊ต๋ฅผ ๋ณด๊ณ  ์ถœ๊ทผ๊ธธ์ด ํ—˜๋‚œํ•  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐ์€ ํ–ˆ์ง€๋งŒ ์—ญ์‹œ๋‚˜โ€ฆ ๊ทธ๋‚˜๋งˆ ์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„์ด ๊ธธ์–ด์„œ ๋‹คํ–‰์ด์˜€์ง€ ๋ฒ„์Šค ๊ฐ™์€ ์ฐจ๋Ÿ‰ ๊ตฌ๊ฐ„์ด ๊ธธ์—ˆ์œผ๋ฉด ์˜๋ฝ ์—†์ด ์ง€๊ฐ ํ•  ๋ป”

JS scope - try catch

๋ธ”๋ก scope ์˜์—ญ ์ค‘ try - catch์— ๊ด€ํ•ด ์ ์–ด๋ณด๊ณ ์ž ํ•จ ๋‹น์—ฐํ•œ ๊ฒฐ๊ณผ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ธ”๋Ÿญ {}์— ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ scope๋ฅผ ์ง€๋‹ˆ๊ฒŒ ๋˜๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„

ํญ์„ค โ˜ƒ๏ธ

์•ผ๊ทผ ํ•˜๊ณ  ๋‚˜์˜ค๋Š”๋ฐ ์„ธ์ƒ์ด ๋‹ฌ๋ผ์ ธ ์žˆ์—ˆ๋‹ค.

Node BE ๋ฐฐํฌ์‹œ ์ถ”๊ฐ€ํ•  Package

node.js๋กœ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„์— ๋ฐฐํฌํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ Package ์ถ”๊ฐ€ ๊ถŒ์žฅ

magin ์ค‘๋ณต(collapse)

CSS์˜ margin ์†์„ฑ์€ ์•„๋ž˜์˜ ์ƒํ™ฉ์—์„œ ๊ฒน์น˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋ฉฐ ์ด๋Š” ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

CSS ๊ฐ€์ƒ ์„ ํƒ์ž

๊ฐ€์ƒ ์„ ํƒ์ž๋กœ๋Š” ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž(โ€˜:โ€™), ๊ฐ€์ƒ ์š”์†Œ ์„ ํƒ์ž(โ€˜::โ€™) ๊ฐ€ ์žˆ์Œ

Back to top ↑

2020

Fisrt Post && Last Day in 2020

์ฒซ ํ…Œ์ŠคํŠธ ๊ธ€, ๊ทธ๋ฆฌ๊ณ  2020๋…„๋„ ๋งˆ์ง€๋ง‰ ๋‚ 

Back to top ↑