๐Ÿ”จ Development/Frontend & js

    [ CSS ] CSS ๋ชจ๋ฐ”์ผ Transition ๊ฐœ์„ 

    # Reference aproid blog - CSS Transition ์„ฑ๋Šฅ ์ตœ์ ํ™” by aproid https://aproid.github.io/2019/03/21/transition-optimize/ CSS Transition ์„ฑ๋Šฅ ์ตœ์ ํ™” — Aproid CSS3์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์ค‘ ํ•˜๋‚˜์ธ Transition, ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” Transition ์‚ฌ์šฉ์˜ ์ฃผ์˜์ ์„ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ๊ฐ™์€ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ๋ชปํ•œ ๊ธฐ๊ธฐ์—์„œ ๋ถ€๋“œ๋Ÿฌ์šด ํšจ๊ณผ๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž aproid.github.io yceffort blog - CSS ์„ฑ๋Šฅ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ https://yceffort.kr/2021/03/improve-css-performance#css%EB%8A%94-%EC%96%B4%EB%96%BB%EA%..

    [ JS ] ๋ฌธ์ž์—ด๋‚ด์˜ ํŠน์ • ๋ฌธ์ž์—ด ๋ชจ๋‘ ๋Œ€์น˜ํ•˜๊ธฐ

    0. ๊ฐœ์š” js๋กœ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์ตœ๊ทผ์— ์ƒˆ๋กญ๊ฒŒ ์—…๋ฐ์ดํŠธ๋œ ๋ฌธ์ž์—ด ๋ฉ”์„œ๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์ ์šฉํ•˜๊ณ ์ž ์ด ๊ธ€์„ ์ž‘์„ฑํ•จ 1. ํ•™์Šต๋ชฉ์  ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋Œ€์น˜ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ ํ™•์ธ ์‹ค์ „์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ ๋ฌธ์ž์—ด ์น˜ํ™˜๋ฒ• ํ•™์Šต 2. ํ•™์Šต๋‚ด์šฉ js์—๋Š” prototype์„ ํ†ตํ•ด ์ง€์ •๋œ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด๋ ต๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผ ํ•  ์ฝ”๋“œ๋“ค์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ฐพ๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์šฐ๋ฆฐ ๋‹จ์ˆœํžˆ indexOf ๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฌธ์ž ๋‚ด ํŠน์ • ๋ฌธ์ž์˜ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "abcdefg".indexOf(c) // 2 ํ•˜์ง€๋งŒ indexOf ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด? function findIndexOfChar ( base_string, characte..

    [ JS ] 1. ์ปดํŒŒ์ผ

    js๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋Š๋‚€ ์—”์ง„์˜ ์ปดํŒŒ์ผ ๊ณผ์ •์„ ์•Œ์•„์•ผ ํ•˜๋Š” ์ด์œ  (์ž‘์„ฑ์ž ํ”ผ์…œ): 1. ์ž‘์„ฑ์‹œ์ ์ƒ Chrome V8์ด ์„ธ๊ณ„์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” js์—”์ง„์ด๋ฉฐ, V8 ๋ฟ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์—”์ง„๋“ค๋„ ํ•ด๋‹น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 2. ์—”์ง„์˜ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์•Œ์•„๋ณด๋ฉฐ this๋‚˜ js์˜ ์–ธ์–ด์  ํŠน์„ฑ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0. ???: js๋Š” ์ปดํŒŒ์ผ ํ•„์š”์—†๋Š” ์–ธ์–ด์ธ๋ฐ์š”? ๊ธ€์„ ์‹œ์ž‘ํ•˜๊ธฐ์ „, ์›๋ก ์  ๊ฐœ๋…์— ๊ทผ๊ฐ„ํ•˜์—ฌ ๋ง์„ ํ•˜์ž๋ฉด js๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋ผ ์ปดํŒŒ์ผ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค..๋งŒ ์†๋„ ํ–ฅ์ƒ ๋“ฑ์˜ ๋ชฉ์ ์„ ์œ„ํ•ด js์—”์ง„ ๋‚ด์—์„œ ์ผ๋ถ€ ์ปดํŒŒ์ผ ๊ณผ์ •์ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ตœ๊ทผ ๋‹ค์ˆ˜ ์‚ฌ์šฉ๋˜๋Š” Chrome v8์—”์ง„์ด ๊ทธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ js๋Š” ์„ ํƒ์ ์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Chrome V8์—”์ง„..

    [ vanilla js ] Web Worker API (๊ฐœ๋…ํŽธ)

    *Reference: https://developer.mozilla.org/ko/docs/Web/API/Web_Workers_API Web Workers API - Web API | MDN ์›น ์›Œ์ปค(Web worker)๋Š” ์Šคํฌ๋ฆฝํŠธ ์—ฐ์‚ฐ์„ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฃผ ์‹คํ–‰ ์Šค๋ ˆ๋“œ์™€ ๋ถ„๋ฆฌ๋œ ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์›น ์›Œ์ปค๋ฅผ ํ†ตํ•ด ๋ฌด๊ฑฐ์šด ์ž‘์—…์„ ๋ถ„๋ฆฌ๋œ ์Šค๋ ˆ๋“œ์—์„œ developer.mozilla.org Web Worker API ์›นํŽ˜์ด์ง€์—์„œ ์‹คํ–‰์ค‘์ธ ์ฃผ ์Šค๋ ˆ๋“œ์™€ ๋ณ„๊ฐœ์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ  ๋ณ„๊ฐœ์˜ ์Šค๋ ˆ๋“œ์—์„œ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฌด๊ฑฐ์šด ์ž‘์—…์œผ๋กœ ์ธํ•œ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋‹ ์ง€์—ฐ ๋“ฑ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Œ. *์ฃผ์˜ 1) window์˜ ์ผ๋ถ€ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ (https:/..