์๋ ํ์ธ์
prerender.io์ ๊ฐ์ ์๋น์ค์ ํจ๊ป Firebase ํธ์คํ
์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค.
์ด๋ ๊ฒํ๋ฉด SEO ๊ธฐ๋ฅ์ด์๋ ์น์ฑ (์ : angularjs ์ฑ)์ ๋ฐฐํฌ ํ ์ ์์ต๋๋ค.
๊ฐ์ฌ
์๋ ํ์ธ์,
ํ์ฌ Firebase ํธ์คํ ์ ์ฌ ์์ฑ / ๋ฆฌ๋๋ ์ ๊ท์น์ ์ฌ์ ๋ ๋๋ง ์๋น์ค์ ๋ํด ์ถฉ๋ถํ ์์ธํ์ง ์์ง๋ง ์ผ๋ถ ๊ณ ๊ฐ์ html5 pushState๋ฅผ ์ฌ์ฉํ์ฌ ์๋นํ ์ ์ ์ธ ์ฌ์ดํธ์ ๋น๋ ํ๋ก์ธ์ค์ ์ฌ์ ๋ ๋๋ง ๋จ๊ณ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถํ์ต๋๋ค. ๋จ์ผ ํ์ด์ง ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ ๋๋งํ์ฌ ์ฌ๋ฐ๋ฅธ ์ฝํ ์ธ ๊ฐ ํฌ๋กค๋ฌ์ ์ ๊ณต๋๋๋ก ํ ๋ค์ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ๋ฉด ์น์ฑ์ด ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น์ง ์๊ณ ๋ค์ ๋ ๋๋งํฉ๋๋ค.
์ด๊ฒ์ ๋ถ๋ช ํ ๋งค์ฐ ๋ณต์กํ๊ณ ๋ถ๋ช ํ ์ด์์ ์ด์ง ์์ง๋ง ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ํจ์ฌ ๋ ๊ณ ํต์ค๋ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
๋์์ด๋๋ ํฌ๋ง
ํฌ๋ฆฌ์ค
๊ฒจ์ฐ ๋ ๋ฌ ๋ฐ์ ์ ๋๋ค๋ ๊ฑด ์์ง๋ง, ์ ๋ฐ์ดํธ๊ฐ ์๋์? ์ฌ๋ฌ๋ถ์ ํ์ฌ Google ์์ ์ด๋ฏ๋ก firebase๋ก ํธ์คํ ๋๋ ์ฌ์ดํธ๊ฐ ๊ฒ์ ์๋น์ค์ ์ํด ์์ธ ์์ฑ๋๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
ํ์ฌ๋ก์๋ ์ด์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๋ค. ๋จ์ง SEO๊ฐ ์ฐ๋ฆฌ์๊ฒ ๋ถ๋ช ํ ์ค์ํ๊ณ Firebase ํธ์คํ ์ ๊ฐ๋ฐ์์ ๊ด๋ จ๋๊ฒ ์ ์งํ๋ ๊ฒ๋ฟ์ ๋๋ค. ๊ณง ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๊ธธ ๋ฐ๋๋๋ค.
์๋ ํ์ธ์! ์ด ์ ๋ฐ์ดํธ์ ์ํ๋ฅผ ์๊ณ ์ถ์์ต๋๋ค. ๊ณง ์ฌ๊น์? ๋๋ Firebase ํธ์คํ ์ ์ฌ์ฉํ๊ณ ๋ด๊ฐ ๊ฑฑ์ ํ๋ ์ ์ผํ ๊ฒ์ SEO, ๋ด ์ฌ์ดํธ๊ฐ Google ์ด๋์๋ ํ์๋์ง ์๊ณ firebase์์ SEO ํตํฉ์ ๊ฒ์ํ์ง๋ง ์๋ฃจ์ ์ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ๋ชจ๋ ๊ฒ์ ํ๊ณณ์ ๋ณด๊ดํ๋ ๊ฒ์ ์ ๋ง๋ก ์ข์ํ๋ฏ๋ก ๋ด ํ์ด์ง๋ฅผ Google์ ํฌ๋กค๋ฌ ์์ง์ ์ ๊ณต ํ ์์๋ ๋ค๋ฅธ ์๋น์ค๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ถ๋๋ฌ์ด ์ผ์ ๋๋ค. Firebase๊ฐ ํ์ฌ Google์์ ์์ ํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ํฐ ๊ฐ์ ์ด ๋ ๊ฒ์ ๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
์ด ์๋น์ค์๋ ์ฌ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ฐ์ฌ!
์ค๋ ๋์ ๋ด ๋ชฉ์๋ฆฌ ์ถ๊ฐ-์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค!
+1
์ด๊ฒ๋ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๋์์ผ๋ก https://divshot.com + firebase๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค.
+1
์ต๊ทผ DIvshot ๋ฐ Firebase ๋ณํฉ ๋ฐํ๋ก ์ธํด์ด ๋ฌธ์ ๊ฐ ๋ค์ ๋ฐ์ํฉ๋๋ค. ์ค์ ๋ก ๋ฌด๋ฃ ์ฌ์ฉ์ ์ ์ ๋๋ฉ์ธ ๋ฐ prerender.io ๊ธฐ๋ฅ์ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ ์ํด Divshot์ผ๋ก ์ด๋ํ์ต๋๋ค. Fireabse๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น์? ํ๋ฆฌ ํฐ์ด์ ์ปค์คํ ๋๋ฉ์ธ์ ์ถ๊ฐ ํ์๊ฒ ์ต๋๊น? prerender.io๋ ์ด๋ป์ต๋๊น?
์ฐ๋ฆฌ๋ JS ์ฌ์ ๋ ๋๋ง์ Firebase ํธ์คํ ์ผ๋ก ๊ฐ์ ธ์ฌ ์์๋ ๋ฐฉ๋ฒ์ ์กฐ์ฌ ์ค์ด์ง๋ง ํ์ฌ๋ก์๋ ๊ณต์ ํ ํ๊ณ ํ ๊ณํ์ด ์์ต๋๋ค. (๊ฐ์ธ ๋ฉ๋ชจ : ๋๋ ๊ทธ๊ฒ์ด ์ผ์ด๋๋ ๊ฒ์ ์ ๋ง๋ก๋ณด๊ณ ์ถ๋ค).
Firebase๋ ๋ชจ๋ ์ฌ์ดํธ๊ฐ HTTPS ์ ์ฉ์ด์ด์ผํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ SSL ์ธ์ฆ์ ํ๋ก๋น์ ๋์ ๊ด๋ฆฌํฉ๋๋ค. ๊ทธ๋ ๊ฒํ๋ ๋ฐ ๋๋ ๋น์ฉ์ผ๋ก ์ธํด ๋ฌด๋ฃ ๋ง์ถคํ ๋๋ฉ์ธ ํธ์คํ ์ ์ ๊ณต ํ ์ ์์ต๋๋ค.
์์ฒญ๋๊ฒ ๋น ๋ฅธ (๋ง์ฅ๋ ์๋ ๋) ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ด๋ค ์ข ๋ฅ์ SEO ๊ธฐ๋ฅ์ ์ ์ ์น ์ฑ ํธ์คํ ํ๋ซํผ์ ํ์ํ ๊ฒ ์ด์์ด๋ฏ๋ก 12 ์ ์ค์๊น์ง ์๋ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ง์ ๊ฐ๋ฐ์๊ฐ ๊ตฌ์ ํธ์คํ ์ ๊ณต ์ ์ฒด๋ก ์ ํํด์ผํฉ๋๋ค (๋ถํํ๋ ์ ๋ฅผ ํฌํจ ).
๋ ๋ฒ์งธ ๋๋ต์ ์๋ฒฝํ๊ฒ ์ดํด๋๋ฉฐ ์ ๋ฃ ๊ณ์ธต์ผ๋ก ์ ํํ๋ ๊ฒ์ ๊ณ ๋ คํฉ๋๋ค. ๋์ผํ ์ถ๊ฐ ํ์ฅ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ด ์ ๊ฐ์ ๋๋ค.
Firebase ํธ์คํ ์ฌ์ดํธ์ 100 %๊ฐ Fastly์ ์์ฒญ๋๊ฒ ๋น ๋ฅธ CDN์ ์์ต๋๋ค. ๋ฌด๋ฃ ํ๋ (์ฌ์ฉ์ ์ง์ ๋๋ฉ์ธ์ด ์๋)์์๋ Divshot์ ๊ณ ์ฑ๋ฅ ํ๋์ ๋ชจ๋ ํน์ ์ ์ป์ ์ ์์ต๋๋ค. ๋์ญํญ์ ๊ฒฝ์ฐ 10GB๋ ์ ์ ์น ์ฌ์ดํธ์์ _ ๋ง์ _ ๋์ญ์ด๋ฉ๋๋ค.
Divshot์ ๊ณ ์ฑ๋ฅ ํน์ ์ ๋ํด ์์ง ๋ชปํจ์ ์ธ์ ํด์ผํฉ๋๋ค. ์ด์จ๋ ๋ด ์ฑ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ๋ฐฑ์๋๋ฅผ ์ค๋นํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ์ง์ฐํด์ผ ํ ์๋ ์์ง๋ง CS ํ์๋ ๊ฑฐ์ ๋ชจ๋ ์๊ฐ์ ์๋ชจํฉ๋๋ค. ๋ด ํ๋ก์ ํธ๋ ๊ทธ๋ ๊ฒ ๋ฐ์ ํ์ง ์์์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ ์์ฒญ๋ ์ง์ฐ์ ๊ฒช์ ์ ์์ผ๋ฏ๋ก Firebase๊ฐ SEO ์นํ์ ์ด๋๋๋ก ๋์ ์ฃผ๊ฑฐ๋ Divshot์ด ์ข ๋ฃ๋ฅผ ์ง์ฐ์ํฌ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ์ด๊ฒ์ด ์๋ง๋ ์ ํ ์ฌํญ์ด ์๋๋ผ๋ ๊ฒ์ ์ดํดํ์ง๋ง, ์ฐ๋ฆฌ ์ค ์ผ๋ถ๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด ๊ฒฐ์ฝ ๋์ ์ค์ง ์์ ์๋ ์์ต๋๋ค.
@mbleigh ์ธ์๋ฅผ ์ถํํฉ๋๋ค!
@DamodarSojka , ๋๋ ๋น์ ๊ณผ ์์ ํ ๋์ํฉ๋๋ค. ์ ๋ ๊ธฐ์กด Divshot ์ ๋ฃ ์ฌ์ฉ์์ ๋๋ค. ์ฌ์ ๋ ๋๋ง์ Facebook์์ ๋ด ์น ์ฌ์ดํธ์ ๋ง์ผํ / ๊ณต์ ๋ฅผ์ํ ํ์์ ๋๋ค. Firebase์์ ๊ณง์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ผ๋ฉด ๋ค๋ฅธ ์น ํธ์คํ ์๋น์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํฉ๋๋ค.
SEO ๊ธฐ๋ฅ์ +1
์ฐ๋ฆฌ๋ ๋ํ Divshot ๊ณ ๊ฐ์๊ฒ ๋น์ฉ์ ์ง๋ถํ๊ณ ์์ผ๋ฉฐ Prerender ์ง์์ด ํ์ํฉ๋๋ค. Divshot์ Prerender ์ง์์ ์ด์์ ์ด์ง๋ ์์ง๋ง (๊ณต์ ํ production.blabla.divshot.io URL ๋๋ฌธ์) Firebase์์ Prerender ์ง์์ด ์ ํ ์๋ค๋ฉด ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฌ.
๋ง์ฐฌ๊ฐ์ง๋ก, SEO๋ prerender.io๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ ์ฌํ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ค์ํฉ๋๋ค. divshot์ด ์ข ๋ฃ๋๊ธฐ ์ ์ Firebase์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํฉ๋๋ค.
๊ทธ๋๋ ์์ฌ์์ ๋ฌธ์ ๊ฐ์์ด
+1-์ ๋ฃ Divshot ๊ณ ๊ฐ, Firebase๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๋ฉด Prerender ์ง์์ด ํ์ํฉ๋๋ค.
Completley๋ ๋์ํฉ๋๋ค. Firebase๋ ์ฌ์ ๋ ๋๋ง ๊ธฐ๋ฅ์ด์๋ ๊ฒฝ์ฐ Divshot ๋์ฒดํ์ด ์๋๋๋ค. ์ ๋ Divshot ์ ๋ฃ ์ฌ์ฉ์์ ๋๋ค. Divshot์ด ์ข ๋ฃ๋๋ค๋ 2 ๊ฐ์์ ํต์ง์ ํจ๊ป. ๋ค๋ฅธ ์๋น์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผํฉ๋๊น? ์๋ฒ ๊ตฌ์ฑ์ ์๊ฐ์ ํฌ์ํด์ผํฉ๋๊น? ์๋๋ฉด ๋ด๊ฐํ๋ ์ผ์ ๊ณ์ ์ง์คํ ๊น์? ์ด๊ฒ์ด ์๋น์ค์ ์์ด๋์ด ์๋๋๊น? ์๋ฒ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌ ํ ํ์๊ฐ ์์ต๋๊น? Firebase๊ฐ 12 ์ 14 ์ผ ์ต์ ์ธ์ง ์๋๋ฉด ์๋ฒ ๊ตฌ์ฑ์ ์๊ฐ์ ํ ์ ํด์ผํ๋์ง ์ค๋ช ํด์ฃผ์ธ์.
Gents, Mike๋ ์ด๋ฏธ์ด ๊ธฐ๋ฅ์ ์ํ๋ฅผ ์ ์ฒด์ ์ผ๋ก ์ธ๊ธํ์ต๋๋ค. ์ฐ๋ฆฌ๋ JS ์ฌ์ ๋ ๋๋ง์ Firebase ํธ์คํ ์ ๊ฐ์ ธ์ฌ ์์๋ ๋ฐฉ๋ฒ์ ์กฐ์ฌ ์ค์ด์ง๋ง ํ์ฌ๋ก์๋ ๊ณต์ ํ ํ๊ณ ํ ๊ณํ์ด ์์ต๋๋ค. (๊ฐ์ธ ๋ฉ๋ชจ : ๋๋ ๊ทธ๊ฒ์ด ์ผ์ด๋๋ ๊ฒ์ ์ ๋ง๋ก๋ณด๊ณ ์ถ๋ค).
ํ์ ๋ผ์ธ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ๋งํผ ๊ทธ๊ฒ์ ์ํฉ๋๋ค.
๋ฌด์์ํด์ผํ๋์ง ์ค์ค๋ก ๊ฒฐ์ ํด์ผํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ณต๊ณต ๋๋ก์ง๋๊ฐ ์์ต๋๋ค. ์์ฒญ์ด๋ ์ฟผ๋ฆฌ์ ์์ ๊ด๊ณ์์ด ํ์ ๋ผ์ธ์์ ๋ณด์ฅ ํ ์ ์์ต๋๋ค. ํ๋ณตํ์ง ์์ ์ํธ ๋๋ต์ ์๋์ง๋ง, ํ์ค์ ์ธ ๋๋ต์ด ๊ณํ์ ๋ ์ ์ฉํ๊ธธ ๋ฐ๋๋๋ค.
โผ, ์นดํ
๋น์ ์ด ๊ทธ๊ฒ์ ๋ํด ์ ๋ง๋ก ๊ด์ฌ์ด ์๋ค๋ ๊ฒ์ ๋ณด๋ ๋ฐ๊ฐ์ต๋๋ค :) ์ฌ๋ฌ๋ถ ๊ฐ์ฌํฉ๋๋ค!
@mbleigh / @katowulf Firebase์ JS ์ฌ์ ๋ ๋๋ง์ ๋์ ํ๋ ค๋ ๊ณํ์ ๋ํ ํ ๊ฐ์ง ์ง๋ฌธ : Firebase๊ฐ ์ ๊ณตํ๋ ํ์ฌ SEO ์ง์์ด JS ์ฌ์ ๋ ๋๋ง์ด ์ด๋ป๊ฒ ๋ ์ข์ ์ง๊น์?
์ด SO ๋ต๋ณ์ ๊ธฐ๋ฐ์ผ๋ก Firebase๋ ์ด๋ฏธ ng-conf 2015 ์ดํ๋ก ์ฆ์ SEO๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ์ฌ์ ํ Prerender.io๋ฅผ Firebase์์ ์ฌ์ฉํ๋ ค๋ ์ ๋ฌธ๊ฐ๋ฅผ ์ป์ง ๋ชปํฉ๋๋ค.
@douglascorrea for Google SEO ๊ฐ์ ์ฌํญ์
์ด๊ฒ์ ๋ํ ๊ฐ์ฅ ํฐ ์ด๋์ Facebook OpenGraph ํ๊ทธ, Twitter ์นด๋ ๋ฐ Google ์ด์ธ์ ๊ฒ์ ์์ง์ ๋ํ ๋ ๋์ ์ง์์ ์ ๊ณตํ๋ ค๋ ์ฌ์ดํธ์ ์์ต๋๋ค.
์ด ์ผ์ ๋ช ํํํ๊ณ ๋๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ ๋ง ์์ ์ ์๊ฒฌ์ ๋งํ๋ค ์ง์ ๋๋ @drtriumph ๊ฐ์ ๋์ฒด ์ด๋ค ์ข ๋ฅ์ ๊ฒ์ธ์ง ์๊ฐํ๊ฒ ๋น์ ์ @mbleigh ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋๋ ํด๊ฒฐ์ฑ ์ ์ฐพ๊ณ ์์๊ณ ๋ค๋ฅธ ๋ ์๋ค์๊ฒ ๋์์ด ๋ ์์๋ ๋ค์ ์ธ๋ถ ์ฌํญ์ ๋ฐ๊ฒฌํ์ต๋๋ค.
http://www.example.com/#!/user/1
http://www.example.com/?_escaped_fragment_=/user/1
๋ฐ๋ผ์ ์ ์ ๋์ ์ด๊ฒ์ ์์๋ด๋ ํ ๊ฐ์ง ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
?_escaped_fragment_=
ํด๋๋ก ์์ํ๋ ํด๋ ๊ตฌ์กฐ์ ์บ์ ๋ ๋ฒ์ ์ ์ ์ฅํ๋ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐํ๊ณ ๋ค์๊ณผ ๊ฐ์ ํด๋๋ฅผ ๋ง๋ญ๋๋ค.http://www.example.com/#!/user/1
?_escaped_fragment_=
+- /user
+- /1
1 ๊ฐ์ ํ์ผ์ด ์ค์ html ํ์ผ์ด๋ฉ๋๋ค.
์๋ ๋ฐฉ์ :
?_escaped_fragment_=
URL์ ๋๋ฌํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ด๋ฌํ ํด๋์ ์ค์ HTML ํ์ผ์ด ์์ผ๋ฏ๋ก Firebase๊ฐ ๊ฒ์ฌ๋๊ณ index.html๋ก ๋ฆฌ๋๋ ์
๋์ง ์์ผ๋ฏ๋ก ํฌ๋กค๋ฌ๊ฐ ์ฝ๋ HTML์ AngularJS ๋ฒ์ ์ด ์๋ ์บ์ ๋ ๋ฒ์ ์ด๋ฉ๋๋ค.์ด๋ฅผ ์ํด์๋ ๋ชจ๋ ํ์ด์ง์ ๋ํด ์ฌ์ ๋ ๋๋ง์ ์คํํ๋ ์์ฝ ๋ ์์ ์ ๋ง๋ค๊ณ ํด๋น ํด๋๋ฅผ ์ ์ฅํ๊ณ Firebase ๋ฐฐํฌ๋ฅผ ์ํํด์ผํฉ๋๋ค.
Firebase ๋ฐฐํฌ๋ ๋ถ๋ถ ๋ฐฐํฌ (๋๊ธฐํ ๋๋ ์ฆ๋ถ ๋ฐฐํฌ)๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ด๋น ํ ์๋ฒ์ ๋ฐฐํฌ์ ์ ๋ฐ์ดํธ ๋ ์ฌ๋ณธ์ ์ ์งํด์ผํฉ๋๋ค.
์ค์ ์ ์๋ํ๊ณ ์๋ํ๋์ง ์๋ ค ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ค๋ฅธ ํค๋ ํค์ฒ๋ผ "X-Prerender-Token"์ ์ค์ ํ๋๋ก ํ์ฉ ํด ์ฃผ์๊ฒ ์ต๋๊น ???
https://www.firebase.com/docs/hosting/guide/full-config.html
https://prerender.io/install-token
+1
@ srk9 ์ด ์ค๋ ๋์ ์ฉ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๋์ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ญ์์ค.
์ด ๋ฌธ์ ๊ฐ ์ข ๊ฒฐ ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ฒ์ ๋ ์๋ฃจ์ ์ด ๋ณด์ด์ง ์์ต๋๋ค.
@douglascorrea , ๋น์ ์ ์์ด๋์ด๋ ์ด๋ป๊ฒ ๋์์ต๋๊น?
๊ฐ์ฌ,
-D
์๋ ํ์ธ์ @bethuneco , ์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ์ง ์์ ๊ฒ์ ๋ํด ์ฃ์กํฉ๋๋ค.
์ค์ ๋ก ์ ๋ ๊ธฐ์ฌ๋ฅผ ์์ฑํ๋ ค๊ณ ํ์ง๋ง์ด ์๋ฃจ์ ์ด ํ๋ก๋์ ์์ ์๋ํ๋๋กํ๊ธฐ ์ํด ๋ง์ "๊ธฐ๊ณ"๋ก ๊ตฌ์ฑ ๋ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๊นจ๋ฌ์๊ณ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ "๊ถ์ฅ"ํ๋ ๊ฒ์ด ๋ถํธ ํจ์ ๋๋ผ์ง ๋ชปํ์ต๋๋ค. ๋๊ท๋ชจ๋ก ๋์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ๊ฐ ๋ฐฐํฌ์ ๋ํด ๋ชจ๋ ํ์ด์ง๋ฅผ ์ฌ์ ๋ ๋๋ง / ์คํฌ๋ฉํ๊ณ ์์์ ์ค๋ช ํ ํด๋ (/? _ escaped_framgment_ / xxxx)์ ๊ฒฐ๊ณผ HTML์ ์ ์ฅํ๋ "๋ฐฐํฌ / ํ๋ฆฌ ๋ ๋๋ง"์๋ฒ๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฌํ "์ค์ / ๋ฌผ๋ฆฌ์ "html์ "ํ๋ฆฌ ๋ ๋๋ง ๋"ํ์ด์ง๊ฐ๋ฉ๋๋ค.
๋ฐ๋ผ์ google / facebook / twitter ํฌ๋กค๋ฌ๊ฐ ํ์ด์ง๋ก ์ด๋ํ์ฌ "? _escaped_fragment"์ ๋์ฌ๋ฅผ ํตํด "์ด์ค์ผ์ดํ ๋ ์กฐ๊ฐ"์ ์์ฒญํ ๋๋ง๋ค ์ค์ ๋ก ์ค์ HTML์ด์๋ ์ค์ ํด๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ ํด๋น HTML์ด ์์ธํ๋ฉ๋๋ค.
์ค์ ์ฌ์ฉ์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์ด๋ํ๋ฉด? _escaped_fragment๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๋์ ํ์ด์ง๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค.
๋ฌธ์ ๋์ด "์๋ฃจ์ "์ด ๊ฐ ํ์ด์ง ๋๋ ์ถ๊ฐ ํ์ด์ง์ ๋ํด HTML์ ๊ณ์ ์์ฑํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋จ์ํ CMS ์ธ ๊ฒฝ์ฐ ๋ชจ๋ ์ ๊ฒ์๋ฌผ / ๊ธฐ์ฌ / ํ์ด์ง์ ๋ํด ์ HTML ํ์ด์ง๋ฅผ ์์ฑํ๋ ํ๋ก์ธ์ค๋ฅผ ์คํํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฅผ ๋ค์ด ๊ฐ ์ฌ์ฉ์๊ฐ ์๋ฐฑ ๊ฐ์ "ํ๋ฆฌ ๋ ๋๋ง ๊ฐ๋ฅํ"ํ์ด์ง๋ฅผ ์์ฑ ํ ์์๋ ๋์ ์์ ๋คํธ์ํฌ์ ๋ํด ์ด์ผ๊ธฐ ํ ๋ ๋ฌธ์ ๋ ๋ ์ปค์ง ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฌ์ ๋ ๋๋ง / ๋ด๋ถ ํฌ๋กค๋ฌ๊ฐ ํญ์ ์คํ๋์ด์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํ์ค ์ธ๊ณ์์ ์คํ ํผ๊ฐ ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์์ ์ฑ์์๋ ์๋ ํ ์ ์์ง๋ง ์ค์ ํฐ ์ฑ์์๋ ์๋ํ์ง ์๋ ๋งค์ฐ "์์์"์๋ฃจ์ ์ ๋๋ค. ํฌ๋กค๋ฌ๊ฐ ๊ฐ ๋ ์ค์ ๋ก HTML์ ์์ฑํ๊ณ ํฌ๋กค๋ฌ๋ฅผ ์จ๋ผ์ธ์์ ์ฌ์ ๋ ๋๋ง ํ ์ฌ์ ๋ ๋๋ง ์๋น์ค๋ก ์๋ ๋ฆฌ๋๋ ์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฌ์ ๋ ๋๋ง ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.)
๋ฐ๋ผ์ ์ง๊ธ๊น์ง๋ Nginx ์๋ฒ๋ฅผ ์ ์ ์๋ฒ๋ก ์ฌ์ฉํ์ฌ ์ฌ์ ๋ ๋๋ง์ ์ํํ๊ฑฐ๋ ๋จ์ผ ํ์ด์ง ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ์ ๋ ๋๋ง์ ์ ๊ณตํ๋ https://www.netlify.com/ ๊ณผ ๊ฐ์ Divshot ๊ฒฝ์ ์ ์ฒด๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. .
@douglascorrea ,
ํ์ฅ ๋ ์ค๋ช ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋น์ ์ด Netlify๋ฅผ ์ฒ์ ์ธ๊ธ ํ ์ฌ๋ ์ด๋ ์ ๊ฐ ์กฐ์ฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋ ๊ฒ์ ๋ฏธ๋ฆฌ ๋ ๋๋งํ๋ ๊ฒ์ด ์์ ์ฌ์ดํธ์๋ง ์ ํฉํ๋ค๋ ๊ฒ์ด ๋ง์ต๋๋ค. ๋คํํ๋ ๋ด ์ฑ์ ์๋นํ ์๊ธฐ ๋๋ฌธ์ (์ต๋ ์ฝ 1,200 ํ์ด์ง) ์๋ ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ์๋ฃจ์ (Google์ด ํผํ๋ ์๋ฃจ์ )์ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ ๋ ๋๋งํ๊ณ ๋ก๋ด ์ฌ์ฉ์ ์์ด์ ํธ๊ฐ ๊ฐ์ง๋๋ฉด HTML์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. Google์ ์ด๋ฏธ ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ ๋ ๋๋ง์ ์์ฐ ํ์ผ๋ฏ๋ก ๊ธฐ์ ์ ์ผ๋ก ์ด๋ ต์ง ์์ต๋๋ค. ๊ด๊ณ ์ฌ์ ์์ ๊ฒฝ์์๋ฅผ ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ ๋ต์ ์ผ๋ก ๋์ ์ ์ธ ์ผ์ ๋๋ค.
์๋ํ๋ ๊ฒ์ด ์์ผ๋ฉด ์ฌ๊ธฐ์ ์ ๋ฐ์ดํธ๋ฅผ ๊ฒ์ํ๊ฒ ์ต๋๋ค.
ํผ๋ ์ค๋ฌ์ธ ์์๋ ์ฌ๋์ ์ํด ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋ช ํ์ฑ์ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
Firebase ํธ์คํ ์ ์๋ฒ์์ JS ์ฌ์ ๋ ๋๋ง์ ์ง์ํ๋์? ์๋, ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ฒ ์ธก ์ฌ์ ๋ ๋๋ง์ ์ฐ๋ฆฌ๊ฐ ์ง์ํ๊ณ ์ถ๊ณ ์ฅ๊ธฐ์ ์ธ ๋ก๋๋งต์ ์์ง๋ง ํ์ฌ ๋ฐํ ํ ํน์ ๋ ์ง ๋ ์ผ์ ์ด ์์ต๋๋ค. ํนํ Facebook ๊ณต์ ๋๋ Twitter ์นด๋๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์๊ฒ ์ด๊ฒ์ด ๊ณ ํต์ค๋ฌ์ด ์ ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์์ผ๋ก ์ด์ ๋ํด ๋ ๋ง์ด ๊ณต์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์๋ฅผ ๋ค์ด X-Prerender-Token
์ง์ํ ์ ์์ต๋๊น? ์๋์, ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ ๋ ๋๋ง์ ?_escaped_fragment_=
URL์์ _ ์ค์ ์ฌ์ ๋ ๋๋ง ๋ ์ฝํ
์ธ _๋ฅผ ์ ๊ณตํด์ผํฉ๋๋ค. ์ฆ, ํค๋๋ฟ๋ง ์๋๋ผ ์๋ฒ๊ฐ ์ธ์ํ๊ณ ์ ์ ํ ์ฒ๋ฆฌํด์ผํ๋ ์ฝํ
์ธ ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ํ๋๋งํผ์ ๋ฐ์ชฝ ์ธก์ ์๋ฃจ์
์ ์์ต๋๋ค.
์ด๋ค ์ข
๋ฅ์ ์ฌ์ ๋ ๋๋ง์ด ๊ฐ๋ฅํฉ๋๊น? ํ์ฌ ํ ์์๋ ์ ์ผํ ์ค์ "ํ๋ฆฌ ๋ ๋๋ง"์ ์ ์ ์ฌ์ดํธ ์ปดํ์ผ์
๋๋ค. ์ผ๋ฐ์ ์ผ๋ก์ด ์์
์ Jekyll๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ํ๋์ง๋ง ๋ก์ปฌ์์ ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ์ฌ๋ณด๋ค ๋์ ์ธ ์ฌ์ดํธ๋ฅผ "ํ๋ฆฌ ๋ ๋๋ง"ํ ์ ์์ต๋๋ค. ๊ฐ URL์ ์ฒ ์ ํ ๋ ๋๋ง ํ ๋ค์ ๋ฐฐํฌํด์ผํ๋ฏ๋ก ํ์ฌ๋ก์๋ ํ์์ ์ธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋๋๋ค. CDN์ด ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ ๊ฑฐํ๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ง์๋๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ?_escaped_fragment_
๋ ํ์ผ ์ด๋ฆ์ ๋ง๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ด๊ฒ์ด ๋ค๋ฅธ ํฌ๋กค๋ฌ๋ฅผ ์ฐจ๋จํ๊ธฐ์ํ ์ผ์ข ์ Google ์ ๋ต์ ๋๊น? ์๋, ์ ๋ ์๋๋๋ค. Firebase ํธ์คํ ์ ์ฌ์ ๋ ๋๋งํ์ฌ ์ป์ ์์๋ ์ด์ ์ ์ ๊ทน ์ง์ํ๊ณ ์ํฉ๋๋ค. ๋ชจ๋ ์๊ฐ๊ณผ ์์์ ๋ฌธ์ ์ ๋๋ค.
์์ ๋ฏธ๋์ด ํ๊ทธ / ๋์ฒด SEO ๋ฌธ์ ๋ก ์ธํด Firebase ํธ์คํ ์์ ์ ํํด์ผํ์ต๋๋ค. ๊ธฐ์ ์ด ์๋ ์ฌ๋๋ค์ด ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท์ ๋ค๋ฅธ ์ฌ๋๋ค์ฒ๋ผ ์ฐ๋ฆฌ์ ๋งํฌ์ ๋ฉ์ง ์ฌ์ง์ด ์๋ค๋ ๊ฒ์ ์์ ์ฐจ๋ฆด ๋ ๊ทธ๊ฒ์ ๊ฑฐ๋๋ฅผ ๊นจ๋ ๊ฒ์ ๋๋ค.
phantomjs ๋ฐ prerender ๋ฏธ๋ค์จ์ด๋ก ์ฌ์ ๋ ๋๋ง ํ ์ ์์ต๋๋ค. ์คํ ์์ค์ด๊ณ ์ ์๋ํ์ง๋ง ์์ ์์ ์ ํผํ๊ธฐ ์ํด prerender.io๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์์ฒญ์์๋ ์ฝ๊ฐ ๋๋ฆฌ์ง ๋ง ๋ชจ๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์ฒญํ์ฌ ํ์ด์ง๋ฅผ ์บ์ ํ ์ ์์ต๋๋ค.
๋ชจ๋ ํ์ด์ง๋ฅผ ์์ฒญํ๋ ๊ฒ๋ ์ข์ต๋๋ค. ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์คํํ๊ณ html์ ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ํ๊ทธ์ ์ฝํ ์ธ ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋ง๋๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ฑฐ๋ํ ๊ฒฝ๊ณ ๊ฐ ์์ต๋๋ค. ์ฌ์ ๋ ๋๋ง์ ๋ผ์ด๋ธ Firebase ๋ฐ์ดํฐ์์ ์๋ํ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ํ ์ ์์ต๋๊น? Firebase ๋ฐ์ดํฐ๋ ์ค์๊ฐ์ด๋ฉฐ ์ฐ๊ฒฐ์ ์ง์์ ์ ๋๋ค. ์ฌ์ ๋ ๋๋ง์ ์ผํ์ฑ์ด๋ฉฐ ์ฐ๊ฒฐ์ด ๋ซํ๋๋ค. ์์ฒญ์ ๊ณ์ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ด์ง ๋ ๋๋ง์ด ์ธ์ ์๋ฃ๋์๋์ง ์ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ช ๊ฐ์ง ์์ด๋์ด๊ฐ ์์ต๋๋ค.
.on("value")
firebase ๊ตฌ๋
๋ง๋ค GET ์์ฒญ์ํฉ๋๋ค. ์ฌ์ ๋ ๋๋ง ์์ฒญ ์ธ ๊ฒฝ์ฐ ๊ตฌ๋
์ ๊ฑด๋ ๋๋๋ค. ์ผ๋ฐ ์ฌ์ฉ์ ์ธ ๊ฒฝ์ฐ GET ์์ฒญ์ ๊ฑด๋ ๋๋๋ค. .on("child_*")
์ด๋ฒคํธ์๋ ์๋ํ์ง ์์ต๋๋ค.false
๋ก ์ค์ ํ ๋ค์ ๋ฐ์ดํฐ๊ฐ๋ก๋๋๋ฉด ๊ฐ ํ์ด์ง ๊ตฌ์ฑ ์์์ ๋ํด ํ๋๊ทธ๋ฅผ true
์ค์ ํฉ๋๋ค. ์ ์ ํ ๋์์ธ์ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก _loading state_ ๋ฐ _error state_ ๋ฐ _success state_๊ฐ ์์ผ๋ฏ๋ก ์ค๋ฅ / ์ฑ๊ณต ์ํ ๋์ฐ๋ฏธ ๋ฉ์๋์์ ํ๋๊ทธ๋ฅผ true
ํฉ๋๋ค.๊ณ ํต ์ค๋ฝ์ง๋ง ์ผ๋ถ ๋์ ํ์ด์ง ๋ง ์ฌ๋ฐ๋ฅด๊ฒ ๋ ๋๋ง๋์ง ์์ผ๋ฉฐ ํน๋ณํ ์ฒ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ์ฌ์ ํ ์ ์ ํํ์ด ๋น์ฉ๋ณด๋ค ํฌ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@mbleigh๋ ์์ผ๋ก ์ฌ๋ฌ๋ถ์ด ๋ฌด์์ ์๊ฐํด
๋ช ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์์ต๋๋ค. ๋ฐฑ์๋๊ฐ ํ์ํ ์ ์ผํ ์ด์ ๋ ํธ์ํฐ ์นด๋์ ์คํ ๊ทธ๋ํ์ ๋๋ค. ํ์คํ ๋ฐฑ์๋๋ ๋ํ ๋ ๋๋ง๊ณผ ๊ฐ์ ๋จ์ผ ํ์ด์ง ์ฑ์ ๋ํด ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ด์ ์ ์ ๊ณตํ์ง๋ง ๊ทธ์ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. Twitter ๋ฐ OG ํ๊ทธ๋ ๊ณต์ ๊ฐ ํ์ํ ๋ชจ๋ ์ฑ์ ์ค์ํฉ๋๋ค.
ํ์ด์ด๋ฒ ์ด์ค ๋ฐฑ์๋๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์์ด ๊ฐ์ฒด / html์ ์ ๊ณตํ๋๋ก ๋ช ๋ นํ๋ ์ผ์ข ์ ์ฌ ์์ฑ๊ณผ ์ ์ฌํ ๊ท์น์ด์์ ์ ์์ต๋๊น?
์ด๋ฌํ ๊ฐ์ฒด๋ ๋ชจ๋ ๊ณต์ ๊ฐ URL์ ๋ฐฉ๋ฌธํ๊ฑฐ๋ ๊ณต์ ๋ฒํผ์ ๋จผ์ ์ ๋ฌํ๋ ๊ฒ๋ถํฐ ์์๋๋ฏ๋ก ๋ฏธ๋ฆฌ ์ค๋น ํ ์ ์์ต๋๋ค.
bump .. ๋ฐฉ๊ธ Firebase์ ๋๋๊ณ ์ด ๋๊ธ์ ์ฝ๊ณ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค ..
๋๋ ๋ํ Prerender์ ๊ฐ์ ์๋น์ค๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ํฉ๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ ๋ํ ๊ฐ๋ฐ์ ๋ฌด์์
๋๊น ??
ํจ๊ป Google! ๋น์ ์ freegin '๊ฒ์ ์์ง์ ๋๋ค !! :์์:
์ฌ๊ฐํ๊ฒ ์๊ฐ. ์ด๊ฑด ์ ๋ง ์ค์ํฉ๋๋ค. ์ด๊ฒ์ ๊ทธ์ ๊ฐ์ฅ ์ ์ฃผ๋ฐ์ ๊ฐ์ฅ ์ค์ํ ์ผ์ผ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋๋ด ์ด์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์์ ์ ๋งํ์๋ฉด, ๊ทธ ๋ฐ์ธ์ Google ๊ฒ์์ด๋ Google Firebase์ ๋ํ ๊ฒ์ ๋๊น? ๊ทธ์ค ํ๋๋ง ๊ฒ์ ์์ง์ด๊ณ ๊ทธ์ค ํ๋๋ง Firebase ํธ์คํ ์ ์ ๊ณตํฉ๋๋ค (์น ํ์ด์ง๋ฅผ ์ฌ์ ์ปดํ์ผํ๋ ๊ฒ์์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋๊ตฌ์ ๋ ์ ์๋ํ๋๋ก ํธ์คํ ์ ๋ํ ๋ช ํํ ๋ถ๊ฐ๊ฐ์น๊ฐ ์๊ธดํ์ง๋ง).
๊ด๋ จ ํ์ฐ์ค ํคํ ๋ฉ๋ชจ์์๋ firebase-tools (์ :์ด OSS ๋ฌธ์ ์ถ์ ๊ธฐ) ์๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์ฐ์ ์์ ํ ๋ก ์ ๊ทํ์ ํฌํ๊ฐ ์ถ๊ฐ๋์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค. ๋ฉ์ผ ๋ง๋ฆฌ์คํธ๋ ํฅํ ํต์ฌ ๊ธฐ๋ฅ ์์ฒญ์ ๋ํด ์ฐ๋ฝํ๊ธฐ ๊ฐ์ฅ ์ข์ ๊ณณ์ผ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์์ง ์์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ ํ โโ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค. Google Cloud Functions์ ํตํฉํ๊ณ ์ ๋๋ฆฌํฑ์ค, ์ค๋ฅ๋ณด๊ณ , Test Lab์ ํตํด ํํํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ๋ ์ค์ํ์ง๋ง ์ฌ์ ํ ์ค์ํฉ๋๋ค.
๋ค์์ ์ฐ์ ์์๋ฅผ ๋ ผ์ ํ ๋์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ธ๊ธํ๊ฒ ์ต๋๋ค. ํผ๋๋ฐฑ์ ๊ทํ์ ์๊ฒฌ์ ์ถ๊ฐํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. โผโผโผ
firebase @katowulf ์ ๋ํ ๊ทํ์ ๋
ธ๋ ฅ์ ๋ํ thx!
์ด๊ฒ์ด ๋ด ng1 ์ ํ๋ฆฌ์ผ์ด์
์ "ํธ์คํธ"๋ก firebase๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๊ฒํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์
๋๋ค.
์ฌ๊ธฐ์ ๋น์ ์ ํผ์๊ฐ ์๋๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ฐ์ ์ ํ์ ๋ถ๋ช ํ์ต๋๋ค. ์ด์ Google์์ ์๋ฐ ์คํฌ๋ฆฝํธ ์์ฑ ์ฝํ ์ธ ์ ์์ธ์ ์์ฑ ํ ์ ์๊ณ Firebase ์ฝํ ์ธ ์์ธ์ ์์ฑํ๊ธฐ์ํ ๋ช ๊ฐ์ง ํน๋ณ ์กฐํญ์ด ์์ผ๋ฏ๋ก ํ์ด์ง์๋ก๋ ๋ ์ธ์ฆ๋์ง ์์ Firebase ๋ฐ์ดํฐ๋ ์ด๋ฏธ ์์ธ์ด ์์ฑ๋๊ณ ์์ด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ํ ์ฌ์ ์ปดํ์ผ๋ฌ ์ง์์ ๋ ์ด๋์ ์์ต๋๋ค.
@katowulf ๋ headsup๊ณผ
@samvloeberghs ๊ทธ๋ฌ๋ Google์ด ์ด๋ฌํ ์ง์์ ์ ๊ณตํ๋ ๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด์ด๋ฅผ ๋ฐ๋ฅผ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ์๋ฏธ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ ์ ๋ ์ด๊ฒ์ด ์ด๊ฒ์ ๋๋ฆฌ ๋ณด๊ธํ๊ธฐ์ํ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ๋ ๋จ๊ณ์์ ์์ํ๊ณ ์ํ์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ์ ์ด๋ ์ค๋๋ Google๊ณผ ํจ๊ป ์๋ ํจ).
FB / LinkedIn / Twitter๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋๋๋ก ๋น ๋ฅด๊ฒ ์ ์ง ํ ์์๋ Google์ ๋ฅ๋ ฅ์ ๋ฐ๋ฅผ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค. ๋ฐฐํ์๋ ํญ์ ์ฃผ์ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋์ด๋ฅผ ๋ฌด์ํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ Google์ Angular Universal์ ์ฌ์ฉํ๋ ์๋ฒ ์ธก ์ปดํ์ผ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ NG2์์ ์์ ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์์ต๋๋ค. :) ๐
๊ตฌ์ถ ๊ฐ๋! ์ ๊น๋ง ์, ๊ธฐ๊ณ ํ์ต์ด์ด ๋ชจ๋ ๊ฒ์ ํด๊ฒฐํ์ง ๋ชปํ๋ค๋ ๋ง์์ธ๊ฐ์?
2 ์ผํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๊ณ ๊ฐ์ด ์์ ๋ฏธ๋์ด ์นด๋๋ฅผ ์ต์ํ SEO๋งํผ์ด๋ ์ค์ํ๊ฒ ์ฌ๊ธฐ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ต๊ทผ ํ๋ก์ ํธ์์ ๋งํ๋ฉด Twitter / Facebook์ ๋ธ๋๋๊ฐ ์น ์ฌ์ดํธ ๋งํฌ๋ฅผ ๊ณต์ ํ์ฌ ์์ ์ ํ๋ณดํ๋ ์ฃผ์ ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
๋ถ๋ช ํ SEO๋ ์ฌ์ ํ ์ค์ํ์ง๋ง ์์ ๋ฏธ๋์ด ์นด๋๋ฅผ ๊ณต๊ฒฉํ๋ ๊ฒ์ด ๋ ๊ฐ๋จํ๊ณ ๋จ๊ธฐ์ ์ธ ์๋ฃจ์ ์ผ๊น์? ์น ์นด๋๋ ๋ฉํ ํ๊ทธ ์ผ ๋ฟ์ด๋ฏ๋ก firebase.json์์ ๊ตฌ์กฐ๋ฅผ ์ ์ ํ ์ ์์ต๋๊น (๋ณด์ ๊ท์น๊ณผ ์ ์ฌ)? Firebase๋ ํธ์ํฐ / ํ์ด์ค ๋ถ ํฌ๋กค๋ฌ์ ์ ํฉํ ๋ฉํ ํ๊ทธ๋ฅผ ์ฝ์ ํ ์ ์์ง๋ง ๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง๋ ์์ต๋๋ค .๐
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ํ๋ฅญํ ์์ ๊ณผ ์ปค๋ฎค๋ํฐ ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ ํฅ๋ฏธ๋ก์ด Firebase ๊ธฐ๋ฅ (ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ ๐!)์ ๊ธฐ๋ํฉ๋๋ค.
@katowulf , ๋ด ์๊ฒฌ์ ๋ฌด์๋ณด๋ค ๊ฐํ '๋ฒํ'์์ต๋๋ค ... ์ฌ๋ฌ๋ถ๋ค์ ๋๋ผ์ด ์ผ์ํ๊ณ ์์ต๋๋ค! ๋๋ ์ ์ฒด์ ์ผ๋ก Google์ ๋ํด ๋ ๋ง์ ๋๋ด์ ๋ณด๋ด๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ Firebase๊ฐ์ด "SPA / PWA-SEO ํ์ด์ง ๋ ๋๋ง"๋ฌธ์ ์ ์ฒด๋ฅผ ์์ ํด์ผํ๋ ์๋ก์ด * Google ๋ถ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๋ํ ๋์ ์๊ฐ์ ...
Google์ด ์ธ์์ ๋ด๋๋ ๋ชจ๋ ์ ํ์ ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ํ๋ซํผ์์ ์๋ฒฝํ๊ฒ ์๋ํด์ผํ๋ฉฐ ์๋ ์ ํ์ธ Google ๊ฒ์์ด ์๋ํ๊ณ ๋ฐ์ํ๋ ๋น๋๋ ์๊ฐ๋์ด์ผํฉ๋๋ค.
SPA๋ ํ๋์ ์ฌ์ฉ๋์ด ์์ต๋๋ค ..Google์๋ [Angular]์ [Polymer] ์ค 2 ๊ฐ๊ฐ ์์ต๋๋ค. SEO (Meta Tags / OpenGraph / Schema)๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ฃผ์ ๋ธ๋ ๋ฐ์ค์ ๋๋ค (๋ฐฑ์๋ ๋์๊ฐ ์๋๋ผ๋ฉด). Google ๊ฒ์์ด JS ์ฒ๋ฆฌ๋ฅผ ์์ํ๋ค๋ ๊ฒ์ ๋ฐ๊ฐ์ด ์์ ์ด์์ง๋ง, ์ด๊ฒ์ ํ์คํ ์ ๋ฐ์ ๋ถ๊ณผํฉ๋๋ค.
์๋น์ค๋ก์์ ๋ฐฑ์๋ (BaaS) ์ธ Firebase๋ ์ ์ฒด SPA ํ์ด์ง ๋ ๋๋ง ์์ ์ ์ํํ๊ฒ ์ฒ๋ฆฌ ํ ์์๋ ์๋ฒฝํ ์ * Google ๊ทธ๋ฃน ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ฌ๋ฌ๋ถ์ด ๊ทธ๊ฒ์ ๋ํด ์์๋ณผ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ค์ / ์ต์ฐ์ ๊ธฐ๋ฅ์ ์ํด์ผํ๋ค๊ณ ๊ฐํ๊ฒ ๋๋๋๋ค.
์ด ํค๋ ๋ผ์ธ์ ์ฝ๋๋ค๊ณ ์์ ํด๋ณด์ธ์ ...
FIREBASE ์กด์ฌ ...
๋ชจ๋ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์
(SPA) ๋ฐ ํ๋ก๊ทธ๋ ์๋ธ ์น ์ ํ๋ฆฌ์ผ์ด์
(PWA)์์ํ ์๋กญ๊ณ ๊ฐ์ ๋ SEO!
๊ฐ๋ฐ์๋ค์ ๋ชฐ๋ ค๋ค ๊ฒ์ ๋๋ค : +1 :
์ฐ๋ฆฌ๋ ๋ ์ด๋์ ์ด๊ฒ์ ํ์คํ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๋นจ๋ฆฌ ์ฐจ์ํ๊ณ ์ถ์์ต๋๋ค. ์ค์ํ์ง๋ง ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค์ด ๊ทธ๋ ์ต๋๋ค (Kato๊ฐ ์ด๊ฑฐ ํ ๊ฒ์ฒ๋ผ). ์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ๋ช ๊ฐ์ง ์ข์ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ๊ทธ๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ๋จผ์ ๋ฒ์ด๋์ผ ํ ๋ช ๊ฐ์ง ์์กด์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ธ๋ด์ฌ์ ๊ฐ๊ณ ์ด๊ฒ์ด ํ์คํ ์ฐ๋ฆฌ ๋ง์์ ์๋ค๋ ๊ฒ์ ์์ญ์์ค!
์ด๊ฒ์ ์ค๋ง ์ค๋ฝ์ต๋๋ค. ์ด์ firebase ๋์์ ์ฐพ๊ณ ์์ต๋๋ค ...
๊ฑฐ์ 3 ๋ ...
์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ ..?
firebase๊ฐ divshot์ ์์ ํ๊ณ ์์ผ๋ฏ๋ก ์ด์ ์๋ํ์ง ์์์ผํฉ๋๊น? PLZ ์ ๋ฐ์ดํธ!
์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ข ๋ฅ์ ๊ธฐ๋ฅ์ ๋ํ ์ด๋ง์ ์ ์๊ณ ์์ผ๋ฉฐ ์ฌ๊ธฐ์์ ๋ ๋์ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ฐ์ ์์์ ๋๋ค. ์์ง ๋ฐํ ํ ์ผ์ ์ด ์์ง๋ง ์ฌ๋ฌ๋ถ์ ๋ํด ์์ง ์์์ต๋๋ค.
+1
:( :( :(
๋น์ทํ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๋ ๋ญ ๋ดค์ด? ;)
Firebase ํจ์๋ฅผ ๊ณต์ ๋งํฌ ๋์ ์ผ๋ก ์ฌ์ฉํ ๋ค์ JavaScript ๋ฐ ๋งํฌ๋ก ๋ฆฌ๋๋ ์ ํฉ๋๋ค.
์ด๊ฒ์ ๋ณด๊ฑฐ๋ ๋ณด์ง ๋ชปํ์ ์๋ ์์ง๋ง Cloud Functions๋ ์ด์ Firebase ํธ์คํ ๊ณผ ํตํฉ๋์์ต๋๋ค !!!
์ด๋ Firebase ํธ์คํ ์ ์ฌ์ฉํ ์๋ฒ ์ธก ๋ ๋๋ง์ ๋ํ ํ์ค ์๋ฃจ์ ์ผ๋ก ๊ฐ์ฃผ ๋ ์ ์์ต๋๋ค. ์ฆ๊ฒจ!
@mbleigh OK ๊ทธ๋์ ์๋์ ๊ฐ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ์๋ ์ ์ญ ํค๋ ํ์ผ์ด ์์ผ๋ฉด ํ์ฌ ํ๋ฐํธ ์๋์์ ๋ณต์ ๋์ง ์์ต๋๋ค. ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ ์ค์นํ๋ฉด์ด ๊ธฐ๋ฅ์ ์ผ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ๋๋ค.
<meta name="description" content="{{ pageDescription }}">
์ ๋ฐ์ดํธ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
2017 ๋ 5 ์ 17 ์ผ ์คํ 5์ 39 ๋ถ์ "Michael Bleigh" [email protected]์ด ์์ฑํ์ต๋๋ค.
์ด๊ฒ์ ๋ณด๊ฑฐ๋ ๋ณด์ง ๋ชปํ์ ์๋ ์์ง๋ง ์ด์ Cloud Functions๊ฐ ํตํฉ๋์์ต๋๋ค.
Firebase ํธ์คํ https://firebase.google.com/docs/hosting/functions
!!!์ด๊ฒ์ ์๋ฒ ์ธก ๋ ๋๋ง์ ๋ํ ํ์ค ์๋ฃจ์ ์ผ๋ก ๊ฐ์ฃผ ๋ ์ ์์ต๋๋ค.
Firebase ํธ์คํ ์ผ๋ก. ์ฆ๊ฒจ!โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-302268864 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbtWCdygdw4ozixK5_XcL2Dlznp4Jks5r65M-gaJpZM4CtPYG
.
๋๋ ์ด๊ฒ์ด์ด ์๊ฒฌ์ ๋ํ ์ต์ ์ ๋ฌธ์ ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋ด ๋ฌธ์ ๋ฅผ ๊ฒ์ํ๋ Google์ด ๋๋ฅผ ์ด๋์๊ณ ์ ๊ทน์ ์ธ ํ ๋ก ์ด์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฏ๋ก ์ฉ์ํ์ญ์์ค!
firebase์์ ํธ์คํ ๋๋ SPA์์ ์์ ์ฌ์ดํธ์ ์คํ ๊ทธ๋ํ ํ ํ๋ฆฟ์ ๋ ๋๋งํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ฐ๋ณด๊ณ ์ถ์ ๊ฒ์ ์ฌ์ฉ์ ์์ด์ ํธ๋ฅผ ํตํ ๋ถํ ๋ถ์ฐ ๊ธฐ๋ฅ์ ๋๋ค.
ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ memcache / cloudsql์์ ์ผ๋ถ ํ ํ๋ฆฟ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์์ฒญํ๋ ์์ ํ๋ซํผ์ ๋ ๋๋งํ์ง๋ง ๋ค๋ฅธ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ๋ํ ์ ์ ํธ์คํ ์ผ๋ก ๋์ฒดํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ์์ฒญ์ โโ๋ํด ์ ์ฒด ์๋ฒ ์ธก ๋ ๋๋ง์ด ํ์ํ์ง ์์ต๋๋ค.
@cdharris Totally, ATM, ๋ด๊ฐ window.location์ ์ฌ์ฉํ์ฌ ์ ์ ํธ์คํ ์ ๋ํ ์ถ๊ฐ ๋ฆฌ๋๋ ์ (ํด๋ผ์ด์ธํธ / ๋ฐฉ๋ฌธ์ ์ฉ)์ ๋ง๋ค๋ ค๊ณ ์๋ํ ํจ์์ ๋ํ ๋ชจ๋ ์์ฒญ์ ๋ค์ ์์ฑํ์ต๋๋ค. SEO ๋ชฉ์ ์ผ๋ก ์๋ํ์ง ์์์ ์ ์์ต๋๋ค. ์ฌํ์ ๋ชฉ์ ์ ์ํด.
@mbleigh ํฌ๋กค๋ฌ / ์์ ์ ์์ฒญ์ ํด๋ผ์ด์ธํธ / ๋ฐฉ๋ฌธ์์ ๊ตฌ๋ณํ์ฌ ๋ค์ ์์ฑํ๋ ์ต์ ์ด ์์ต๋๊น? ๋ค๋ฅธ glob ํํ์ ์ค์์ _escaped_fragment_๋ก ํ ์คํธํ์ต๋๋ค ... ์๋ฌด๊ฒ๋ = / ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค
firebase ํจ์์์ ๋ฌด์์ ๋ฐํํ ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ผ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋งํ ์ ์์ต๋๋ค : ์๊ตฌ ์ฌํญ์ Facebot์์ ์ค๋ ๊ฒ์ ๋๊น? ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์ด๋ฆฐ ๊ทธ๋ํ ํ๊ทธ๋ฅผ ๋ฐํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ index.html์ ๋ฐํํฉ๋๋ค. ํ์ง๋ง firebase ํจ์์์ darn index.html์ ์ด๋ป๊ฒ ๋ฐํํฉ๋๊น?
fs.readFileSync ( './ index.htm')
2017 ๋ 9 ์ 13 ์ผ ์ค์ 4:34์ "Birowsky" [email protected]์ด ์์ฑํ์ต๋๋ค.
Firebase ํจ์์์ ์ฝํ ์ธ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋งํ ์์๋ค:
์๊ตฌ ์ฌํญ์ Facebot์์ ์ค๋ ๊ฒ์ ๋๊น? ๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์ด๋ฆฐ ๊ทธ๋ํ ํ๊ทธ๋ฅผ ๋ฐํํฉ๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด
index.html์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ป๊ฒํ๋ฉด a์์ darn index.html์ ๋ฐํํฉ๋๊น?
firebase ํจ์?โ
๋๊ธ์ ๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329140134 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbrXQNbVMhRmeZQTbx3Z3vi0c1HXTks5sh728gaJpZM4CtPYG
.
@megamindbrian ํจ์๊ฐ ํธ์คํ ๋ ํ์ผ์ ์ก์ธ์ค ํ ์ ์์์ ์์ํฉ๋๊น? ์ด๋์๋ ๋ฌธ์ํ๋์ด ์์ต๋๊น? ์ด์จ๋ ๊ณ ๋ง์ต๋๋ค!
์. ๊ทธ๊ฒ์ด ๋ด๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๊ธฐ์ตํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ฌธ์๋ฅผ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ์ข์ ์ง๋ฌธ์ ๋๋ค.
2017 ๋ 9 ์ 13 ์ผ ์ค์ 7:09์ "Birowsky" [email protected]์ด ์์ฑํ์ต๋๋ค.
@megamindbrian https://github.com/megamindbrian ์
ํจ์๊ฐ ํธ์คํ
๋ ํ์ผ์ ์ก์ธ์ค ํ ์ ์์ต๋๊น? ์ด๋์๋ ๋ฌธ์ํ๋์ด ์์ต๋๊น?
์ด์จ๋ ๊ณ ๋ง์ต๋๋ค!
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329179741 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbobjixHUterg61PAFmLc9v72C7kyks5sh-IogaJpZM4CtPYG
.
์ฌ๊ธฐ ํ๋
https://stackoverflow.com/questions/42960506/how-can-i-read-and-write-to-firebase-storage-from-within-cloud-functions-for-fir
2017 ๋ 9 ์ 13 ์ผ ์ค์ 7:09์ "Birowsky" [email protected]์ด ์์ฑํ์ต๋๋ค.
@megamindbrian https://github.com/megamindbrian ์
ํจ์๊ฐ ํธ์คํ ๋ ํ์ผ์ ์ก์ธ์ค ํ ์ ์์ต๋๊น? ์ด๋์๋ ๋ฌธ์ํ๋์ด ์์ต๋๊น?
์ด์จ๋ ๊ณ ๋ง์ต๋๋ค!โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329179741 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbobjixHUterg61PAFmLc9v72C7kyks5sh-IogaJpZM4CtPYG
.
์ด๊ฒ์ ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง๋ง ํ์ผ์์๋ ์๋ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ๋ก์ ํธ์ ํจ๊ป ์
๋ก๋ํ์ต๋๋ค. ๋ถ๋ณ ์ผ ์ ์์ผ๋ฏ๋ก
์์ ๋ ํ์ผ์ ๋ค๋ฅธ ๊ณณ์ ์ ์ฅํ๊ธฐ ์ํด ์คํ๋ก๋ํ๋ ๊ฒ์
๋๋ค.
https://firebase.google.com/docs/storage/extend-with-functions
2017 ๋ 9 ์ 13 ์ผ ์ค์ 7:12์ "Brian Cullinan" [email protected]์ด ์์ฑํ์ต๋๋ค.
์ฌ๊ธฐ ํ๋ https://stackoverflow.com/questions/42960506/how-can-i-
Cloud-functions-for-fir์์ firebase-storage-to-firebase-storage-to-read-and-write-to-firebase-storage-from-in-cloud-functions-for-fir2017 ๋ 9 ์ 13 ์ผ ์ค์ 7:09์ "Birowsky" [email protected]์ด ์์ฑํ์ต๋๋ค.
@megamindbrian https://github.com/megamindbrian ์
ํจ์๊ฐ ํธ์คํ ๋ ํ์ผ์ ์ก์ธ์ค ํ ์ ์์ต๋๊น? ์ด๋์๋ ๋ฌธ์ํ๋์ด ์์ต๋๊น?
์ด์จ๋ ๊ณ ๋ง์ต๋๋ค!โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329179741 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbobjixHUterg61PAFmLc9v72C7kyks5sh-IogaJpZM4CtPYG
.
์ฃ์กํฉ๋๋ค. ์ฌ์ ํ ํจ์๊ฐ ํธ์คํ ๋ ํ์ผ์ ๊ฐ๋ ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋ฐฉ์์ ๋ํ ์ ์ ํ ์๊ฐ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค. ์ค๋ช ํด ์ฃผ์๋ฉด ๋ช ๊ฐ์ง ํฌ์ธํธ๋ฅผ๋๋ฆฝ๋๋ค : https://stackoverflow.com/q/46192570/592641
์ฝ๋ ์์ ๋ฅผ ํตํด ๋ตํ ์ ์์์ง๋ง ๋ช
ํํ์ง ์์์ต๋๋ค.
ํจ์ ๋ด์์ ํ์ผ์ ์ฝํ
์ธ ๋ก ์๋ต ํ ์ ์์ต๋๋ค.
๋น์ ์ ํ๋ก์ ํธ? ๋ฆฌ๋๋ ์
์ด ์๋๋๋ค.
๋๋ ๋ ๋ง์ ์ฝ๋๋ฅผ ํํค์น ๊ฒ์ด๋ค.
2017 ๋ 9 ์ 13 ์ผ ์ค์ 7:18์ "Birowsky" [email protected]์ด ์์ฑํ์ต๋๋ค.
์ฃ์กํฉ๋๋ค. ๊ธฐ๋ฅ์ ๋ํ ์ ์ ํ ์๊ฐ๊ฐ ์์ง ๋ณด์ด์ง ์์ต๋๋ค.
๊ฐ๋
์ ์ผ๋ก ํธ์คํ
๋ ํ์ผ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ค๋ช
ํด์ฃผ์ ๋ค๋ฉด
๋น์ ์์ํ ๋ช ๊ฐ์ง ํฌ์ธํธ : https://stackoverflow.com/q/46192570/592641
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329182385 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbnCSoaKUuVKUnfha5A-4K-p76kZ3ks5sh-QygaJpZM4CtPYG
.
@megamindbrian ๋ฐฉ๊ธ fs.readFileSync('./index.html')
์๋ํ์ง๋ง ์ํ๊น๊ฒ๋ ํ์ผ์ด ์์ต๋๋ค. ๋ํ ์์ ์ ์ผ๋ก ์์ฑ ๋ ์ผ๋ถ ์ ์ฅ์ ๋ฒํท์์ ํธ์คํ
๋ ํ์ผ์ ์ฐพ๊ณ ์ถ์์ต๋๋ค. ์ด๋ป๊ฒ ์งํ ํ์๊ฒ ์ต๋๊น?
ํธ์คํ
public
๋๋ ํฐ๋ฆฌ๋ฅผ functions
๋๋ ํฐ๋ฆฌ ๋ด์ ์ค์ฒฉํ๋ฉด ํด๋น ๋๋ ํฐ๋ฆฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@Birowsky Yup, ๋ค์์ index.js์ ๊ฐ์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์์ ํ์ผ์ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
const page = fs.readFileSync(__dirname + '/facebook-meta.html').toString();
๊ทธ๋ฌ๋ ํ๋ก์ ํธ ๋ ์ด์์์ด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ :
project/
project/src (<- actual source of app)
project/functions ( <- firebase functions)
project/dist (<- build output)
/ dist in์์ / functions๋ก ๊ด๋ จ ํ์ผ์ ๋ณต์ฌํด์ผํฉ๋๋ค.
์ด ๋ฌธ์ ๋ ์ ๋ชจ์ค๊ฐ 3 ๋ (์ง๊ธ๊น์ง) ์์์ง๋ง ์์ง ์ด์ด ์๋ค ????
์๋ง ๊ตฌ๊ธ์ด ๋ชจ๋ ๊ฒ์ ์ง์ํ๋ ๋์ค์ ํ์ด์ด๋ฒ ์ด์ค๋ฅผ ํฌ๊ธฐํ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ ์ฑ.
์ด ๋ฌธ์ ์ ๋ํ ๊ณต์ ์๋ฃจ์
์ Cloud Functions๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค.
์ ์ ์ผ๋ก ํ์๋์ด์ผํ๋ ์ฝํ
์ธ ์ ๋ํ ์๋ฒ ์ธก ๋ ๋๋ง์ ์ํํ๋ ๋ฐฉ๋ฒ
๊ฒ์ท:
https://firebase.google.com/docs/hosting/functions
์ด๊ฒ์ ๋ชจ๋ ์ข
๋ฅ์ ์์
์ ํ์ฉํ๋๋ณด๋ค ๊ฐ๋ ฅํ๊ณ ์ผ๋ฐํ ๋ ์๋ฃจ์
์
๋๋ค.
๋ฉ์ง ๊ฒ๋ค!
์์ง ๋น ์ง ๊ฒ์ด ์๋ค๊ณ ๊ฐํ๊ฒ ๋๋ผ์๋ฉด
์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ ์ ์๋๋ก ์์ธํ ์ฌ์ฉ ์ฌ๋ก! :)
2017 ๋
9 ์ 14 ์ผ ๋ชฉ์์ผ ์คํ 3:57 Brian Cullinan [email protected]
์ผ๋ค :
์๋ง๋ ๋ชจ๋ ๊ฒ์ ์ง์ํ๋ ์ค๊ฐ์ firebase๋ฅผ ํฌ๊ธฐํ Google์ ์๋ฏธํฉ๋๋ค.
์ฐ๋ฆฌ ์ฑ.2017 ๋ 9 ์ 14 ์ผ ๋ชฉ์์ผ ์คํ 3:52, tofanelli [email protected]
์ผ๋ค :์ด ๋ฌธ์ ๋ ์ ๋ชจ์ค๊ฐ 3 ๋ (์ง๊ธ๊น์ง) ์์์ง๋ง ์์ง ์ด์ด ์๋ค ????
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
<
https://github.com/firebase/firebase-tools/issues/33#issuecomment -329630338
,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
<
https://github.com/notifications/unsubscribe-auth/AX5XbhBSDSl6TStSv7M02Dx0brb9MOPbks5sia44gaJpZM4CtPYG.
โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329631266 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAAD_iI6L-yu3RTECI88a2y_ZOzIxdDQks5sia9rgaJpZM4CtPYG
.
@mbleigh ์์ง firebase ๋๋ฉ์ธ์ ๋ฃจํธ์์ ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๊น?
์, ๋ด๊ฐ ๋น์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด. ์ ์ ๋ฌธ์ ๊ฐ ์์์ต๋๊น?
2017 ๋
9 ์ 14 ์ผ ๋ชฉ์์ผ ์คํ 6:38 Brian Cullinan [email protected]
์ผ๋ค :
@mbleigh https://github.com/mbleigh ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๊น?
์์ง firebase ๋ฃจํธ ๋๋ ํ ๋ฆฌ?โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-329653711 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AAAD_g7BV3TMM_5nVX92_-3ai_mZHfHBks5sidUvgaJpZM4CtPYG
.
@mbleigh
์ด๊ฒ์ ๋ชจ๋ ์ข ๋ฅ์ ๋ฉ์ง ๊ฒ๋ค์ ํ์ฉํ๋ ๋ ๊ฐ๋ ฅํ๊ณ ์ผ๋ฐํ ๋ ์๋ฃจ์ ์ ๋๋ค!
SSR์ ์์คํ
์ ๋ ๋ณต์ก ํ๊ฒ ๋ง๋ญ๋๋ค ๐ข
์ฌ์ ๋ ๋๋ง์ด ํญ์ ์ข์ ๊ฒ์ ์๋์ง๋ง ์์ฃผ ๐ก
์ : Facebook OGP, Twitter ์นด๋, Google ์ด์ธ์ SEO
@mbleigh @megamindbrian ๊ทํ์ ๋ฉ์์ง์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ด ๊ธฐ๋ฅ์ ๋ํ ๋ชจ๋ ์์ฒญ์ ์ ๋ฌํ๊ณ functions/build/index.html
์์ ํธ์คํ
๋๋ index.html
๋ํ ์๋ต์ ํด๋ผ์ด์ธํธ์ ํธ์คํ
ํ์ต๋๋ค. ํ์ง๋ง FaceBot์์ ์ค๋ ์์ฒญ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ด ์น ์ฌ์ดํธ์ URL์ ์ก์ธ์คํ๊ธฐ ์ํด ํ์ด์ค ๋ถ ๋๋ฒ๊น
๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ณด์์ง๋ง ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ด ํธ๋ฆฌ๊ฑฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ต์ํ์ง ์์ต๋๋ค. ํํธ๋ฅผ ์ฃผ์ค ์ ์์ต๋๊น? ๊ฐ์ฌ.
Facebooks ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฝ๋ ๋ฒํผ์ ์ฌ์ฉํด์ผํฉ๋๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ทผ์ฒ์ "์ ์ฌ๋ณธ ๊ฐ์ ธ ์ค๊ธฐ"์ ๊ฐ์ด ํ์๋ฉ๋๋ค.
2017 ๋ 10 ์ 17 ์ผ ํ์์ผ ์ค์ 8:29์ Jude [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@mbleigh https://github.com/mbleigh @megamindbrian
https://github.com/megamindbrian ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ฐ์ง๊ณ ์๋ค
๋ด ํธ์คํ ์ด ๋ชจ๋ ์์ฒญ์ ๋ด ๊ธฐ๋ฅ๊ณผ ์๋ต์ผ๋ก ์ ๋ฌํ๋๋กํ์ต๋๋ค
functions / build / index.html์์ ํด๋ผ์ด์ธํธ์ ํธ์คํ ๋๋ index.html. ๊ทธ๋ฌ๋
FaceBot์์ ์ค๋ ์์ฒญ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ์๋ํ๋ค
๋ด ์น ์ฌ์ดํธ์ URL์ ์ก์ธ์คํ๊ธฐ ์ํด ํ์ด์ค ๋ถ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ
ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ด ํธ๋ฆฌ๊ฑฐ๋์ง๋ง ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋๋ ์ต์ํ์ง ์๋ค
๋ฐฑ์๋ ๊ฐ๋ฐ, ํํธ๋ฅผ ์ค ์ ์์ต๋๊น? ๊ฐ์ฌ.โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-337266581 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbrCQ3mowcUnJjWYWsaiScoN1y4l0ks5stMfcgaJpZM4CtPYG
.
-
๊ธฐ๋ฐ ์ ์ง ์๋ฆผ :์ด ์ด๋ฉ์ผ ๋ฉ์์ง์ ๋ด์ฉ๊ณผ
์ฒจ๋ถ ํ์ผ์ ์์ทจ์ธ๋ง์์ํ ๊ฒ์ด๋ฉฐ
๊ธฐ๋ฐ ๋ฐ / ๋๋ ํน๊ถ ์ ๋ณด์ด๋ฉฐ ๋ฒ์ ์ผ๋ก ๋ณดํธ ๋ ์ ์์ต๋๋ค.
๊ณต๊ฐ์์. ๊ทธ๋ฐ ๋ค์ ๊ธฐ์ ํ์ฌ, ๋ด, ํด์ปค,
์ ๋ถ ๊ธฐ๊ด ๋ฐ ๋ง์ผํ
๋ด๋น์. ์ด ๋ฉ์์ง์ ๋ณด์์ ์์ต๋๋ค.
์ธ์ ๋ ์ง Instagram์์ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ผ ์๋ค๋ฉด
์๋ตํ์ญ์์ค. ์ค์ ๋ก ๋ณด์์ด๋ ๊ฐ์ธ ์ ๋ณด๋ ์ด๋์๋ ์์ต๋๋ค. ๋ง์ฝ
๋น์ ์ ์บ ํ์ ๊ฐ์ ์ฌ๋๋ค๊ณผ ์ผ๊ตด์ ๋ง๋๊ณ ์ด์ผ๊ธฐํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
์๋ ์ฒ๋ผ.
Firebase ๋ก๊ทธ์ 'ํจ์ ์คํ ์์๋จ'๊ณผ ๊ฐ์ ๋ด์ฉ์ด ์์ต๋๊น?
2017 ๋
10 ์ 17 ์ผ ํ์์ผ ์ค์ 8:37, Brian Cullinan [email protected]
์ผ๋ค :
Facebooks ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฒํผ์ ์ฌ์ฉํด์ผํฉ๋๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ทผ์ฒ์ "์ ์ฌ๋ณธ ๊ฐ์ ธ ์ค๊ธฐ"์ ๊ฐ์ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.2017 ๋ 10 ์ 17 ์ผ ํ์์ผ ์ค์ 8:29์ Jude [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@mbleigh https://github.com/mbleigh @megamindbrian
https://github.com/megamindbrian ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ฐ์ง๊ณ ์๋ค
๋ด ํธ์คํ ์ด ๋ชจ๋ ์์ฒญ์ ๋ด ๊ธฐ๋ฅ๊ณผ ์๋ต์ผ๋ก ์ ๋ฌํ๋๋กํ์ต๋๋ค
functions / build / index.html์์ ํด๋ผ์ด์ธํธ์ ํธ์คํ ๋๋ index.html. ๊ทธ๋ฌ๋
FaceBot์์ ์ค๋ ์์ฒญ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ์๋ํ๋ค
๋ด ์น ์ฌ์ดํธ์ URL์ ์ก์ธ์คํ๊ธฐ ์ํด ํ์ด์ค ๋ถ ๋๋ฒ๊น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ
ํด๋ผ์ฐ๋ ๊ธฐ๋ฅ์ด ํธ๋ฆฌ๊ฑฐ๋์ง๋ง ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋๋ ์ต์ํ์ง ์๋ค
๋ฐฑ์๋ ๊ฐ๋ฐ, ํํธ๋ฅผ ์ค ์ ์์ต๋๊น? ๊ฐ์ฌ.โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-337266581 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbrCQ3mowcUnJjWYWsaiScoN1y4l0ks5stMfcgaJpZM4CtPYG
.-
๊ธฐ๋ฐ ์ ์ง ์๋ฆผ :์ด ์ด๋ฉ์ผ ๋ฉ์์ง์ ๋ด์ฉ๊ณผ
์ฒจ๋ถ ํ์ผ์ ์์ทจ์ธ๋ง์์ํ ๊ฒ์ด๋ฉฐ
๊ธฐ๋ฐ ๋ฐ / ๋๋ ํน๊ถ ์ ๋ณด์ด๋ฉฐ ๋ฒ์ ์ผ๋ก ๋ณดํธ ๋ ์ ์์ต๋๋ค.
๊ณต๊ฐ์์. ๊ทธ๋ฐ ๋ค์ ๊ธฐ์ ํ์ฌ, ๋ด, ํด์ปค,
์ ๋ถ ๊ธฐ๊ด ๋ฐ ๋ง์ผํ ๋ด๋น์. ์ด ๋ฉ์์ง์ ๋ณด์์ ์์ต๋๋ค.
์ธ์ ๋ ์ง Instagram์์ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ผ ์๋ค๋ฉด
์๋ตํ์ญ์์ค. ์ค์ ๋ก ๋ณด์์ด๋ ๊ฐ์ธ ์ ๋ณด๋ ์ด๋์๋ ์์ต๋๋ค. ๋ง์ฝ
๋น์ ์ ์บ ํ์ ๊ฐ์ ์ฌ๋๋ค๊ณผ ์ผ๊ตด์ ๋ง๋๊ณ ์ด์ผ๊ธฐํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
์๋ ์ฒ๋ผ.
-
๊ธฐ๋ฐ ์ ์ง ์๋ฆผ :์ด ์ด๋ฉ์ผ ๋ฉ์์ง์ ๋ด์ฉ๊ณผ
์ฒจ๋ถ ํ์ผ์ ์์ทจ์ธ๋ง์์ํ ๊ฒ์ด๋ฉฐ
๊ธฐ๋ฐ ๋ฐ / ๋๋ ํน๊ถ ์ ๋ณด์ด๋ฉฐ ๋ฒ์ ์ผ๋ก ๋ณดํธ ๋ ์ ์์ต๋๋ค.
๊ณต๊ฐ์์. ๊ทธ๋ฐ ๋ค์ ๊ธฐ์ ํ์ฌ, ๋ด, ํด์ปค,
์ ๋ถ ๊ธฐ๊ด ๋ฐ ๋ง์ผํ
๋ด๋น์. ์ด ๋ฉ์์ง์ ๋ณด์์ ์์ต๋๋ค.
์ธ์ ๋ ์ง Instagram์์ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ผ ์๋ค๋ฉด
์๋ตํ์ญ์์ค. ์ค์ ๋ก ๋ณด์์ด๋ ๊ฐ์ธ ์ ๋ณด๋ ์ด๋์๋ ์์ต๋๋ค. ๋ง์ฝ
๋น์ ์ ์บ ํ์ ๊ฐ์ ์ฌ๋๋ค๊ณผ ์ผ๊ตด์ ๋ง๋๊ณ ์ด์ผ๊ธฐํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
์๋ ์ฒ๋ผ.
๋ธ๋ผ์ฐ์ ๋ก ๋ด ์น ์ฌ์ดํธ์ ์ ์ํ๋ฉด @megamindbrian ๊ธฐ๋ฅ์ด ์คํ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ ์ค๊ธฐ ์ํด facebook ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ํ์๋ ํธ๋ฆฌ๊ฑฐ๋์ง ์์์ต๋๋ค.
@judewang https://firebase.google.com/docs/hosting/functions#when_is_cached_content_served ์ดํด๋ณด๊ธฐ
๋น ๋ฅด๊ณ ๋๋ฌ์ด ํ ์คํธ๋ฅผ ์ํด ํ ์คํธ ๋ URL์ ์์์ ์ฟผ๋ฆฌ ๋งค๊ฐ ๋ณ์๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๊ธฐ ์ง๋ฌธ์ ์ฌ์ ๋ ๋๋ง์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด์์ต๋๋ค. ์ด ์๋ฃจ์ ์ ์ฌ์ ๋ ๋๋ง ํตํฉ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์์ง๋ง ๋จ์ผ ํ์ด์ง ์ฑ์ ๋ํ ์ด๋ฆฐ ๊ทธ๋ํ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
public/index.html
์ functions/hosting/index.html
๋ณต์ฌํฉ๋๋ค.firebase.json
"host"๋ผ๋ ํด๋ผ์ฐ๋ ํจ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฌ ์์ฑ ๊ท์น์ ์ถ๊ฐํฉ๋๋ค."hosting": {
"public": "dist",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"function": "host"
}
]
}
host
๋ผ๋ ํด๋ผ์ฐ๋ ํจ์๋ฅผ ์ ์ํฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ด๊ฐ functions/hosting/index.html
๋ณต์ฌ ํ index.html
ํ์ผ์ ๋ฐํํ์ง๋ง ์์ด์ ํธ๊ฐ ์๋ ค์ง ๊ฐ๋ฐฉํ ๊ทธ๋ํ ํ์ ์ค ํ๋ ์ธ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฅผ ๋
ธ์ .exports.host = functions.https.onRequest((req, res) => {
var userAgent = req.headers['user-agent'];
if (userAgent.startsWith('facebookexternalhit/1.1') ||
userAgent === 'Facebot' ||
userAgent.startsWith('Twitterbot')){
//getOpenGraph() parses the path, and gets some data from the firebase database to construct open graph data.
// eg: <meta property="og:description" content="My super cool webpage." /> <meta property="og:title"...
res.status(200).send(getOpenGraph(req.path));
}
else{
//optional - turn on caching: res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
res.status(200).send(fs.readFileSync('./hosting/index.html').toString());
}
});
๊ทธ๊ฒ ๋ค๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ถ ์ฌ๋๋ค์๊ฒ ๋์์ด๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
๋๋ ์ด๊ฒ์ด ์ค๋ง ์ค๋ฝ๋ค๊ณ ๋งํด์ผํ๋๋ฐ, https://www.netlify.com/features/ ์ ๊ฐ์ ์๋ก์ด ๊ฒฝ์์๋ค์ด ์ด๊ฒ์ ๋ด๋ ค์ SEO / ์์ ํตํฉ์ด ํ์ํ ์น ์ฑ์ ํ์คํ ๋ ๋งค๋ ฅ์ ์ ๋๋ค.
Firebase๋ ๋ชจ๋ฐ์ผ / ๋ฐ์ ๋ค์ดํฐ๋ธ๋ฅผ ์ํด ๊ทธ๊ฒ์ ์ฃฝ์ด๊ณ ์์ผ๋ฉฐ ์ ๋ฐ์ ์ผ๋ก ํ๋ซํผ์ผ๋ก์ ์ ๋ง ์ฆ๊ธฐ๊ณ ์์ง๋ง ์ด๊ฒ์ ์น ์ฑ IMO์ ๋ํ ๊ฝค ํฐ ๊ฒฐํจ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ ๋ ๋๋ง์ด ํ์ํ ์ฝํ ์ธ ๋ ์๋ฒ ์ธก ๋ ๋๋ง์์ ๊ฐ์ฅ ์ ์ ๊ณต๋๋ ์ฝํ ์ธ ์ด๊ธฐ๋ํฉ๋๋ค (์ฑ๋ฅ ๋ฐ ์ฒซ๋ก๋ ์ด์ ๋ก ์ธํด). ์ด๋ฌํ ์ด์ ๋ก ์ผ๋ฐ ์ฌ์ ๋ ๋๋ง์ ์ฆ๊ฐ์ ์ธ ๋ก๋๋งต์ ํฌํจ๋์ง ์์ต๋๋ค.
์ฆ, "๋๋๋ก"ํจ์๋ฅผ ์คํํ ์ ์๋๋ก ํจ์ ํตํฉ์ด ๋ ์ ์ฐ ํด์ง๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ํผ๋๋ฐฑ์ ๋ฃ๊ณ ์์ต๋๋ค. Firebase ํธ์คํ ์ CDN ์บ์ฑ์ ํฌ๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ข ๋ฅ์ ์ ์ฐ์ฑ์ ๊ธฐ์ ์ ์ผ๋ก ๋ฌ์ฑํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณ์ํด์ ํผ๋๋ฐฑ์ ๊ฒฝ์ฒญํ๊ณ ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ ํ๋ซํผ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. :๋ฏธ์:
๊ธฐ๋ฅ์ ๋๋ฉ์ธ ์ ๋ฉด์ ์ง์ ์ฐ๊ฒฐํ๊ธฐ์ํ Firebase์ UI
์ด๋ฆ์ ๋ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ํ ๊ฒ์
๋๋ค.
https : //us-central1-...dsaflk; sdafkljsdafkl; jsdf;
lkjsadfkljasdfkljsdaflk.cloudfunctions.net
2018 ๋
1 ์ 5 ์ผ ๊ธ์์ผ ์คํ 3:33, Michael Bleigh [email protected]
์ผ๋ค :
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ ๋ ๋๋ง์ด ํ์ํ ์ฝํ ์ธ ๋
์๋ฒ ์ธก ๋ ๋๋ง์์ ๊ฐ์ฅ ์ ์ ๊ณต๋๋ ์ฝํ ์ธ (์ฑ๋ฅ ๋ฐ
์ฒซ ๋ฒ์งธ๋ก๋ ์ด์ ). ์ผ๋ฐ์ ์ธ ์ฌ์ ๋ ๋๋ง์ ์ฆ๊ฐ์ ์ธ ๋ก๋๋งต์ ์์ต๋๋ค.
์ด๋ฐ ์ด์ ๋ก.์ฆ, ์ฐ๋ฆฌ๋ ์ํ๋ ๊ฒ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฃ๊ณ ์์ต๋๋ค.
"๋๋๋ก"๊ธฐ๋ฅ์ ํ์ฉํ๋๋ก๋ณด๋ค ์ ์ฐํ๊ฒ ๊ธฐ๋ฅ ํตํฉ
์คํ. Firebase ํธ์คํ ์ ์ด๋ฐ ์ข ๋ฅ์ CDN ์บ์ฑ์ ํฌ๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์
์ ์ฐ์ฑ์ ๊ธฐ์ ์ ์ผ๋ก ๋ฌ์ฑํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณ์ํ ๊ฒ์ด๋ค
ํผ๋๋ฐฑ์ ๋ฃ๊ณ ๋ ๋์ ํ๋ซํผ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ชจ์ํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก. ๐โ
๋น์ ์ด ์ธ๊ธ ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/firebase/firebase-tools/issues/33#issuecomment-355683821 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AX5XbtVDQSPOIAZFyozujQQUektf2WM1ks5tHqM8gaJpZM4CtPYG
.
-
"๋๋ ๊ณตํ์ ๊ณต๋ถํ๋ค"
๊ธฐ๋ฐ ์ ์ง ์๋ฆผ :์ด ์ด๋ฉ์ผ ๋ฉ์์ง์ ๋ด์ฉ๊ณผ
์ฒจ๋ถ ํ์ผ์ ์์ทจ์ธ๋ง์์ํ ๊ฒ์ด๋ฉฐ
๊ธฐ๋ฐ ๋ฐ / ๋๋ ํน๊ถ ์ ๋ณด์ด๋ฉฐ ๋ฒ์ ์ผ๋ก ๋ณดํธ ๋ ์ ์์ต๋๋ค.
๊ณต๊ฐ์์. ๊ทธ๋ฐ ๋ค์ ๊ธฐ์ ํ์ฌ, ๋ด, ํด์ปค,
์ ๋ถ ๊ธฐ๊ด ๋ฐ ๋ง์ผํ
๋ด๋น์. ์ด ๋ฉ์์ง์ ๋ณด์์ ์์ต๋๋ค.
์ธ์ ๋ ์ง Instagram์์ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ผ ์๋ค๋ฉด
์๋ตํ์ญ์์ค. ์ค์ ๋ก ๋ณด์์ด๋ ๊ฐ์ธ ์ ๋ณด๋ ์ด๋์๋ ์์ต๋๋ค. ๋ง์ฝ
๋น์ ์ ์บ ํ์ ๊ฐ์ ์ฌ๋๋ค๊ณผ ์ผ๊ตด์ ๋ง๋๊ณ ์ด์ผ๊ธฐํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค.
์๋ ์ฒ๋ผ.
@mbleigh ๋์ด ๊ด์ ์ด ์๋ฒ๋ฆฌ์ค์ ์ ์ ๊ณผ ๋ค์ ๋ฐ๋๋์ง ์์ผ๋ฉฐ ํ์ด์ด๋ฒ ์ด์ค์ ๊ฐ์ BaaS / FaaS ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํฉ๋๊น? ์ง๋ ๋ช ๋ ๋์ SPA๋ก ํฅํ๋ ์ถ์ธ์ ๋ฐ๋ผ ์ด๊ฒ์ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ด๋ฏ๋ก ์๋ฅผ ๋ค์ด netlify ๋ฐ roast์ ๊ฐ์ ๊ฒฝ์์๊ฐ ๋ค๋ฃจ์์ต๋๋ค. ํฌ๊ธฐ๋ ์์ง๋ง์ด๋ฅผ ํธ์คํ ํ๊ธฐ ์ํด์๋ ์ค์ํ ๊ฒ์ ๊ฐ๋ฅ์ฑ ๋ฐ ๊ณต์ ๊ฐ๋ฅ์ฑ๊ณผ ํจ๊ป ๋ ๋น ๋ฅธ๋ก๋ ์๊ฐ์ ์ ๊ณตํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค.
๊ณ ๊ฐ์์ํ ์ถ๊ฐ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ค๋ฒ ํค๋๋ฅผ ์ถ๊ฐํ๋ ๋์ ์ ํ์ ์ฌ์ ๋ ๋๋ง ์๋น์ค ๋๋ ์ต์ํ prerender.io์ ๊ฐ์ ํ์ฌ ์๋น์ค์ ํตํฉํ๋ ๊ธฐ๋ฅ์ด ํฌ๊ฒ ํฅ์ ๋ ๊ฒ์ ๋๋ค.
Firebase๋ ์ ๋ง ํ๋ฅญํ ํ๋ซํผ์ด์ง๋ง ํธ์คํ ์ด ์ ์๊ฒ ์ ์ผํ๊ฒ ๋ถ์กฑํ ๋ถ๋ถ์ด๋ฏ๋ก ๋ชจ๋ฐ์ผ ์งํฅ์ ์ ๋๋ค.
์ ์ํ ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@mbleigh
์ผ๋ฐ์ ์ผ๋ก ์ฌ์ ๋ ๋๋ง์ด ํ์ํ ์ฝํ ์ธ ๋ ์๋ฒ ์ธก ๋ ๋๋ง์์ ๊ฐ์ฅ ์ ์ ๊ณต๋๋ ์ฝํ ์ธ ์ด๊ธฐ๋ํฉ๋๋ค (์ฑ๋ฅ ๋ฐ ์ฒซ๋ก๋ ์ด์ ๋ก ์ธํด).
@Pushplaybang ์ ํ์ฅ ์ฃผ์ฅ์ ์ ์ธํ๊ณ ๋ ๊ทํ์ ์ฃผ์ฅ์ ๋์ํ์ง ์์ต๋๋ค. ์ฐ์ ,์ด ์์ญ์์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ (์ฆ, ์ฌ๋ฌ๋ถ์ด ์๋)์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ๋จ์ํ ํ์ด์ง ์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ์ ๋ค๋ฅธ ๋๊ฐ์ด ์ค์ํ ์ํคํ ์ฒ ๊ฒฐ์ ๊ณผ ๊ท ํ์ ์ด๋ฃจ์ด์ผํฉ๋๋ค.
๋จ์ผ ํ์ด์ง ์ฑ ๋๋ ์ฑ ์น์ ์ ์ด๋ ์ ๋ ํด๋ผ์ด์ธํธ ์ธก ๋ ๋๋ง์ ์์กดํด์ผํ๋ฉฐ, ์ํ๊น๊ฒ๋ Google ์์ฒด๋ฅผ ํฌํจํ ํฌ๋กค๋ฌ๋ ์์ง ์ด๋ฌํ ํ์ด์ง์ ์์ธ์ ์์ฑํ๋ ๋ฐ ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค. ๋๋ ๊ตฌ๊ธ์ด ๋ด ์น ์ฌ์ดํธ๋ฅผ ์ ๋๋ก ์ธ๋ฑ์ฑ ํ ์ ์๋๋ก ๋ช ๋ฌ๊ฐ ์คํจํ ํ PrerenderIO์ ์์งํด์ผํ๋ค. ์ด๊ฒ์ ์ธ๋ฑ์ฑ ๋ฌธ์ ๋ฅผ ์ํด __ ๋จ์ง __ ๋จ์ง _______________________________________ ์๋ฒ ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ ์งํ๋๋ก ๊ฐ์ํ๋ค.
ํด๋ผ์ด์ธํธ ์ธก์์ ๊ฐ์ง ๋ ๋ฅ URL์ ๋ฐ๋ผ ๋ชจ๋ ์ ํ์ ๋ ๋๋งํ๋ /product/**.html ํ์ด์ง๊ฐ์๋ ์น ์ฌ์ดํธ๋ฅผ ์๊ฐํด๋ณด์ญ์์ค. ์ด ๋์์ธ์ ๊ทผ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ๋ฐ cdn ์บ์ฑ์ ๊ณ ๋ คํ๋๋ผ๋ ์ ํ์ ๋ํ ์ค์ ๋ณ๋ ํ์ด์ง๋ฅผ๋ก๋ํ๋ ๊ฒ์ด ๋ค๋ฅธ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ๋ก๋ํ๊ณ URL์ ๋ณ๊ฒฝํ๋ฉด์ ๋ ๋๋งํ๋ ๊ฒ๋ง ํผ UX ๊ด์ ์์ ๋ถ๋๋ฝ ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ณ ๊ฐ์ ์ ์ ์๊ฑฐ๋ ์น ์ฌ์ดํธ์์ browsign-to-buy๋ฅผ ํ ๋ ๋๋ถ๋ถ์ ์๊ฐ์ ์ ํ ํ์ด์ง์์ ๋ณด๋ด๊ณ "๊ด๋ จ ์ ํ"๋งํฌ ๋๋ ํ์ด์ง ๋ด ajax ๊ฒ์ ๋งํฌ๋ฅผ ํตํด ๋ค๋ฅธ ์ ํ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ํ์ ๋ํ ์ฒ๋ฒ์๋ฐ์ง ์๋๋ก ์ด๋ฆฌ์์ (IMHO) _escaped_fragment_ ๋ฉ์ปค๋์ฆ์ ๊ณ ์ํ๊ณ ์์ต๋๋ค. Google์์ด ์ ๋น์ฟผํฐ์ค ๋ฌธ์ ์ ๋ํ ๊น๋ํ ์๋ฃจ์ ์ ๊ฐ์ง ์์ง๋์ด๋ฅผ ๊ณ ์ฉํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๊น ??
__unjustifiable__ ๋ฌธ์์์ ์น ์ฌ์ดํธ / ์น์ฑ ์์ธ ์์ฑ ์น์
์ด ์ ํ ์๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค.
๋ชจ๋ฐ์ผ ์ฑ์ด ์๋น์ ์์ฅ์ ์ง๋ฐฐ ํ ์ ์์ง๋ง B2B๋ ์ด๋ป์ต๋๊น? ๋๋ถ๋ถ์ ์ฌ๋ฌด์ค ๋ถ์๋ ๋ฐ์คํฌํฑ ์ปดํจํฐ์์ ์ด์๋ฉ๋๋ค. R & D ๋๋ ๊ตฌ๋งค ๋ถ์์ ๋๋ฌํ๊ธฐ ์ํด ๋ฐ์คํฌํฑ ์น ์ฌ์ดํธ๋ฅผ ์ธ๋ฑ์ฑํ๋ ๊ฒ์ "๊ฐ๊ธฐ ์ข์"๊ฒ์ด ์๋๋ผ B2B ๊ณต๊ธ ์
์ฒด ๋น์ฆ๋์ค์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ฐ์ง์ด๋ ๊ฐ์ ฏ์์ ์คํ๋๋ ํ๋ คํ ์ฑ์ด ๋ ๋ง์ ์์ต์ ์ฐฝ์ถํ๊ธฐ ๋๋ฌธ์ Firebase / Google์ด ์ด์ ๊ด์ฌ์ด ์๋ค๋ฉด ์์๋๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ถฉ์ฑ์ค๋ฌ์ด ๊ธฐ์ ์ฑํ ์๋ค์๊ฒ 4 ๋ ๋์ ํํผ์ ์ธ ๋ต๋ณ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชจ๋ ์ฌ๋์ ์ ๋ณด์ ์๋นํ ๋ชจ์์ ์ ๋๋ค.
Ranty? ์,ํ์ง๋ง ์ถ๊ฐ ์ธํ๋ผ ๋น์ฉ์ด ์ถ๊ฐ ๊ฐ๋ฐ ์๊ฐ์ ์์๋๊ณ ํฌ๋กค๋ฌ๊ฐ ๊ณ ๊ฐ์๊ฒ ์์์น ๋ชปํ ๋์์ํ๋ ๊ฒ์ ์ ๋นํํด์ผํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ 4 ๋ ๋์ ๊ณต๊ฐ ๋ ๊ฒ์ ์ฝ๊ฐ ์ด๋ฆฌ์์ ๊ฒ ๊ฐ์ต๋๋ค. @cleverplatypus- ๊ทํ์ ๊ฐ์ ์ ๋ ๋์ ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ์์ญ์ ์ ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๊ฐํ๋ ๊ฒ์ ์ค๋จ ํ ๊ฒ์ด ์๋์ง๋ง, ํ์ถ ๋ ์กฐ๊ฐ ์ฌ์ ๋ ๋๋ง์ ๋ํ ์ฆ๊ฐ์ ์ธ ๊ณํ์ ์์ง ์์ต๋๋ค.
์ ์ ๋จ์ผ ํ์ด์ง ์ฑ์ด ์ฌ์ ๋ ๋๋ง์ ์ด์ ์ ์ป์ ์์๋ ๊ฒฝ์ฐ๊ฐ ๋ถ๋ช ํ ์์์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ์ด๋ฌํ ์ ํ์ ์ฌ์ดํธ์ ๋๋ถ๋ถ (์ ๋ถ๋ ์๋)์์ ์ด๋ค URL์์๋ SPA๋ฅผ ๋ถํธ ์คํธ๋ฉ ํ ์์๋ ์๋ฒ ์ธก ๋ ๋๋ง์ ์ํด ๋ ๋์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์ฐ๋ฆฌ์ ๋ชฉํ๋ Firebase ํธ์คํ ์ ๋ชจ๋ ์ข ๋ฅ์ ์น ๊ฒฝํ์ ์ ๊ณตํ๋ ํ์์ ์ธ ํ๋ซํผ์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ด ์ค๋ ๋์์ ์ ๊ณต ํ ์์งํ๊ณ ์ด์ ์ ์ธ ํผ๋๋ฐฑ์ ๊ฐ์ฌํ์ง๋ง, ์ฐ๋ฆฌ๋ ์ ํ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ ์ฒด ๊ณ ๊ฐ ๊ธฐ๋ฐ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น ๊ฒ์ผ๋ก ์๊ฐ๋๋ ์์ ์ ์ฐ์ ์์๋ฅผ ์ง์ ํด์ผํฉ๋๋ค. ๊ฐํ๊ฒ ๋๋ผ๋ ๊ธฐ๋ฅ์ ์ฐ์ ์์ ์ง์ ์ ๋ํ ๋ง์์ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๊ธฐ๋ฅ ์์ฒญ ์
๋ํ๋ฅผ ์งํํ ๊ณต๊ฐ์ด ์ค์ ๋ก ๋จ์ ์์ง ์๋ค๊ณ ์๊ฐํ๋ฏ๋ก์ด ์ค๋ ๋๋ฅผ ๋ซ์ผ๋ ค๊ณ ํฉ๋๋ค.ํ์ง๋ง Cloud Functions ํตํฉ์ผ๋ก ์๋น์ค๋ฅผ ์ ๋๋ก๋ฐ์ง ๋ชปํ๋ ์ฌ๋์ ์ฌ์ ๋ ๋๋ง์์ํ ๊ธฐ๋ฅ ์์ฒญ์ ์ ์ถํ๋๋ก ๊ถ์ฅํฉ๋๋ค. ์์๊ฐ ์ผ๋ง๋ ํฐ์ง ์ง์ ํ์ธํ ์ ์์ต๋๋ค!
Firebase ํธ์คํ ์ ์ฌ์ฉํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ชจ๋ ๐ธ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐ๋ฆฌ๋ ๋ ์ด๋์ ์ด๊ฒ์ ํ์คํ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๋นจ๋ฆฌ ์ฐจ์ํ๊ณ ์ถ์์ต๋๋ค. ์ค์ํ์ง๋ง ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค์ด ๊ทธ๋ ์ต๋๋ค (Kato๊ฐ ์ด๊ฑฐ ํ ๊ฒ์ฒ๋ผ). ์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ๋ช ๊ฐ์ง ์ข์ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, ๊ทธ๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ๋จผ์ ๋ฒ์ด๋์ผ ํ ๋ช ๊ฐ์ง ์์กด์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ธ๋ด์ฌ์ ๊ฐ๊ณ ์ด๊ฒ์ด ํ์คํ ์ฐ๋ฆฌ ๋ง์์ ์๋ค๋ ๊ฒ์ ์์ญ์์ค!