Skip to content

SOPT Makers 1st App Team Sprint 2 : SOPT-Stamp

Notifications You must be signed in to change notification settings

lsj8706/SOPT-Stamp-iOS

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SOPT ๊ณต์‹ ์•ฑ

2022.09 ~ Now

๐Ÿ’ซ ์†ํŠธ ํ™œ๋™์„ ๋”์šฑ ์•Œ์ฐจ๊ณ  ์ฆ๊ฒ๊ฒŒ !

SOPT๋Š” IT์™€ ๋ฒค์ฒ˜ ์ฐฝ์—…์— ๋œป์ด ์žˆ๋Š” ๋Œ€ํ•™์ƒ๋“ค์ด ๋ชจ์ธ ๊ตญ๋‚ด ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ๋Œ€ํ•™์ƒ ์—ฐํ•ฉ IT ๋ฒค์ฒ˜ ์ฐฝ์—… ๋™์•„๋ฆฌ์ž…๋‹ˆ๋‹ค.

SOPT์—์„œ ํ™œ๋™ํ•˜๊ณ  ์žˆ๋Š” ํšŒ์›๋“ค๋„, SOPT์˜ ์—ด์ •์ด ๋˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค๋„ ๋ชจ๋‘ SOPT์— ๋Œ€ํ•ด์„œ ๋” ์•Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์—์š”.

แ„‹แ…ขแ†ธแ„‰แ…ณแ„แ…ฉแ„‹แ…ฅ แ„‹แ…ตแ„†แ…ตแ„Œแ…ต

์•ฑ์Šคํ† ์–ด์—์„œ ๋‹ค์šด ๋ฐ›๊ธฐ


๊ธฐ๋Šฅ ์†Œ๊ฐœ

์ถœ์„

  • SOPT ํ™œ๋™ ๊ธฐ์ˆ˜ ํšŒ์›๋“ค์„ ์œ„ํ•œ ์ถœ์„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์–ด์š”
  • ๋‚˜์˜ ์ถœ์„ ์ ์ˆ˜์™€ ์ถœ๊ฒฐ ํ˜„ํ™ฉ์„ ํ™•์ธํ•˜๊ณ , ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ์„์„ ์ธ์ฆํ•ด์š”

๊ณต์‹ ํ™ˆํŽ˜์ด์ง€

  • SOPT์˜ ์—ด์ •์ด ๋˜๊ณ  ์‹ถ์€ ๋ถ„๋“ค์€ โ€˜๋น„ํšŒ์›'์œผ๋กœ ๋กœ๊ทธ์ธํ•ด์„œ ๋‘˜๋Ÿฌ๋ณผ ์ˆ˜ ์žˆ์–ด์š”
  • ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์™€ ๋”๋ถˆ์–ด ํ™œ๋™ ํ›„๊ธฐ, ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ, FAQ๊นŒ์ง€ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”

ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ

  • SOPT ํšŒ์›๋“ค๋งŒ์„ ์œ„ํ•œ ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ์—๋„ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์š”
  • ํ™œ๋™ ๋ฉค๋ฒ„์™€ ํ”„๋กœ์ ํŠธ, ๊ทธ๋ฆฌ๊ณ  ๋ชจ์ž„ ์ƒ์„ฑ๊ณผ ์ฐธ์—ฌ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๊ฐ€๋Šฅํ•ด์š”

๋ฏธ์…˜๊ณผ ๋žญํ‚น

  • SOPT๋ฅผ ์ œ๋Œ€๋กœ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•œ โ€˜์†ํƒฌํ”„'๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์–ด์š”
  • ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฏธ์…˜์ด ์žˆ๋‹ค๋ฉด ์‚ฌ์ง„๊ณผ ๋ฉ”๋ชจ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ , ๋„์žฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”. ์™„๋ฃŒํ•œ ๋ฏธ์…˜์„ ๋ชจ์•„๋ณด๊ณ  ๋žญํ‚น์„ ๋น„๊ตํ•˜๋ฉฐ SOPT์—์„œ์˜ ์ถ”์–ต์„ ์Œ“์•„๊ฐ€๋ด์š”!

์†ํƒฌํ”„ ์ž์„ธํžˆ ๋ณด๊ธฐ

๐Ÿ“ฎ ๋ฏธ์…˜

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

๐Ÿ’ช ๋žญํ‚น

  • ๋‹ฌ์„ฑํ•œ ๋ฏธ์…˜ ๋‚œ์ด๋„์— ๋”ฐ๋ผ ๋žญํ‚น์„ ๊ฒฐ์ •ํ•˜๋Š” ์ ์ˆ˜๊ฐ€ ๋ถ€์—ฌ๋ผ์š”.
  • ๋žญํ‚น ๋‚ด์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๋ฏธ์…˜ ํ˜„ํ™ฉ, ํ•œ๋งˆ๋””๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋ฌธ์˜์‚ฌํ•ญ ๋ฐ ์„œ๋น„์Šค ์˜๊ฒฌ์ œ์•ˆ์€ ์–ธ์ œ๋“ ์ง€ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค :)



๐Ÿ“ฑ App Version

๋‚ ์งœ ๋ฒ„์ „
23.01 v1.0.0
23.01 v1.0.1
23.02 v1.0.2
23.04 v2.0.0
23.04 v2.1.0
23.04 v2.1.1
23.05 v2.1.2
23.05 v2.1.3
23.09 v2.2.0
23.10 v2.2.1
23.12 v2.2.2

๐Ÿ›  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

swift xcode tuist Moya Then Kingfisher Snapkit Quick Nimble Lottie Inject Sentry


โ›ณ๏ธ ๋กœ๋“œ๋งต

  • Tuist ๊ธฐ๋ฐ˜ Clean Architecture Project ์„ธํŒ…
  • Fastlane, Makefile ์„ธํŒ…
  • ๋กœ๊ทธ์ธ ํ”Œ๋กœ์šฐ
  • SOPT-AMP
  • ๋งˆ์ดํŽ˜์ด์ง€
  • ์•ฑ ๋ฉ”์ธ
  • ์›น ํ”„๋กœ๋•ํŠธ ๋ผ์šฐํŒ…
  • ์ถœ์„
  • ํ‘ธ์‹œ ์•Œ๋ฆผ
    • ๋”ฅ๋งํฌ, ์›น๋งํฌ ๋ผ์šฐํŒ…
  • Makers Design System
    • Toast
    • Dialog
    • Color
    • Typography
  • WKWebView๋กœ ์ „ํ™˜
  • ์ฝ• ์ฐŒ๋ฅด๊ธฐ
  • ์บ˜๋ฆฐ๋”

๐Ÿก Skills

Clean Architecture + MVVM Pattern

MVVM

  • Presentation, Data, Domain Layer๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ณ„์ธต ๋‚ด์™ธ์˜ ์˜์กด์„ฑ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • MVVM Pattern์œผ๋กœ UI์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Combine Reactive Programming

  • ์• ํ”Œ์˜ ๊ธฐ๋ณธ API์ธ Combine์„ ์ด์šฉํ•˜์—ฌ ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์ง๊ด€์ ์ด๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Factory Pattern๊ณผ Dependency Injection

DI

  • ๊ฐ Feature์˜ Builder๊ฐ€ Factory์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ทฐ์™€ ๋ทฐ๋ชจ๋ธ์„ ์ถ”์ƒํ™”ํ•œ Presentable์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๊ณผ์ •์—์„œ VC, ViewModel, UseCase, Repository๋ฅผ ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค.

Coordinator

image

  • ํ™”๋ฉด ์ „ํ™˜์„ Coordinator๊ฐ€ ์ฑ…์ž„์ง‘๋‹ˆ๋‹ค.
  • Coordinator๋Š” Router์— ์˜์กดํ•˜๊ณ  Router๋Š” UINavigationController์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค.
  • VC์™€ ViewModel ๋ชจ๋‘ Coordinator๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋Œ€์‹  Coordinator๊ฐ€ Factory๋ฅผ ์ฐธ์กฐํ•˜์—ฌ Presentable์„ ์ƒ์„ฑํ•˜๊ณ  ๋Ÿฐํƒ€์ž„์— ํด๋กœ์ € ์ฃผ์ž…์œผ๋กœ ํ™”๋ฉด ์ „ํ™˜ ์‹œ ์•ก์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Modular Architecture

graph

  • SOPT-iOS ์•ฑ์€ Makers App ํŒ€๊ณผ Makers ์šด์˜ ์„œ๋น„์Šค ํŒ€์˜ ๊ณต๋™ ์ž‘์—…๋ฌผ์ž…๋‹ˆ๋‹ค.
  • ๋ชฉ์ ์กฐ์ง์˜ ํ˜•ํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ Feature ๊ฐ„์˜ ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด Feature Interface๋ฅผ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์‘์ง‘๋„ ๋†’๊ณ  ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • Demo ํƒ€๊ฒŸ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Tuist

  • Tuist๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ์„ Mono Repo์—์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Testability

  • ์ „๋ฐ˜์ ์œผ๋กœ Testableํ•œ ์ฝ”๋“œ๋ฅผ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ์ด์ ์„ ์‚ด๋ ค, Unit Test๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ ๋ขฐ์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.


๐Ÿš™ Getting Started

Fastlane๊ณผ Makefile์„ ํ™œ์šฉํ•˜์—ฌ ๋ฒˆ๊ฑฐ๋กœ์šด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…์„ ์ž๋™ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฐœํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ํŒŒ์ผ๋“ค๊ณผ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ธ์ฆ์„œ๋“ค์€ Private ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ์žˆ์œผ๋ฉฐ ์ด ๊ณณ์— ์ดˆ๋Œ€๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ช…๋ น์–ด 1์ค„์„ ์ž…๋ ฅํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ชจ๋“  ํ™˜๊ฒฝ์ด ์„ธํŒ…๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ค€๋น„

์„ค์น˜

  1. ํ˜„์žฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ Fork ํ•ฉ๋‹ˆ๋‹ค.
  2. Forkํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ Clone ํ•ฉ๋‹ˆ๋‹ค.
    git clone https://github.com/your_username_/Project-Name.git
  3. ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    fastlane start_project
  4. ์ด์ œ ํ„ฐ๋ฏธ๋„์—์„œ ์ž…๋ ฅ์„ ์š”์ฒญํ•˜๋Š” ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋ชจ๋“  ์„ธํŒ…์ด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

  1. ํ˜„์žฌ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— Issue๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  2. Fork ํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  4. Push ๋ฐ Pull Request๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  5. 1๋ช… ์ด์ƒ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ Approve๋ฅผ ๋ฐ›์€ ๋’ค develop ๋ธŒ๋žœ์น˜์— Merge ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ Contributors

์œค์ˆ˜๋นˆ ์ด์„ธ์ง„ ์ด์ค€ํ˜ธ ์–‘์ˆ˜๋นˆ ๊น€์˜์ธ ์ด์Šนํ˜ธ
1, 2, 3๊ธฐ 1, 2, 3๊ธฐ 1, 2๊ธฐ 1๊ธฐ 2,3๊ธฐ 2,3๊ธฐ

About

SOPT Makers 1st App Team Sprint 2 : SOPT-Stamp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 99.3%
  • Other 0.7%