# Firebase๋?
๋ชจ๋ฐ์ผ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ ์ธ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํธ์ ์๋, ์คํ ๋ฆฌ์ง, API ๋ฑ ๋ชจ๋ ๊ฒ์ ๊ฐ๋ฐํด์ผ ํ๋ค.
ํ์ง๋ง ๋ชจ๋ฐ์ผ ์๋ฒ๋ ์ด๋ฐ ๋ชจ๋ ๊ฒ์ ๊ตฌ์ฑํ๋๋ฐ ๊ตฌ์ฑํ๋ ๋ฒ์๊ฐ ๋งค๋ฒ ์๋ก์ด ์ฑ๋ค๊ณผ ์ฐจ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ~๋ฆฌ๋ ์ค๋ฅผ ์ค์นํ๊ณ , FTP๋ฅผ ์ค์นํ๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ , ๋ ธ๋ ์๋ฒ๋ ์คํ๋ง ์๋ฒ๋ฅผ ์ฌ๋ฆฌ๊ณ , ๋ฐฉํ๋ฒฝ์ ์ฌ๋ฆฌ๊ณ , ๋๋ฉ์ธ์ ๊ตฌ์ ํ๋ ๋ฑ~ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ฑ ๊ฐ๋ฐํ ๋๋ง๋ค ํ๋ ๊ฒ์ ์๊ฐ๋ญ๋น!
FireBase๋์ด ๋ชจ๋ ํ๋ซํผ์ ํ๋ก์ ํธ ๊ตฌ์ถ ์ ์๋์ ์ผ๋ก ๋ง๋ค์ด ์ค๋ค.
๋ํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด๋ฅผ ์ ํ์๋ ์์ผ๋ฉฐ ๋๋ฉ์ธ์ ๊ตฌ์ ํ ํ์๋ ์๊ณ ๊ฐ๋ฐํ๋ ๋์์๋ ์๋ฒ๋ฅผ ๊ตฌ์ ํ ํ์๋ ์๋ค!
# โนFirebase๋?
- Firebase๋ 14๋ ๋์ ๊ตฌ๊ธ์์ ์ธ์ํ ๋ชจ๋ฐ์ผ, ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ซํผ
- 16๋ ๋๋ถํฐ ๊ตฌ๊ธ์์ ์๋น์ค๋ฅผ ๋ํญ ๊ฐํํ BaaS(Backend as a Service)
- ๋ฐฑ์๋ ๊ธฐ๋ฅ์ ํด๋ผ์ฐ๋ ์๋น์ค ํํ๋ก ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์ฑ ๊ฐ๋ฐ์๊ฐ ์ฑ ๊ฐ๋ฐ(ํ๋ฐํธ์๋)์๋ง ์ ๋ ํ ์ ์์!
# 1. ์ด๋ค ์๋น์ค๋ฅผ ์ ๊ณตํ ๊น?
ํฌ๊ฒ ์ฑ ๊ฐ๋ฐ, ์ฑ ํ์ง ํฅ์, ๋น์ฆ๋์ค ์ฑ์ฅ ๋๋ชจ 3๊ฐ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
# โน1. ์ฑ ๊ฐ๋ฐ
**1.1 Colud Firestore :ย **
ํด๋ผ์ฐ๋์ ํธ์คํ ๋๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ ๊ธ๋ก๋ฒ ๊ท๋ชจ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฌ์ฉ์์ ๊ธฐ๊ธฐ ๊ฐ์ ๋๊ธฐํํ ์ ์์ต๋๋ค. Cloud Firestore๋ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ฟผ๋ฆฌ์ ์ค์๊ฐ ๋๊ธฐํ ๋ฐ ์คํ๋ผ์ธ ์ง์์ ์ ๊ณต
**1.2 ML Kit :ย **
์ฑ์ ๊ฐ๋ ฅํ ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋๋ก ๋์์ค.
**1.3 Cloud ํจ์ :ย **
์๋ฒ๋ฅผ ์ง์ ๊ด๋ฆฌํ๊ฑฐ๋ ํ์ฅํ ํ์ ์์ด ๋ง์ถค ๋ฐฑ์๋ ์ฝ๋๋ก ์ฑ์ ํ์ฅ
**1.4 ์ธ์ฆ :ย **
์ด๋ฉ์ผ ๋ฐ ๋น๋ฐ๋ฒํธ, ํ์ฌ ์ ๊ณต์ ์ฒด(์: Google ๋๋ Facebook), ๊ธฐ์กด ๊ณ์ ์์คํ ์ง์ ์ฌ์ฉ ๋ฑ์ ๋ค์ํ ์ธ์ฆ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
**1.5 ํธ์คํ :ย **
์ต์ ํ ์น ์ฑ์ ์ํด ๋ง์ถค ์ ์๋ ๋๊ตฌ๋ก ์น ํธ์คํ ์ ๋จ์ํ
**1.6 Cloud Storage :ย **
Google์ ๊ท๋ชจ๋ฅผ ํ์ฉํ ๊ฐ๋ ฅํ๊ณ ๋จ์ํ๋ฉฐ ๊ฒฝ์ ์ ์ธ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง์ ์ด๋ฏธ์ง, ์ค๋์ค, ๋์์ ๋ฑ์ ์ฌ์ฉ์ ์ ์ ์ฝํ ์ธ ๋ฅผ ์ ์ฅํ๊ณ ๊ณต์ ํ ์ ์์ต๋๋ค.
**1.7 ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค :ย **
ํด๋ผ์ด์ธํธ ๊ฐ์ ๋๊ธฐํ๋ ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์๊ตฌํ๋ ๋ชจ๋ฐ์ผ ์ฑ์ ์ํ ํจ์จ์ ์ด๊ณ ๋๊ธฐ ์๊ฐ์ด ์งง์ ์๋ฃจ์ , ์ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒฝ์ฐ ์ค์๊ฐ DB ๋์ Cloud Firestore๋ฅผ ๊ตฌ๊ธ์์ ๊ถ์ฅํ๊ณ ์์
# โน2. ์ฑ ํ์ง ํฅ์
2.1 Crashlytics
๋ค๋์ ๋น์ ์ ์ข ๋ฃ๋ฅผ ๊ด๋ฆฌ ๊ฐ๋ฅํ ๋ฌธ์ ๋ชฉ๋ก์ผ๋ก ๋ฐ๊พธ์ด ๋ฌธ์ ํด๊ฒฐ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
2.2 ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง
์ฌ์ฉ์์ ๊ธฐ๊ธฐ์์ ๋ฐ์ํ๋ ์ฑ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ง๋จ
2.3 Test Lab
Google์ด ํธ์คํ ํ๋ ๊ฐ์ ๊ธฐ๊ธฐ ๋ฐ ์ค์ ๊ธฐ๊ธฐ์์ ์ฑ์ ๋ํด ์๋ ํ ์คํธ ๋ฐ ์ปค์คํ ํ ์คํธ๋ฅผ ์คํ
# โน3. ๋น์ฆ๋์ค ์ฑ์ฅ ๋๋ชจ
3.1 ์ธ์ฑ ๋ฉ์์ง
์ฌ์ฉ์๊ฐ ์ฑ ๋ด์์ ์๋ฏธ ์๋ ํ๋์ ์๋ฃํ๋๋ก ์ฅ๋ คํ๋ ํ๊ฒํ ๋ฉ์์ง์ ์ํฉ๋ณ ๋ฉ์์ง๋ฅผ ์ด์ฉํ์ฌ ํ์ฑ ์ฌ์ฉ์์ ์ฐธ์ฌ๋ฅผ ์ ๋ํ๊ณ ์ฅ๋ ค
3.2 Google ์ ๋๋ฆฌํฑ์ค
๋จ์ผ ๋์๋ณด๋์์ ์ฌ์ฉ์ ๊ธฐ์ฌ๋์ ํ๋์ ๋ถ์ํ์ฌ ์ ํ ๋ก๋๋งต์ ๋ํ ์์ฌ๊ฒฐ์ ์ ๊ทผ๊ฑฐ๋ก ํ์ฉ
3.3 ์์ธก
Google์ ๋จธ์ ๋ฌ๋์ ํ์ฉํ์ฌ ์ฑ ์ ๊ฑฐ ๋๋ ์ง์ถ(๋๋ ๋ค๋ฅธ ์ ํ ์ด๋ฒคํธ ์๋ฃ) ๊ฐ๋ฅ์ฑ์ด ๋์ ์ฌ์ฉ์ ์ธ๊ทธ๋จผํธ๋ฅผ ํ์
3.4 ํด๋ผ์ฐ๋ ๋ฉ์์ง
Android, iOS, ์น ๋ฑ์ ํ๋ซํผ์ ๋๋๋ค๋ฉฐ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง์ ์๋ฆผ์ ๋ฌด๋ฃ๋ก ๋ณด๋
3.5 ์๊ฒฉ ๊ตฌ์ฑ
๊ฐ ์ฌ์ฉ์์๊ฒ ์ฑ์ด ํ์๋๋ ๋ฐฉ์์ ๋ง์ถค ์ค์ ํ ์ ์์ต๋๋ค.
3.6 ๋์ ๋งํฌ
๋ชจ๋ฐ์ผ ์ฑ์ฅ์ ๋ณด๋ค ์ ํํ ์ดํดํ๋ ๋ฐ ํ์ํ ๊ธฐ์ฌ๋ ์ถ์ ๊ธฐ๋ฅ์ ์ ๊ณต
Database, Storage, Auth, Analytics๊น์ง ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ์๋ฒ ์ธํ๋ผ๋ฅผ ๊ณ ๋ฏผํ ํ์๊ฐ ์๋ค.
์ฌ์ง์ด ํ์ํ ๊ธฐ๋ฅ๋ง ๊ณจ๋ผ์ ์ฐ๋ฉด ๋๋ค.
# 2.๋ํ์ ์ธ ๊ธฐ๋ฅ, ํน์ง์?
1) ์ธ์ฆ ์์คํ
๋ก๊ทธ์ธ์ ๋ด๋นํ๋ ๋ถ๋ถ์ ์ง์ ์๋ฒ๋ก ๊ฐ๋ฐํ ๊ฒฝ์ฐ ์์ฒญ๋๊ฒ ๋ณต์กํ๋ฐ, ๊ทธ ์ด์ ๋ ์ธ์ฆ๋ ์ฌ์ฉ์์ธ์ง ํ์ธํ๋ ์ธ์ ์ฒ๋ฆฌ์์ ๊ทธ ์ธ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ ์ฅ์์ ์ ๊ทผํด๋ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ๋ ๋ณด์ ์ฒ๋ฆฌ, ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ, ์์ด๋ ์ฐพ๊ธฐ, ๋น๋ฐ๋ฒํธ ๋ฐ๊พธ๊ธฐ, ์ด๋ฉ์ผ ์ธ์ฆ ๋ฑ ๋ณต์กํ ๊ฒ์ ๊ตฌ์ถํด์ผ ํ๋ค.
ํ์ง๋ง FireBase๋ ์ด ๋ชจ๋ ๊ฒ๋ค์ ์ง์ํ๋ค!
2) NoSQl ๊ธฐ๋ฐ์ 3์ธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ํ์ฌ ๋ง์ด ์ฌ์ฉ๋๋ ์ค๋ผํด์ด๋, MySQL ๊ฐ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค,ย FireBase๋ Document ํ์์ ๋น ๋ฅด๊ณ ๊ฐํธํ NoSQL ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ ํ๋ค.
๋ํย FireBase๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ค๊ณผ ๋ค๋ฅด๊ฒ**RTSP(Real Time Stream Protocol)**๋ฐฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ํ๊ณ ์๋ค. RTSP๋ ๋ง ๊ทธ๋๋ก ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ค์ ์ ์กํด์ฃผ๋ ๋ฐฉ์์ด๋ค. ์ด ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์์ผ ๊ธฐ๋ฐ ์๋ฒ๋ฅผ ๋ง๋ค์ด์ ํต์ ํ๋ ๊ฒ๋ณด๋ค ๋น์ฝ์ ์ผ๋ก ์ฝ๋ ์์ด ์ค๊ฒ ๋์ด ์ฝ๋ ๋ช ์ค๋ก๋ ์ํ๋ ๊ตฌ์ฑ์ ๋ง๋ค ์ ์๋ค.
3) ์๊ฒฉ ๊ตฌ์ฑ์ ์ง์
์๊ฒฉ ๊ตฌ์ฑ์ด๋ ์๊ฒฉ์ผ๋ก ์ฑ์ ํ๊ฒฝ ์ํ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋งํ๋ค.
์ฑ์ ๋ฐฐ๊ฒฝํ๋ฉด ํ ๋ง๋ ํฐํธ๋ฅผ ๋ฐ๊พผ๋ค๋๊ฐ, ์ ๋ฐ์ดํธ์ฐฝ ์๋ฆผ ์ฐฝ์ ๋์ด๋ค๋๊ฐ ์ฑ์ ํ๊ฒฝ์ ์๊ฒฉ์ผ๋ก ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๋ค.
4) ์ฝ์ ์ ๊ณต
์ฝ์์ด๋ผ๋ ์ฉ์ด๋ ์ฝ๊ฒ ๋งํด์ ์๋ฒ ๊ด๋ฆฌ์ ํ์ด์ง๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
์ฑ์ ์๋ฒ๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ๋ฆฌ๋ ์ค, FTP, MySQL(๋ฐ์ดํฐ๋ฒ ์ด์ค), Node.JS ์๋ฒ ํน์ Spring ์๋ฒ, ํธ์ ๋ณด๋ด๊ธฐ API๋ง ๊ตฌ์ถํ ๊ฒ์ด ์๋๋ผ ์ด ๋ชจ๋ ๊ฒ์ ๊ด๋ฆฌํ ์ ์๋ ๊ด๋ฆฌ์ ํ์ด์ง๊ฐ ํ์ํฉ๋๋ค. ์ฑ์ ๋ง๋ค๊ธฐ ์ํด์ ์ฑ ๊ฐ๋ฐ์๋ฟ ์๋๋ผ ์๋ฒ ๊ฐ๋ฐ์๊น์ง ํ์ํ๊ฒ ๋๋ค. ~ํ์ง๋ง FireBase๋ ์ด ๋ชจ๋ ๊ฒ์ ์ง์ํ๋ค!~
5) Analytics ์ ๊ณต
Analytics ๋จ์ด ๊ทธ๋๋ก ํต๊ณ๋ฅผ ๋งํ๋ฉฐ ์ ํํ๋ ๋ค์์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ํต๊ณ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ฑ์ ํ์ฌ ์ ์์๋ถํฐ ์ค๋ฅ ํต๊ณ,์ฌ์ฉ์ ์ ์ง์จ, ๊ณ ๊ฐ๋ค์ ์ฑ ์ ๋ฐ์ดํธ ์ํ, ์ฌ์ฉ์๋ค์ด ํน์ ํ์ด์ง์ ๋จธ๋ฌธ ์๊ฐ, ์ด๋ฒคํธ ๋ฑ์ ์ถ์ ํ ์ ์๋ค. ์ด๋ฐ ๋ฐ์ดํฐ๋ค์ ์์งํด์ ์ฌ์ฉ์๊ฐ ์ด๋ค ํ์ด์ง์์ ํฅ๋ฏธ๋ฅผ ์์๋์ง, ์ด๋ค ํ์ด์ง๊ฐ ์ธ๊ธฐ๊ฐ ๋ง์์ง ๋ฑ์ ์ฐพ์๋ผ ์ ์์ผ๋ฉฐ ๋ง์ถค ๋ง์ผํ ๋ ํ ์ ์๋ค.
# 3. ํ๊ณ์ ์?
**1) Firebase๋ฅผ ๋ง์ด ์ฌ์ฉํ ์ ์ ๋ค์ด ํ๋ ๋ง์ ์๋ฒ์ ์๋ต์๋๊ฐ ์ข
์ข
๋๋ ค์ง๋ค
**๊ฐ๋ น Firebase๋ก ์ฑํ
์ฑ์ ๋ง๋ค์๋๋ฐ ๋ฉ์์ง๊ฐ ๋ฆ๊ฒ ๊ฐ๋ค๋๊ฐ ํน์ Firebase์ธ์ฆ์ ์ฑ๊ณตํ๊ณ ๋์ ๋ก๊ทธ์ธ์ ํ๊ณ ๋ฉ์ธํ๋ฉด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ๋ ์๋ฒ๊ฐ ์๋ตํ๋๋ฐ ์๊ฐ์ด ์กฐ๊ธ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด๊ฒ์ Firebase์ ๊ณ ์ง์ ์ธ ๋ฌธ์ ์ด๋ฉฐ ์ ๋ฃ๋ก ์ ํํด๋ ์๋ฒ ์๋ต์ด ์ง์ฐ๋๋ ๋ถ๋ถ์ ํด๊ฒฐ๋์ง ์๋๋ค. ๊ทธ ์ด์ ๋ ์๋ฒ๊ฐ ํด์ธ์ ์๊ธฐ ๋๋ฌธ์ ์ข
์ข
์ฒ๋ฆฌ ์๋์ ์ง์ฐ์ด ๋ฐ์๋๋ค. Firebase๊ฐ ๊ตญ๋ด์์ ๋ง์ด ์ฐ์ธ๋ค๋ฉด ๊ตฌ๊ธ์ด ์์์ ์ชฝ ์๋ฒ๋ฅผ ๊ตฌ์ถํด ์ค ๊ฒ์ด๋ฉฐ
์๋ง ์๋ต ์ง์ฐ์ด ํด๊ฒฐ๋ ๊ฒ์ด๋ค.
2) Firebase์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ FireStore(์ ๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ RealTimeDatabase(๊ตฌ๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๋ชจ๋ ์ฟผ๋ฆฌ๊ฐ ์ฝํ๋ค
SQL์ ์ต์ํ ์ฌ๋๋ค์ Firebase ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๊ต์ฅํ ๋นํฉํดํ ๊ฒ์ด๋ค.ย ๊ทธ ํํย OR ๋ฌธ์ผ๋ก๋ ๊ฒ์๋์ง ์์ผ๋ฉฐ LIKE ๋ฌธ๋ ์กด์ฌํ์ง ์์์ ๋น์ทํ ๊ธ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ์ ์๋ค. ๊ทธ๋์ Firebase๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์ ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์์ ํํฐ๋งํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๊ถ์ฅํ๊ณ ์๋ค.
(์ฌ๋ฌ ์กฐ๊ฑด ๊ฒ์ ๋๋ ๋น ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋น์ค๋ฅผ ๊ตฌ์ ์ค์ด๋ผ ๋ฉด Firestore๋ ์ข์ ์ ํ์ด ์๋๋ค)