일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- RxSwift
- Swift
- CleanArchitecture
- 개발자블로그
- 머신러닝
- swiftconcurrency
- 서버개발
- 아키텍처패턴
- swiftdata
- 프로그래밍
- MVVM
- Viper
- swiftmacros
- asyncawait
- SwiftUI
- Redux
- MVC
- 비동기프로그래밍
- swift공부
- Combine
- ios
- go언어
- 데이터분석
- coredata
- ios프로그래밍
- iOS개발
- swiftcombine
- 웹개발
- 비동기처리
- IT트렌드
- Today
- Total
목록Swift (10)
탐험하는 바이트스토리
Swift Concurrency 마스터하기 - 실무 확장을 위한 구조화 전략 3가지이번 편에서는 지난편에 했던 북마크/스크랩 기능이 포함된 앱 UI를 이어가보죠.목표는 다음과 같습니다:비동기 리스트 로딩과 북마크 토글을 동시에 안정적으로 처리상태 꼬임 없이 스크롤 중 추가 로딩, 북마크 상태 반영성공/에러 상태, 이전 데이터 유지까지 고려한 설계🎯 실무 확장을 위한 구조화 전략 3가지이번 편에서는 아래 3가지를 집중적으로 소개해요:컴포넌트화: UI/로직을 재사용 가능한 단위로 분리하기상태 관리 추상화: 공통 비동기 흐름을 하나의 타입으로 묶기멀티탭 구조 대응: 북마크 상태를 여러 화면에서 일관되게 유지하기1️⃣ 컴포넌트화: 북마크 버튼을 독립적인 재사용 단위로 만들기북마크 토글 기능이 여러 리스트나 상..
Swift Concurrency 마스터하기 - 북마크/스크랩 기능이 있는 복합 UI 아키텍처 설계비동기 작업을 다루는 기본기와 고급 패턴들을 익혔다면,이제 실전에 적용해볼 차례입니다.이번 편에서는 북마크/스크랩 기능이 포함된 앱 UI를 예시로,실제 앱 구조 설계를 해볼 거예요.목표는 다음과 같습니다:비동기 리스트 로딩과 북마크 토글을 동시에 안정적으로 처리상태 꼬임 없이 스크롤 중 추가 로딩, 북마크 상태 반영성공/에러 상태, 이전 데이터 유지까지 고려한 설계🎯 UI 구성 시나리오사용자는 뉴스 목록을 스크롤하면서 기사를 볼 수 있고, 각 기사 옆에 있는 북마크 버튼을 눌러 스크랩 토글이 가능함.목록은 페이지네이션으로 불러오고, 북마크 상태는 서버와 동기화됨.스크롤 중에도 북마크 변경이 가능해야 하며,..
Swift Concurrency 마스터하기 - 비동기 상태와 에러/로딩을 통합 관리하는 고급 패턴SwiftUI + async/await를 실무에서 쓰다 보면,단순히 "로딩/성공/실패"로는 설명되지 않는 복잡한 상황들을 자주 만나게 됩니다.예를 들어 이런 경우:첫 로딩은 성공했는데, 다음 페이지 로딩 중 에러 발생전체 목록은 로딩 중인데, 부분적으로 데이터가 먼저 도착UI 상 여러 개의 비동기 작업이 동시에 진행되며, 상태가 엇갈리는 상황이럴 땐 상태 관리가 무너지기 쉬워요.그래서 오늘은 이 복잡한 비동기 흐름들을 안정적으로 통합 관리하는 고급 패턴을 정리해보려 합니다.🚦 단일 상태로는 부족하다?기존 방식에서 우리는 이렇게 관리했었죠:enum LoadableState { case idle ca..
Swift Concurrency 마스터하기 - Part 8: 중복 요청 방지와 Task 취소 처리 전략Swift Concurrency를 쓰다 보면 꼭 한 번 겪는 상황이 있습니다."스크롤 조금만 내렸는데 중복 로딩이 엄청나게 발생하네...?""탭 전환했는데 이전 Task가 계속 돌고 있어... UI가 뒤엉켰어" 이럴 때 필요한 게 바로 Task 취소 처리와 중복 요청 방지 전략이에요.이번 편에선 SwiftUI와 함께 이 문제를 깔끔하게 해결하는 방법을 다뤄볼게요.🧠 문제 정리: 왜 중복 호출이 생길까?SwiftUI에서는 다음과 같은 상황에서 Task가 여러 번 실행될 수 있어요:.task가 뷰가 재그려질 때마다 중복 호출됨.onAppear가 예상보다 자주 불림사용자 상호작용에 따라 빠르게 여러 Task..
Swift Concurrency 마스터하기 - 실전에 바로 쓰는 패턴 모음.zipSwift Concurrency에 대한 개념도 잡았고, 실무 예제도 하나씩 익혀봤죠.이제는 우리가 자주 마주치는 비동기 상황들을 어떻게 잘 다루는지,그리고 현업에서 쓰는 패턴들을 어떻게 적용하는지 정리해볼 차례입니다.이번 편에서는 다음과 같은 패턴들을 다룰 거예요:⏳ Debounce & Throttle 처리📥 비동기 작업 큐 만들기🔁 재시도 로직🔄 Combine과 async 연동하기🛑 타임아웃 처리각 패턴마다 언제 쓰면 좋은지, 어떤 문제가 해결되는지, 그리고 실제 코드까지 다 챙겨드립니다 💼1. Debounce & Throttle 처리상황검색창에 사용자가 글자를 입력할 때마다 서버에 쿼리 요청을 보내면너무 많은 네..

지난 2024년 Swift 6가 공식 출시되었죠. 이번 메이저 업데이트는 단순한 기능 추가를 넘어, Swift를 더 많은 플랫폼과 도메인으로 확장하는 데 초점을 맞췄습니다. 기존에는 주로 iOS 및 macOS 앱 개발에 널리 사용되었지만, 이제는 서버 개발, 임베디드 시스템, 그리고 고성능 프로그래밍까지 다양한 분야에서 활용할 수 있도록 개선되었습니다. Swift 6의 핵심 변화를 함께 살펴보겠습니다.주요 기능 및 개선 사항1. 동시성(Concurrency) 안전성 강화Swift는 원래부터 메모리 안전성을 보장하는 언어였지만,Swift 6에서는 동시성(Concurrency) 안전성을 한층 더 강화했습니다.새로운 언어 모드를 활성화하면 데이터 레이스(Data Race) 문제를 방지하는 추가적인 안전 장치를..

1. Redux란?Redux는 단일 상태 트리(single state tree)와 액션(action)을 기반으로 한 상태 관리 패턴이야.원래는 JavaScript 생태계에서 React와 함께 사용하기 위해 개발되었지만,상태 관리가 중요한 애플리케이션에서는 Swift에서도 활용할 수 있어.Redux의 가장 큰 특징은 앱의 상태를 단일 저장소(store)에 보관하고,액션을 통해 상태를 변경한다는 점이야. 이 덕분에 상태 변경의 흐름이 명확해지고, 예측 가능성이 높아져!2. Redux 아키텍처의 핵심 개념Redux는 크게 3가지 핵심 요소로 구성돼:🔹 1) State (상태)앱의 모든 상태를 하나의 저장소(Store)에서 관리해. 예를 들어, 로그인 여부, 사용자 정보, UI 상태 같은 것들이 포함될 수 있..

1. Clean Architecture란?Clean Architecture(클린 아키텍처)는 소프트웨어의 유지보수성과 확장성을 높이기 위해 만들어진 설계 원칙이야.원래는 로버트 C. 마틴(Uncle Bob)이 제안한 개념으로,소프트웨어의 각 계층을 명확히 분리하여 의존성을 최소화하고 코드의 재사용성을 극대화하는 것이 목표야.Clean Architecture의 가장 큰 특징은 의존성 규칙(Dependency Rule)이야.핵심 비즈니스 로직(Use Case)이 외부(UI, 데이터베이스, 네트워크 등)에 의존하지 않고,오히려 외부가 내부에 의존하도록 만들어져 있어.즉, 코어 비즈니스 로직을 UI나 데이터 저장 방식과 독립적으로 설계할 수 있어.몇줄 안되는 문장을 읽어도 이게 도대체 뭔지 감도 잘안오고 어려워..

1. VIPER란?VIPER는 iOS 개발에서 모듈화와 유지보수성을 극대화하기 위해 만들어진 아키텍처 패턴이야.이름은 다음 5가지 컴포넌트의 앞 글자를 따서 만들어졌어.View (뷰) – 사용자 인터페이스(UI)를 담당Interactor (인터랙터) – 비즈니스 로직을 처리하고 데이터를 가져옴Presenter (프레젠터) – View와 Interactor를 연결하는 중간 역할Entity (엔터티) – 모델 데이터를 정의Router (라우터) – 화면 전환을 담당쉽게 말해, MVC나 MVVM보다 더 분리된 책임 구조를 가지고 있어.VIPER는 규모가 큰 프로젝트에서 코드 유지보수를 쉽게 만들고, 테스트하기 좋게 해주는 장점이 있어.하지만 이름부터 생소하고, 처음 접하면 다소 복잡하게 느껴질 수도 있어.2...

1. MVVM이란?MVVM(Model-View-ViewModel)은iOS 개발에서 MVC의 문제점을 보완하기 위해 자주 사용되는 아키텍처 패턴이야.특히 ViewController가 비대해지는 문제(Massive View Controller)를 해결하는 데 도움을 줘.MVVM의 구성 요소Model (모델): 앱의 데이터와 비즈니스 로직을 담당.View (뷰): UI 요소를 담당하며, 사용자에게 정보를 보여줌.ViewModel (뷰모델): View와 Model 사이에서 데이터 변환 및 바인딩을 담당.쉽게 말해, ViewModel이 ViewController의 역할을 분산해 주는 거야!2. MVVM의 역사MVVM은 원래 마이크로소프트(Microsoft)에서WPF(Windows Presentation Found..