๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋Š” ๋ฒ„๊ทธ๋ฅผ ์ฐพ๊ณ (๋””๋ฒ„๊น…), ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ , ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ๊ฐœ๋ฐœ์˜ ํ•ต์‹ฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
์›น์‚ฌ์ดํŠธ๋ฅผ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ผญ ์•Œ์•„๋‘์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค! โœจ

๐ŸŽจ 1. Elements (์š”์†Œ) - HTML & CSS ์‹ค์‹œ๊ฐ„ ์ˆ˜์ •

โœ… HTML/CSS ํ™•์ธ & ์ˆ˜์ •

  • ์›น์‚ฌ์ดํŠธ์˜ DOM(๋ฌธ์„œ ๊ตฌ์กฐ)๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜๊ณ , CSS๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ •ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ • ํ›„ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋ฐ”๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด ๋น ๋ฅธ ๋””์ž์ธ ํ…Œ์ŠคํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋ฐ˜์‘ํ˜• ๋ชจ๋“œ(Device Toolbar) ์‚ฌ์šฉ

  • ์ƒ๋‹จ์— ์žˆ๋Š” Toggle device toolbar (์Šค๋งˆํŠธํฐ ์•„์ด์ฝ˜)๋ฅผ ํด๋ฆญํ•˜๋ฉด, ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ(iPhone, iPad ๋“ฑ) ํ™”๋ฉด ํฌ๊ธฐ๋กœ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์ดํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋ฏธ๋ฆฌ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๋ ˆ์ด์•„์›ƒ ๋””๋ฒ„๊น… & Box Model ์‹œ๊ฐํ™”

  • ํŠน์ • ์š”์†Œ๋ฅผ ์„ ํƒํ•˜๋ฉด Box Model ํŒจ๋„์—์„œ margin, border, padding ๊ฐ’์„ ํ•œ๋ˆˆ์— ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์—˜๋ฆฌ๋จผํŠธ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋†“์œผ๋ฉด, ํ™”๋ฉด์— ๋ฐ•์Šค ๋ชจ๋ธ์ด ์‹œ๊ฐํ™”๋˜์–ด ์‹ค์ œ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ CSS๋ฅผ ์ˆ˜์ •ํ•ด ๋ฒ„ํŠผ ์ƒ‰์ƒ์„ ๋ฐ”๊พธ๊ณ , ๋ฐ˜์‘ํ˜• ๋ชจ๋“œ๋กœ ๊ธฐ๊ธฐ๋ณ„ ํ™”๋ฉด์„ ํ™•์ธํ•˜๋Š” ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. ์˜ค๋ฅธ์ชฝ ํด๋ฆญ โ†’ "๊ฒ€์‚ฌ"๋ฅผ ์„ ํƒํ•˜์‹œ๋ฉด ํ•ด๋‹น ์š”์†Œ๊ฐ€ Elements ํŒจ๋„์—์„œ ๋ฐ”๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๐ŸŽฏ
2. Styles ํƒญ์—์„œ CSS ์†์„ฑ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋„๊ฑฐ๋‚˜ ์ผœ์„œ ํ•ด๋‹น ์Šคํƒ€์ผ์„ ์ ์šฉ/ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. Layout(๋˜๋Š” โ€˜Computedโ€™) ํƒญ์—์„œ Flex๋‚˜ Grid ๊ตฌ์กฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ 2. Console (์ฝ˜์†”) - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ—˜์‹ค

โœ… ์ฆ‰์„์—์„œ JS ์ฝ”๋“œ ์ž…๋ ฅ & ์‹คํ–‰

  • console.log("์•ˆ๋…•ํ•˜์„ธ์š”! ๐Ÿ‘‹");์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ € ์ฝ˜์†”์— ๋ฐ”๋กœ ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ˆœ ๊ณ„์‚ฐ(2 + 2 โ†’ 4)๋ถ€ํ„ฐ DOM ์กฐ์ž‘๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ด ๋น ๋ฅธ ํ…Œ์ŠคํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋กœ๊ทธ/์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™•์ธ

  • ํŽ˜์ด์ง€ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜(Exception), ๊ฒฝ๊ณ (Warning), ๋กœ๊ทธ(console.log)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • SyntaxError, TypeError ๋“ฑ์„ ๋น ๋ฅด๊ฒŒ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๊ฐ•๋ ฅํ•œ ์ฝ˜์†” ์ „์šฉ ๋ช…๋ น์–ด

  • $0: Elements ํŒจ๋„์—์„œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ ํƒํ•œ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  • $: ํŠน์ • CSS ์…€๋ ‰ํ„ฐ๋กœ ์š”์†Œ๋ฅผ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ) $("div")
  • $x: XPath๋ฅผ ์‚ฌ์šฉํ•ด ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "์ฝ˜์†”์—์„œ console.log()๋ฅผ ์‹คํ–‰ํ•ด, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. document.body.style.background = "red";๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์›น์‚ฌ์ดํŠธ ๋ฐฐ๊ฒฝ์ด ๋นจ๊ฐ›๊ฒŒ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค. ๐ŸŒถ๏ธ๐Ÿ”ฅ
2. Shift + Enter๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ฝ˜์†”์—์„œ ์—ฌ๋Ÿฌ ์ค„๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. console.table()์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ํ‘œ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•ด, ๋ฐ์ดํ„ฐ ํ™•์ธ์ด ๊น”๋”ํ•ด์ง‘๋‹ˆ๋‹ค.


๐Ÿš€ 3. Network (๋„คํŠธ์›Œํฌ) - ์›น์‚ฌ์ดํŠธ์˜ ๋ชจ๋“  ์š”์ฒญ ๊ด€์ฐฐ

โœ… HTTP ์š”์ฒญ/์‘๋‹ต ๋ถ„์„

  • ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋”ฉ๋  ๋•Œ ์–ด๋–ค ํŒŒ์ผ(CSS, JS, ์ด๋ฏธ์ง€)์ด ์–ด๋–ค ์ˆœ์„œ๋กœ ์š”์ฒญ๋˜๋Š”์ง€ ๋ชจ๋‘ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์š”์ฒญ์˜ ์ƒํƒœ ์ฝ”๋“œ(200, 404, 500), ๋กœ๋”ฉ ์‹œ๊ฐ„, ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•ด ๋ณ‘๋ชฉ ์ง€์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… Throttling(์†๋„ ์ œํ•œ) & ์˜คํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ

  • ์ƒ๋‹จ์˜ Online ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด 3G, 4G, ์˜คํ”„๋ผ์ธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋А๋ฆฐ ์ธํ„ฐ๋„ท ํ™˜๊ฒฝ์—์„œ ์‚ฌ์ดํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€, ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋Š”์ง€ ๋ฏธ๋ฆฌ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ํ•„ํ„ฐ & ๋ธ”๋กœํ‚น

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

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "Network ํŒจ๋„์—์„œ HTTP ์š”์ฒญ ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋ฉฐ ํŠน์ • ํŒŒ์ผ์„ ์„ ํƒํ•ด ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. Disable cache ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด, ์ƒˆ๋กœ๊ณ ์นจ ์‹œ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋งค๋ฒˆ ์ƒˆ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
2. ๊ฒ€์ƒ‰ ํ•„ํ„ฐ์—์„œ status-code:404์ฒ˜๋Ÿผ ์ž…๋ ฅํ•˜๋ฉด 404 ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์š”์ฒญ๋งŒ ๋”ฐ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”Ž 4. Sources (์†Œ์Šค) - ์ฝ”๋“œ ๋””๋ฒ„๊น…


โœ… ์ค‘๋‹จ์ (Breakpoint) ์„ค์ • & ๋‹จ๊ณ„๋ณ„ ๋””๋ฒ„๊น…

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์—์„œ ํŠน์ • ์ค„์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•ด, ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„์„ ํ•œ ์ค„์”ฉ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • debugger; ๋ฌธ์„ ์ฝ”๋“œ์— ์ง์ ‘ ์ถ”๊ฐ€ํ•ด๋„ ์‹คํ–‰์ด ๊ทธ ์ง€์ ์—์„œ ์ผ์‹œ ์ •์ง€๋ฉ๋‹ˆ๋‹ค.

โœ… DOM Breakpoints & Event Breakpoints

  • Elements ํŒจ๋„์—์„œ ํŠน์ • ์š”์†Œ์— DOM Breakpoint๋ฅผ ๊ฑธ๋ฉด, ๊ทธ ์š”์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰์ด ๋ฉˆ์ถฅ๋‹ˆ๋‹ค.
  • Event Listener Breakpoints๋ฅผ ํ†ตํ•ด ํด๋ฆญ, ๋งˆ์šฐ์Šค์˜ค๋ฒ„ ๋“ฑ ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๋ฉˆ์ถ”๋„๋ก ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ์†Œ์Šค ๋งต(Source Map) ์ง€์›

  • Babel, Webpack ๋“ฑ์œผ๋กœ ๋ฒˆ๋“ค๋œ ํŒŒ์ผ๋„ Source Map์ด ์žˆ์œผ๋ฉด ์›๋ณธ ์ฝ”๋“œ(ES6, TypeScript) ๊ธฐ์ค€์œผ๋กœ ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์–ด ๋”์šฑ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "Sources ํŒจ๋„์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์— ์ค‘๋‹จ์ ์„ ์„ค์ •ํ•œ ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. Ctrl + P ๋‹จ์ถ•ํ‚ค๋กœ ์›ํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•ด ๋น ๋ฅด๊ฒŒ ์ฐพ์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2. Call Stack ์ฐฝ์—์„œ ํ˜„์žฌ ์–ด๋–ค ํ•จ์ˆ˜๋“ค์ด ํ˜ธ์ถœ๋˜์–ด ์–ด๋–ค ์ˆœ์„œ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. Watch ์ฐฝ์— ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด๋‘๋ฉด, ๋””๋ฒ„๊น… ์ค‘์—๋„ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ๊ณ„์† ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โšก 5. Performance (์„ฑ๋Šฅ) - ์›น์‚ฌ์ดํŠธ ์†๋„ & ๋ Œ๋”๋ง ๋ถ„์„

โœ… ํ”„๋กœํŒŒ์ผ๋ง

  • Record ๋ฒ„ํŠผ(โ—)์„ ๋ˆ„๋ฅด๊ณ  ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ(์Šคํฌ๋กค, ํด๋ฆญ ๋“ฑ)ํ•œ ๋’ค ์ค‘์ง€ํ•˜๋ฉด, ์‹คํ–‰ ์ค‘ CPU ์‚ฌ์šฉ๋Ÿ‰, ๋ฉ”๋ชจ๋ฆฌ, FPS(์ดˆ๋‹น ํ”„๋ ˆ์ž„์ˆ˜) ๋“ฑ์„ ๋ถ„์„ํ•ด์ค๋‹ˆ๋‹ค.
  • JS ์—ฐ์‚ฐ์ด ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ Reflow/Repaint๊ฐ€ ์žฆ์€ ๋ถ€๋ถ„์„ ํŒŒ์•…ํ•ด ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ์• ๋‹ˆ๋ฉ”์ด์…˜/์Šคํฌ๋กค ์„ฑ๋Šฅ ์ฒดํฌ

  • ์ผ๋ฐ˜์ ์œผ๋กœ 60FPS(์ดˆ๋‹น 60ํ”„๋ ˆ์ž„)๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๋Š”๋ฐ, ๊ทธ ์ดํ•˜๋กœ ๋–จ์–ด์ง€๋ฉด ๋ฒ„๋ฒ…๊ฑฐ๋ฆผ์ด ๋А๊ปด์ง‘๋‹ˆ๋‹ค.
  • ์• ๋‹ˆ๋ฉ”์ด์…˜, ์Šคํฌ๋กค์ด ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธ ํ›„ ๊ฐœ์„ ์‚ฌํ•ญ์„ ์ฐพ์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๋ฉ”๋ชจ๋ฆฌ ํƒญ(๋ณ„๋„ ๊ธฐ๋Šฅ)

  • Memory ํƒญ์—์„œ๋Š” ํž™ ์Šค๋ƒ…์ƒท, ํ• ๋‹น ํƒ€์ž„๋ผ์ธ์„ ํ™•์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜(Leak)๊ฐ€ ์žˆ๋Š”์ง€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Vue/React ๋“ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค unsubscribe ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์Œ“์ด๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "Performance ํŒจ๋„์—์„œ ๋…นํ™”(Record) ํ›„ CPU์™€ FPS ๊ทธ๋ž˜ํ”„๊ฐ€ ํ‘œ์‹œ๋œ ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. Ctrl + Shift + P โ†’ "Capture Performance" ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฐ”๋กœ ์„ฑ๋Šฅ ๋ถ„์„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2. CPU Throttling์œผ๋กœ ์ €์‚ฌ์–‘ ๊ธฐ๊ธฐ ํ™˜๊ฒฝ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ด๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ๊ฒฐ๊ณผ ๊ทธ๋ž˜ํ”„ ์ƒ๋‹จ์˜ ํšŒ์ƒ‰ ๋ง‰๋Œ€ ์˜์—ญ์„ ๋“œ๋ž˜๊ทธํ•ด ํŠน์ • ๊ตฌ๊ฐ„๋งŒ ํ™•๋Œ€ํ•˜์—ฌ ์ •๋ฐ€ํ•˜๊ฒŒ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ’พ 6. Application (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜) - ๋ธŒ๋ผ์šฐ์ € ์ €์žฅ์†Œ & PWA ๊ด€๋ฆฌ

โœ… ์Šคํ† ๋ฆฌ์ง€(LocalStorage, SessionStorage, ์ฟ ํ‚ค, IndexDB) ํ™•์ธ & ์ˆ˜์ •

  • LocalStorage, ์ฟ ํ‚ค ๋“ฑ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ํ™•์ธํ•˜๊ณ , ํ•„์š”ํ•  ๊ฒฝ์šฐ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • IndexDB ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ๊นŒ์ง€ ์ด๊ณณ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… Service Worker & ์บ์‹œ ๊ด€๋ฆฌ

  • PWA(Progressive Web App)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” Service Worker๊ฐ€ ์ œ๋Œ€๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”์ง€, ์–ด๋–ค ํŒŒ์ผ์ด ์บ์‹œ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ ์ƒํƒœ์—์„œ ์ •์ƒ ๋™์ž‘ํ•˜๋Š”์ง€๋„ ์—ฌ๊ธฐ์„œ ๊ฐ„๋‹จํžˆ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

โœ… Application ์ „์ฒด ์ดˆ๊ธฐํ™”

  • Clear storage ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฟ ํ‚ค, LocalStorage, ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์„ ํ•œ ๋ฒˆ์— ์ง€์šธ ์ˆ˜ ์žˆ์–ด, ๋กœ๊ทธ์ธ ์ƒํƒœ๋‚˜ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "Application ํŒจ๋„์—์„œ LocalStorage์˜ 'name' ํ‚ค๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ๋ชจ์Šต"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. ์ฝ˜์†”์—์„œ localStorage.setItem("name", "ํ™๊ธธ๋™");์„ ์‹คํ–‰ํ•œ ๋’ค, Application ํƒญ์„ ์—ด์–ด ๊ฐ’์ด ๋ฐ”๋€ ๊ฑธ ํ™•์ธํ•ด๋ณด์„ธ์š”.
2. PWA ํ™˜๊ฒฝ์—์„œ ํ‘ธ์‹œ ์•Œ๋ฆผ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™์ž‘ ์—ฌ๋ถ€๋„ ์—ฌ๊ธฐ์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๐ŸŒ 7. Lighthouse (๋ผ์ดํŠธํ•˜์šฐ์Šค) - ์‚ฌ์ดํŠธ ํ’ˆ์งˆ ํ‰๊ฐ€

โœ… ์„ฑ๋Šฅ(Performance), ์ ‘๊ทผ์„ฑ(Accessibility), SEO, Best Practices ์ ์ˆ˜

  • โ€œGenerate Reportโ€ ๋ฒ„ํŠผ๋งŒ ๋ˆ„๋ฅด๋ฉด, ์ž๋™์œผ๋กœ 4๋Œ€ ๋ถ„์•ผ ์ ์ˆ˜๋ฅผ ๋งค๊ฒจ ๋ฆฌํฌํŠธ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
  • ์ ‘๊ทผ์„ฑ์ด๋‚˜ SEO ๊ฐ™์€ ๋ถ€๋ถ„๋„ ๊ฐœ์„  ๋ฐฉ๋ฒ•์„ ์นœ์ ˆํžˆ ์ œ์‹œํ•ด์ฃผ๋ฏ€๋กœ ์ดˆ๋ณด์ž์—๊ฒŒ๋„ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœ… PWA ์ง„๋‹จ

  • ์›น ์•ฑ์ด PWA ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋Š”์ง€, ๋ˆ„๋ฝ๋œ ์‚ฌํ•ญ์€ ์—†๋Š”์ง€ ํ™•์ธํ•ด์ค๋‹ˆ๋‹ค.
  • ์•ฑ ์•„์ด์ฝ˜์ด๋‚˜ manifest.json, HTTPS ์ ์šฉ ์—ฌ๋ถ€ ๋“ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

โœ… โ€œ์‹ค์ œโ€ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

  • Lighthouse๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ๊ณผ ๋„คํŠธ์›Œํฌ ์†๋„๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์‹ค์ œ ํ™˜๊ฒฝ์— ๊ฐ€๊นŒ์šด ์ ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ [์ด๋ฏธ์ง€ ์„ค๋ช…] "Lighthouse์—์„œ ์„ฑ๋Šฅ, ์ ‘๊ทผ์„ฑ, SEO, Best Practices ํ•ญ๋ชฉ๋ณ„๋กœ ์ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•œ ๋ณด๊ณ ์„œ ํ™”๋ฉด"

๐Ÿ“Œ ๐Ÿ’ก ๊ฟ€ํŒ
1. ๋กœ์ปฌ ์„œ๋ฒ„(์˜ˆ: localhost) ํ™˜๊ฒฝ์—์„œ๋„ Lighthouse๋ฅผ ๋Œ๋ ค๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2. ๋ชจ๋ฐ”์ผ/๋ฐ์Šคํฌํ†ฑ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€ ๋น„๊ตํ•ด ๋ณด์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.


๐ŸŽฏ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ - ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ด์ •๋ฆฌ

  • ๐Ÿ› ๏ธ Elements: HTML & CSS ๊ตฌ์กฐ ์ˆ˜์ •, ๋ฐ˜์‘ํ˜• ๋ชจ๋“œ
  • ๐Ÿ’ป Console: JS ์ฝ”๋“œ ์‹คํ–‰ & ๋กœ๊ทธ/์—๋Ÿฌ ํ™•์ธ, ๊ฐ•๋ ฅํ•œ ๋ช…๋ น์–ด ์ง€์›
  • ๐ŸŒ Network: ์š”์ฒญ & ์‘๋‹ต ๋ถ„์„, ๋А๋ฆฐ ํ™˜๊ฒฝ ์‹œ๋ฎฌ๋ ˆ์ด์…˜, ์š”์ฒญ ์ฐจ๋‹จ
  • ๐Ÿž Sources: ์ฝ”๋“œ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ ์„ค์ •, DOM & ์ด๋ฒคํŠธ ๋””๋ฒ„๊น…, ์†Œ์Šค ๋งต
  • โšก Performance: ๋กœ๋”ฉ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ๋“ฑ์„ ์ข…ํ•ฉ ๋ถ„์„
  • ๐Ÿ’พ Application: ์ฟ ํ‚ค, LocalStorage, IndexDB, Service Worker ๋“ฑ ์ €์žฅ์†Œ ๊ด€๋ฆฌ
  • ๐ŸŒ Lighthouse: ์‚ฌ์ดํŠธ ํ’ˆ์งˆ(์„ฑ๋Šฅ/์ ‘๊ทผ์„ฑ/SEO/PWA) ์ข…ํ•ฉ ๋ถ„์„

๐Ÿ”ฅ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ, ์™œ ์ค‘์š”ํ•œ๊ฐ€?

  1. ์‹ค์‹œ๊ฐ„ ์Šคํƒ€์ผ ์ˆ˜์ •: ๋ฐฐํฌ ์—†์ด๋„ CSS/HTML์„ ์ฆ‰์‹œ ํ…Œ์ŠคํŠธํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘ ๊ฐ€๋Šฅ
  2. ๊ฐ•๋ ฅํ•œ ๋””๋ฒ„๊น…: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜ค๋ฅ˜๋ฅผ ์ค„๋‹จ์œ„๋กœ ์ถ”์ ํ•ด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ
  3. ์„ฑ๋Šฅ ์ตœ์ ํ™”: ๋А๋ฆฐ ๋ถ€๋ถ„(๋„คํŠธ์›Œํฌ, ๋ Œ๋”๋ง, JS ์—ฐ์‚ฐ)์„ pinpointํ•˜์—ฌ ๊ฐœ์„  ๊ฐ€๋Šฅ
  4. ์ €์žฅ์†Œ ๊ด€๋ฆฌ: ์ฟ ํ‚ค, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธ ๋ฐ ์ดˆ๊ธฐํ™”
  5. ์ ‘๊ทผ์„ฑ, SEO ๊ฐœ์„ : Lighthouse๋กœ ์‚ฌ์ดํŠธ ์ˆ˜์ค€ ํ‰๊ฐ€๋ฅผ ๋ฐ›๊ณ , ๊ตฌ์ฒด์ ์ธ ๊ฐœ์„  ํŒ๊นŒ์ง€ ์–ป์„ ์ˆ˜ ์žˆ์Œ

๐Ÿ’ป ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ๋ฅผ ํฌ๋งํ•˜์‹ ๋‹ค๋ฉด, ์ด ๋„๊ตฌ๋Š” ๋ฐ˜๋“œ์‹œ ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•  ํ•„์ˆ˜ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
ํ˜„์—…์—์„œ๋„ ๋ชจ๋“  ์›น ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งค์ผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ์ด๋ฏ€๋กœ, ์ง์ ‘ ๋งŒ์ง€๊ณ  ์‹คํ—˜ํ•ด๋ณด๋ฉด์„œ ์ตํ˜€๋ณด์‹œ๊ธธ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค! ๐Ÿ€

profile
๐Ÿฑ ๋„์ฟ„์—์„œ ํ™œ๋™ ์ค‘์ธ ์›น ๊ฐœ๋ฐœ์ž ๐Ÿ‡ฏ๐Ÿ‡ต๐Ÿ’ป ๐Ÿง‘โ€๐Ÿ’ป ์ตœ๊ทผ์—๋Š” ์š”์ฆ˜IT์—์„œ ์ž‘๊ฐ€๋กœ๋„ ํ™œ๋™ ์ค‘์ž…๋‹ˆ๋‹ค! ๐Ÿ“ ์š”์ฆ˜IT ๊ธ€ ๋ชจ์Œ: https://yozm.wishket.com/magazine/@donghyuk65/

0๊ฐœ์˜ ๋Œ“๊ธ€