| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바
- IOS
- 키노
- 새벽녘 소소한 기록
- 토이프로젝트
- 영화리뷰
- sopt ios
- sopt 35기
- Flutter Toy Project
- 리뷰
- swift concurrency
- 영화기록
- 영화일기
- 백준
- 자바공부
- TCA
- SWIFT
- 티스토리챌린지
- Flutter
- 독서일기
- 일기
- SOPT
- 자바 스터디
- 영화
- 영화후기
- java
- 플러터
- 코딩공부
- 오블완
- 프로그래머스
- Today
- Total
목록IOS (6)
새벽의 기록
지난 글에서 이어지는 내용입니다.https://dawning-record.tistory.com/143 [iOS] Clean Architecture 기반 이미지 업로드 파이프라인 구축기 (feat. AWS S3/TCA)YAPP 27기 iOS 파트원으로써 참여한 Neki 프로젝트의 1차 스프린트에서 앱의 핵심 기능 중 하나인 이미지 업로드 기능을 구현했습니다.단순히 API를 호출하는 것을 넘어, AWS S3의 Presigned URL 방식을 도dawning-record.tistory.com 네트워크 파이프라인은 뚫렸는데, 정작 고해상도 이미지를 여러 장 선택하니 앱이 버벅이며 기기가 뜨거워지는 현상을 목격했습니다.이번 글에서는 업로드를 위해 이미지를 데이터 엔티티로 변환하는 '전처리 과정'에서 발생한 메모리..
YAPP 27기 iOS 파트원으로써 참여한 Neki 프로젝트의 1차 스프린트에서 앱의 핵심 기능 중 하나인 이미지 업로드 기능을 구현했습니다.단순히 API를 호출하는 것을 넘어, AWS S3의 Presigned URL 방식을 도입하고, TCA(The Composable Architecture)와 Clean Architecture 원칙을 준수하며 데이터 흐름을 설계하는 데 집중했습니다. 특히 다중 이미지 업로드 시의 동시성 제어와 네트워크 계층의 유연성을 확보하기 위해 고민했던 과정을 기록합니다. https://github.com/YAPP-Github/27th-App-Team-2-iOS/pull/57 [Feat] #53 - S3 이미지 업로드 파이프라인 Core 모듈 통합 및 재사용성 개선 by OneTe..
iOS 프로젝트를 진행하면서 처음에는 MVVM-C(Model-View-ViewModel, Coordinator) 패턴을 적용했다.MVVM은 뷰와 상태를 분리하는 데 효과적이지만, 프로젝트가 커질수록 몇 가지 한계가 드러났다.이 글에서는 내가 경험한 문제점과, 이를 해결하기 위해 클린 아키텍처를 도입한 이유를 공유하고자 한다.https://github.com/cerdeuk/CERTI-iOS GitHub - cerdeuk/CERTI-iOSContribute to cerdeuk/CERTI-iOS development by creating an account on GitHub.github.com 1. ViewModel 비대화 문제MVVM만 사용했을 때 가장 크게 느낀 한계는 ViewModel이 지나치게 비대해진..
다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수map https://developer.apple.com/documentation/swift/array/map(_:)-87c4d map(_:) | Apple Developer DocumentationReturns an array containing the results of mapping the given closure over the sequence’s elements.developer.apple.com # case1 let cast = ["Vivien", "Marlon", "Kim", "Karl"]let lowercaseNames = cast.map { $0.lowercased() }// 'lowercaseNames' == ["vi..