์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

Flutter + Firebase๋กœ ๋„ทํ”Œ๋ฆญ์Šค UI ํด๋ก  ์ฝ”๋”ฉํ•˜๊ธฐ [๋ฌด์ž‘์ • ํ”Œ๋Ÿฌํ„ฐ]

๋ณธ ๊ฐ•์˜๋Š” Flutter์™€ Firebase๋กœ ๋„ทํ”Œ๋ฆญ์Šค UI๋ฅผ ํด๋ก  ์ฝ”๋”ฉํ•˜๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค! ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์•ฑ ๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” Flutter๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:)

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[ํ’€์Šคํƒ, ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•˜๋ฉฐ Flutter๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ

  • ๋„ทํ”Œ๋ฆญ์Šค ์ฐœํ•˜๊ธฐ ๊ธฐ๋Šฅ๊นŒ์ง€ ํฌํ•จํ•œ ํด๋ก  ์ฝ”๋”ฉ

  • Flutter์™€ Firebase๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

  • ๋‹ค์–‘ํ•œ Flutter ํŒจํ‚ค์ง€ ์‚ฌ์šฉ๋ฒ•

 

๋„ทํ”Œ๋ฆญ์Šค ํด๋ก  ์ฝ”๋”ฉ!
ํ”Œ๋Ÿฌํ„ฐ(Flutter)๋กœ ๋น ๋ฅด๊ณ  ํƒ์›”ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.

 

๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์•ฑ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•, Flutter

Flutter๋Š” ๊ตฌ๊ธ€์ด ๊ฐœ๋ฐœํ•œ ์•ฑ/์›น/๋ฐ์Šคํฌํƒ‘์•ฑ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.
์ดˆ์ฐฝ๊ธฐ์—๋Š” Dart๋ผ๋Š” ์ƒ์†Œํ•œ ์–ธ์–ด๋กœ ์ธํ•œ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์ง€๋งŒ, React Native๋ฅผ ๊ฐ€๋ฟํžˆ ๋›ฐ์–ด๋„˜๋Š” ์•ฑ ์„ฑ๋Šฅ๊ณผ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ์ž๋ž‘ํ•˜๋ฉฐ ํฐ ์ธ๊ธฐ๋ฅผ ๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Flutter๋ฅผ ์ ‘ํ•ด๋ณธ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ๊ฐœ๋ฐœ์„ Flutter๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ, ๋„ทํ”Œ๋ฆญ์Šค UI๋ฅผ ๋”ฐ๋ผ ๋งŒ๋“ค๋ฉฐ Flutter๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์›Œ๋ณด์„ธ์š”!

๐Ÿ’ก ๊ฐ•์˜ ํŠน์ง•

์ „์ฒด ๊ฐ•์˜ FULL ์ž๋ง‰! ๋น ๋ฅธ ์ฝ”๋“œ ์ง„ํ–‰!

(์ดˆ๋ฐ˜ 4๊ฐœ์˜ ๊ฐ•์˜์˜ ํŽธ์ง‘ ํ€„์ด๋‚˜ ์†๋„๊ฐ€ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹คใ… ใ…  ์ดํ›„ ๊ฐ•์˜๋Š” ์›ํ™œํ•ฉ๋‹ˆ๋‹ค..!!)

"๋ฌด์ž‘์ • ํ”Œ๋Ÿฌํ„ฐ" ๊ฐ•์˜๋Š” ๊ฐ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ผ๋‹จ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผํ•ด๋ณด๊ณ , ๊ฐ์ž ๊ณ ๋ฏผํ•˜๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ํ˜•ํƒœ์˜ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

๊ฐ•์˜์— ์„ค๋ช…์ด ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์–ด, ์ถ”ํ›„์— ๋ณธ ๊ฐ•์˜์— ๋‚˜์˜ค๋Š” ์œ„์ ฏ์ด๋‚˜ ๋กœ์ง์— ๋Œ€ํ•œ ๊ฐ•์˜๋ฅผ ๋”ฐ๋กœ ์—…๋กœ๋“œํ•  ์˜ˆ์ •์ด๋ฉฐ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋จผ์ € ํ•„์š”ํ•˜์‹  ๋ถ„๋“ค์—๊ฒ ์ž˜ ๋งž์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์— "๋ฝ•๋ฝ‘๋Š” ํ”Œ๋Ÿฌํ„ฐ" ๊ฐ•์˜์—์„œ ๋” ์ž์„ธํ•˜๊ณ , ์นœ์ ˆํ•œ ์„ค๋ช…์„ ์ง„ํ–‰๋“œ๋ฆด๊ฒŒ์š”!

โœ๏ธ ์ด ๊ฐ•์˜์—์„œ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋“ค

๊ฐ•์˜์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

โ˜‘๏ธ Flutter๋กœ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
โ˜‘๏ธ Flutter์™€ Firebase Firestore๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•
โ˜‘๏ธ ํ•˜๋‹จ ํƒญ ๋ฐ” ๊ตฌ์กฐ์˜ Flutter ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•

๐Ÿ“– ์ด ๊ฐ•์˜๊ฐ€ ๋๋‚˜๋ฉด ์™„์„ฑ๋  ๋„ทํ”Œ๋ฆญ์Šค UI

๊ฐ•์˜๊ฐ€ ๋๋‚˜๋ฉด, ์•„๋ž˜์˜ ๋„ทํ”Œ๋ฆญ์Šค UI๋ฅผ ์™„์„ฑํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:)
(๋กœ๊ณ  ์ด๋ฏธ์ง€๋Š” Guinness๊ฐ€ ๋งŒ๋“ค์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹คใ…Žใ…Ž)

๐Ÿ›  ํ•„์š”ํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

Flutter๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด๋ฉด ๋ฌด์—‡์ด๋“  ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค!
๋”ฐ๋กœ ์„ค๋ช… ๊ฐ•์˜๊ฐ€ ์—†์œผ๋‹ˆ, ๋ฏธ๋ฆฌ ์ค€๋น„ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค:)

ํ”Œ๋Ÿฌํ„ฐ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…ํ•˜๊ธฐ 

์ œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

OS: Mac OS Mojave / iOS Simulator
SDK: Flutter SDK 1.12.13+hotfix.8
Editor: VS code
VS code extensions: Dart / Flutter / Rainbow Brackets

๐Ÿ›  ๊ฐ•์˜ ์ž๋ฃŒ์‹ค

์ „์ฒด ์†Œ์Šค ์ฝ”๋“œ ๋ ˆํฌ: https://github.com/TaeBbong/netflix-clone-lecture

๊ฐ•์˜ ํšŒ์ฐจ ๋ณ„ ์†Œ์Šค ์ฝ”๋“œ: https://taebbong.github.io

(์œ ํŠœ๋ธŒ๋กœ๋„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”!) ๋ฌด๋ฃŒ ๊ฐ•์˜ ์œ ํŠœ๋ธŒ ๋งํฌ: https://bit.ly/33BYAlD

๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ ์˜ˆ์ƒ๋˜๋Š” ์งˆ๋ฌธ QnA

Q. ๊ผญ ๊ฐ•์˜์—์„œ ๋‚˜์˜ค๋Š” ๋Œ€๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜์š”?
A. ๊ฐ•์˜์ž๋„ ๊ฐœ๋ฐœ์„ ์ž˜ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ, ์ข‹์ง€ ์•Š์€ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Flutter ๊ฒฝ๋ ฅ์ด ๊ธธ์ง€ ์•Š์•„ ๋•Œ๋•Œ๋กœ ํ•„์š” ์—†๋Š” ์ฝ”๋“œ ๋“ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คใ… ใ…  ๋” ๊ณต๋ถ€ํ•ด์„œ ์•ž์œผ๋กœ ๋ฐœ์ „๋œ ์ฝ”๋“œ์™€ ๊ฐ•์˜๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค:)

Q. Flutter์˜ Widget์ด ๊ถ๊ธˆํ•ด์š”!
A. Flutter์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด Widget ์ž…๋‹ˆ๋‹ค! ํฌ๊ฒŒ๋Š” ํ™”๋ฉด ๋‹จ์œ„๋ถ€ํ„ฐ, ์ž‘๊ฒŒ๋Š” ํ•˜๋‚˜์˜ ํ…์ŠคํŠธ ์กฐ์ฐจ Flutter๋Š” Widget์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ์˜ ์ปดํฌ๋„ŒํŠธ ์ •๋„๋กœ ์ดํ•ดํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.

Q. Flutter์˜ ์ƒํƒœ๊ด€๋ฆฌ๊ฐ€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค
A. Flutter์—์„œ๋Š” StatefulWidget์™€ createState()๋กœ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ๋ฐฉ์‹์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋” ๋ฐœ์ „์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ bloc, provider ๋“ฑ์˜ ๋ฐฉ์‹์„ ๋ฐฐ์›Œ๋ด…์‹œ๋‹ค!

 

๐Ÿ’ก ๊ฐ•์˜๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด..!

๋ณธ ๊ฐ•์˜๋Š” ๋ฌด๋ฃŒ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฐ•์˜์ธ๋งŒํผ ๊ฐ•์˜ ์ œ์ž‘์ž๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์‘์›๊ณผ ๊ฒฉ๋ ค ๋•๋ถ„์— ์—ด์‹ฌํžˆ ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๊ฐ•์˜๊ฐ€ ๋งˆ์Œ์— ๋“œ์…จ๋‹ค๋ฉด ์ปคํ”ผ ํ•œ ์ž”(ํด๋ฆญ) ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค:)

 

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•˜๋ฉฐ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฐ•์˜๋ฅผ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ

  • Flutter๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด๋ณด๋Š” ์‚ฌ๋žŒ

  • ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋ฐœ ์ง€์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ

  • ์ผ๋‹จ ์‹œ๋„ ํ•ด๋ณด๊ณ  ๊ณ ๋ฏผํ•˜๋Š”๊ฑธ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจ์…‰

์•ˆ๋…•ํ•˜์„ธ์š”
๊ถŒํƒœ๋ฝ•์ž…๋‹ˆ๋‹ค.

17,606

๋ช…

์ˆ˜๊ฐ•์ƒ

359

๊ฐœ

์ˆ˜๊ฐ•ํ‰

30

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

2

๊ฐœ

๊ฐ•์˜

ํ”„๋กœํ•„

๋ธ”๋กœ๊ทธ: taebbong.github.io

ํŽ˜์ด์Šค๋ถ: facebook.com/taebbong

๊นƒํ—ˆ๋ธŒ: github.com/TaeBbong

ํ•™๋ ฅ

๊ณ ๋ ค๋Œ€ํ•™๊ต ์ •๋ณด๋ณดํ˜ธํ•™๋ถ€ ์กธ์—…(2020.02)

ํ•œ์„ฑ๊ณผํ•™๊ณ ๋“ฑํ•™๊ต ์กฐ๊ธฐ ์กธ์—…(2016.02)

๊ฒฝ๋ ฅ

(์ฃผ) ๋ณด์ด์ €์—‘์Šค ์ธํ„ด, Flutter ์•ฑ/๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์œ ์ง€๋ณด์ˆ˜ ์ด๊ด„ (2019.07 ~ 2019.09)

์†Œํ”„ํŠธ์›จ์–ด ๋งˆ์—์ŠคํŠธ๋กœ 8๊ธฐ ๋ฉ˜ํ‹ฐ ๊ณผ์ • ์ˆ˜๋ฃŒ (2017.08 ~ 2017.12)

์œ ํŠœ๋ธŒ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์Šคํƒ€ํŠธ์—… 'Picasso' ๊ณต๋™ ์ฐฝ์—… (2017.12 ~ 2018.06)

๊ณ ๋ ค๋Œ€ํ•™๊ต ์ •๋ณด๋ณดํ˜ธํ•™๋ถ€ ๊ฐœ๋ฐœ ๋™์•„๋ฆฌ DevKor ์ดˆ๋Œ€ ํšŒ์žฅ (2018.12 ~ 2020.02)

์˜คํˆฌ์žก / ์œ„์‹œ์ผ“ ํ”„๋ฆฌ๋žœ์„œ ๊ฐœ๋ฐœ์ž (2018.06 ~ )

์†Œ๊ฐœ

'๊ธฐ๋ฐœ์ž์ด๋„ˆ'๋ฅผ ๊ฟˆ๊พธ๋Š” ๊ฐœ๋ฐœ์ž ๊ถŒํƒœ๋ฝ•์ž…๋‹ˆ๋‹ค. ์ค‘ํ•™๊ต๋•Œ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๊ณ  ์ดํ›„ ์ฐฝ์—…์„ ๋ชฉํ‘œ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ๊ณผ ๊ด€๋ จ๋œ ํ™œ๋™์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋…„ ์ฐฝ์—…์„ ๊ฒฝํ—˜ํ•ด๋ณด์•˜๊ณ  ๋‚ด ์•„์ด๋””์–ด๋กœ ์ฐฝ์—…ํ•˜๋Š” ์ผ์„ ํ•˜๊ณ  ์‹ถ์–ด ๊ทธ๋งŒ๋‘๊ณ  ๊ฐœ๋ฐœ ๊ณต๋ถ€์™€ ๊ฐ•์˜์ œ์ž‘์— ๋ชฐ๋‘ํ•˜๋ฉฐ ์ง€๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

13๊ฐœ โˆ™ (1์‹œ๊ฐ„ 25๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

๋ฌด๋ฃŒ