์›”๊ฐ„ ํฌ๋กฌ ์ด์Šˆ ๋ฆฌํฌํŠธ 2024๋…„ 12์›”ํ˜ธ


๋“ค์–ด๊ฐ€๋ฉฐ

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ์ฃผ๋Š” ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฒ„์ „๋ณ„ ๋ณ€๊ฒฝ ์˜ˆ์ • ํ•ญ๋ชฉ์„ ์ •๋ฆฌ ๋ฐ ๊ณต์œ ํ•œ๋‹ค.

๐Ÿ’ก ๊ฐ ํ•ญ๋ชฉ์€ Chrome Platform Status์˜ Roadmap๊ณผ ํ•œ ๋‹ฌ๊ฐ„์˜ blink-dev ํ™œ๋™ ์š”์•ฝ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

๐Ÿ’ก ๊ฐ ํ•ญ๋ชฉ์˜ โš ๏ธ๋Š” ์ง€์› ์ค‘๋‹จ(Deprecated), โœ…๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ(Enabled by default), ๐Ÿงช๋Š” ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(Developer Trial, Origin Trial)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿ’ก ๊ฐ ํ•ญ๋ชฉ ์ค‘ ๊ธฐ์กด ์„œ๋น„์Šค์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ํฌ๋‹ค๊ณ  ํŒ๋‹จํ•œ ํ•ญ๋ชฉ์€ ์†Œ์ œ๋ชฉ ๋’ค์— ๐Ÿ“Œ ํ‘œ์‹œ๋ฅผ ํ–ˆ๋‹ค.

๐Ÿ’ก ์ง€์› ์ค‘๋‹จ(โš ๏ธ) ์™ธ์˜ ํ•ญ๋ชฉ์€ ๊ณต์œ  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ ๊ฒฝ์šฐ์—๋งŒ ํฌํ•จํ–ˆ๋‹ค.

๐Ÿ’ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(๐Ÿงช)๋Š” chrome://flags ํŽ˜์ด์ง€์—์„œ Experimental Web Platform features๋ฅผ ํ™œ์„ฑํ™”(Developer Trial) ๋˜๋Š” ์ถœ์ฒ˜ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(Origin Trial)๋ฅผ ์‹ ์ฒญํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ Chrome Platform Status๋ฅผ ๊ทธ๋Œ€๋กœ ์ธ์šฉํ–ˆ๋‹ค.


๋ชฉ์ฐจ

  1. Chrome 132

    • โš ๏ธ HTMLVideoElement ์ „์ฒด ํ™”๋ฉด webkit ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ API ์ œ๊ฑฐ ๐Ÿ“Œ
    • โœ… inset ๋ฐ margin ์†์„ฑ์— ๋Œ€ํ•ด anchor-size() ํ—ˆ์šฉ
    • โœ… fetch API ์š”์ฒญ๊ณผ ์‘๋‹ต์— bytes() ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€
    • โœ… File System Access API: ๋กœ์ปฌ ํŒŒ์ผ ์•ก์„ธ์Šค ๊ฐ„์†Œํ™”
    • โœ… ์Šคํฌ๋กค ์˜์—ญ ์ž๋™ ํฌ์ปค์Šค
    • โœ… PushMessageData ์ธํ„ฐํŽ˜์ด์Šค์— bytes() ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€
    • โœ… sideways writing-mode ์ง€์›
    • โœ… ๋น„ํ™œ์„ฑํ™”๋œ ๋ฌธ์„œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŒ์˜ค๋ฒ„์™€ ๋‹ค์ด์–ผ๋กœ๊ทธ์— ์˜ˆ์™ธ ์ถ”๊ฐ€
    • ๐Ÿงช ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ๊ณผ ์ปดํŒŒ์ผ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์ฃผ์„ ์ถ”๊ฐ€
    • ๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ
  2. Chrome 133

    • โš ๏ธ Intl Locale ๊ฐ์ฒด์˜ getters ์†์„ฑ ์ง€์› ์ค‘๋‹จ
    • โš ๏ธ <link rel=prefetch> 5๋ถ„ ๊ทœ์น™ ์ œ๊ฑฐ
    • โš ๏ธ WebGPU maxInterStageShaderComponents ์ œํ•œ ์ œ๊ฑฐ
    • โš ๏ธ ๋น„ํ‘œ์ค€ getUserMedia ์˜ค๋””์˜ค ์ œ์•ฝ ์กฐ๊ฑด ์ œ๊ฑฐ
    • โœ… Animation ํด๋ž˜์Šค์— overallProgress ์†์„ฑ ์ถ”๊ฐ€
    • โœ… attr() ํ•จ์ˆ˜์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์ œ๊ณต
    • โœ… ํŒŒ์ผ ์‹œ์Šคํ…œ ์˜ต์ €๋ฒ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ถ”๊ฐ€
    • โœ… ํŒ์˜ค๋ฒ„ ๋‚ด๋ถ€ ์ด๋ฒคํŠธ๊ฐ€ ์™ธ๋ถ€๋กœ ๋ฒ„๋ธ”๋ง ์•Š๋„๋ก ์ˆ˜์ •
    • โœ… ClipboardItem ์ƒ์„ฑ์ž์— Promise<DOMString> ์ง€์› ์ถ”๊ฐ€
    • โœ…๏ธ WebAssembly ์— 64๋น„ํŠธ ํฌ์ธํ„ฐ ํ™˜๊ฒฝ ์ œ๊ณต
    • ๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ
  3. Chrome 134

    • โš ๏ธ SwiftShader fallback ์ œ๊ฑฐ
    • ๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ
  4. Chrome NEXT

    • โš ๏ธ unload ์ด๋ฒคํŠธ ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ
    • โš ๏ธ DOM ์š”์†Œ ์ œ๊ฑฐ ์‹œ blur ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ณ€๊ฒฝ ๐Ÿ“Œ
    • โš ๏ธ ์ œ3์ž ์ฟ ํ‚ค ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ
    • โš ๏ธ WebView์—์„œ CHIPS ์ž„์‹œ ๋น„ํ™œ์„ฑํ™”
    • โš ๏ธ Protected Audience API์˜ ๊ตฌ๋ฒ„์ „์ธ ์„œ๋ธŒ๋ฆฌ์†Œ์Šค ์›น ๋ฒˆ๋“ค ๋ฐฉ์‹ ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ

1. Chrome 132

โš ๏ธ HTMLVideoElement ์ „์ฒด ํ™”๋ฉด webkit ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ API ์ œ๊ฑฐ ๐Ÿ“Œ

<video> ์š”์†Œ์˜ ์ผ๋ถ€ ์ ‘๋‘์‚ฌ API๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

์ง€๊ธˆ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Element.requestFullscreen() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด <video> ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ๋„ ํŠน์ • ์š”์†Œ๋ฅผ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค. ์ œ๊ฑฐ ์˜ˆ์ •์ธ API๋Š” ๊ณผ๊ฑฐ <video> ์š”์†Œ์˜ ์ „์ฒด ํ™”๋ฉด ์ง€์›์„ ์œ„ํ•ด ์ ‘๋‘์‚ฌ(webkit)๋ฅผ ๋ถ™์—ฌ ์ถ”๊ฐ€ํ–ˆ๋˜ ์†์„ฑ์œผ๋กœ, Chrome 38 ๋ฒ„์ „๋ถ€ํ„ฐ ์ง€์› ์ค‘๋‹จ๋˜์—ˆ๋‹ค.

Chrome๋„ 71 ๋ฒ„์ „๋ถ€ํ„ฐ Fullscreen API๋ฅผ ์ง€์›ํ•˜๋‹ˆ ์•„์ง ์ด์ „ API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ํ•ด๋‹น API๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฒˆ์— ์ œ๊ฑฐ๋˜๋Š” ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

- boolean webkitSupportsFullscreen;
- boolean webkitDisplayingFullscreen;
- void webkitEnterFullscreen();
- void webkitExitFullscreen();
- void webkitEnterFullScreen();
- void webkitExitFullScreen();

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… inset ๋ฐ margin ์†์„ฑ์— ๋Œ€ํ•ด anchor-size() ํ—ˆ์šฉ

CSS ๋ช…์„ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด inset ๋ฐ margin ์†์„ฑ์— ๋Œ€ํ•ด anchor-size() ๊ฐ’์„ ํ—ˆ์šฉํ•œ๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โœ… fetch API ์š”์ฒญ๊ณผ ์‘๋‹ต์— bytes() ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€

Request์™€ Response ์ธํ„ฐํŽ˜์ด์Šค์— bytes() ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.

Uint8Array๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœ๋ฏธ์Šค๋ฅผ ํ†ตํ•ด ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… File System Access API: ๋กœ์ปฌ ํŒŒ์ผ ์•ก์„ธ์Šค ๊ฐ„์†Œํ™”

File System Access API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ IDE, ์‚ฌ์ง„ ๋ฐ ๋™์˜์ƒ ํŽธ์ง‘๊ธฐ, ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ๋“ฑ ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ๊ธฐ๊ธฐ์— ์žˆ๋Š” ํŒŒ์ผ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์›น ์•ฑ์„ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์›น ์•ฑ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ์ด API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ธฐ๊ธฐ์˜ ํŒŒ์ผ๊ณผ ํด๋”๋ฅผ ์ง์ ‘ ์ฝ๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ง์ ‘ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๊ฒƒ ์™ธ์—๋„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์—ด๊ณ  ์ฝ˜ํ…์ธ ๋ฅผ ์—ด๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ๋ฐ๋ชจ((์ถœ์ฒ˜: github: GoogleChromeLabs/text-editor))

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… ์Šคํฌ๋กค ์˜์—ญ ์ž๋™ ํฌ์ปค์Šค

์Šคํฌ๋กค ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ๋ฅผ ์ž๋™์œผ๋กœ ํฌ์ปค์Šค ๊ฐ€๋Šฅํ•œ(focusable) ์š”์†Œ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์Šคํฌ๋กค ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ์— tabindex๊ฐ€ ์—†์–ด๋„ <input>, <button>์ฒ˜๋Ÿผ ํ•ด๋‹น ์š”์†Œ์— ์ž๋™์œผ๋กœ ํฌ์ปค์Šค๋ฅผ ๋งž์ถ”๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ํ™”์‚ดํ‘œ ๋ฐฉํ–ฅํ‚ค๋กœ ํ•ด๋‹น ์š”์†Œ๋ฅผ ์Šคํฌ๋กค ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… PushMessageData ์ธํ„ฐํŽ˜์ด์Šค์— bytes() ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€

PushMessageData ์ธํ„ฐํŽ˜์ด์Šค์— bytes() ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค.

Uint8Array๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ”„๋กœ๋ฏธ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… sideways writing-mode ์ง€์›

CSS writing-mode ์†์„ฑ์—์„œ sideways-rl ๊ณผ sideways-lr ์†์„ฑ์€ ์„ธ๋กœ๋กœ ์“ฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์œผ๋กœ, ๋ช…์„ธ์— ์ถ”๊ฐ€๋˜์—ˆ์ง€๋งŒ ํฌ๋กฌ์—์„œ๋Š” ์•„์ง ์ง€์›๋˜์ง€ ์•Š์•˜๋‹ค.

์ด์ œ ํฌ๋กฌ์—์„œ๋„ sideways-rl ๊ณผ sideways-lr ์†์„ฑ์„ ์ง€์›ํ•˜๊ฒŒ ๋˜์–ด ์„ธ๋กœ๋กœ ์“ฐ๊ธฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ๋ฐฐํฌ ์™„๋ฃŒ
  • Safari: ๊ฐœ๋ฐœ ์ค‘
  • ์›น ๊ฐœ๋ฐœ์ž: ๋งค์šฐ ๊ธ์ •์ 

์ฐธ์กฐ


โœ… ๋น„ํ™œ์„ฑํ™”๋œ ๋ฌธ์„œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŒ์˜ค๋ฒ„์™€ ๋‹ค์ด์–ผ๋กœ๊ทธ์— ์˜ˆ์™ธ ์ถ”๊ฐ€

๊ธฐ์กด์—๋Š” ๋น„ํ™œ์„ฑ ๋ฌธ์„œ(๋‹ค๋ฅธ ํƒญ์œผ๋กœ ์ด๋™ํ•œ ๊ฒฝ์šฐ)์—์„œ showPopover()์™€ showDialog() ๋ฉ”์„œ๋“œ๋Š” ํ˜ธ์ถœ๋˜์ง€๋งŒ ์•„๋ฌด ๋™์ž‘๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค.

ํฌ๋กฌ์€ ์ด๋Ÿฌํ•œ ์ž‘์—…์— InvalidStateError ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

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

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


๐Ÿงช ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์‹ฑ๊ณผ ์ปดํŒŒ์ผ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์ฃผ์„ ์ถ”๊ฐ€

์›น ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์˜ ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํŒŒ์‹ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ฃผ์„์„ eagerCompilation ์ฃผ์„์„ ํ†ตํ•ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

//# eagerCompilation=all

์ด๋ฅผ ํ†ตํ•ด, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ์›น์‚ฌ์ดํŠธ ๋กœ๋“œ ์‹œ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ปดํŒŒ์ผํ•ด ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ด๋Ÿฌํ•œ ์ง€์—ฐ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.
  2. ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์—์„œ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉ์— ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ๋ฐ˜์‘ํ•ด์•ผ ํ•˜๋Š”์ง€์— ์ง€์—ฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ

Chrome 132์€ 2025๋…„ 1์›” 8์ผ์— ์ •์‹ ๋ฐฐํฌ ์˜ˆ์ •์ด๋‹ค.


2. Chrome 133

โš ๏ธ Intl Locale ๊ฐ์ฒด์˜ getters ์†์„ฑ ์ง€์› ์ค‘๋‹จ

Intl Locale Info API๋Š” ECMAScript์˜ TC39 ์œ„์›ํšŒ์—์„œ ๊ฐœ๋ฐœ ์ค‘์ธ Stage 3 ๋‹จ๊ณ„์˜ ์ œ์•ˆ์ด๋‹ค. ์ด API๋Š” Intl.Locale ๊ฐ์ฒด๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ง€์—ญ(locale)์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์œ„์น˜ํ•œ ์ง€์—ญ์˜ ๋ฌธํ™”์  ์š”์†Œ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ๊ธฐ์กด์— ์‚ฌ์šฉ๋˜๋˜ ์ผ๋ถ€ getter ๋ฉ”์„œ๋“œ๊ฐ€ ์ œ์•ˆ์ด ์ƒˆ๋กญ๊ฒŒ ์ˆ˜์ •๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด์— ๊ตฌํ˜„๋œ deprecated(์‚ฌ์šฉ ์ค‘๋‹จ)๋œ getter๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์ƒˆ๋กœ ์ œ์•ˆ๋œ ํ•จ์ˆ˜๋กœ ๋‹ค์‹œ ์ถœ์‹œํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


<link rel=prefetch>๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•ด ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

5๋ถ„ ๊ทœ์น™์€ <link rel=prefetch>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์˜ฌ ๋•Œ, ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ ์‹œ 5๋ถ„ ๋™์•ˆ ์บ์‹œ ์ „๋žต(max-age๋‚˜ no-cache)์„ ๋ฌด์‹œํ•˜์ง€ ์•Š๊ณ  ์ผ๋ฐ˜ HTTP ์บ์‹œ ์ „๋žต์„ ์‚ฌ์šฉํ•œ๋‹ค.

5๋ถ„ ๊ทœ์น™์€ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์•˜๊ณ  ๋ธŒ๋ผ์šฐ์ € ๊ฐ„์˜ prefetch ๋™์ž‘์„ ์ผ์น˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ด ๊ทœ์น™์„ ์ œ๊ฑฐํ•œ๋‹ค.

prefetch ์žฌ์‚ฌ์šฉ์˜ 0.05%๋งŒ์ด ์ด ๊ทœ์น™์˜ ํ˜œํƒ์„ ๋ฐ›๊ณ  ์žˆ๊ณ , ์š”์ฒญ์— 5๋ถ„ max-age๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ด ๊ทœ์น™์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์–ด ์ด ๊ทœ์น™์„ ์ œ๊ฑฐํ•ด๋„ ํฐ ์˜ํ–ฅ์ด ์—†๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ๋ฐฐํฌ ์™„๋ฃŒ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โš ๏ธ WebGPU maxInterStageShaderComponents ์ œํ•œ ์ œ๊ฑฐ

WebGPU maxInterStageShaderComponents ์ œํ•œ์€ ๋น„์Šทํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง„ ๊ธฐ์กด์˜ maxInterStageShaderVariables ์ œํ•œ๊ณผ ์ค‘๋ณต๋œ๋‹ค.

๋‘ ์ œํ•œ์˜ ๊ณ„์‚ฐ ๋ฐฉ์‹์— ํฐ ์ฐจ์ด๊ฐ€ ์—†๊ณ  maxInterStageShaderVariables ์ œํ•œ์ด ๋” ์œ ์—ฐํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— maxInterStageShaderComponents ์ œํ•œ์„ ์ œ๊ฑฐํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ๊ฐœ๋ฐœ ์ค‘
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โš ๏ธ ๋น„ํ‘œ์ค€ getUserMedia ์˜ค๋””์˜ค ์ œ์•ฝ ์กฐ๊ฑด ์ œ๊ฑฐ

ํ‘œ์ค€ํ™” ์ด์ „ getUserMedia ์‚ฌ์šฉ์„ ์œ„ํ•ด goog- ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ ์—ฌ๋Ÿฌ ๋น„ํ‘œ์ค€ ์กฐ๊ฑด์„ ์ง€์›ํ–ˆ๋‹ค.

์ œ์•ฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋Ÿ‰์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•˜๊ณ , ํฌ๋กœ๋ฏธ์›€์˜ ์˜ค๋””์˜ค ์บก์ฒ˜ ์Šคํƒ์˜ ๋ณ€๊ฒฝ์œผ๋กœ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โœ… Animation ํด๋ž˜์Šค์— overallProgress ์†์„ฑ ์ถ”๊ฐ€

Animation ํด๋ž˜์Šค์— overallProgress ์†์„ฑ์€ ํ˜„์žฌ ์‹œ๊ฐ„(currentTime)๊ณผ associated effect end์˜ ๋น„์œจ ๊ฐ’์ด๋‹ค.

์ด ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์ง„ํ–‰ ์ƒํƒœ๋ฅผ AnimationTimeline์™€ ๊ด€๊ณ„์—†์ด ์ผ๊ด€๋˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Animation.overallProgress ๊ณ„์‚ฐ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ธ ๊ฒฝ์šฐ

    • ์• ๋‹ˆ๋ฉ”์ด์…˜์— associated effect๊ฐ€ ์—†๊ฑฐ๋‚˜
    • ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ currentTime์ด unresolved์ธ ๊ฒฝ์šฐ
    • overallProgress๋Š” 0์ด๋‹ค.
  2. associated effect end์ด 0์ธ ๊ฒฝ์šฐ

    • currentTime์ด ์Œ์ˆ˜์ธ ๊ฒฝ์šฐ
    • overallProgress๋Š” 0์ด๋‹ค.
    • ์ด ์™ธ์˜ ๊ฒฝ์šฐ
    • overallProgress๋Š” 1์ด๋‹ค.
  3. associated effect end์ด ๋ฌดํ•œ์ธ ๊ฒฝ์šฐ
  4. overallProgress๋Š” 0์ด๋‹ค.
  5. ์ด ์™ธ์˜ ๊ฒฝ์šฐ
  6. overallProgress = currentTime / associated effect end
  7. 0์—์„œ 1์‚ฌ์ด์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… attr() ํ•จ์ˆ˜์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์ œ๊ณต

CSS Level 5์˜ ๋ช…์„ธ์—์„œ attr() ํ•จ์ˆ˜์— <string>์— ๋”ํ•ด ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

<style>
  div {
    background-color: attr(data-bg-color color, red);
    width: attr(data-width length, 100px);
    height: attr(data-height length, 100px);
  }
</style>
<div data-bg-color="blue" data-width="200px" data-height="200px">Test Div</div>
  • background-color ์†์„ฑ์€ attr() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ data-bg-color ์†์„ฑ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์ด๋ฅผ color ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • width์™€ height ์†์„ฑ์€ attr() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ data-width์™€ data-height ์†์„ฑ์—์„œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์ด๋ฅผ length ํƒ€์ž…์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ๋งŽ์€ ์š”์ฒญ์ด ์žˆ์—ˆ๊ณ , ์ด์ œ ํฌ๋กฌ์ด์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… ํŒŒ์ผ ์‹œ์Šคํ…œ ์˜ต์ €๋ฒ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ถ”๊ฐ€

ํ˜„์žฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•˜๋ ค๋ฉด, ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

FileSystemObserver ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์›น์‚ฌ์ดํŠธ๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ(์˜ˆ: ํŒŒ์ผ ์ถ”๊ฐ€, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ)์— ๋Œ€ํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

enum FileSystemChangeType {
  "appeared",     // ํŒŒ์ผ ์ถ”๊ฐ€
  "disappeared",  // ํŒŒ์ผ ์‚ญ์ œ
  "modified",     // ํŒŒ์ผ ์ˆ˜์ •
  "moved",        // ํŒŒ์ผ ์ด๋™
  // ...
};

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ… ํŒ์˜ค๋ฒ„ ๋‚ด๋ถ€ ์ด๋ฒคํŠธ๊ฐ€ ์™ธ๋ถ€๋กœ ๋ฒ„๋ธ”๋ง ์•Š๋„๋ก ์ˆ˜์ •

์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ์š”์†Œ๋ฅผ ๊ณ ๋ คํ•ด๋ณด์ž.

<button popovertarget=foo>Activate
  <div popover id=foo>Clicking me shouldn't close me</div>
</button>

๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ํŒ์˜ค๋ฒ„๊ฐ€ ํ™œ์„ฑํ™”๋œ๋‹ค. ๊ทธ ํ›„ ํŒ์˜ค๋ฒ„๋ฅผ ํด๋ฆญํ•˜๋ฉด ํŒ์˜ค๋ฒ„๊ฐ€ ๋‹ซํžˆ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ํ˜„์žฌ ํŒ์˜ค๋ฒ„ ์š”์†Œ ๋‚ด๋ถ€์— ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด <button> ์š”์†Œ๋กœ ์ด๋ฒคํŠธ๊ฐ€ ๋ฒ„๋ธ”๋ง๋˜์–ด ํ˜ธ์ถœ๋˜๊ณ , ํŒ์˜ค๋ฒ„์˜ ๋‹ซ๋Š” ๋™์ž‘์„ ์‹คํ–‰ํ•œ๋‹ค.

์ด๋ฒˆ ๋ณ€๊ฒฝ์œผ๋กœ ์ค‘์ฒฉ๋œ ํŒ์˜ค๋ฒ„๋ฅผ ํด๋ฆญํ•ด๋„ ํŒ์˜ค๋ฒ„์—์„œ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๋™์ž‘์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ๊ธ์ •์ 
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โœ… ClipboardItem ์ƒ์„ฑ์ž์— Promise<DOMString> ์ง€์› ์ถ”๊ฐ€

ClipboardItem์€ ํด๋ฆฝ๋ณด๋“œ API์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ํด๋ฆฝ๋ณด๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

ClipboardItem์˜ ์ƒ์„ฑ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Blob ๋˜๋Š” Promise<Blob>์˜ ํ˜•ํƒœ๋กœ ๋ฐ›๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ, Clipboard API ๋ช…์„ธ์— ๋”ฐ๋ฅด๋ฉด ์ƒ์„ฑ์ž๋กœ DOMString์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.

ํ˜„์žฌ ๊ฐœ๋ฐœ์ž๋Š” ClipboardItem์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋ฌธ์ž์—ด์„ Blob ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•œ ์ž‘์—…์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ด๋ฏธ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ํฌ๋กฌ๋„ ์ด์— ๋งž์ถฐ ์ง€์›ํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โœ…๏ธ WebAssembly ์— 64๋น„ํŠธ ํฌ์ธํ„ฐ ํ™˜๊ฒฝ ์ œ๊ณต

ํฌ๋กฌ์˜ WebAssembly ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ 8GB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด์ „์—๋Š” 4GB๊นŒ์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

64๋น„ํŠธ ํฌ์ธํ„ฐ ํ™˜๊ฒฝ์˜ ์†Œ์Šค ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ด ์ œ์•ˆ์€ 64๋น„ํŠธ ์ธ๋ฑ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ํ…Œ์ด๋ธ”์„ ํ™•์žฅํ•œ๋‹ค.

๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ 4๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฉด ์ถฉ๋ถ„ํ•˜๋ฉฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ถ”๊ฐ€ ์ด์ ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ํ˜„์žฌ WebAssembly ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ ๋ คํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.

์ด์ œ ํฌ๋กฌ์—์„œ WebAssembly ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด 32๋น„ํŠธ์™€ 64๋น„ํŠธ ๋ฉ”๋ชจ๋ฆฌ ์ธ๋ฑ์Šค๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ๊ธ์ •์ 
  • Safari: ๊ฐœ๋ฐœ ์ค‘
  • ์›น ๊ฐœ๋ฐœ์ž: ๊ธ์ •์ 

์ฐธ์กฐ


๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ

Chrome 133์€ 2025๋…„ 1์›” 29์ผ์— ์ •์‹ ๋ฐฐํฌ ์˜ˆ์ •์ด๋‹ค.


3. Chrome 134

โš ๏ธ SwiftShader fallback ์ œ๊ฑฐ

WebGL์ด SwiftShader๋กœ ์ž๋™ ๋Œ€์ฒด๋˜๋˜ ๋™์ž‘์ด ์ค‘๋‹จ๋œ๋‹ค.

SwiftShader๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด --enable-unsafe-swiftshader ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ, WebGL ์‹คํŒจ ์‹œ ๋Œ€์ฒด API(Canvas2D ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋Œ€๋น„ํ•ด์•ผ ํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


๐Ÿ—“๏ธ ๋ฐฐํฌ ์˜ˆ์ •์ผ

Chrome 134์€ 2025๋…„ 2์›” 26์ผ์— ์ •์‹ ๋ฐฐํฌ ์˜ˆ์ •์ด๋‹ค.


4. Chrome NEXT

โš ๏ธ unload ์ด๋ฒคํŠธ ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ

unload ์ด๋ฒคํŠธ๋Š” ํ•ด๋‹น ๋ฌธ์„œ๋ฅผ ๋– ๋‚˜๊ฑฐ๋‚˜ ํ•˜์œ„ ์ž์›(.js, .css ๋“ฑ)์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋‹ค. ์ด ์ด๋ฒคํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์ „์— ํŠน์ • ๋™์ž‘์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

window.addEventListener('unload', (event) => {
  navigator.sendBeacon('/api/log', 'unload!');
});

ํ•˜์ง€๋งŒ unload ์ด๋ฒคํŠธ๋Š” beforeunload ์ด๋ฒคํŠธ์™€ ๋‹ฌ๋ฆฌ ๊ธฐ๋ณธ ๋™์ž‘์„ ์ทจ์†Œ(event.preventDefault())ํ•  ์ˆ˜ ์—†์–ด ์ด๋ฒคํŠธ๊ฐ€ ์•„์˜ˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ๋„ ํ•œ๋‹ค. W3C์˜ ํ†ต๊ณ„์— ๋”ฐ๋ฅด๋ฉด unload ์ด๋ฒคํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ํฌ๋กฌ ๋ฐ์Šคํฌํƒ‘์—์„œ๋Š” 95%, ๋ชจ๋ฐ”์ผ์—์„œ๋Š” 57%~68% ์ •๋„๋กœ, ์ด๋Š” ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์˜ ํŠน์„ฑ์ƒ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์•ฑ์„ ๋ณด๋‹ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ์ž์ฒด๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์˜ํ–ฅ๋„๊ฐ€ ํฐ ๋งŒํผ, ํฌ๋กฌ์€ ์ ์ง„์ ์œผ๋กœ unload ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•  ๊ณ„ํš์ด๋‹ค. ๋จผ์ € Permissions-Policy๋ฅผ ์ถ”๊ฐ€ํ•ด ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ—ˆ์šฉ์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ , ๋‚˜์ค‘์—๋Š” ํ•ด๋‹น ๊ถŒํ•œ์˜ ๊ธฐ๋ณธ๊ฐ’์„ deny๋กœ ๋ฐ”๊ฟ€ ์˜ˆ์ •์ด๋‹ค. ์ฐธ๊ณ ๋กœ, Chrome 117์—์„œ unload ์ด๋ฒคํŠธ์˜ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” Permissions-Policy์˜ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ฐธ์กฐ


โš ๏ธ DOM ์š”์†Œ ์ œ๊ฑฐ ์‹œ blur ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ณ€๊ฒฝ ๐Ÿ“Œ

ํฌ์ปค์Šค๋œ DOM ์š”์†Œ ์ œ๊ฑฐ ์‹œ blur ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๋ณ€๊ฒฝํ•œ๋‹ค. ๊ธฐ์กด ๋ช…์„ธ์—๋Š” ํฌ์ปค์Šค๋œ DOM ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์ •์˜๊ฐ€ ์—†์–ด Chromium ๊ธฐ๋ฐ˜์˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ํฌ์ปค์Šค๋œ DOM ์š”์†Œ ์ œ๊ฑฐ ์‹œ ํ•ด๋‹น ์š”์†Œ์— blur ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ๋‹ค. ์ตœ์‹  ๋ช…์„ธ์—์„œ DOM ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒฝ์šฐ, ํฌ์ปค์Šค ์ œ๊ฑฐ ๋‹จ๊ณ„(blur, change ์ด๋ฒคํŠธ ๋ฐœ์ƒ)๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋„๋ก ์ •์˜ํ•จ์— ๋”ฐ๋ผ ํฌ๋กฌ๋„ ํฌ์ปค์Šค ์ œ๊ฑฐ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋„๋ก ๋ณ€๊ฒฝํ•  ์˜ˆ์ •์ด๋‹ค.

๋‹ค๋งŒ ์ •์‹ ์ ์šฉ ์ผ์ •์€ ๋ถˆ๋ถ„๋ช…ํ•˜๋‹ค. ํฌ๋กฌ์€ ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์–ด ๊ด€๋ จ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ๊ผผ๊ผผํžˆ ๊ฒ€ํ†  ํ›„ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•œ๋‹ค๋Š” ์ž…์žฅ์ด๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ๋ฐฐํฌ ์™„๋ฃŒ
  • Safari: ๋ฐฐํฌ ์™„๋ฃŒ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โš ๏ธ ์ œ3์ž ์ฟ ํ‚ค ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ

์ œ3์ž ์ฟ ํ‚ค(Third-Party Cookies)๋Š” ํ˜„์žฌ ๋„๋ฉ”์ธ๊ณผ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ ๋ฐœํ–‰ํ•œ ์ฟ ํ‚ค๋ฅผ ๋งํ•œ๋‹ค. ์ œ3์ž ์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ, ํ™œ๋™ ์ •๋ณด ๋“ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ๊ด‘๊ณ  ๋งˆ์ผ€ํŒ… ๋ถ„์•ผ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜, ์›ํ•˜์ง€ ์•Š๋Š” ๊ฐœ์ธ์ •๋ณด๊นŒ์ง€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ํฐ ๋‹จ์ ์ด ์žˆ๋‹ค.

Chrome์€ ์ด๋ฏธ ๊ด€๋ จ ๋ฒ• ์ค€์ˆ˜๋ฅผ ์œ„ํ•ด 2020๋…„ 1์›”๋ถ€ํ„ฐ ์ œ3์ž ์ฟ ํ‚ค์˜ ์ค‘๋‹จ์„ ์˜ˆ๊ณ ํ–ˆ๋‹ค. ๊ทธ๋™์•ˆ ์˜ํ–ฅ์ด ํฐ ์ ์„ ๊ณ ๋ คํ•ด ์ง€์› ์ค‘๋‹จ์„ ๊ณ„์† ๋ฏธ๋ค„์™”์œผ๋‚˜, 2024๋…„์—๋Š” ์ ์ง„์ ์œผ๋กœ ์ œ3์ž ์ฟ ํ‚ค๋ฅผ ์ง€์› ์ค‘๋‹จํ•  ์˜ˆ์ •์ด๋‹ค.

์ฐธ๊ณ ๋กœ, ๊ตฌ๊ธ€์ด ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋Š” ๋ณดํ˜ธํ•˜๋˜, ๊ธฐ์กด์˜ ์ œ3์ž ์ฟ ํ‚ค๊ฐ€ ํ•˜๋˜ ์—ญํ• ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” Privacy Sandbox๋ฅผ ๊ฐœ๋ฐœ ์ค‘์ด๋‹ค.

ํ˜„์žฌ ๋ฐฐํฌ๋œ Chrome 127์—์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ†ตํ•ด ๋ฏธ๋ฆฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ๋ฐฐํฌ ์™„๋ฃŒ
  • Safari: ๋ฐฐํฌ ์™„๋ฃŒ
  • ์›น ๊ฐœ๋ฐœ์ž: ๋ณตํ•ฉ์ 

์ฐธ์กฐ


โš ๏ธ WebView์—์„œ CHIPS ์ž„์‹œ ๋น„ํ™œ์„ฑํ™”

๋…๋ฆฝ์ ์ธ ํŒŒํ‹ฐ์…˜ ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ์ฟ ํ‚ค(์ดํ•˜ CHIPS)๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ตœ์ƒ์œ„ ์‚ฌ์ดํŠธ๋งˆ๋‹ค ๋ณ„๋„์˜ ์ฟ ํ‚ค ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„ํ• ๋œ ์Šคํ† ๋ฆฌ์ง€์— ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

WebView์—์„œ ์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” Android CookieManager API๊ฐ€ CHIPS๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

WebView์—์„œ CHIPS๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋’ค ๋‹ค์‹œ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ํ•œ๋‹ค.

์ด๋กœ ์ธํ•ด ์‹ค์ œ ๋‚ด์šฉ๊ณผ API ๋‚ด์šฉ์ด ๋ถˆ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ํฌ๋กฌ์€ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์˜ํ–ฅ๋„๋ฅผ ํŒŒ์•…์ค‘์ด๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


โš ๏ธ Protected Audience API์˜ ๊ตฌ๋ฒ„์ „์ธ ์„œ๋ธŒ๋ฆฌ์†Œ์Šค ์›น ๋ฒˆ๋“ค ๋ฐฉ์‹ ์ง€์› ์ค‘๋‹จ ๐Ÿ“Œ

Protected Audience API๋Š” ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์„œ๋“œ ํŒŒํ‹ฐ ์ถ”์  ์—†์ด ๋ฆฌ๋งˆ์ผ€ํŒ… ๋ฐ ๊ด‘๊ณ  ํƒ€๊ฒŸํŒ…์„ ์ง€์›ํ•˜๋Š” API๋‹ค.

API ์‹ ํ˜ธ์˜ ์ง„์œ„์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์„œ๋ธŒ๋ฆฌ์†Œ์Šค ์›น ๋ฒˆ๋“ค์„ ์‚ฌ์šฉํ•œ ์ด์ „ ๋ฒ„์ „๊ณผ ํŽ˜์ด์ง€ ์‹œ์ž‘ fetch() ์š”์ฒญ์— ํŠน์ˆ˜ HTTP ์‘๋‹ต ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์กด์žฌํ•œ๋‹ค.

์„œ๋ธŒ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ๋ฒ„์ „์ด 5์–ต๋ถ„์˜ 1 ์ •๋„๋กœ ๋‚ฎ์€ ํŽ˜์ด์ง€ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์ด๊ณ  ์žˆ์–ด ์ œ๊ฑฐํ•˜๊ณ ์ž ํ•œ๋‹ค.

์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์›น ๊ฐœ๋ฐœ์ž์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Firefox: ์˜๊ฒฌ ์—†์Œ
  • Safari: ์˜๊ฒฌ ์—†์Œ
  • ์›น ๊ฐœ๋ฐœ์ž: ์˜๊ฒฌ ์—†์Œ

์ฐธ์กฐ


์กฐ์ข…ํ˜„2024.12.24
Back to list