Skip to content

Conversation

@jinwoong16
Copy link
Collaborator

@jinwoong16 jinwoong16 commented Nov 23, 2022

๐Ÿ“• Issue Number

Close #47

๐Ÿ“™ ์ž‘์—… ๋‚ด์—ญ

๊ตฌํ˜„ ๋‚ด์šฉ ๋ฐ ์ž‘์—… ํ–ˆ๋˜ ๋‚ด์—ญ

  • Quest View๋ฅผ ๋ชจ๋“  ๋ ˆ์ด์–ด์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • DI ์ƒ์„ฑ ํ›„, ์ฃผ์ž…
    • Presentation, Domain, Data๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ๋‚˜์˜ค๋„ค์š”.

Screenshot 2022-11-23 at 5 07 27 PM

๐Ÿ“˜ ์ž‘์—… ์œ ํ˜•

  • ์‹ ๊ทœ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ๋ฒ„๊ทธ ์ˆ˜์ •
  • ๋ฆฌํŽ™ํ† ๋ง
  • ๋ฌธ์„œ ์—…๋ฐ์ดํŠธ

๐Ÿ“‹ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • Merge ํ•˜๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ๊ฐ€?
  • ์ฝ”๋”ฉ์ปจ๋ฒค์…˜์„ ์ค€์ˆ˜ํ•˜๋Š”๊ฐ€?
  • PR๊ณผ ๊ด€๋ จ์—†๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†๋Š”๊ฐ€?
  • ๋‚ด ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ž๊ธฐ ๊ฒ€ํ† ๊ฐ€ ๋˜์—ˆ๋Š”๊ฐ€?
  • ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํšจ๊ณผ์ ์ด๊ฑฐ๋‚˜ ๋™์ž‘์ด ์ž‘๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋Š”๊ฐ€?
  • ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ์™€ ๊ธฐ์กด์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋งŒ์กฑํ•˜๋Š”๊ฐ€?

๐Ÿ“ PR ํŠน์ด ์‚ฌํ•ญ

PR์„ ๋ณผ ๋•Œ ์ฃผ์˜๊นŠ๊ฒŒ ๋ด์•ผํ•˜๊ฑฐ๋‚˜ ๋งํ•˜๊ณ  ์‹ถ์€ ์ 

  • ํ˜„์žฌ๋Š” HomeViewController์˜ create(with:)๋ฉ”์„œ๋“œ์—์„œ QuestViewModel์„ ๋ฐ›์•„์„œ, QuestView์™€ ์ด์–ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค๋ฅธ ViewModel๋“ค๋„ ์ด๊ณณ์— ์ถ”๊ฐ€๋  ๊ฒƒ ๊ฐ™์€๋ฐ, ๋‹ค๋ฅธ ๋ถ„๋“ค ์˜๊ฒฌ์ด ๊ถ๊ธˆํ•˜๋„ค์š”.
static func create(with questViewModel: QuestViewModel, 
                                     followingViewModel: FollowingViewModel,
                                     calendarViewModel: CalendarViewModel) -> HomeViewController {
        let vc = HomeViewController()
        vc.setup(questViewModel: questViewModel,
                      followingViewModel: FollowingViewModel,
                      calendarViewModel: CalendarViewModel) // ๊ฐ viewmodel๋“ค์„ vc๋‚ด์˜ view๋“ค๊ณผ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.
        
        return vc
}



- Home View๊ฐ€ .create(with:)๋กœ ๋ฐ›์•„์˜จ view model์„ quest view์™€ ์—ฐ๊ฒฐ
@wickedRun
Copy link
Collaborator

์Œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์—ฐ๊ฒฐ์ด ๋˜๋„ค์š” ํ™•์‹คํžˆ. ๊ณ ์ƒํ•˜์…จ์๋‹ˆ๋‹ค.
ํŠน์ด ์‚ฌํ•ญ์— ๊ด€ํ•ด์„œ๋Š” ์–˜๊ธฐ ํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Jeonhui
Copy link
Member

Jeonhui commented Nov 23, 2022

ํŠน์ด์‚ฌํ•ญ์— ๊ด€ํ•ด์„œ ์ œ ์ƒ๊ฐ์€ ๊ฐ€์žฅ ์ฃผ๋œ ViewModel์— ๊ฒฝ์šฐ์—๋Š” init์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ์„œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๊ณ , ๊ผญ init์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋”๋ผ๋„ create ํ•จ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€์ ์œผ๋กœ ๋‹ค๋ฅธ ViewModel์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ViewModel Protocol์„ ๋งŒ๋“ค์–ด addViewModel<VM: ViewModel>(with: VM)๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋งŒ์•ฝ์— ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ์ด ๋  ๊ฒƒ ๊ฐ™๋„ค์š”.

func makeHomeViewController() -> HomeViewController {
         let vc = HomeViewController.create(with: makeQuestViewModel())
         vc.addViewModel(with: {ViewModel๊ฐ์ฒด})
         return vc
     }

ํŠน์ด์‚ฌํ•ญ์— ์ ์–ด์ฃผ์‹  ๋‚ด์šฉ์„ ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•œ ๊ฑด์ง€๋ฅผ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ์ฝ”๋“œ ์ž‘์„ฑํ•˜์‹œ๋А๋ผ ๋„ˆ๋ฌด ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค ๐Ÿ™ƒ

@jinwoong16
Copy link
Collaborator Author

jinwoong16 commented Nov 23, 2022

ํŠน์ด์‚ฌํ•ญ์— ๊ด€ํ•ด์„œ ์ œ ์ƒ๊ฐ์€ ๊ฐ€์žฅ ์ฃผ๋œ ViewModel์— ๊ฒฝ์šฐ์—๋Š” init์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ์„œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๊ณ , ๊ผญ init์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋”๋ผ๋„ ViewModel Protocol์„ ๋งŒ๋“ค์–ด ๊ธฐ์กด์— ๋งŒ๋“œ์‹  createํ•จ์ˆ˜๋ฅผ addViewModel<VM: ViewModel>(with: VM)๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŠน์ด์‚ฌํ•ญ์— ์ ์–ด์ฃผ์‹  ๋‚ด์šฉ์„ ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•œ ๊ฑด์ง€๋ฅผ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ์ฝ”๋“œ ์ž‘์„ฑํ•˜์‹œ๋А๋ผ ๋„ˆ๋ฌด ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค ๐Ÿ™ƒ

๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ˆ ์ œ๊ฐ€ ๋„ˆ๋ฌด ๋‘๋ฃจ๋ญ‰์‹คํ•˜๊ฒŒ ์ผ๋„ค์š”... ์กฐ๊ธˆ๋” ์ง๊ด€์ ์ด๊ฒŒ? ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. HomeViewController ๊ฐ™์€๊ฒฝ์šฐ์—๋Š” ์•ˆ์— ์—ฌ๋Ÿฌ ๋ทฐ๋“ค(์บ˜๋ฆฐ๋”, ํ€˜์ŠคํŠธ ๋“ฑ)์ด ์žˆ์–ด์„œ ๊ทธ๋“ค์˜ view model์„ ์ด์–ด์ฃผ๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋Š” ํ˜„์ƒ์ด ์ƒ๊ธธ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ๋Š˜ ๋ถˆ์•ˆํ•ด์ง€๋”๋ผ๊ณ ์š”. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ๋ถ„๋“ค ์˜๊ฒฌ์ด ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋Ÿผ ๋•Œ, ํ•œ๋ฒˆ ๋” ์ด์•ผ๊ธฐํ• ๊ฒŒ์š”!
ps. ์ œ๋„ค๋ฆญ ์“ฐ์‹œ๋Š”๊ฒŒ ๋˜๊ฒŒ ์ž์—ฐ์Šค๋Ÿฝ๋„ค์š”. ๋ถ€๋Ÿฝ์Šต๋‹ˆ๋‹ค...

@Jeonhui
Copy link
Member

Jeonhui commented Nov 23, 2022

ํŠน์ด์‚ฌํ•ญ์— ๊ด€ํ•ด์„œ ์ œ ์ƒ๊ฐ์€ ๊ฐ€์žฅ ์ฃผ๋œ ViewModel์— ๊ฒฝ์šฐ์—๋Š” init์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ์„œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๊ณ , ๊ผญ init์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋”๋ผ๋„ ViewModel Protocol์„ ๋งŒ๋“ค์–ด ๊ธฐ์กด์— ๋งŒ๋“œ์‹  createํ•จ์ˆ˜๋ฅผ addViewModel<VM: ViewModel>(with: VM)๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํŠน์ด์‚ฌํ•ญ์— ์ ์–ด์ฃผ์‹  ๋‚ด์šฉ์„ ์ œ๊ฐ€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•œ ๊ฑด์ง€๋ฅผ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ์ฝ”๋“œ ์ž‘์„ฑํ•˜์‹œ๋А๋ผ ๋„ˆ๋ฌด ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค ๐Ÿ™ƒ

๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ˆ ์ œ๊ฐ€ ๋„ˆ๋ฌด ๋‘๋ฃจ๋ญ‰์‹คํ•˜๊ฒŒ ์ผ๋„ค์š”... ์กฐ๊ธˆ๋” ์ง๊ด€์ ์ด๊ฒŒ? ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. HomeViewController ๊ฐ™์€๊ฒฝ์šฐ์—๋Š” ์•ˆ์— ์—ฌ๋Ÿฌ ๋ทฐ๋“ค(์บ˜๋ฆฐ๋”, ํ€˜์ŠคํŠธ ๋“ฑ)์ด ์žˆ์–ด์„œ ๊ทธ๋“ค์˜ view model์„ ์ด์–ด์ฃผ๋Š” ๊ณผ์ •์—์„œ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋Š” ํ˜„์ƒ์ด ์ƒ๊ธธ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ๋Š˜ ๋ถˆ์•ˆํ•ด์ง€๋”๋ผ๊ณ ์š”. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ๋ถ„๋“ค ์˜๊ฒฌ์ด ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋Ÿผ ๋•Œ, ํ•œ๋ฒˆ ๋” ์ด์•ผ๊ธฐํ• ๊ฒŒ์š”! ps. ์ œ๋„ค๋ฆญ ์“ฐ์‹œ๋Š”๊ฒŒ ๋˜๊ฒŒ ์ž์—ฐ์Šค๋Ÿฝ๋„ค์š”. ๋ถ€๋Ÿฝ์Šต๋‹ˆ๋‹ค...

๊ธฐ์กด ์ฝ”๋“œ๋„ ๋˜๊ฒŒ ๊น”๋”ํ•˜๊ฒŒ ์ž˜ ์งœ์—ฌ์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ๋‹ค๋งŒ ์ œ๋„ˆ๋ฆญ์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์— ๊ฐ๊ฐ์˜ View Model ํƒ€์ž…๋“ค์„ ๊ตฌ๋ณ„ํ•ด์ค˜์•ผ๋  ๊ฒƒ๊ฐ™์•„์„œ ์กฐ๊ธˆ ๋” ๊ฐ™์ด ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”.
ps. ์ด๋ฒˆ์— clean architecture์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋งŽ์ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์‹œ๊ฐ„๋˜์‹œ๋ฉด Data๋‚˜ Firebase์ชฝ ์ฝ”๋“œ ๋ณด์‹œ๋Š” ๊ฒƒ๋„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ‘๐Ÿป

@sprituz
Copy link
Member

sprituz commented Nov 24, 2022

๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค..1!!!!!!

@jinwoong16 jinwoong16 merged commit 60fbe44 into develop Nov 24, 2022
@jinwoong16 jinwoong16 deleted the feature/ConnectQuestLayer branch November 24, 2022 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QuestView ๋ชจ๋“  ๋ ˆ์ด์–ด ์—ฐ๊ฒฐ

5 participants