Skip to content

๐Ÿ€ 3์ฃผ์ฐจ ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

yonghanJu edited this page Nov 23, 2022 · 8 revisions
DAY 1 ์ฃผ๊ฐ„ ๊ณ„ํš ํšŒ์˜ - 2022/11/21

๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ

์ปจ๋””์…˜

  • ์šฉํ•œ: ์ผ์–ด์„œ๋Š” ํž˜๋“ค์—ˆ๋Š”๋ฐ ์˜ค๋‹ˆ๊นŒ ์Œฉ์Œฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ‘ํฌ: ์ปคํ”ผ ๋จน๊ณ  ์‹ถ์–ด์š” โ†’ ๋จน์ฃ  ๊ทธ๋Ÿผ
  • ํ˜„์ˆ˜
    • ์ง€ํ•˜์ฒ ์— ์‚ฌ๋žŒ์ด ๋งŽ์•„์„œ ๋„ˆ๋ฌด ๋”์›Œ๊ฐ€์ง€๊ณ  ๊ธฐ์ ˆํ•  ๋ป” ํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ธฐ์ ˆ์€ ์•ˆํ•ด์„œ ํ–‰๋ณตํ•˜๋‹ค!
  • ์Šน๋ฏผ: ์กธ๋ ธ๋Š”๋ฐ ๋„์ฐฉํ•ด์„œ ํŒ€์›๋“ค ๋ณด๋‹ˆ๊นŒ ํ–‰๋ณตํ•ฉ๋‹ˆ๋‹ค.

์†Œํ™•ํ–‰

  • ์šฉํ•œ: ์žฌ๋ฐŒ๋Š” ๊ฒŒ์ž„์„ ์ฐพ์•„์„œ ํ–ˆ๋‹ค(The past within, DYO)
  • ๋ณ‘ํฌ: ์ดˆ๋ฐฅ ์‹œ์ผœ ๋จน์–ด์„œ ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค
  • ํ˜„์ˆ˜: ์–ด์ œ ๋Œ€์ฐฝ์„ ์•ผ๋ฌด์ง€๊ฒŒ ๋จน์—ˆ๋‹ค! ๋„ˆ๋ฌด ํ–‰๋ณตํ–ˆ๋‹ค! ์šฉ์šฉ์„ ์ƒ๋„ ๊ฐ”๋Š”๋ฐ ๊ฐ€์„ฑ๋น„๊ฐ€ ๊ดœ์ฐฎ์•˜๋‹ค! ๊ฐ€๋ณผ๋งŒํ•œ ์ˆ ์ง‘์„ ์ฐพ์€ ๊ฒƒ ๊ฐ™์•„์„œ ํ–‰๋ณตํ–ˆ๋‹ค!
    • ์šฉ์šฉ์„ ์ƒ ๊ฐ€์ฃ !!!
  • ์Šน๋ฏผ: local properties์— ๊ฐ’์„ ์ˆจ๊ฒจ์„œ ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค!

์ฃผ๊ฐ„ ๊ณ„ํš

๋ณ‘ํฌ, ์šฉํ•œ

  • 1์ผ์ฐจ
    • ๋‹ฌ๋ฆฌ๊ธฐ ์‹œ์ž‘ ๋ฒ„ํŠผ ์„ธ๋ถ€ ๊ตฌํ˜„ (๊ถŒํ•œ์š”์ฒญ, ํ™”๋ฉด ์ด๋™)
    • ์†ํ•œ ๊ทธ๋ฃน noti ๋ณด๋‚ด๊ธฐ
    • Naver Map API ์—ฐ๋™
  • 2์ผ์ฐจ
    • ๋Ÿฌ๋‹๋ชจ๋“œ ๋ฐ๋ชจ๋ฒ„์ „ ๋งŒ๋“ค๊ธฐ
  • 3์ผ์ฐจ
    • ๋Ÿฌ๋‹๋ชจ๋“œ ์„ธ๋ถ€ ๊ตฌํ˜„
    • ๋Ÿฌ๋‹์ข…๋ฃŒ ํ™”๋ฉด ๊ตฌํ˜„
    • ๋Ÿฌ๋‹ ์ข…๋ฃŒ ์‹œ ๋กœ์ปฌ ๋””๋น„์— ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ
    • ์ธ์ฆ๊ธ€ ์ž‘์„ฑ ํŽ˜์ด์ง€๋กœ ํžˆ์Šคํ† ๋ฆฌ ๋ณด๋‚ด์ฃผ๊ธฐ
  • 4์ผ์ฐจ
    • ๋ฐ๋ชจ๋ฐ์ด ์ค€๋น„

ํ˜„์ˆ˜

  • 1์ผ์ฐจ
    • ๊ทธ๋ฃน ์•„์ดํ…œ(xml) ๊ตฌํ˜„
    • ๋‚ด ๊ทธ๋ฃน ํ™”๋ฉด ๊ตฌํ˜„
  • 2์ผ์ฐจ
    • ๊ทธ๋ฃน ์ƒ์„ฑ ๊ตฌํ˜„
    • ๊ทธ๋ฃน ๋””ํ…Œ์ผ ์ผ๋ถ€ ๊ตฌํ˜„
  • 3์ผ์ฐจ
    • ๊ทธ๋ฃน ๋””ํ…Œ์ผ ๊ตฌํ˜„
    • ๊ทธ๋ฃน ์ˆ˜์ • ๊ตฌํ˜„
  • 4์ผ์ฐจ
    • ๊ฒŒ์‹œ๊ธ€(์ธ์ฆ๊ธ€, ํ™๋ณด๊ธ€) ์•„์ดํ…œ(xml) ๊ตฌํ˜„
    • ๊ฒŒ์‹œ๊ธ€ ํ™”๋ฉด ๊ตฌํ˜„

์Šน๋ฏผ

  • 1์ผ์ฐจ
    • ๋กœ๊ทธ์ธ ์ •๋ณด ๋ฐ์ดํ„ฐ์Šคํ† ์–ด์— ์ €์žฅ
    • ๋งˆ์ด๋Ÿฐ, ํ™˜๊ฒฝ์„ค์ • ๋ ˆ์ด์•„์›ƒ ์ž‘์„ฑ
  • 2์ผ์ฐจ
    • ๋ฃธ db ์„ค์ • ๋ฐ ์บ˜๋ฆฐ๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋„์šฐ๊ธฐ
  • 3์ผ์ฐจ
    • ๋‹‰๋„ค์ž„, ํ”„๋กœํ•„ ์‚ฌ์ง„ ์ˆ˜์ • ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • 4์ผ์ฐจ
    • ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋กœ ์šด๋™๊ธฐ๋ก ๋„์šฐ๊ธฐ
DAY 2 - 2022/11/22

โ˜€๏ธ ์ปจ๋””์…˜ ์†Œํ™•ํ–‰

  • ์Šน๋ฏผ ์–ด์ œ ์ข€ ํ”ผ๊ณคํ–ˆ๋Š”๋ฐ ํ‘น ์ž˜ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค. ํ–‰๋ณตํ–ˆ๋‹ค. ์ƒ๋‹นํžˆ ์ƒ์พŒํ•˜๋‹ค

  • ๋ณ‘ํฌ

    ๊ต‰์žฅํžˆ ์ƒ์พŒํ•˜๋‹ค. ์ฃผ๋ง์— ๋งŽ์ด์žค๋Š”๋ฐ ์–ด์ œ ์กฐ๊ธˆ์ž์„œ ์˜คํžˆ๋ ค ์ข‹๋‹ค. ์—„๋งˆ๊ฐ€ ์‹ธ์ค€ ๋กœ์Šคํ‹ฐ๋“œ ์น˜ํ‚จ ์•ค ํ—ˆ๋‹ˆ๋จธ์Šคํƒ€๋“œ ์ƒŒ๋“œ์œ„์น˜๋ฅผ ๋จน๊ณ  ๊ธฐ๋ถ„์ด ์ข‹์•„์กŒ๋‹ค.

  • ํ˜„์ˆ˜

    ์ปจ๋””์…˜์€ ์ •๋ง ์ข‹๋‹ค. ์˜ค๋Š˜ ๋ฐ”๋‹ค๋ฅผ ๊ฐˆ ์ˆ˜ ์žˆ์–ด์„œ ํ–‰๋ณตํ•˜๋‹ค. ๋ณ‘ํฌ๋‹˜์ด ์ƒˆ๋ฒฝ 3์‹œ๊นŒ์ง€ ์ž‘์—…ํ•œ ๊ฑธ ๋ณด๊ณ  ํ–‰๋ณตํ–ˆ๋‹ค

  • ์šฉํ•œ ์ปจ๋””์…˜์€ ๋งŽ์ด ์ž์„œ ์ข‹๋‹ค. ์šด์ „ํ•  ์ƒ๊ฐ์— ํ–‰๋ณตํ•˜๋‹ค(ํ”๋“ค ๋‹ค๋ฆฌ ํšจ๊ณผ)

์ฝ”๋“œ๋ฆฌ๋ทฐ

๋ณ‘ํ•œ์ด๋„ค #24

  • event ํ•จ์ˆ˜ ์ด๋ฆ„ โ†’ emitEvent๋กœ ํ†ต์ผ, ๋ถ€์ŠคํŠธ ์„œ์น˜ activity๋‚˜ fragment ๋ถ€๋ถ„ ๋กœ์ง ์ฐธ๊ณ 
  • ๋ทฐ๋ชจ๋ธ์•ˆ์—์„œ ๋„คํŠธ์›Œํฌ ์ƒํƒœ ๋ชจ๋“ˆ ์ฃผ์ž… ๋ฐ›๊ณ  open var ํƒ€์ž…์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋จ. ์ดํ›„์— ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋จ. โ†’ ๊ฐœ๋ฐœ์ผ์ง€์— ์‚ฌ์šฉ๋ฒ• ์ฐธ๊ณ 
  • repeatWhenUiStarted๋กœ ์‹œ์ž‘
  • sealed class์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด object ํ˜•ํƒœ๋กœ ๋งŽ์ด๋“ค ์“ฐ๋”๋ผ~
  • boradcast receiver ๊ด€๋ จ IntentFilter์—์„œ ์–ด๋–ค ์ •๋ณด๋ฅผ ๋ฆฌ์‹œ๋ธŒ ๋ฐ›์„์ง€ ๊ฒฐ์ •

ํ˜„์ˆ˜๋„ค #26

  • init ๋ธ”๋Ÿญ ์‚ญ์ œ
  • initView() โ†’ onViewCreated()์—์„œ ์‹คํ–‰, ์—ฌ๊ธฐ์„œ repeatWhenUiStarted ์‚ฌ์šฉํ•˜์—ฌ collect
  • Fragment์—์„œ ํ•ด๋‹น ์˜์กด์„ฑ์ด ์—†๋Š” ๋กœ์ง์€ ViewModel, UseCase๋กœ ๋กœ์ง์„ ๋ถ„๋ฆฌ(์นดํ…Œ๊ณ ๋ฆฌ ๊ด€๋ จ)
  • repeatOn โ†’ repeatWhen์œผ๋กœ ๋„ค์ด๋ฐ ๋ณ€๊ฒฝ

์Šน๋ฏผ์ด๋„ค #25

  • SignIn ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” User ๋ชจ๋ธ ์ด๋ฆ„ ๋ณ€๊ฒฝ(Presentation ๋ชจ๋“ˆ๊ณผ ์„œ๋กœ ์•Œ๊ธฐ ๋•Œ๋ฌธ์— ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์Œ.)
  • SignInDataSourceImpl.kt
    • ๋นˆ๋ฌธ์ž์—ด ์ƒ์ˆ˜ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ
    • uid๊ฐ€ null ๊ฐ’์ด๋ฉด exception ๋ฐœ์ƒ์‹œ์ผœ์•ผ ํ•จ -> runcatching์œผ๋กœ Result ๋ฐ˜ํ™˜ -> ui์—์„œ ํ™•์ธํ›„ ๋ฉ”์‹œ์ง€ ๋„์šฐ๊ธฐ
DAY 3 - 2022/11/23

โ˜€๏ธ ์†Œํ™•ํ–‰ ์ปจ๋””์…˜

  • ์Šน๋ฏผ
    • ์ปจ๋””์…˜์€ ์ผ๋‹จ ๋„ˆ๋ฌด ์ข‹๋‹ค. ๊ฟ€์ž  ์žค๋‹ค.
    • ์•„์นจ๋ถ€ํ„ฐ ๋†€์ด๊ณต์› ํ…Œ๋งˆ ์Œ์•…์„ ๋“ค์œผ๋‹ˆ ๋†€์ด๊ณต์›์— ์˜จ๋“ฏํ•œ ๊ธฐ๋ถ„์ด ๋“ค์–ด ๋„ˆ๋ฌด ํ–‰๋ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ‘ํฌ
    • ์ปจ๋””์…˜ ์ข‹๋‹ค.
    • ์•„์Šฌ์•„์Šฌํ•˜๊ฒŒ ์ง€๊ฐ ์•ˆํ•ด์„œ ๊ธฐ๋ถ„์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ํ˜„์ˆ˜
    • 8์‹œ๊ฐ„ ๋ฐ˜์„ ์ž์„œ ์ปจ๋””์…˜ ์ข‹์Œ. ๋ชธ์€ ํ–‰๋ณตํ•˜๋‹ค. ํ•œ์‹œ๊ฐ„ ์ผ์ฐ ์ผ์–ด๋‚˜๋ ค ํ–ˆ๋Š”๋ฐ ๊ทธ๋Ÿฌ์ง€ ๋ชปํ•ด์„œ ์ •์‹ ์€ ๋ถˆํ–‰ํ•˜๋‹ค.
    • ์—ฌ๋Ÿฌ๋ถ„๋“ค๊ณผ ๋ฐ”๋‹ค๋ฅผ ๋†€๋Ÿฌ ๊ฐˆ ์ˆ˜ ์žˆ์–ด์„œ ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์šฉํ•œ
    • ์ €๋„ ๋งŽ์ด ์ž˜ ์ˆ˜ ์žˆ์–ด์„œ ์ปจ๋””์…˜์ด ์ข‹๋‹ค.
    • ๋Šฆ์ž  ์ž˜ ์ˆ˜ ์žˆ์–ด์„œ ํ–‰๋ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ํ•  ์ผ

  • ๋ณ‘ํ•œ
    • gps ๊ถŒํ•œ ์š”์ฒญ ์˜ค์ „ ์ค‘์œผ๋กœ ๋๋‚ด๊ธฐ
    • naver api ์—ฐ๋™
    • ui ๊ทธ๋ฆฌ๊ธฐ
    • ์›Œํฌ ๋งค๋‹ˆ์ € ์‹œ์ž‘๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Œ
  • ์Šน๋ฏผ
    • ์บ˜๋ฆฐ๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งˆ์Šคํ„ฐ
    • ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด์—์„œ ๋‹‰๋„ค์ž„๊ณผ ํ”„๋กœํ•„ ์‚ฌ์ง„ ๊ฐ€์ ธ์˜ค๊ธฐ
  • ํ˜„์ˆ˜
    • ๊ทธ๋ฃน ์ƒ์„ฑ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ
    • ์ด์Šˆ์— ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์ˆ˜์ •์‚ฌํ•ญ๋“ค ๋ฐ˜์˜ํ•˜๊ธฐ
      • ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ปจ๋ฒค์…˜ + ์‹ค์ˆ˜๋“ค
DAY 4 - 2022/11/24

๐Ÿƒ ๋ชจ๊ฐ๋Ÿฐ

๐Ÿ— ๋น„๋ฒ•์„œ

๐Ÿค“ ์Šคํฌ๋Ÿผ

Clone this wiki locally