Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Boost‐SwiftUI‐2024年08月27日(화).md

유정주 JeongJu Yu edited this page Sep 3, 2024 · 5 revisions

원본 텍스트 파일

Boost-SwiftUI-2024年08月27日.txt


스터디 시간 및 참여자

  • 2024年08月27日 화 오후 9:13 ・ 119분 40초
  • 권승용 김대황 정다함 유정주 홍승현
  • 클로바노트를 이용해 회의 내용을 기록하고, AI를 이용해 요약, 편집했습니다.

Task Local과 DispatchQueue

Task Local의 개념과 사용

  • Task Local은 작업 간 안전한 상태 관리와 데이터 격리를 위해 사용됨
  • Task 간에 변수나 의존성을 공유할 때 유용함
  • Task가 생성될 때마다 초기화되며, 자식 Task는 부모 Task의 Task Local에 대한 참조만 가짐

디스패치 큐와 Task Local의 상호작용

  • 구조화된 동시성(Structured Concurrency) 환경에서는 Task Local 값이 전파됨
  • 비구조화된 동시성 환경(예: 디스패치 큐)에서는 Task Local 값이 손실될 수 있음
  • 이스케이핑 클로저의 경계를 넘어가면 Task Local 값이 상실됨

TCA의 디펜던시 주입과 Task Local 활용

디펜던시 라이브러리의 특징과 사용법

  • TCA(The Composable Architecture)에서 사용하는 디펜던시 라이브러리는 의존성 주입을 쉽게 구현할 수 있게 함
  • 환경(라이브, 테스트, 프리뷰)에 따라 다른 구현체를 자동으로 주입할 수 있음
  • 클로저 기반의 구현을 권장하며, 프로토콜 대신 구조체를 사용하는 방식을 선호함

클린 아키텍처 적용 사례

  • 도메인 레이어와 데이터 레이어를 분리하여 구현
  • 도메인 레이어에는 인터페이스 정의와 최소한의 테스트 구현체를 포함
  • 데이터 레이어에는 실제 라이브 구현체를 포함
  • 이를 통해 피처 단위에서 데이터 레이어에 대한 의존성을 제거할 수 있음

테스크 로컬의 활용

  • 테스크 로컬을 사용하여 동시성 환경에서 안전하게 의존성 주입을 구현
  • 각 클로저 내에서 의존성 값을 변경하고, 그 변경이 해당 클로저 내에서만 유효하도록 함
  • 이를 통해 여러 의존성 주입 상황을 동시에 처리할 수 있음
  • 테스크 로컬의 새로운 활용 방법에 대해 긍정적인 반응

iOS 앱 개발에서의 모듈화와 빌드 최적화 논의

모듈화 접근 방식

  • 피처 단위 모듈화에 대한 논의
  • 수직 모듈화(레이아웃)와 수평 모듈화(기능 단위) 구분
  • 모듈 간 의존성 관리의 어려움
  • 인터페이스 모듈 사용에 대한 고민
  • 독립적인 피처 모듈 구성 제안
  • 최상위 컴포지션 모듈에서 하위 피처 관리

빌드 속도 개선

  • 모듈화 후 빌드 속도 개선 효과 논의
  • 전체 빌드 시간은 비슷하거나 증가할 수 있음
  • 디자인 시스템 분리의 이점
  • 컴포넌트 개발 시 빠른 프리뷰 가능
  • API 연동 작업 시 모듈별 빌드의 효율성

SPM(Swift Package Manager)과 프레임워크

  • SPM을 통한 모듈화와 빌드 속도 개선 가능성
  • XCFramework 사용으로 서드파티 라이브러리 통합 최적화
  • Firebase 등 동적 링킹 필요 모듈의 XCFramework 변환

추가 학습 필요성

  • 모듈화와 빌드 최적화에 대한 심층적인 이해 필요성 인식
  • 서드파티 라이브러리 최적화 방법에 대한 추가 학습 요구

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /