๋ค์ด๊ฐ๋ฉฐ
Web push : web application user๋ค์๊ฒ ์๊ฒฉ์ผ๋ก notification๋ฅผ ๋ณด๋ผ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฅ
๋ ๋ง~
ํ๋ฉด ์ค๋ฅธ์ชฝ ์์ webkit.org์ ์๋ฆผ์ด ๋ํ๋ฌ์ต๋๋ค.
์๋ฆผ์ ํด๋ฆญํ๋ฉด WebKit์ ๊ธ์ด ์ ์ฐฝ์ ์ด๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์ง์
์น ํธ์๋ macOS Ventura๋ถํฐ Mac Safari์์ ์ง์๋๋ ๊ธฐ๋ฅ์
๋๋ค.
*iOS, iPadOS์์๋ ๋ด๋
๋ถํฐ ์ง์์ ์์ํ ๊ฑฐ๋ผ๊ณ ํฉ๋๋ค.
์น ํ์ค์ ๋ง๊ฒ ์ฝ๋ฉํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ์๋ Safari์์ ์๋ํ๊ฒ ํ๋ ค๊ณ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ด์.
*๋ธ๋ผ์ฐ์ ๊ฐ์ง ๊ธฐ๋ฅ์์ Safari๋ฅผ ์ ์ธํ์ง๋ง ์๋๋ค๋ฉด
โข
browser detection์์ feature detection์ผ๋ก ์ ํํ๊ธฐ ์ข์ ํ์ด๋ฐ์
๋๋ค!
โฆ
feature detection ์ต๊ณ !
์ฐ๋ฆฌ๋ ๋์ผํ Apple Push Notification Service๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ชจ๋ Mac๊ณผ iOS ๊ธฐ๊ธฐ์์ ๊ธฐ๋ณธ์ ์ธ ํธ์ ๊ธฐ๋ฅ์ ์ ๊ณตํด์.
But, Safari ์ฌ์ฉ์๋ค๊ณผ ์ฐ๊ฒฐ๋๊ธฐ ์ํด์๋ Apple ๊ฐ๋ฐ์ ๊ณ์ ์ด ํ์ํ์ง ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์น ํธ์์ ์ ์๋ํฌ์ธํธ URL๋ฅผ ์ฌ์ฉํ๋๋ฐ ์๋์น ์๊ฒ Safari๋ฅผ ์ ์ธํ๋ ์ผ์ด ์๊ธธ ์๋ ์์ด์.
์ฐ๋ฆฌ๊ฐ ์๋ฒ ์๋ํฌ์ธํธ๋ฅผ ์๊ฒฉํ๊ฒ ๊ด๋ฆฌํ๊ณ ์๋ค๋ฉด push.apple.com์ ๋ชจ๋ ์๋ธ ๋๋ฉ์ธ์์ URL์ ํ์ฉํด์ผ ํฉ๋๋ค.
User experience
User์ ์๊ฐ์ผ๋ก ์น ํธ์ ๊ฒฝํ์ ๋ํด์ ์ดํด๋ณด์!
Demo) WebKit open source project๋ฅผ ์ต์ ์ํ๋ก ์ ์งํด์ผ ํ๋๋ฐ ์น ํธ์๊ฐ ๊ทธ๊ฑธ ๋์์ค๋๋ค.
webkit.org๋ ์ฌ์ฉ์ ์ ์ค์ฒ๋ก ์์ฒญํ์ง ์์ผ๋ฉด ํธ์ ๊ถํ์ ๋ฐ์ ์ ์์ต๋๋ค.
๊ตฌ๋
์๋ฆผ์ ์ํด ์๋ ์ข
๋ชจ์์ ๋๋ฌ๋ณผ๊ฒ์.
์์คํ
์๋ฆผ ํ๋กฌํํธ๊ฐ ๋์ต๋๋ค.(๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ณด๋ ๊ฒ๊ณผ ๋์ผ)
โข
์ด ๊ฒฝ์ฐ์๋ webkit.org๋ฅผ ๋์ ํ๋ ๊ฒ๋๋ค.
ํ์ฉ์ ๋๋ฅด๋ฉด ์ธํ
์๋ฃ ์
๋๋ค.
webkit.org์์๋ ์๋ก์ด ๋ธ๋ก๊ทธ ๊ธ์ ๋ํด ์๋ฆผ๊ณผ ์์ค ์ฝ๋ ์ ์ฅ์์ ๋ํ ์๋ฆผ์ ๋ฐ์ ์ ์๋๋ก ํ๊ณ ์์ต๋๋ค.
๋๊ตฐ๊ฐ WebKit ๋ธ๋ก๊ทธ์ ์น ํธ์ ๊ด๋ จํด์ ๊ธ์ ์ฌ๋ ธ๋ค์! 

์น ํธ์ ์๋ฆผ์ ๋ค๋ฅธ ์๋ฆผ๊ณผ ๋๊ฐ์ด ํ์๋๊ณ webkit.org๊ฐ ๋ณด๋ธ ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง๋๋ค.
์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ์ ๋ํ ํต์ ๊ถ์ ๋ถ์ฌ๋ฐ์ผ๋ฉด ๊ทธ ๊ถํ์ ๋ํ ํต์ ๊ถ์ด ์ ์ง๋ฉ๋๋ค.
macOS ์ฌ์ฉ์๋ก์ ์์คํ
์ค์ ์์ ์๋ฆผ ์ค์ ์ ๊ด๋ฆฌํ๋๋ฐ ์ต์ํด์.
์ฌ๊ธฐ์์ webkit.org์ ์๋ฆผ์ ์ ์ดํ ์ ์์ด์.
Safari ์ฌ์ฉ์๋ก์ preference์์ ์๋ฆผ ์ค์ ์ ๊ด๋ฆฌํ๋๋ฐ๋ ์ต์ํด์.
์ฌ๊ธฐ์๋ webkit.org์ ๊ถํ์ ์ค์ ํ๊ฑฐ๋ ํด์ ํ ์ ์์ด์.
์ด๊ฒ ์น ํธ์๊ฐ Mac Safari์์ ์๋ํ๋ ๋ฐฉ์์
๋๋ค.
Things to remember
โข
Permission requires a user gesture
โฆ
์ฐ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ ์์ฒญํ์ง ์์ ๊ตฌ๋
์์ฒญ์ ์ํด ์คํธ ์ฒ๋ฆฌ๊ฐ ๋๋ ๊ฑธ ์์น ์์์. ๋ฐ๋ผ์ ์น ์ฌ์ดํธ์์๋ ํธ์ ๊ตฌ๋
์์ฒญ๋ง ํ ์ ์์
โฆ
๋ง์ฐ์ค ํด๋ฆญ์ด๋ ํค๋ณด๋ ํ๊ฑด์ ๋ฐ์
โข
User control notifications
โฆ
์น ์ฌ์ดํธ์์ ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ํ์ํ ๊ถํ์ด ์๊ธฐ๋ฉด ์ฌ์ฉ์๊ฐ ๊ทธ ๊ถํ์ ์ ์ดํจ
โฆ
Safari ์ค์ ์ด๋ ์์คํ
์ค์ ์์ ์ ์ดํ ์ ์์
โฆ
๋ ๊ตฐ๋ฐ์์ ์ ์ดํ๋ ๊ฒฝ์ฐ ์ค์ ์ ๋๊ธฐํ๋ ์ฑ๋ก ์ ์ง๋จ
โข
You provide fine-grained controls
โฆ
๋ค์ํ ์ ํ์ ์ด๋ฒคํธ์ ์๋ฆผ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ, ์ธ๋ฐํ๊ฒ ์ ์ดํ ์ ์๋๋ก ํ๋ ๊ฒ ์ข์
โช
์น ์ฑ ๋ด์ ์๋ฆผ ์ ํ์ ๋ํด์
Web push flow
์น ํธ์์ ์ ์ฒด์ ์ธ ํ๋ฆ ๋ค๋ฃจ๊ธฐ: ๊ถํ์ ์์ฒญํ๋ ๊ฒ๋ถํฐ ์๋ฆผ ์ผํฐ์์ ํญ๋ชฉ์ ์ฒ๋ฆฌํ๋ ๊ฒ๊น์ง!
Demo) ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ํญ์์ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ด
์๋ค.
Safari์์ webkit.org๋ฅผ ์ด์์ต๋๋ค.
ํญ์ด ์ด๋ ธ๊ธฐ ๋๋ฌธ์ Service Worker๋ฅผ ์ค์นํ ์ ์์ด์.
Service Worker?
Service Worker ์คํฌ๋ฆฝํธ๊ฐ ์ค์น๋๋ฉด ์น ์ฑ์์ ํธ์ ๊ตฌ๋
์์ฒญ์ ์งํํ ์ ์์ต๋๋ค.
์ด ์์ฒญ์ ์ฌ์ฉ์ ์ ์ค์ฒ์ ์ฐ๊ฒฐ๋์ด์ผ ํด์.
webkit.org๋ ์ข
๋ชจ์์ ๋๋ฌ ํ๊ฐ๋ฅผ ์์ฒญํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์ ์ ์ค์ฒ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํต๋๋ค.
๊ตฌ๋
ํ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ์์คํ
ํ๋กฌํํธ๊ฐ ๋จ๋๋ฐ ์ฌ์ฉ์๋ ์ฌ๊ธฐ์ ์ต์ข
๊ฒฐ์ ์ ํ๊ณ ์ด ์น ์ฌ์ดํธ์ ๊ฐํ ๊ถํ์ ๋ถ์ฌ๋ฐ์์.
But, ์ฌ์ฉ์๊ฐ ๊ฑฐ์ ์ ํ ์๋ ์๋๋ฐ, JavaScript๋ ๋์ฒํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํด์.
ํ์ง๋ง ์ฌ์ฉ์๊ฐ ๊ถํ์ ๋ถ์ฌํ๋ค๊ณ ํ๋ฉด PushSubscription ๊ฐ์ฒด๋ฅผ JavaScript๊ฐ ๋ฐํํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์๋ ์ฌ์ฉ์์๊ฒ ์๋ฒ์์ ๋ณด๋ด๋ ํธ์ ๋ฉ์์ง์ ํ์ํ ๋ชจ๋ ํญ๋ชฉ์ด ํฌํจ๋์ด ์์ด์.
โข
URL ์๋ํฌ์ธํธ ๊ฐ์ ์ ๋ณด ํฌํจ
PushSubscription ํ์ด๋ก๋๋ฅผ ์น ์ฑ์ ์ํด ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ์์ผ๋ก ์๋ฒ๋ก ๋ค์ ๋ณด๋
๋๋ค.
์ธ๊ธฐ ์๋ ์๋ฒ ํจํค์ง๋ค์ ๊ตฌ๋
๊ด๋ฆฌ๋ฅผ ์ํด ์น ํธ์๋ฅผ ์ง์ํฉ๋๋ค. ์๋๋ฉด ์ง์ ๊ด๋ฆฌํ ์๋ ์์ฃ !
ํธ์ ๋ฉ์์ง๋ฅผ ์๋ฒ์ ๊ธฐ๋ก๋ URL ์๋ํฌ์ธํธ๋ก ๋ณด๋ด๋ ๋ฐฉ๋ฒ๊ณผ ์๊ฐ์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
โข
์๊ธฐ๋ ์ฌ์ฉ์์ ์น ์ฌ์ดํธ์ ๋ฌ๋ ค ์์ด์.
ํธ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด!
ํธ์๋ฅผ ๋ณด๋ผ ๋ Service Worker๊ฐ ์ผ๋ง๋ ํ์ํ์ง ๊ธฐ์ตํ์๋์?
โข
์๋ฒ์์ ํธ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ
โข
Safari๊ฐ ๊ทธ๊ฑธ ์์
โข
Safari์์ Service Worker๋ฅผ ๊นจ์ฐ๊ณ
โข
JavaScript ํธ์ ์ด๋ฒคํธ๋ก ๊ทธ ๋ฉ์์ง๋ฅผ ๋ณด๋
โข
์๋ฆผ ์ผํฐ์์ ์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ณด์ฌ ์ฃผ๋ ๊ฑด ํธ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ๋ ํ์์
ํธ์ ์ด๋ฒคํธ ๋ฐ ์๋ฆผ ์ฐฝ์ ํ์ฌ ์น ์ฌ์ดํธ๊ฐ ๋ธ๋ผ์ฐ์ ํญ์ ์ด๋ ค ์๋ ๊ฒฝ์ฐ ๋ณด์ฌ์ง๋๋ค.
์น ์ฌ์ดํธ๊ฐ ๋ธ๋ผ์ฐ์ ํญ์ ์ด๋ ค ์์ง ์์๋ ๋ณด์ฌ์ง๋๋ค.
macOS Ventura์ ์๋ Safari์ ๊ฒฝ์ฐ, Safari๊ฐ ์คํ ์ค์ด ์๋ ๋๋ ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ํด๋น ์๋ฆผ์ ํด๋ฆญํ๋ฉด notificationclick event ๊ฐ Service Worker์ ์ ์ก๋์ด ์ ์ ํ ๋ฐ์์ ๋ณด์ด๋๋ก ํฉ๋๋ค.
โข
์๋ฅผ ๋ค์ด, ์ ์ฐฝ์ ์ด ๋ ํด๋น ์๋ฆผ๊ณผ ๊ด๋ จ๋ URL๋ก ์ด๋ํ๋ ๊ฑฐ
Implementation details
๊ธฐ์กด ์น ์ฑ์ ์น ํธ์๋ฅผ ์ถ๊ฐํ๋ ๋ฐ ํ์ํ ๊ฒ ์์๋ณด์!
ํ๋ฆ์ ๋ ์ ์ดํดํ๊ธฐ ์ํด์ ๋ ์์ธํ ๋ด์ฉ์ ์์๋ณด์ฃ . ์น ํธ์ ์ง์ ๊ธฐ๋ฅ์ ๊ธฐ์กด ์น ์ฑ์ ์ถ๊ฐํ๋ ๊ฒ๋๋ค.
Demo) Browser Pets ์ฌ์ดํธ์์ ๊ท์ฌ์ด ๋๋ฌผ ์น๊ตฌ๋ค์ ๋ฐ๊ณ ์ถ์ด!
BrowserPets ๋๋ฉ์ธ์ ServiceWorker ์คํฌ๋ฆฝํธ๊ฐ ์กด์ฌ โ ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ๋์ด๊ณ ์ฌ๋ฌ ํญ์ ๋๊ธฐํ
๋ ์์ ๋ ๋ฒจ๋ก ๊ฐ๊ฒ ๋๋ฉด,
์์ง๋์ด๊ฐ Browser Pets ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด ์ด JavaScript๋ Service Worker ์คํฌ๋ฆฝํธ๊ฐ
โข
์ด๋ฏธ ๋ฑ๋ก๋ ๊ฒ์ธ์ง ํ์ธ
โข
ํ์ํ ๊ฒฝ์ฐ๋ ๋ฑ๋ก
์ด๊ฒ ๋ฐ๋ก feature detection ๋ฐฉ์ โ ์ต๊ณ ์ ๋ฐฉ์!!
Service Worker์ ์ ์ ์กฐ๊ฑด์ ์ฒ๋ฆฌํ๋ฉด ํธ์ ๊ตฌ๋
์ค๋น๋ ๋๋ ๊ฒ๋๋ค.
But, ๋ช
ํํ ์ฌ์ฉ์ ์ ์ค์ฒ๊ฐ ์์ผ๋ฉด ํธ์ ๊ตฌ๋
์ ์์ฒญํ ์ ์์ด์. 
๋ฒํผ์ ๋๋ฅธ ๋ฐ ๋ํ ์๋ต์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์คํ โ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ ์ค ํ๋
์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํธ์ ๊ตฌ๋
์์ฒญ์ ์ํ ์ฝ๋๊ฐ ๋น๋๋ค.
1.
ํธ์ ๊ตฌ๋
์์ฒญ์ ์ค์
โข
๊ณต๊ฐ ํค - Apple์ push server๋ฅผ ํตํด ์๋ฒ ์๋ณ
โข
๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ๋ง์ฐฌ๊ฐ์ง๋ก VAPID๋ ํ์ค ๊ธฐ์ ์ ์ฌ์ฉํด์.
โข
์น์์๋ ์๋ฒ ์ค์ ์ ๊ฐ์ฅ ์ ํฉํ ์๋ฃจ์
์ ์ ๊ณตํ๋ ๋ฆฌ์์ค๊ฐ ์์ด์.
2.
VAPID ์ค์ ์ด ์๋ฃ๋๋ฉด ๊ตฌ๋
์์ฒญ์ ๋ณด๋ผ ์ค๋น๊ฐ ๋๋จ
โข
ํธ์๋ ํญ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ ธ์.
โฆ
JavaScript Push API์ ๊ธฐ์ค์ผ๋ก ๋ณธ๋ค๋ฉด JavaScript runtime์ ํธ์์ ๋ํด์ ์ ํ์ ์ผ๋ก ์๋ตํ๋ ๊ฑธ ํ๋ฝํ์ง๋ง ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์๋ ์ง์ํ์ง ์์ต๋๋ค.
โฆ
Safari์์๋ ๊ทธ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์์.
3.
ํธ์ ํ๊ฐ๋ฅผ ์์ฒญ
โข
์ด JavaScript๋ ์ฌ์ฉ์๊ฐ ์น์ธํ๊ฑฐ๋ ๊ฑฐ์ ํ ์ ์๋ ๊ถํ ํ๋กฌํํธ๋ฅผ ์ฝ๋๋ค.
โข
์ฌ์ฉ์๊ฐ ๊ถํ์ ํ๊ฐ > Push Subscription ๊ฐ์ฒด ์ ๊ณต
โฆ
URL ์๋ํฌ์ธํธ
โฆ
์ ์ก์ ์ํ ํธ์ ๋ฉ์์ง ์ํธํ์ ์ฌ์ฉํ๋ ํค
4.
๋ชจ๋ ์ธ๋ถ ์ฌํญ์ ์ฐ๋ฆฌ ์๋ฒ๋ก ์ ์ก
*์ธ๋ถ ๋ด์ฉ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๋ค์ํฉ๋๋ค
Service Worker JavaScript ์ฝ๋ ๋ค์ ์ดํด๋ณด๊ธฐ
์ฝ๋๋ฅผ ๋ณด๋ ํธ์ ์ด๋ฒคํธ๋ฅผ ํฌํจํด์ ์๋ก์ด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค.
ํธ์ ๋ฉ์์ง๊ฐ Browser Pets ์๋ฒ์์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ก ์ ์ก๋๋ฉด Service Worker๊ฐ ํธ์ ์ด๋ฒคํธ๋ฅผ ์ ์กํฉ๋๋ค.
โข
์ด๋ฒคํธ์๋ Push Message Data ๊ฐ์ฒด๋ ํฌํจ๋จ
โข
์๋ฒ์์ ๋ณด๋ธ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ ์กด์ฌ
โข
JSON accessor๋ฅผ ์ฌ์ฉํด์
ํธ์ ๊ตฌ๋
์ ํ์ฉํ๋ฉด JavaScript๊ฐ ํธ์๋ฅผ ์ฌ์ฉ์ํํ
๋์ด๋ค๊ณ ํ๋๊ฑฐ ๊ธฐ์ต๋จ์?
platform native notification์ ํญ์ ํ์ํด์ผ ํ๋ค๋ ๊ฒ
โข
why? ํธ์๋ฅผ ๋๋ฅผ ๋๋ง๋ค ๋ฐ์ํ๋๋ก
โข
ํธ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ๋นจ๋ฆฌ ์ด ์์
์ ์ํํ๋ ๊ฒ ์ข์
โข
JSON blob์์ ํ์ํ ๋ชจ๋ ๊ฑธ ์ํ
โฆ
URL๋ก ์์
์ค์ ์ ํ๋ ๊ฒ๋ ํฌํจ
์๋ฆผ์ด ํ์๊ฐ ๋๊ณ ์ฌ์ฉ์๊ฐ ๊ทธ ์๋ฆผ์ ํด๋ฆญํ๋ ๊ฑธ ์ฒ๋ฆฌํด๋ด
์๋ค.
โข
๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฐฝ์ ์ด๊ธฐ ์ํด ํด๋ฆญํ ์๋ฆผ์ URL๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์น ํธ์๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ฐ๋ JavaScript๋ ์ด๊ฒ ๋ต๋๋ค.
Development and debug practices
โข
Web Inspector
โฆ
๋ธ๋ผ์ฐ์ ํญ์์ ์ฐ ์น ์ฌ์ดํธ์ ๋๋ฒ๊ทธ๋ฅผ ๋๋ ๊ฒ ์ธ์ ์ผ๋ ํจ
โฆ
Service Worker ์ธ์คํด์ค ๊ฒ์ฌ
โฆ
์ด๋ฒคํธ ํธ๋ค๋ฌ์ breakpoints๋ฅผ ์ค์
โฆ
JavaScript๋ฅผ ๋๋ฒ๊ทธํ๊ณ ๊ฒ์ฌํด์ ํธ์๋ฅผ ๋์ธ ์ ์์
โฆ
ํธ์์ ์๋ฆผ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๊ฐ๋ฅ
โข
Server errors
โฆ
Apple Push Notification ์๋ฒ๋ ํธ์ ๋ฉ์์ง๋ฅผ ๋์ฐ๋ ค๊ณ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ํ์ธํ ์ ์๋๋ก ํด์ค์.
์ฌ์ฉ์์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ๊ฐ์ฉ ์ ๋ ฅ์ ๋ํ ์ฝ๋ ์์ฑ์ ๋ํ ์ด์ผ๊ธฐ
Privacy and power
โข
Permission requires a user gesture
โฆ
ํธ์ ์๋ฆผ์ ๋ณด๋ ค๋ฉด ์ฌ์ฉ์ ์ ์ค์ฒ๊ฐ ํ์
โฆ
์น ํ๋ซํผ์ ๋ค๋ฅธ ํน๋ณํ ๊ธฐ๋ฅ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์ ์ ๋ขฐ๋ฅผ ์ป๊ธฐ ์ํด์๋ ์ฌ์ฉ์๊ฐ ์น ํธ์์ ์ฌ์ฉ์ ์์ฒญํ๋๋ก ์๊ตฌํด์ผ ํจ
โข
No silent background runtime
โฆ
์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ๋ณด์ฌ์ผ ํจ
โฆ
ํธ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฑด JavaScript๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์๋๋๋ก๊ณ ํ๋ ๊ฒ ์๋
โช
์ด ๋ฐฉ์์ ์ฌ์ฉ์์ ์ ๋ขฐ๋ ์๊ณ ๋ฐฐํฐ๋ฆฌ ์๋ช
๋ ๋ณ๊ฒ ๋จ..
โฆ
์๋ฆผ์ ์ฒ๋ฆฌํ ๋๋ ์๋ฆผ ์ผํฐ์ ์๋ฆผ์ ๊ฒ์ํด์ผ๋ง ํจ
โข
Violations result in revoked subscriptions
โฆ
๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ค์ ์ฌ์ฉ์์ ๋ํ ํธ์ ํ์ ๊ท์ ์๋ฐ ๋ฐฉ์นจ์ด ์กด์ฌ
โช
Safari๋ ๋ง์ฐฌ๊ฐ์ง ์
๋๋ค.
โฆ
macOS Ventura์ beta build์์ ์ธ ๋ฒ์ ํธ์ ์ด๋ฒคํธ ํ ์ ์์ ์๋ฆผ์ ๊ฒ์ํ์ง ์์ผ๋ฉด ์ฌ์ดํธ์ ํธ์ ๊ตฌ๋
์ด ์ทจ์๋ฉ๋๋ค.
โช
๋ค์ ๊ถํ์ ์ป๋ ๊ณผ์ ์ ์งํํด์ผ๋ง ํด์.
๋ชจ๋ ์ฌ์ดํธ์์ ์จ์ค.. Apple ๊ฐ๋ฐ์ ๊ณ์ ์ ํ์ ์์ด.. ํ์ค์ ๋ง์ถฐ ์ฝ๋๋ฅผ ์์ฑํ๊ณ feature detection์ ์ด์ฉํ๋ฉด ์๋์น ์๊ฒ Safari๋ฅผ ์ ์ธํ๋ ์ผ๋ ์์ ํ
๊ณ ์ฐ๋ฆฌ ์ฑ์ ์ฌ์ฉ์๋ค์ macOS Ventura์ Safari 16์์ ์น ํธ์์ ์ด์ ์ ๋๋ฆฌ๊ฒ ๋ ๊ฒ์ด์ผ..










































