Git Product home page Git Product logo

acnh-wiki's Introduction

Swift 5.6 Xcode 14.0 RxSwift 14.0 Build and Test @nook_portal_plus @lee_ari95

๋„ˆ๊ตดํฌํ„ธ+

ย 

์นดํƒˆ๋กœ๊ทธ ์ˆ˜์ง‘ ๊ธฐ๋ก์˜ ์ฆ๊ฑฐ์›€ ๐ŸŒฑ

v1.0.0 2022.05 - 2022.07

ย 

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๊ฐœ๋ฐœ์ž ์†Œ๊ฐœ

์•„๋ฆฌ(Ari)

๊ธฐํš, ๋””์ž์ธ, ๊ฐœ๋ฐœ ๋ชจ๋‘ ๋‹ค ์•„๋ฆฌ๊ฐ€ ํ–ˆ์–ด์š”. ๐Ÿ˜ตโ€๐Ÿ’ซ

ย 

โญ๏ธ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๋ชจ์—ฌ๋ด์š” ๋™๋ฌผ์˜ ์ˆฒ์„ ํ”Œ๋ ˆ์ดํ•˜๋ฉด์„œ ์ˆ˜๋งŽ์€ ์•„์ดํ…œ๋“ค์„ ๋‚ด๊ฐ€ ์ˆ˜์ง‘ํ–ˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ๊ธฐ๋กํ•ด๋‘˜ ์ˆ˜ ์žˆ์–ด์š”. (๊ฐ€๊ตฌ, ์ƒ๋ฌผ, ๋ ˆ์‹œํ”ผ ๋“ฑ...)

์•„์ดํ…œ์˜ ์ƒ์„ธ์ •๋ณด ๋ฐ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

๋˜ํ•œ ๋™๋ฌผ์˜ ์ˆฒ์˜ ์ธ๊ธฐ ์•„ํ‹ฐ์ŠคํŠธ K.K.์˜ ์Œ๋ฐ˜๋„ ๋ง›๋ณด๊ธฐ๋กœ ๊ฐ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋™์ˆฒ ๊ฐ€์ด๋“œ์•ฑ์ž…๋‹ˆ๋‹ค. ๐ŸŒณ

ย 

๐Ÿ›  ํ”„๋กœ์ ํŠธ ์ฃผ์š” ๊ธฐ๋Šฅ

๐ŸŒ“ ๋‹คํฌ๋ชจ๋“œ ๋ผ์ดํŠธ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡บ๐Ÿ‡ธ ์ง€์—ญํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์—ฌ ์˜์–ด, ํ•œ๊ตญ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒด ์•ฑ ๊ธฐ๋ณธ ์„ค์ •์„ ํ†ตํ•ด ๋‚˜์˜ ์„ฌ ์ •๋ณด๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ“ ์˜ค๋Š˜ ํ• ์ผ์„ ํ–ˆ๋Š”์ง€ ์ฒดํฌํ•˜๊ณ , ํŽธ์ง‘์„ ํ†ตํ•ด ํ• ์ผ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ” ๋งˆ์„ ์ฃผ๋ฏผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋งˆ์„ ์ฃผ๋ฏผ์˜ ์ •๋ณด๋ฅผ ์†์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

โœ… ๋งˆ์„ ์ฃผ๋ฏผ๊ณผ ๋Œ€ํ™”๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์„ ๋ฌผ์„ ์ฃผ๊ณ ๋ฐ›์•˜๋‹ค๋ฉด ์ฒดํฌํ•ด์„œ ํ‘œ์‹œํ•  ์ˆ˜๋„ ์žˆ์–ด์š”.

๐Ÿ“Š ์ˆ˜์ง‘ํ˜„ํ™ฉ์„ ํ†ตํ•ด ์ˆ˜์ง‘ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์•„์ง ํš๋“ํ•˜์ง€ ๋ชปํ•œ ์•„์ดํ…œ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

(์ž๋™์œผ๋กœ ๋ฏธํš๋“ ์•„์ดํ…œ ํ•„ํ„ฐ๋งํ•ด์ค๋‹ˆ๋‹ค. ์ƒ๋ฌผ์ด๋ผ๋ฉด ๋‹น์›”๋กœ ํ•„ํ„ฐ๋ง๋˜์–ด ์•„์ดํ…œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.)

๐Ÿ“š ์นดํƒˆ๋กœ๊ทธ ํƒญ์„ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์–ด์š”.

์šฐ์ธก ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ •๋ ฌ ํ˜น์€ ํ•„ํ„ฐ๋ง์„ ํ•˜์—ฌ ์•„์ดํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿ”Ž ์ƒ์„ธ์ •๋ณด๋ฅผ ํ†ตํ•ด ์•„์ดํ…œ์˜ ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ด€๋ จ๋œ ์•„์ดํ…œ์„ ํƒ์ƒ‰ํ•˜๊ฑฐ๋‚˜, ๋ฆฌํผ๋œ ๋ชจ์Šต์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

์ œ์ž‘์„ ํ†ตํ•ด ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์•„์ดํ…œ์˜ ๊ฒฝ์šฐ, ๋ ˆ์‹œํ”ผ ํš๋“๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ์žฌ๋ฃŒ๋„ ์ถ”๊ฐ€๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿ•™ ์ƒ๋ฌผ์˜ ๊ฒฝ์šฐ ์–ด๋””์„œ ์ถœํ˜„ํ•˜๋Š”์ง€, ๋ช‡์‹œ์— ์–ธ์ œ ์ถœํ˜„ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

๐Ÿฐ ๋งˆ์„ ์ฃผ๋ฏผ์˜ ๊ฒฝ์šฐ ์ƒ์„ธํ•œ ํ•„ํ„ฐ๋ง์„ ํ†ตํ•ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฃผ๋ฏผ์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

์ข‹์•„ํ•˜๋Š” ์ฃผ๋ฏผ, ๋‚ด ์„ฌ ์ฃผ๋ฏผ์„ ๋‚˜๋ˆ ์„œ ํ•œ ๋ˆˆ์— ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ฆ ์ˆ˜์ง‘ํ’ˆ์„ ํ†ตํ•ด ๋‚ด๊ฐ€ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ย 

์•„ํ‚คํ…์ฒ˜

MVVM

  • MVVM์„ ๋„์ž…ํ•˜์—ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋ทฐ๋Š” ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์—ญํ• ์—๋งŒ ์ง‘์ค‘ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋กœ์ง ์‹คํ–‰์€ ๋ทฐ ๋ชจ๋ธ์—์„œ ์ง„ํ–‰๋˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

Input/Output Modeling

  • ๋ทฐ๋ชจ๋ธ์„ Input๊ณผ Output์œผ๋กœ ์ •์˜ํ•˜์—ฌ ๋ทฐ์˜ ์ด๋ฒคํŠธ๋“ค์„ Input์— ๋ฐ”์ธ๋”ฉํ•˜๊ณ , ๋ทฐ์— ๋ณด์—ฌ์งˆ ๋ฐ์ดํ„ฐ๋ฅผ Output์— ๋ฐ”์ธ๋”ฉ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ผ๊ด€์„ฑ ์žˆ๊ณ  ์ง๊ด€์ ์ธ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•ด ๋ทฐ๋ชจ๋ธ์˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์กŒ์Šต๋‹ˆ๋‹ค.

Coordinator

  • ํ™”๋ฉด ์ „ํ™˜์— ๋Œ€ํ•œ ๋กœ์ง์„ ViewController๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•˜๊ณ  ์˜์กด์„ฑ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฃผ์ž…์„ ์™ธ๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋””๋„ค์ดํ„ฐ๋ฅผ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ย 

๊ธฐ์ˆ ์  ๋„์ „

RxSwift

  • ์—ฐ์†๋œ escaping closure๋ฅผ ํ”ผํ•˜๊ณ , ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•œ ๋†’์€ ๊ฐ€๋…์„ฑ๊ณผ RX ์˜คํผ๋ ˆ์ดํ„ฐ๋“ค์„ ํ†ตํ•œ ํšจ์œจ์ ์ธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ RxSwift๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์ ์—์„œ๋ถ€ํ„ฐ ๋ทฐ์— ๊ทธ๋ ค์ง€๊ธฐ ๊นŒ์ง€ ํ•˜๋‚˜์˜ ํฐ Stream์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

CI/CD ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”

  • Github Actions๋ฅผ ํ™œ์šฉํ•˜์—ฌ develop ๋ธŒ๋žœ์น˜๋กœ push๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์ž๋™ํ™”๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ย 

Credits/Thanks

๐Ÿ™๐Ÿป Thanks to Animal Crossing: New Horizons spreadsheet

  • ์ด ์•ฑ์€ ์œ„ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งŒ๋“  Norviah์˜ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋™๋ฌผ์˜ ์ˆฒ ์•„์ดํ…œ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

๐Ÿ™๐Ÿป Thanks to ACNH API

  • ๋™๋ฌผ์˜ ์ˆฒ์˜ ์Œ์•…, BGM ๋“ฑ์„ ์ด API๋ฅผ ํ†ตํ•ด ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค

์•„๋ฆฌ์˜ ๊ฐœ๋ฐœ๊ธฐ์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด, ๋„ˆ๊ตดํฌํ„ธ Wiki๋ฅผ ๋ฐฉ๋ฌธํ•ด์ฃผ์„ธ์š”.

acnh-wiki's People

Contributors

leeari95 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

linuxul

acnh-wiki's Issues

[์Œ์•…] ์นดํ…Œ๊ณ ๋ฆฌ ์Œ์•… ์ถ”๊ฐ€ ๋ฐ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์นดํ…Œ๊ณ ๋ฆฌ์— ์Œ์•…์„ ์ถ”๊ฐ€ํ•˜๊ณ , ํ•ด๋‹น ์Œ์•…์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์Œ์•…์— ๋Œ€ํ•œ Requst, ResponseDTO ์ƒ์„ฑ
  • ์นดํ…Œ๊ณ ๋ฆฌ์— songs ์ถ”๊ฐ€
  • ์นดํƒˆ๋กœ๊ทธ์—์„œ ์Œ์•…์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ
  • ์ˆ˜์ง‘ํ’ˆ์—๋„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
  • ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ตฌํ˜„
    • ํ˜„์žฌ ์ง„ํ–‰ ์‹œ๊ฐ„
    • ํ’€ํƒ€์ž„ ์‹œ๊ฐ„
    • ํ”Œ๋ ˆ์ด์–ด ๋ชจ๋“œ (๋žœ๋ค, ์ˆœ์ฐจ, ํ•œ๊ณก)
    • ๋‹ค์Œ๊ณก ์žฌ์ƒ
    • ์ด์ „๊ณก ์žฌ์ƒ
    • ์žฌ์ƒ๋ชฉ๋ก
    • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์žฌ์ƒ

[๊ณตํ†ต] ํŠœํ† ๋ฆฌ์–ผ ๊ฐ€์ด๋“œ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ฑ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ํŠœํ† ๋ฆฌ์–ผ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํŠœํ† ๋ฆฌ์–ผ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ViewController ๊ตฌํ˜„
  • ์‚ฌ์šฉ์ž๊ฐ€ ํŠœํ† ๋ฆฌ์–ผ์„ ํ™•์ธํ–ˆ๋‹ค๋ฉด, ๋”์ด์ƒ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋„๋ก ๊ตฌํ˜„

[ํ™ˆ ํ™”๋ฉด] ์•ฑ ์ •๋ณด๋ฅผ ์šฐ์ธก ํ™˜๊ฒฝ์„ค์ • ๋‚ด๋ถ€๋กœ ์ด๋™

๐Ÿ—ฃ ์„ค๋ช…

  • ์ž˜ ๋ณด์ง€ ์•Š๋Š” ์•ฑ ์ •๋ณด๋ฅผ ๊ธฐ์กด ๋Œ€์‹œ๋ณด๋“œ ์ขŒ์ธก์— ๊ตฌํ˜„ํ•ด๋‘์—ˆ์—ˆ๋Š”๋ฐ, ์ž์ฃผ ๋ณด์ง€ ์•Š๋Š” ์ •๋ณด์ด๋ฏ€๋กœ ๋ณด์ด์ง€ ์•Š๋Š” ๊ณณ์œผ๋กœ ์ˆจ๊ฒจ๋‘ก๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ™˜๊ฒฝ์„ค์ • ํ™”๋ฉด์— ์•ฑ์ •๋ณด ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฃจํŠธ๋ฅผ ๊ณ ๋ฏผํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ธฐ
  • ์ขŒ์ธก ์•ฑ ์ •๋ณด ๋ฒ„ํŠผ์„ ์ œ๊ฑฐํ•˜๊ธฐ

[๋ฌด๊ฐ’ ๊ณ„์‚ฐ๊ธฐ] ๋งค์ผ ๋ฌด๊ฐ’์˜ ๊ฐ€๊ฒฉ์„ ๊ธฐ๋กํ•˜์—ฌ ๊ฐ€๊ฒฉ ๋ณ€๋™์„ ์ถ”์ธกํ•˜๋Š” ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ๋ฌด๊ฐ’์„ ์ธก์ •ํ•˜๋Š” ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฌด๊ฐ’ ๊ณ„์‚ฐ๊ธฐ ํƒญ ์ถ”๊ฐ€
  • ๋ฌด์˜ ๊ฐ€๊ฒฉ์„ ์˜ค์ „ ์˜คํ›„๋ณ„๋กœ ๊ธฐ๋กํ•˜๋Š” ํ™”๋ฉด ๊ตฌํ˜„
  • ๋ฌด์˜ ๊ฐ€๊ฒฉ์„ ๊ธฐ๋กํ•œ ํ›„ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์˜ˆ์ƒ ๊ฐ€๊ฒฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด ๊ตฌํ˜„
    • ์˜ˆ์ƒ ๊ฐ€๊ฒฉ์„ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ณด์—ฌ์ค„์ง€ ๊ณ ๋ฏผํ•ด๋ณด๊ธฐ
  • ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ํ™œ์šฉํ•˜์—ฌ ๋งค์ผ ์ธก์ •ํ•œ ๋ฌด ๊ฐ€๊ฒฉ์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

[๋Œ€์‹œ๋ณด๋“œ] ์„ฌ ๊ธฐ๋ณธ ์„ค์ • ์ˆ˜์ •

๐Ÿ—ฃ ์„ค๋ช…

  • ์„ฌ ์„ค์ •์— ์„ฌ์˜ ํ‰๊ฐ€๋„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์„ฌ ํ‰๊ฐ€๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€
  • ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์„ฌ ํ‰ํŒ์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„

[๋Œ€์‹œ๋ณด๋“œ] ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ์žก์„ ์ˆ˜ ์žˆ๋Š” ์ƒ๋ฌผ์„ ๋ณด์—ฌ์ฃผ๋Š” ์„น์…˜ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ๏ฟฝํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ์žก์„ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๊ณ ๊ธฐ, ํ•ด์‚ฐ๋ฌผ, ๊ณค์ถฉ์˜ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ฃผ๋Š” ์„น์…˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ์žก์„ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๊ณ ๊ธฐ, ๊ณค์ถฉ, ํ•ด์‚ฐ๋ฌผ์˜ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„น์…˜๋ทฐ ๊ตฌํ˜„
  • ์„น์…˜๋ทฐ์— ์žˆ๋Š” ๊ฐ ์ƒ๋ฌผ์˜ ์•„์ด์ฝ˜์„ ํ„ฐ์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ์‹œ๊ฐ„๋Œ€์— ์žก์„ ์ˆ˜ ์žˆ๋Š” ์ƒ๋ฌผ์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ตฌํ˜„

[ํ”ผ๋“œ๋ฐฑ/๋Œ€์‹œ๋ณด๋“œ] ์„ฌ ์ •๋ณด ์„น์…˜์„ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ, ๋ฐ”๋กœ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

Pasted Graphic 3

  • ์„ฌ ์ •๋ณด ์„น์…˜์„ ํ„ฐ์น˜ํ•˜๋ฉด ๋ฐ”๋กœ ์•ฑ ๊ธฐ๋ณธ ์„ค์ • ํ™”๋ฉด์„ ๋ชจ๋‹ฌ๋กœ ๋„์›Œ์ฃผ๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์„ฌ ์ •๋ณด ์„น์…˜ ๋ทฐ์— Tap Gesture ๋“ฑ๋ก
  • ํ„ฐ์น˜์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌํ•˜์—ฌ ์•ฑ ๊ธฐ๋ณธ ์„ค์ •ํ™”๋ฉด ๋„์›Œ์ฃผ๋„๋ก ๊ตฌํ˜„

[๋””์ž์ธ] ์•ฑ ๋””์ž์ธ ๋ณ€๊ฒฝ ๋ฐ ๋‹คํฌ๋ชจ๋“œ ๋Œ€์‘

๐Ÿ—ฃ ์„ค๋ช…

  • ์ „์ฒด์ ์ธ ์•ฑ ๋””์ž์ธ์„ ํŽธ์ง‘ํ•˜๊ณ  ๋‹คํฌ๋ชจ๋“œ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋‹คํฌ๋ชจ๋“œ ์‹œ ์–ด๋‘์šด ํ…Œ๋งˆ๋กœ ๋ฐ”๋€Œ๋„๋ก ์ˆ˜์ •
  • ์•ฑ ๋””์ž์ธ ์ˆ˜์ •

[์Œ์•…] ํƒญ๋ฐ”๋ฅผ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ์˜ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ๋ชจ๋“œ ๋ณ€ํ™”

๐Ÿ—ฃ ์„ค๋ช…

  • ํƒญ๋ฐ”๋ฅผ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒํƒœ๋ฅผ ์žฌ์กฐ์ • ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด์˜ ๋ชจ๋“œ๊ฐ€ list, large ๊ฒฝ์šฐ์ผ ๋•Œ,
    • ํƒญ๋ฐ”๋ฅผ ํ„ฐ์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ small ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝ๋˜๋„๋ก ํ•˜๊ธฐ

[๋งˆ์„์ฃผ๋ฏผ ์ƒ์„ธํ™”๋ฉด] View ๊ตฌ์„ฑ ๋ฐ ๋ฐ”์ธ๋”ฉ

๐Ÿ—ฃ ์„ค๋ช…

  • ์ฃผ๋ฏผ์„ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ ์ƒ์„ธํ•˜๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•ด์ค„ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • VillagerDetail์„ ํ‘œํ˜„ํ•  Section์„ ๊ตฌ์„ฑ ๋ฐ ViewController ๊ตฌ์„ฑ
  • ViewModel, Coordinator๋ฅผ ์ƒ์„ฑ
  • ๋ทฐ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ
  • ๋Œ€์‹œ๋ณด๋“œ ํ™”๋ฉด์—์„œ ์ฃผ๋ฏผ์„ ๊ธธ๊ฒŒ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ ๋””ํ…Œ์ผ ํ™”๋ฉด์„ ๋ชจ๋‹ฌ๋กœ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„

[ํ”ผ๋“œ๋ฐฑ/์•„์ดํ…œ] ์š”๋ฆฌ, ๊ฝƒ์„ ๋”ฐ๋กœ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ถ„๋ฆฌ

๐Ÿ—ฃ ์„ค๋ช…

Pasted Graphic 4

  • ์š”๋ฆฌ์™€ ๊ฝƒ์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์žกํ™”์—์„œ ์š”๋ฆฌ๋ฅผ ํ•„ํ„ฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„
  • ๋ ˆ์‹œํ”ผ์—์„œ ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ๋งŒ ํ•„ํ„ฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„
  • ๊ธฐํƒ€ ์•„์ดํ…œ์—์„œ ๊ฝƒ์„ ํ•„ํ„ฐ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„

[๊ณตํ†ต] CoreData ์Šคํ† ๋ฆฌ์ง€ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์ด์ „์— ๋งŒ๋“  Entity๋ฅผ ํ™œ์šฉํ•˜์—ฌ CoreDataStorage๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • CoreDataStorage ํƒ€์ž… ์ƒ์„ฑ
  • CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

[๊ณตํ†ต] Github Action์„ ํ™œ์šฉํ•˜์—ฌ xcode Build & test ์ž๋™ํ™” ์„ค์ •

๐Ÿ—ฃ ์„ค๋ช…

  • github action์— ์ƒˆ๋กœ์šด workflow๋ฅผ ์„ค์ •ํ•˜์—ฌ Xcode ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ํ™”ํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • github Actions์— ์ƒˆ๋กœ์šด workflow ์ถ”๊ฐ€
  • ๋ฌด์กฐ๊ฑด ํ†ต๊ณผํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ธํŒ… ํ›„ bulid & test๋ฅผ ์‹คํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

[ํ”ผ๋“œ๋ฐฑ/์นดํƒˆ๋กœ๊ทธ/๋งˆ์„์ฃผ๋ฏผ] EmptyView ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์นดํƒˆ๋กœ๊ทธ์˜ ๋ฏธํš๋“, ํš๋“ ํƒญ, ๋งˆ์„์ฃผ๋ฏผ์˜ ์„ ํ˜ธ์ฃผ๋ฏผ, ์„ฌ์ฃผ๋ฏผ ํƒญ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด, ๋น„์–ด์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๋Š” EmptyView๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • EmptyView๋ฅผ ๊ตฌํ˜„
  • ํ•„ํ„ฐ ์‹œ ์•„์ดํ…œ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด EmptyView๋ฅผ ๋ณด์—ฌ์ฃผ๋„๋ก ๊ฐœ์„ 

[ํ…Œ์ŠคํŠธ] ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

๐Ÿ—ฃ ์„ค๋ช…

  • ๋ชจ๋ธ, ๋ทฐ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ(MusicPlayerManager, Items... )์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ๊ฐ ๋ทฐ๋ชจ๋ธ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ

[ํ™ˆ ํ™”๋ฉด] Dashboard ํ™”๋ฉด ๊ตฌ์„ฑ

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ฑ์˜ ๋ฉ”์ธ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋Œ€์‹œ๋ณด๋“œ์— ์„น์…˜๋“ค์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ์ปค์Šคํ…€ SectionView๋ฅผ ๊ตฌํ˜„
    • ์‚ฌ์šฉ์ž ์ •๋ณด
      • preferences ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜์—ฌ ์—ฐ๋™ํ•˜๋„๋ก ๊ตฌํ˜„
    • ์˜ค๋Š˜์˜ ํ• ์ผ
      • ์ถ”๊ฐ€, ๋ฆฌ์…‹ ๋ฒ„ํŠผ ๊ตฌํ˜„
    • ๋‚ด ์„ฌ ์ฃผ๋ฏผ
    • ์นดํƒˆ๋กœ๊ทธ ๋‹ฌ์„ฑ๋„
    • ์ด๋ฒคํŠธ
  • preferences์„ ์„ค์ •ํ•˜๋Š” ๋ฒ„ํŠผ์„ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์— ์ถ”๊ฐ€
  • About์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒ„ํŠผ์„ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์— ์ถ”๊ฐ€
  • ๋„ค๋น„๊ฒŒ์ด์…˜ ํƒ€์ดํ‹€์„ ์˜ค๋Š˜์˜ ๋‚ ์งœ๋กœ ํ‘œ์‹œํ•˜๋„๋ก ๊ตฌ์„ฑ
  • ํƒญ๋ฐ” ์ƒ์„ฑ

[ํ”ผ๋“œ๋ฐฑ/์•„์ดํ…œ] ๋„ˆ๊ตด์นดํƒˆ ์•„์ดํ…œ/๋น„๋งคํ’ˆ ๊ตฌ๋ถ„์ง“๋Š” ํ•„ํ„ฐ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ์นดํƒˆ์•„์ดํ…œ๊ณผ ๋น„๋งคํ’ˆ์„ ๊ตฌ๋ถ„์ง€์–ด ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•„ํ„ฐ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ...

[ํ–…ํ‹ฑ] ํ”ผ๋“œ๋ฐฑ ์„ค์ •

๐Ÿ—ฃ ์„ค๋ช…

  • ํ–…ํ‹ฑ์„ ์‹คํ–‰ํ•˜์—ฌ ํ”ผ๋“œ๋ฐฑ ์ค„ ๋ถ€๋ถ„์„ ๊ณจ๋ผ ์ ์ ˆํ•œ ํ–…ํ‹ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ˆ˜์ง‘ ์•„์ดํ…œ ์ฒดํฌ, ๋งˆ์„ ์ฃผ๋ฏผ ํ‘œ์‹œ, ์„ ํ˜ธ ์ฃผ๋ฏผ ํ‘œ์‹œ์— ํ–…ํ‹ฑ์„ ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
  • ๋Œ€์‹œ๋ณด๋“œ ๋‚ด์—์„œ ๊ธธ๊ฒŒ ํ„ฐ์น˜ํ•˜์—ฌ ๋งˆ์„ ์ฃผ๋ฏผ์˜ ์ƒ์„ธ์ •๋ณด ์ฐฝ์„ ๋ชจ๋‹ฌ๋กœ ํ‘œ์‹œํ–ˆ์„ ๋•Œ ํ–…ํ‹ฑ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
  • ์˜ค๋Š˜์˜ ํ• ์ผ์„ ํ„ฐ์น˜ํ•ด์„œ ์™„๋ฃŒ ์œ ๋ฌด, ๋งˆ์„ ์ฃผ๋ฏผ์„ ํ„ฐ์น˜ํ•˜์—ฌ ์ฒดํฌ(์„ ๋ฌผ, ๋Œ€ํ™”)์œ ๋ฌด๋ฅผ ๋ณ€๊ฒฝํ•ด์ค„ ๋•Œ ํ–…ํ‹ฑ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
  • ํ–…ํ‹ฑ์„ ์„ค์ •์ฐฝ์—์„œ ๋„๊ณ  ์ผค ์ˆ˜ ์žˆ๋„๋ก ์˜ต์…˜ ์ถ”๊ฐ€

[๊ณตํ†ต] ๋„คํŠธ์›Œํฌ ํƒ€์ž… ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • API์™€ ์†Œํ†ตํ•˜๋Š” ๋„คํŠธ์›Œํ‚น ํƒ€์ž…์„ ๊ตฌํ˜„

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋„คํŠธ์›Œํ‚น ํƒ€์ž… ๊ตฌํ˜„
  • ์š”์ฒญ์‹œ ํ•„์š”ํ•œ API-Key, header, URL์„ ๋”ฐ๋กœ ์ •์˜
  • DTO ์ •์˜
    • nookipedia
    • ac-turnip
    • github repository

[์•„ํ‚คํ…์ฒ˜] ReactorKit ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌ์กฐ ๊ฐœ์„ 

๐Ÿ—ฃ ์„ค๋ช…

  • ReactorKit ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ReactorKit ํ”„๋ ˆ์ž„์›Œํฌ ์„ค์น˜ํ•˜๊ธฐ
  • ๋ทฐ๋ชจ๋ธ์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ์™€ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ๋ฆฌํŒฉํ† ๋ง
    • ๋Œ€์‹œ๋ณด๋“œ
    • ์นดํƒˆ๋กœ๊ทธ
    • ๋งˆ์„์ฃผ๋ฏผ
    • ์ˆ˜์ง‘ํ’ˆ
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์•ฝํ•œ ์ฐธ์กฐ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ

[๋Œ€์‹œ๋ณด๋“œ] AboutViewController ๋ฆฌํŒฉํ† ๋ง

๐Ÿ—ฃ ์„ค๋ช…

  • ๋ฏธ์™„์„ฑ๋œ AboutViewController ๊ตฌ์กฐ๋ฅผ ์™„์„ฑ ์‹œํ‚ต๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ทฐ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ถ„๋ฆฌํ•˜๊ธฐ
  • ์ž„์‹œ๋กœ ์ƒ์„ฑํ•ด๋‘์—ˆ๋˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”

[๊ณตํ†ต] README ์ž‘์„ฑํ•˜๊ธฐ

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ฑ ์†Œ๊ฐœ ๋ฐ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์†Œ๊ฐœํ•˜๋Š” README๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„
  • ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
  • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ์ฃผ์š” ๊ธฐ๋Šฅ ์†Œ๊ฐœ
  • ์ ์šฉํ•œ ์•„ํ‚คํ…์ฒ˜
  • ๊ธฐ์ˆ ์  ๋„์ „
  • WIKI ์ž‘์„ฑ

[์ง€์—ญํ™”] ์–ธ์–ด ์„ค์ • ๋ฐ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ

๐Ÿ—ฃ ์„ค๋ช…

  • ์–ธ์–ด ์„ค์ • ๋ฐ ์•ฑ์˜ ๋ฌธ์ž์—ด์„ ์ •๋ฆฌํ•˜์—ฌ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ง€์—ญํ™” ์ฒ˜๋ฆฌ
  • ์•ฑ ์–ธ์–ด ์„ค์ •
  • ์•ฑ ์ด๋ฆ„ ์„ค์ •

[๋Œ€์‹œ๋ณด๋“œ] ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ์„น์…˜ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ž์„œ ๊ตฌํ˜„ํ•œ ๋ฎค์งํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ์— ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ์„น์…˜์„ ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฎค์ง ํ”Œ๋ ˆ์ด์–ด ์„น์…˜ ๊ตฌํ˜„
  • ๋ทฐ ๋ฐ”์ธ๋”ฉ
  • 24์‹œ๊ฐ„ BGM ์Œ์•…์„ ๋“ค์„ ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋Šฅ ์ถ”๊ฐ€

[๊ณตํ†ต] ๋ทฐ์—์„œ ์‚ฌ์šฉํ•  ๋ชจ๋ธํƒ€์ž…๋“ค ์ •์˜

๐Ÿ—ฃ ์„ค๋ช…

  • DTO๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•„์š”ํ•œ ์†์„ฑ๋งŒ ๊ณจ๋ผ์™€์„œ ๋ž˜ํ•‘ํ•  ํƒ€์ž…๋“ค์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ํƒ€์ž…๋“ค์„ ๊ฐ€์ง€๊ณ  ์‚ฌ์šฉ์ž ์ปฌ๋ ‰์…˜ ํƒ€์ž…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํƒ€์ž…์€ ์ฝ”์–ด๋ฐ์ดํ„ฐ๋กœ ์˜๊ตฌ์ €์žฅ์†Œ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ ์•ฑ์„ ๊ป๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ๋„ ์‚ฌ์šฉ์ž ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ํ™ˆํ™”๋ฉด์„ ์ž๋™ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ฐ ์•„์ดํ…œ๋“ค ๋ชจ๋ธ ์ƒ์„ฑ
  • DTO์—์„œ ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ์‚ฌ์šฉ์ž ์ปฌ๋ ‰์…˜ ํƒ€์ž… ์ƒ์„ฑ

[๊ณตํ†ต] ์Œ์•… ์•„์ดํ…œ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ

๐Ÿ—ฃ ์„ค๋ช…

  • ํ˜„์žฌ API์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ์Œ์•… ์•„์ดํ…œ์ด ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์œผ๋กœ, ์ตœ์‹  ๋ฒ„์ „์˜ ์Œ์•… ์•„์ดํ…œ์„ ๋ณด์—ฌ์ฃผ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์Œ์•… ์•„์ดํ…œ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ

[๊ณตํ†ต] ์บ์‹ฑ ์ฒ˜๋ฆฌ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฐ›์€ ์ด๋ฏธ์ง€์™€ JSON์„ ์บ์‹ฑ ์ฒ˜๋ฆฌํ•œ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ด๋ฏธ์ง€ ์บ์‹ฑ
  • JSON ์บ์‹ฑ

[ํ”ผ๋“œ๋ฐฑ] ๊ทธ๋ฆผ๊ณผ ์ด๋ฆ„์ด ๊ฐ„ํ—์ ์œผ๋กœ ๋งž์ง€ ์•Š๊ฒŒ ๋‚˜์˜ค๋Š” ํ˜„์ƒ

๐Ÿ—ฃ ์„ค๋ช…

image

  • ๋„ค์ด๋ฒ„ ์นดํŽ˜ WTAC์—์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ
  • ์ด์ „์— ๋‹ค์šด๋กœ๋“œ ๋˜์—ˆ๋˜ ์ด๋ฏธ์ง€๊ฐ€ ์ทจ์†Œ๋˜์ง€ ์•Š๊ณ  ๋‹ค์šด๋กœ๋“œ ๋˜์–ด ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฆ„๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋งคํ•‘๋˜๋Š” ํ˜„์ƒ.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์…€์„ ์žฌ์‚ฌ์šฉํ•  ๋•Œ ์ง„ํ–‰์ค‘์ธ ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ทจ์†Œํ•˜๋„๋ก ๊ฐœ์„ 

[๋งˆ์„์ฃผ๋ฏผ ๋ชฉ๋ก ํ™”๋ฉด] View ๊ตฌ์„ฑ

๐Ÿ—ฃ ์„ค๋ช…

  • ๋งˆ์„ ์ฃผ๋ฏผ ๋ชฉ๋ก์„ ๋‚˜ํƒ€๋‚ผ CollectionView๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ „์ฒด์ ์ธ View๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • CollectionView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋งˆ์„ ์ฃผ๋ฏผ ๋ชฉ๋ก ํ™”๋ฉด์„ ๊ตฌํ˜„
  • ํ•˜ํŠธ, ์ง‘ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„
  • ๊ฒ€์ƒ‰ ํ•„ํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„ฑ๊ฒฉ, ํƒ€์ž…, ์„ฑ๋ณ„, ์ข…์กฑ๋ณ„๋กœ๋„ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • SearchBar์— ScopeBar๋ฅผ ๋งŒ๋“ค์–ด์„œ Like, House ์ฃผ๋ฏผ๋“ค์„ ๊ตฌ๋ถ„์ง“๋„๋ก ๊ตฌํ˜„
  • ViewModel ์ƒ์„ฑ ํ›„ ๋ทฐ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ

[๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜] ๋ˆ„์ˆ˜ ๊ด€๋ จ ๊ฐœ์„  ์ž‘์—…

๐Ÿ—ฃ ์„ค๋ช…

  • ViewController๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ™”๋ฉด์„ ๋„์šฐ๋Š” ๊ณผ์ • ์†์—์„œ ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ณณ์ด ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐœ์ƒ ๊ตฌ๊ฐ„ ์ฒดํฌํ•˜๊ธฐ
  • ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ตฌ๊ฐ„์„ ๊ฐœ์„ ํ•˜๊ธฐ

๊ณ ๋ฏผํ•œ ์  / ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋˜ ์™€์ค‘์— Coordinator ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ํ™”๋ฉด ์ œ์–ด๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๊ฐ„ํ˜น dismiss, popViewController๋ฅผ ์‹œ๋„ํ•˜๋ฉด ํ•ด๋‹น ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ๋ผ์ ธ์•ผ ํ•˜๋Š”๋ฐ, ์ฃฝ์ง€์•Š๊ณ  ์‚ด์•„๋‚จ์•„์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฑธ ๋ฐœ๊ฒฌํ•ด๋ฒ„๋ ธ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋‹ค.

  • ์ฒซ๋ฒˆ์งธ ์‹œ๋„
    • ๋ทฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ๋•Œ ViewController๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ViewModel์„ nil์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด๋ณด์•˜๋‹ค.
    • ํ•˜์ง€๋งŒ ํšจ๊ณผ๋Š” ์—†์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
  • ๋‘๋ฒˆ์งธ ์‹œ๋„
    • ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๋˜ ์™€์ค‘์—, ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ stackoverflow ์งˆ๋ฌธ ๊ธ€์„ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค.
    • ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋‹ซ๊ฑฐ๋‚˜, ํŒํ•  ๋•Œ ๊ฐ•๋ ฅํ•œ ์ฐธ์กฐ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋งŒ ํ• ๋‹น์ด ํ•ด์ œ๋œ๋‹ค๋Š” ๋‹ต๋ณ€์ด ์žˆ์—ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ•˜์—ฌ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์— ๊ฐ•ํ•œ ์ฐธ์กฐ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‚˜ ์ฒดํฌ๋ฅผ ํ•ด๋ณด์•˜๋‹ค.

์œ„์—์„œ ๋งํ–ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋˜ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ˆ˜๊ฐ€ ์ ์ง€ ์•Š์•˜๋‹ค. ์‚ดํŽด๋ณด๋‹ˆ ๋Œ€๋ถ€๋ถ„ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์—์„œ ์˜ต์ €๋ฒ„๋ธ”์„ ๊ตฌ๋…ํ•˜๋Š” ์‹œ์ ์— self๋ฅผ ์•ฝํ•œ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ฐ•ํ•œ ์ฐธ์กฐ๋กœ ์‚ฌ์šฉํ•˜๋˜ ๋ถ€๋ถ„ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋˜ ๋ฌธ์ œ์˜€๋‹ค.

  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    • ๋ทฐ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์—์„œ, ํ˜น์€ ViewController ๋‚ด๋ถ€์—์„œ self๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๊ฐ„์„ ๋ชจ๋‘ ์•ฝํ•œ ์ฐธ์กฐ๋ฅผ ํ•˜๋„๋ก ๋ฐ”๊พธ์–ด์ฃผ์—ˆ๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  viewModel์„ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์†Œ์œ ํ–ˆ๋˜ ๋ฐฉํ–ฅ์„ bind(to:) ๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ทฐ๋ชจ๋ธ์„ ์ „๋‹ฌ๋ฐ›์•„ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋„๋ก ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์—ˆ๋‹ค.


[UX] ์•ฑ์˜ ์ „์ฒด์ ์ธ UX ๊ฐœ์„ 

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ฑ์˜ ์ „์ฒด์ ์ธ UX๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ธฐ๋ณธ ์„ค์ •, ํ• ์ผ ํŽธ์ง‘์„ ์•„๋ž˜๋กœ ์Šค์™€์ดํ”„ ํ–ˆ์„ ๋•Œ์—๋„ ๋‹ซํž ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ 
  • ๋ฐ˜๊ตฌ๋‚˜ ๊ณผ์ผ ์„ ํƒ ์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ์ฒดํฌํ‘œ์‹œ์— ๊ณต๋ฐฑ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ์ •๋ ฌ์ด๋ž‘ ํ•„ํ„ฐ ๊ธฐ๋Šฅ์ด ํ•ฉ์ณ์ง„ ๋ฉ”๋‰ด๋ฅผ ๋ถ„๋ฆฌํ•ด๋ณด๊ธฐ
  • ํ• ์ผ์„ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฒดํฌ ์•„์ด์ฝ˜์„ ๋‹ค๋ฅธ ์ €์žฅ ์•„์ด์ฝ˜์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐ
  • ์•„์ดํ…œ ๋ฆฌ์ŠคํŠธ์—์„œ ํš๋“ํ•˜์ง€ ๋ชปํ•œ ์•„์ดํ…œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ์•„์ดํ…œ ์ƒ์„ธ์ •๋ณด ๋ถ„๋ฆฌํ•˜๊ธฐ
  • ์•„์ดํ…œ ์…€์˜ UI๋ฅผ ์ˆ˜์ •
    • ๊ฐ€๊ฒฉ๋ทฐ, ์ถœํ˜„๊ธฐ๊ฐ„ ๋ทฐ ์•„๋ž˜์ชฝ ์—ฌ๋ฐฑ ์ถ”๊ฐ€

[์‚ฌ์šฉ์ž ์ปฌ๋ ‰์…˜ ํ™”๋ฉด] ๋ชฉ๋ก๋ณด๊ธฐ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ชฉ๋กํ™”๋ฉด ๊ตฌํ˜„
  • ๋ชฉ๋กํ™”๋ฉด์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์•„์ดํ…œ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๋„๋ก ๊ตฌํ˜„
  • ์•„์ดํ…œ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ์•ž์„œ ๊ตฌํ˜„ํ–ˆ๋˜ ์•„์ดํ…œ ์ƒ์„ธ๋ณด๊ธฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋„๋ก ๊ตฌํ˜„
  • ๋Œ€์‹œ๋ณด๋“œ์— ์กด์žฌํ•˜๋Š” ์ˆ˜์ง‘์ƒํ™ฉ์„ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ CollectionProgressVC๋ฅผ ๋„์šฐ๋„๋ก ๊ตฌํ˜„

[์นดํƒˆ๋กœ๊ทธ] ScopeBar๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•„์ดํ…œ ๋ถ„๋ฆฌ ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ 

๐Ÿ—ฃ ์„ค๋ช…

  • ScopeBar๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ, ์ˆ˜์ง‘ํ•˜์ง€ ์•Š์€ ์•„์ดํ…œ์„ ๋‚˜๋ˆ„๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • SearchController์— ScopeBar๋ฅผ ์ถ”๊ฐ€
  • ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ, ์ˆ˜์ง‘ํ•˜์ง€ ๋ชปํ•œ ์•„์ดํ…œ์„ ๋‚˜๋ˆ ์„œ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ
  • ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ์˜ ๋น„๋ก€๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ์•ฑ์˜ ํ„ฐ์น˜ ๋ฐ˜์‘ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๋Š” ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ•˜๊ธฐ
  • ์ˆ˜์ง‘ํ•จ์—์„œ ์•„์ดํ…œ์„ ์ฒดํฌ ํ•ด์ œํ•˜์—ฌ ์•„์ดํ…œ์„ ๋ชจ๋‘ ์—†์• ๋Š” ๊ฒฝ์šฐ, ์ž๋™์œผ๋กœ popVC๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„

๊ณ ๋ฏผํ•œ ์  / ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ScopeBar๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ, ์ˆ˜์ง‘ํ•˜์ง€ ๋ชปํ•œ ์•„์ดํ…œ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์ด์ „์—, ํ•„ํ„ฐ๋ง์„ ๊ฑธ์–ด๋‘” ์ƒํƒœ์—์„œ ์•„์ดํ…œ์„ ์ˆ˜๋ฐฑ๊ฐœ ์ฒดํฌํ•ด๋ณด์•˜๋Š”๋ฐ, ์ˆ˜์ง‘ํ•œ ์•„์ดํ…œ์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ์ฒดํฌ๋ฒ„ํŠผ์„ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ, ์•ฑ์˜ ๋ฐ˜์‘ ์†๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•ด๋ฒ„๋ ธ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์›์ธ์„ ๋ถ„์„ํ•ด๋ณด์•˜๋‹ค.

  • ๋จผ์ € Date ํƒ€์ž…์„ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์˜์‹ฌ๋˜๋Š” ๊ตฌ๊ฐ„์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•ด๋ณด์•˜๋‹ค.

183871212768555

Pasted Graphic

  • ๊ทธ๋žฌ๋”๋‹ˆ ์œ„์™€ ๊ฐ™์ด ํš๋“ ์•„์ดํ…œ์˜ ์ˆซ์ž๊ฐ€ ๋งŽ์•„์งˆ ์ˆ˜๋ก ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋‹น์‹œ ํ•„ํ„ฐ๋ง ํ•˜๋˜ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋Š”๋ฐ...

Pasted Graphic 2

  • ์‚ดํŽด๋ณด๋‹ˆ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋‹ค๋ฆ„์ด ์—†๋Š” ํ•„ํ„ฐ๋ง ์ฝ”๋“œ์˜€๋‹ค. (์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n)์ธ ๋“ฏ...) ๊ทธ๋ž˜์„œ ์ด ๋ถ€๋ถ„์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ๊ธ€๋ง์„ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.
  • ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ Set๋ฅผ ํ™œ์šฉํ•ด๋ณด๋ผ๋Š” ๋‹ต๋ณ€์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ˆ˜์ •์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•ด BitSet์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ, ๋‚˜๋Š” ํ•„ํ„ฐ๋ง๋งŒ ํ•˜๊ณ  ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ• ๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์€ ํŒจ์Šคํ–ˆ๋‹ค.

Pasted Graphic 4

  • ์œ„์™€ ๊ฐ™์ด ๋Œ€์นญ์ฐจ ์ง‘ํ•ฉ์—ฐ์‚ฐ์„ ํ™œ์šฉํ•ด์„œ ์ „์ฒด ์•„์ดํ…œ์—์„œ ์ˆ˜์ง‘์•„์ดํ…œ์ด๋ž‘ ๊ฒน์น˜์ง€ ์•Š๋Š” ์•„์ดํ…œ์„ ํ•„ํ„ฐ๋ง ํ•˜์˜€๊ณ  ์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํš๋“ ์•„์ดํ…œ์ด ์•„๊นŒ๋ณด๋‹ค ๋” ๋งŽ์ง€๋งŒ, ์ผ์ •ํ•œ ์‹คํ–‰์‹œ๊ฐ„์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค. ์ด์ „์—๋Š” 0.3์ดˆ๊นŒ์ง€ ๋Š˜์–ด๋‚ฌ์—ˆ๋‹ค.

0 029374003410339355

์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ•ญ์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด์—์„œ๋งŒ ์‹ ๊ฒฝ์จ์˜ค๋‹ค๊ฐ€... ์‹ค์ œ ๊ฐœ๋ฐœ์„ ํ• ๋•Œ ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅ๋œจ๋ฆฌ๋‹ˆ, ์ƒˆ์‚ผ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ์ค‘์š”ํ•œ ์š”์†Œ์ž„์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค.

[์•„์ดํ…œ] ์˜ท, ์žฅ์‹ ๊ตฌ์— ๋Œ€ํ•œ ์•„์ดํ…œ์„ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ๊ฒŒ์ž„ ์•„์ดํ…œ ์ค‘ ์žฅ๋น„ ์•„์ดํ…œ์— ํ•ด๋‹นํ•˜๋Š” ์•„์ดํ…œ๋“ค์„ ์นดํƒˆ๋กœ๊ทธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์˜ท, ๋ชจ์ž, ์‹ ๋ฐœ ๋“ฑ... ํ•ด๋‹น ์•„์ดํ…œ์— ๋Œ€ํ•œ DTO, Request ๊ตฌํ˜„
  • ํ•ด๋‹น ์•„์ดํ…œ์— ๋Œ€ํ•œ ํŽธ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ € ์ถ”๊ฐ€
    • ๊ทธ์— ๋”ฐ๋ฅธ ItemEntity ํƒ€์ž… ๋ฆฌํŒฉํ† ๋ง

[๊ณตํ†ต] ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ์— ๋”ฐ๋ผ ์š”์ฒญ์„ ์žฌ์‹œ๋„ ํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๋˜์–ด์žˆ์ง€ ์•Š์•„์„œ, ์•„์ดํ…œ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์ด ์‹คํŒจํ–ˆ์„ ๊ฒฝ์šฐ, ๋„คํŠธ์›Œํฌ๋ฅผ ์žฌ์‹œ๋„ํ•˜์—ฌ ์—ฐ๊ฒฐ์ด ์ •์ƒ์ ์œผ๋กœ ๋œ๋‹ค๋ฉด ๋‹ค์‹œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ๊ฐ์‹œํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ ๊ฐ์ฒด ๊ตฌํ˜„
  • ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์•Œ๋ฆผ๋ฐ›์•„ ์•„์ดํ…œ ์š”์ฒญ์„ ์žฌ์‹œ๋„ ํ•˜๋Š” ๋กœ์ง ๊ตฌํ˜„

[ํ”ผ๋“œ๋ฐฑ] ๋„๊ตฌ, ํญ์ฃฝ, ๋ถ€์ฑ„ ๊ฐ™์€ ์•„์ดํ…œ์„ ๋”ฐ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

image

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
  • ์™„๋ฃŒํ•œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

[ํ”ผ๋“œ๋ฐฑ/์นดํƒˆ๋กœ๊ทธ] ์ „์ฒด์„ ํƒ, ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์นดํƒˆ๋กœ๊ทธ๋ฅผ ๋ชจ๋‘ ์™„์„ฑํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ „์ฒด์„ ํƒ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ์„ฌ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์นดํƒˆ๋กœ๊ทธ ๋‚ด๋ถ€ ์•„์ดํ…œ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ์ „์ฒด์„ ํƒ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€
  • ์นดํƒˆ๋กœ๊ทธ ๋‚ด๋ถ€ ์•„์ดํ…œ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ์„ ํƒ ์ดˆ๊ธฐํ™” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€
  • ์•ฑ ๊ธฐ๋ณธ ์„ค์ •์—์„œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€

[์•„์ดํ…œ] ์šธํƒ€๋ฆฌ๋ฅผ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ์šธํƒ€๋ฆฌ๋ฅผ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์šธํƒ€๋ฆฌ์— ๋Œ€ํ•œ ์š”์ฒญ ํƒ€์ž… ๊ตฌํ˜„
  • ์šธํƒ€๋ฆฌ์— ๋Œ€ํ•œ DTO ํƒ€์ž… ๊ตฌํ˜„
  • ์šธํƒ€๋ฆฌ์„ ๋ถˆ๋Ÿฌ์™€์„œ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ •์ƒ์ ์œผ๋กœ ๋ณด์—ฌ์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…

[ํ”ผ๋“œ๋ฐฑ/์•„์ดํ…œ] ๋ฆฌ์•ก์…˜์„ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

image

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ฆฌ์•ก์…˜์— ๋Œ€ํ•œ ์š”์ฒญ ํƒ€์ž… ๊ตฌํ˜„
  • ๋ฆฌ์•ก์…˜์— ๋Œ€ํ•œ DTO ํƒ€์ž… ๊ตฌํ˜„
  • ๋ฆฌ์•ก์…˜์„ ๋ถˆ๋Ÿฌ์™€์„œ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ •์ƒ์ ์œผ๋กœ ๋ณด์—ฌ์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…

[์นดํƒˆ๋กœ๊ทธ ํ™”๋ฉด] ๋ชฉ๋กํ™”๋ฉด, ์ƒ์„ธํ™”๋ฉด ๊ตฌ์„ฑ

๐Ÿ—ฃ ์„ค๋ช…

  • ๋ฌผ๊ณ ๊ธฐ, ๊ณค์ถฉ, ํ•ด์‚ฐ๋ฌผ, ํ™”์„, ๋ฏธ์ˆ ํ’ˆ ๋ชฉ๋ก์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ…Œ์ด๋ธ”๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ฐ ์นดํƒˆ๋กœ๊ทธ์— ๋งž๋Š” ์•„์ด์ฝ˜ ๋ฐ ํƒ€์ดํ‹€์„ ํ‘œ์‹œํ•˜๋„๋ก ํ•˜๊ธฐ
  • ์นดํƒˆ๋กœ๊ทธ ๊ฐฏ์ˆ˜ ํ‘œ์‹œํ•˜๊ธฐ
  • ViewModel ์ƒ์„ฑ ๋ฐ ๋ฐ”์ธ๋”ฉ ์ฒ˜๋ฆฌ
  • ์•„์ดํ…œ์˜ ์ƒ์„ธ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„น์…˜ ์ถ”๊ฐ€ ๋ฐ ๋ฐ”์ธ๋”ฉ

[๊ฐ€๊ตฌ] ๊ฐ€๊ตฌ ์•„์ดํ…œ์„ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

  • ํ˜„์žฌ๊นŒ์ง€ ๋“ฑ๋ก๋œ ์•„์ดํ…œ ์™ธ์— ์นดํƒˆ๋กœ๊ทธ ์•„์ดํ…œ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ๋” ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ฐ€๊ตฌ Resopnse, Request, DTO ํƒ€์ž…๋“ค์„ ์ถ”๊ฐ€
  • ํ•ด๋‹น ํƒ€์ž…์— ๋งž๋Š” ๋””ํ…Œ์ผ ๋ทฐ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ตฌํ˜„
    • ๋ฐ”๋””, ํŒจํ„ด๋ณ„๋กœ ์ด๋ฏธ์ง€ ๋ณด์—ฌ์ฃผ๋„๋ก ๊ตฌ์„ฑ
    • ์ œ์ž‘ํ•ด์„œ ์–ป์–ด์ง€๋Š” ์•„์ดํ…œ์˜ ๊ฒฝ์šฐ ๋ ˆ์‹œํ”ผ ํ•จ๊ป˜ ๋ณด์—ฌ์ฃผ๊ธฐ
    • ์ˆ˜์ง‘๋ฐฉ๋ฒ•, ์ˆ˜์ง‘๋ฉ”๋ชจ, ์นดํƒˆ๋กœ๊ทธ ๊ตฌ๋งค ๊ฐ€๋Šฅ ์—ฌ๋ถ€, ๋ ˆ์‹œํ”ผ ํš๋“์ฒ˜
    • ํ•ดํ”ผํ™ˆ ์ •๋ณด (์ปจ์…‰, ํฌ์ธํŠธ, ํฌํ‚ค)
    • ์‹œ๋ฆฌ์ฆˆ ์•„์ดํ…œ, ํ˜น์€ ์„ธํŠธ ์•„์ดํ…œ์ด๋ผ๋ฉด ๊ด€๋ จ ์•„์ดํ…œ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ
    • ํ‚ค์›Œ๋“œ
  • ์ง€์—ญํ™” ์ฒ˜๋ฆฌ

[ํ™ˆ ํ™”๋ฉด] ViewModel ๊ตฌํ˜„

๐Ÿ—ฃ ์„ค๋ช…

  • ์•ž์„œ ๋งŒ๋“  View๋“ค์˜ ViewModel์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • Dashboard ๊ด€๋ จ ViewController, View๋“ค์˜ ViewModel์„ ๊ตฌํ˜„
  • RxSwift, RxCocoa๋กœ ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…

[ํ”ผ๋“œ๋ฐฑ/์•„์ดํ…œ] ์นดํƒˆ๋กœ๊ทธ์— ์ฃผ๋ฏผ ์‚ฌ์ง„ ์ถ”๊ฐ€

๐Ÿ—ฃ ์„ค๋ช…

image

  • ์ฃผ๋ฏผ๋“ค์—๊ฒŒ ์„ ๋ฌผ๋ฐ›์€ ์‚ฌ์ง„์„ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์นดํƒˆ๋กœ๊ทธ๋ž€์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ฃผ๋ฏผ ์‚ฌ์ง„์— ๋Œ€ํ•œ ์š”์ฒญ ํƒ€์ž… ๊ตฌํ˜„
  • ์ฃผ๋ฏผ ์‚ฌ์ง„์— ๋Œ€ํ•œ DTO ํƒ€์ž… ๊ตฌํ˜„
  • ์ฃผ๋ฏผ ์‚ฌ์ง„์„ ๋ถˆ๋Ÿฌ์™€์„œ ์นดํƒˆ๋กœ๊ทธ ๋ชฉ๋ก์— ์ •์ƒ์ ์œผ๋กœ ๋ณด์—ฌ์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌํŒฉํ† ๋ง ์ž‘์—…

[ํ”ผ๋“œ๋ฐฑ/๋ฒ„๊ทธ] SearchBar๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์›€์ง์ด๋Š” ํ˜„์ƒ

๐Ÿ—ฃ ์„ค๋ช…

Jul-26-2022 12-41-31

  • SearchBar์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•œ ํ›„ Navigation Push ์ดํ›„ Pop์„ ํ•  ๋•Œ, SearchBar๊ฐ€ ๋น„์ •์ƒ์ ์œผ๋กœ ์›€์ง์ด๋Š” ํ˜„์ƒ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ด์Šˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์›์ธ ๋ถ„์„
    • NavigationBar์˜ ์†์„ฑ ์ค‘ prefersLargeTitles์„ false๋กœ ์ฃผ๋ฉด ํ•ด๋‹น ํ˜„์ƒ ์‚ฌ๋ผ์ง.
    • searchController์˜ hidesNavigationBarDuringPresentation ์†์„ฑ์„ false๋กœ ํ• ๋‹นํ•ด์ฃผ์–ด๋„ ํ•ด๋‹น ํ˜„์ƒ ๋ฐœ์ƒ ์•ˆ๋จ.
    • ๋‚˜์˜ ์ถ”์ธก UIKit์˜ ๋ฒ„๊ทธ์ธ ๊ฒƒ ๊ฐ™๋‹ค...
  • ๋ฒ„๊ทธ ๊ฐœ์„ 
    • SearchBar๊ฐ€ ์žˆ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋Š” hidesNavigationBarDuringPresentation ์†์„ฑ์„ false๋กœ ํ• ๋‹นํ•˜๋„๋ก ์ˆ˜์ •

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.