Skip to content

이미 목표를 이룬 멘토가 매일 해야 할 일과 실행 방법을 알려줍니다. 멘토와 함께 하루하루 차근차근 나아가며 목표를 이뤄보세요!

License

Notifications You must be signed in to change notification settings

Central-MakeUs/GoalMate-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Goalmate (골메이트)

Group 61

프로젝트 설명

이미 목표를 이룬 멘토가 매일 해야 할 일과 실행 방법을 알려줍니다.
멘토와 함께 하루하루 차근차근 나아가며 목표를 이뤄보세요!

[골메이트, 이런 분들께 추천합니다.]
목표를 세웠지만 막막함을 느껴 멘토를 찾고 계신 분
목표를 달성하고 싶지만 어디서부터 시작해야 할지 모르는 분
목표를 향해 나아가고 있지만, 올바른 방향인지 확신이 없는 분
목표 달성을 위해 전문적인 멘토의 조언이 필요한 분

[목표 달성을 위한 맞춤 가이드]
오늘의 할 일 제공 – 목표 달성을 위한 단계별 과제를 수행하세요.
멘토의 팁 제공 – 멘토가 전하는 실전 팁으로 더욱 효과적으로 목표에 도달하세요.




App Store

Goalmate 보러가기


프로젝트에 사용된 기술 스택

  • Tuist
  • The Composable Architecture (TCA)
  • TCACoordinator
  • SwiftUI
  • Concurrency

Tuist 사용 이유

Tuist란?

  • 프로젝트의 생성, 유지 관리 및 상호 작용을 용이하게 하는 툴
  • 프로젝트 파일 관리
    • 현재 buildable folder를 지원하고 있어 큰 장점은 아님
  • 모듈화 용이
    • Micro Feature Architecture에 적합

Micro Feature Architecture?

  • 각 기능을 독립적인 모듈로 분리하여 관리 가능
    • 특정 기능의 수정이나 개선이 다른 기능에 영향을 미치지 않음
    • 코드 재사용 및 유지보수 용이
  • 독립적인 모듈로 인해 데모 앱 생성 가능
    • 특정 모듈이나 기능을 독립적으로 테스트하거나 확인할 수 있는 미니멀한 앱
  • 데모 앱의 장점
    1. 빌드 시간 단축
      • 전체 앱을 빌드하지 않고 필요한 feature 모듈만 빌드하여 시간 절약
    2. 테스트 편의성
      • 모듈 단위 테스트 가능, QA 시간 단축
    3. 배포 및 업데이트 유연성
      • 단일 기능 업데이트 가능

Tuist를 선택한 이유

  • Micro Feature Architecture를 쉽게 적용하기 위해
  • 독립적인 모듈이 많아졌을 때 빌드 시간을 단축하기 위함
    • 예: 모바일TV 앱의 경우 모듈이 많아 빌드에 약 5분 소요
  • Tuist는 Micro Feature를 쉽게 관리할 수 있는 툴
    • 적절한 빌드 환경을 구성하면 명령어 한 줄로 필요한 feature만 빠르게 불러올 수 있음

TCA를 사용한 이유

  • 일관된 상태 관리
    • 상태와 액션이 명확하게 분리됨으로써 예측 가능한 동작 가능
    • 앱의 상태를 한 곳에서 관리하여 디버깅과 유지보수 용이
  • 외부 의존성이 있는 Side Effect를 단방향으로 관리하여 상태 관리 효율 향상
    • 네트워크 요청, DB 접근 등의 외부 의존성을 명확하게 제어 가능
    • Reducer에서 Action을 처리하고, 필요한 경우 Effect(Side Effect)를 실행하여 데이터 흐름을 예측 가능하게 만듦
  • 모듈화 및 테스트 용이
    • 각 기능이 독립적인 reducer로 구현되어 유지보수 편리
    • 상태를 쉽게 모의(Mock)하여 유닛 테스트 가능
  • Combine 및 Concurrency와 자연스럽게 연동 가능
    • 비동기 작업을 효과적으로 처리할 수 있도록 구조화됨

TCACoordinator를 사용한 이유

  • 뷰 단위를 모듈화하여 재사용성을 높이기 위해
  • TCA 기반의 화면 전환을 체계적으로 관리
    • 각 화면의 흐름을 명확하게 정의할 수 있음
  • 독립적인 feature 간 결합도를 낮추고, 유지보수를 쉽게 하기 위함

About

이미 목표를 이룬 멘토가 매일 해야 할 일과 실행 방법을 알려줍니다. 멘토와 함께 하루하루 차근차근 나아가며 목표를 이뤄보세요!

Resources

License

Stars

Watchers

Forks

Packages

No packages published