์น ๋ธ๋ผ์ฐ์ ์ถ์
- ๋ถ์ ์ ํ ์ฝํ
์ธ ์ ๋ํ ๊ธฐ๋ณธ ํ์ค ์ฐจ๋จ ๋ชจ๋
ํฌํจ ๋ ์จ๊ฒจ์ง ์๋ณ ๋ฐฉ๋ฒ(โ๋ธ๋ผ์ฐ์ ํ๊ฑฐํ๋ฆฐํ โ)์ ์ฌ์ฉํ ์ฌ์ฉ์ ์ถ์ ์ผ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.์ถ๊ฐ ์นดํ ๊ณ ๋ฆฌ Disconnect.me ๋ชฉ๋ก์๋ ์จ๊ฒจ์ง ์๋ณ์ ์ํด ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๋ฐํ์ง ํธ์คํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์จ๊ฒจ์ง ์๋ณ์ ์ ๋ณด์ ์๊ตฌ ์ ์ฅ์ ๋ชฉ์ ์ผ๋ก ํ์ง ์๋ ์์ญ(โ์ํผ์ฟ ํคโ)์ ์๋ณ์๋ฅผ ์ ์ฅํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ณ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.ํ๋ฉด ํด์๋ , ์ง์๋๋ MIME ์ ํ ๋ชฉ๋ก, ํค๋๋ณ ์ต์ (HTTP / 2 ะธHTTPS ), ํ๋ฆฝ๋ ๋ถ์ํ๋ฌ๊ทธ์ธ ๋ฐ ๊ธ๊ผด , ๋น๋์ค ์นด๋์ ๊ด๋ จ๋ ํน์ ์น API์ ๊ฐ์ฉ์ฑํน์ง WebGL ๋ฐ Canvas๋ก ๋ ๋๋ง,์์ฅ ์กฐ์ CSS๋ก ์์ ๊ธฐ๋ฅ ๋ถ์์ฅ ะธ๊ฑด๋ฐ .
-
ํ์ฑํ๋จ ๋ฐฉ๋ฒ๋คํฌ์ํ๋ค ์ฌ์ดํธ์ ์ถ๊ฐ ๊ถํ์ ๋ถ์ฌํ๋ผ๋ ์ฑ๊ฐ์ ์์ฒญ(Notification.requestPermission(), PushManager.subscribe() ๋ฐ MediaDevices.getDisplayMedia())์ด ์์ต๋๋ค. ์ธ์ฆ ํ์ธ ์์ฒญ์ผ๋ก ์ธํด ๋ ์ด์ ๋ธ๋ผ์ฐ์ ์์ ์ด ์ค๋จ๋์ง ์์ง๋ง ํ์ด์ง์์ ์ฌ์ฉ์ ์ํธ ์์ฉ(๋ง์ฐ์ค ํด๋ฆญ ๋๋ ํค ๋๋ฅด๊ธฐ)์ด ๊ธฐ๋ก๋ ํ์๋ง ์ฃผ์ ํ์์ค์ ํ์๊ธฐ๊ฐ ํ์๋ฉ๋๋ค. ๋ง์ ์ฌ์ดํธ์์๋ ์ฃผ๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ํธ์ ์๋ฆผ์ ์์ฒญํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๊ถํ ์์ฒญ ๊ธฐ๋ฅ์ ๋จ์ฉํฉ๋๋ค. ์๊ฒฉ ์ธก์ ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ์์ฒญ์ 97%๊ฐ ๊ฑฐ๋ถ๋์์ผ๋ฉฐ, 19%์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ๋์ ๋๋ ๊ฑฐ๋ถ ๋ฒํผ์ ํด๋ฆญํ์ง ์๊ณ ์ฆ์ ํ์ด์ง๋ฅผ ๋ซ์์ต๋๋ค. -
์ถ๊ฐ๋จ ์คํ์ ์ง์ HTTP/3 ํ๋กํ ์ฝ(about:config์์ ํ์ฑํํ๋ ค๋ฉด "network.http.http3.enabled" ์ต์ ์ ์ค์ ํด์ผ ํจ) Firefox์ HTTP/3 ์ง์์ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.๋ค์ฝ , Rust ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ QUIC ํ๋กํ ์ฝ(HTTP/3)์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ๊ตฌํํฉ๋๋ค.ํ์คํํ๋ค QUIC ํ๋กํ ์ฝ์ HTTP/2์ ์ ์ก์ผ๋ก ์ฌ์ฉ). - ๋ฐํจ๋ ๋ฒ๋ฅ ์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ
CCPA (์บ๋ฆฌํฌ๋์ ์๋น์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ฒ)์ถ๊ฐ Mozilla ์๋ฒ์์ ์๊ฒฉ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ธฐ๋ฅ. "about:preferences#privacy"("Firefox ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฌ์ฉ" ์น์ )์์ ์๊ฒฉ ์ธก์ ์์ง์ ๊ฑฐ๋ถํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ฉ๋๋ค. ์๊ฒฉ ์ธก์ ์ ์ก์ ์ ์ดํ๋ โโ"Firefox๊ฐ ๊ธฐ์ ๋ฐ ์ํธ ์์ฉ ๋ฐ์ดํฐ๋ฅผ Mozilla๋ก ๋ณด๋ด๋๋ก ํ์ฉ" ํ์ธ๋์ ์ ํ ์ทจ์ํ๋ฉด Mozilla์ฐฉ์ 30 ์ผ ๋์์ ๊ฑฐํ๋ค ์๊ฒฉ ์ธก์ ์ ์ก ์คํจ๋ก ์ด์ด์ง๋ ์๊ฐ ๋์ ์์ง๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋๋ค. ์๊ฒฉ ์ธก์ ์์ง ํ๋ก์ธ์ค ์ค์ Mozilla ์๋ฒ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์๋ Firefox ์ฑ๋ฅ, ๋ณด์ ๋ฐ ์ด๋ฆฐ ํญ ์ ๋ฐ ์ธ์ ๊ธฐ๊ฐ๊ณผ ๊ฐ์ ์ผ๋ฐ ๋งค๊ฐ๋ณ์์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค(์ด๋ฆฐ ์ฌ์ดํธ ๋ฐ ๊ฒ์ ์ฟผ๋ฆฌ์ ๋ํ ์ ๋ณด๋ ์ ์ก๋์ง ์์). ์์ง๋ ๋ฐ์ดํฐ์ ์ ์ฒด ์ธ๋ถ์ ๋ณด๋ "about:telemetry" ํ์ด์ง์์ ํ์ธํ ์ ์์ต๋๋ค.
- Linux ๋ฐ macOS์ ๊ฒฝ์ฐ Picture-in-Picture ๋ชจ๋์์ ๋น๋์ค๋ฅผ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด ๋ธ๋ผ์ฐ์ ์์ ํ์ํ๋ ๋์ ๊ณ์ ํ์๋๋ ํ๋กํ
์ฐฝ ํํ๋ก ๋น๋์ค๋ฅผ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋์์ ๋ณด๋ ค๋ฉด ํดํ์ ํด๋ฆญํ๊ฑฐ๋ ๋น๋์ค๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ ๋ ํ์๋๋ ์ปจํ
์คํธ ๋ฉ๋ด์์ "Picture in Picture"๋ฅผ ์ ํํด์ผ ํฉ๋๋ค(์์ฒด ์ปจํ
์คํธ ๋ฉ๋ด ํธ๋ค๋ฌ๋ฅผ ๋์ฒดํ๋ YouTube์์๋ ์ค๋ฅธ์ชฝ- ๋ ๋ฒ ํด๋ฆญํ๊ฑฐ๋ Shift ํค๋ฅผ ๋๋ฅธ ์ฑ ํด๋ฆญ).
- ์คํฌ๋กค๋ฐ๊ฐ ํ์๋๋ ๊ฒฝ์ฐ
๋ค์ฝํ ํ์ฌ ํ์ด์ง์ ๋ฐฐ๊ฒฝ์์ ๋๋ค. -
์ญ์ ๋จ ๊ธฐํ ๊ณต๊ฐ ํค ํ HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ฌ์ดํธ์ ์ฌ์ฉํ ์ ์๋ ์ธ์ฆ ๊ธฐ๊ด์ ์ธ์ฆ์๋ฅผ ๋ช ์์ ์ผ๋ก ๊ฒฐ์ ํ ์ ์๋ ๊ณต๊ฐ ํค ๋ฐ์ธ๋ฉ(PKP, ๊ณต๊ฐ ํค ๊ณ ์ ). ์ธ๊ธ๋ ์ด์ ๋ ์ด ๊ธฐ๋ฅ์ ๋ํ ์์๊ฐ ๋ฎ๊ณ ํธํ์ฑ ๋ฌธ์ ์ ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค(PKP ์ง์๋จ์ข Chrome์ ๊ฒฝ์ฐ) ์๋ชป๋ ํค ๋ฐ์ธ๋ฉ ๋๋ ํค ๋ถ์ค(์: ์ค์๋ก ์ญ์ ํ๊ฑฐ๋ ํดํน์ผ๋ก ์ธํ ์์)๋ก ์ธํด ์์ ์ ์ฌ์ดํธ๋ฅผ ์ฐจ๋จํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. - ๊ตฌ์กฐ
ํ์ฉ ํจ์น OpenBSD์์ ํ์ฉ๊ด๊ณ๋ฅผ ๋งบ๋ค ์์คํ ํธ์ถ๋ฐํ๋ค() ะธ์ฝ์() ์ถ๊ฐ ํ์ผ ์์คํ ๋ฐ ํ๋ก์ธ์ค ๊ฒฉ๋ฆฌ๋ฅผ ์ํด. - ๊ฐ๋ณ ๋๋ฉ์ธ์ ์ด๋ฏธ์ง ์ฐจ๋จ์ ๋ํ ์ง์์ด ์ ๊ฑฐ๋์์ต๋๋ค. ์ ๊ฑฐ ์ด์ ๋ ์ฌ์ฉ์๋ค ์ฌ์ด์์ ํด๋น ๊ธฐ๋ฅ์ ๋ํ ์์๊ฐ ๋ถ์กฑํ๊ณ ์ฐจ๋จ์ ์ํ ์ธํฐํ์ด์ค๊ฐ ๋ถํธํ๊ธฐ ๋๋ฌธ์ด๋ค.
- Windows์ฉ ๋น๋์์๋ ์ผ๋ฐ ์ด์ ์ฒด์ ์ธ์ฆ์ ์ ์ฅ์์ ํด๋ผ์ด์ธํธ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ๋ ์คํ์ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค(about:config์์ ํ์ฑํํ๋ ค๋ฉด security.osclientcerts.autoload ์ต์ ์ ํ์ฑํํด์ผ ํจ).
- CSS Shadow Parts์ ๋ํ ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก "๋ฅผ ํฌํจํ์ฌ ํ์ฑํ๋ฉ๋๋ค.
๋ถํ " ๋ฐ ์์ฌ ์์ "::๋ถ๋ถ ", ๋ค์์์ ์ง์ ๋ ์์๋ฅผ ์ ํ์ ์ผ๋ก ํ์ํ ์ ์์ต๋๋ค.์๋์ฐ DOM .
๋ฌธ๋จ
...CSS์์ ๋ถํ ์์ฑ์ ๋ฐ์ธ๋ฉ๋ ์์๋ฅผ ์ ํํ๋ ค๋ฉด ๋ค์์ ์ํํ์ธ์.
๋ง์ถค ์์::๋ถ๋ถ(์) {
ํ ๋๋ฆฌ: ๋จ์ 1px ๊ฒ์ ์;
๊ตญ๊ฒฝ ๋ฐ๊ฒฝ : 5px;
ํจ๋ฉ : 5px;
} - ์ฌ์ ์ง์ ์ถ๊ฐ
CSS ๋ชจ์ ๊ฒฝ๋ก ๋ฅผ ์ฌ์ฉํ๋ฉด JavaScript ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ ๋๋ฉ์ด์ ์ค์ ๋ ๋๋ง ๋ฐ ์ ๋ ฅ ํ๋ก์ธ์ค๋ฅผ ์ฐจ๋จํ์ง ์๊ณ CSS๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋๋ฉ์ด์ ๊ฐ์ฒด์ ๊ฒฝ๋ก๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ ๋๋ฉ์ด์ ์ ์ ์ดํ๊ธฐ ์ํด CSS ์์ฑ์ด ์ ๊ณต๋ฉ๋๋ค.
์คํ์ ,
์คํ์ ๊ฒฝ๋ก ,
์คํ์ ์ต์ปค ,
์คํ์ ๊ฑฐ๋ฆฌ ะธ
์คํ์ ํ์ . - ์ ํํ CSS ๋ณํ ์์ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ฉ๋๋ค.
๊ท๋ชจ ,ํ์ ะธ๋ฒ์ญ , ์์ฑ์ ๋ฐ์ธ๋ฉ๋์ง ์์๋ณํ (์ฆ, CSS์์๋ ์ด์ "transform: scale(2);" ๋์ "scale: 2;"๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค). - JavaScript๋ ๋
ผ๋ฆฌ์ ์ฐ๊ฒฐ ์ฐ์ฐ์ "๋ฅผ ๊ตฌํํฉ๋๋ค.
?? ", ์ผ์ชฝ ํผ์ฐ์ฐ์๊ฐ NULL์ด๊ฑฐ๋ ์ ์๋์ง ์์ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์๋ฅผ ๋ฐํํ๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์๋ฅผ ๋ค์ด, "const foo = bar ?? bar๊ฐ null์ธ ๊ฒฝ์ฐ '๊ธฐ๋ณธ ๋ฌธ์์ด'"์ "||" ์ฐ์ฐ์์ ๋ฐ๋๋ก bar๊ฐ 0์ด๊ณ ''์ธ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ฌ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ bar์ ๊ฐ์ ๋ฐํํฉ๋๋ค. - API ์ถ๊ฐ
FormData์ด๋ฒคํธ ๊ทธ๋ฆฌ๊ณ ์ด๋ฒคํธ์์ ๋ฐ์ดํฐ , ์จ๊ฒจ์ง ์ ๋ ฅ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ ์์ด ์ ์ถ ์ JavaScript ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. - API
์์น ์ ๋ณด ์ ์ฌ์๊ณผ ์ผ์นํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด Coordinates๋ฅผ GeolocationCoordinates๋ก, Position์ GeolocationPosition์ผ๋ก ์ด๋ฆ์ ๋ฐ๊พธ์์ต๋๋ค.
GeolocationPositionError์ ์์น ์ค๋ฅ์ ๋๋ค. - ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ฒ๊ฑฐ์์
์ถ๊ฐ ์กฐ๊ฑด๋ถ ์ค๋จ์ ์ง์(๊ฐ์ ์ ), ๊ฐ์ฒด์ ํน์ ์์ฑ์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ฝํ ๋ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. - ๋งค์ฐ ๋ง์ ์์ ํญ์ด ์ด๋ ค ์์ ๋ JavaScript ๋๋ฒ๊ฑฐ์ ์์์ด ๊ฐ์ํ๋์์ต๋๋ค(์ฐ์ , ์ด์ ๋ณด์ด๋ ํญ์ ์ฐ์ ์์๊ฐ ๋ถ์ฌ๋ฉ๋๋ค).
- ๋ฐ์ํ ๋์์ธ ๋ชจ๋๋ ๋ค์ํ ๋ฉํ ๋ทฐํฌํธ ๊ฐ์ ์๋ฎฌ๋ ์ด์ ์ ๊ตฌํํฉ๋๋ค. ํ์ด์ง ๊ฒ์ฌ ๋ชจ๋์ "prefers-color-scheme" ๊ฐ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ะ
์น ์ฝ์ ์ฌ๋ฌ ์ค JavaScript ํด์ ๋ชจ๋์์ Ctrl + O ๋ฐ Ctrl + S ์กฐํฉ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ ์ฅํ๊ณ ์ด ์ ์๋ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. -
์ถ๊ฐ๋จ ์น ์ฝ์์์ ๋น๋๊ธฐ ๋ฉ์์ง๋ฅผ ์๊ฐ์ ์ผ๋ก ๊ตฌ๋ถํ๊ธฐ ์ํด javascript.options.asyncstack์ ์ค์ ํฉ๋๋ค. console.trace() ๋ฐ console.error()์ ๋ํ ์ค์ ์ ํ์ฑํํ๋ฉด ๋น๋๊ธฐ ์์ ์ ์ ์ฒด ํธ์ถ ์คํ์ด ํ์๋๋ฏ๋ก ํ์ด๋จธ, ์ด๋ฒคํธ, ์ฝ์, ์์ฑ๊ธฐ ๋ฑ์ ์์์ ์์ฝํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ ์ ์์ต๋๋ค. - WebSocket ๊ฒ์ฌ ๋ชจ๋์์๋ ASP.NET Core ๋ฉ์์ง์ ์ฌ์ฉ๋๋ SignalR ํ์์ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ์๊ฐ์ ํ์๊ฐ ๊ตฌํ๋์์ผ๋ฉฐ ์ ์ก ๋ฐ ๋ค์ด๋ก๋๋ ๋ฐ์ดํฐ์ ์ ์ฒด ํฌ๊ธฐ๋ฅผ ํ์ํ๋ ์นด์ดํฐ๋ ์ถ๊ฐ๋์์ต๋๋ค.
- ํ์ด๋ฐ ํญ์ ๋คํธ์ํฌ ํ๋์ ๋ณ๋๋ก ๋ชจ๋ํฐ๋งํ๋ ๋๊ตฌ
ํ์๋จ ๊ฐ ๋ฆฌ์์ค๊ฐ ๋ค์ด๋ก๋๋ฅผ ์ํด ๋๊ธฐํ ์๊ฐ, ๋ค์ด๋ก๋๊ฐ ์์๋ ์๊ฐ, ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋ ์๊ฐ์ ๋ํ ์ ๋ณด์ ๋๋ค. - ์น ๊ฐ๋ฐ์์ฉ ๋๊ตฌ์์ ์ ์ธ๋ ํ๊ฒฝ
์คํฌ๋์น ํจ๋ , JavaScript ์ฝ๋ ์คํ์ ์ํด ์ค๊ณ๋์์ต๋๋ค(Scratchpad๋ ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์์ ์ฌ๋ฌ ์ค ์น ์ฝ์ ๋ชจ๋๋ก ๋์ฒด๋์์ต๋๋ค).
ํ์ ๊ณผ ๋ฒ๊ทธ ์์ ์ธ์๋ Firefox 72์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru