감자주먹밥
close
프로필 배경
프로필 로고

감자주먹밥

  • 분류 전체보기 (89)
    • iOS (67)
      • Swift (14)
      • RxSwift (2)
      • UIKit (35)
      • SwiftUI (10)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
  • 홈
  • 태그
  • iOS
  • Github
  • 방명록
🎫 SwiftData 도입기 비동기로 사용해보기

🎫 SwiftData 도입기 비동기로 사용해보기

GitHub - EST-iOS-TEAM2/Dietto: ESTSoft Final 팀프로젝트ESTSoft Final 팀프로젝트. Contribute to EST-iOS-TEAM2/Dietto development by creating an account on GitHub.github.com 이전 프로젝트에서 내부 DB가 필요할 때 CoreData를 주로 사용했는데SwiftData도 알아두면 추후에 마이그레이션 하기 좋을 거 같아 iOS 17 부터 사용할 수 있는 SwiftData를 이번 기회에 도입해보기로 결정했다. CoreData보다 쉽게 모델을 정의하고, 비슷하게 CRUD를 할 수 있는점 덕분에 SwiftData 도입에 어려운것은 없었다!난관에 봉착한 때는 CoreData처럼 BackgroundCont..

  • format_list_bulleted SwiftUI
  • · 2025. 8. 1.
  • textsms

iOS - Multi-Threading

Multi-Threading?짧은 시간에 복잡하고 많은 작업을 실행하여 사용자에게 좋은 경험을 제공하기 위해,작업을 여러 프로세스에서 동시에 실행시키는 병렬 처리 방법!iOS에서도 역시 Multi-Threading을 지원한다. iOS에서 사용하는 Multi-Threading대표적인 3 가지!GCD (Grand Central Dispatch)Operation, OperationQueue (NSOperation)Swift Concurrency먼저 하나씩 알아보자! GCD (Grand Central Dispatch)https://developer.apple.com/documentation/dispatchGCD는...iOS 8.0+저수준 큐 기반멀티코어 환경과 멀티스레드 환경에서 최적화된 프로그래밍을 할 수 있..

  • format_list_bulleted iOS
  • · 2025. 7. 29.
  • textsms

의존성 관리 도구 알아보기 (SPM, CocoaPod, Carthage)

의존성 관리도구가 하는 일프로젝트에 외부 라이브러리를 쉽게 관리할 수 있게 도와주는 도구!라이브러리 설치, 버전관리, 업데이트 관리, 빌드 통합 등을 도와주는 도구다. iOS에서는 대표적으로 3가지 의존성 관리 도구가 있다.SPM(Swift Package Manager) - First party, git기반, 요즘에는 대부분 라이브러리가 SPM도 지원함CocoaPod - third party, obj-c 시절부터 인기있었음, Ruby 기반Carthage - third party각각의 장단점을 알아보자SPM (Swift Package Manager)장점Xcode 내장(first party도구)이 되어있어 프로젝트에 쉽게 라이브러리를 추가하고 관리할 수 있다.처음 나왔을때는 지원하는 라이브러리가 적었지만 지..

  • format_list_bulleted iOS
  • · 2025. 7. 15.
  • textsms

Swift 고차함수 정리 - map, flatMap, compactMap / filter, reduce, forEach

고차함수 (High order function)다른 함수를 매개변수로 받거나 반환하는 함수를 의미한다.클로저와는 다르다 (클로저는 이름이 없는 익명함수) 고차함수가 매개변수로 받는 함수가 클로저일때가 많아서 헷갈릴수는 있지만, 고차함수 안에서 클로저를 자주 사용하는 것 뿐 같은 개념은 아니다.특징가독성함수형 프로그래밍 스타일재사용성 높음maplet numbers = [1, 2, 3, 4, 5]let twoTimesNumbers = numbers.map{ $0*2 }//[2, 4, 6, 8, 10]각 요소에 동일한 연산을 적용해 새로운 배열을 반환한다.for-in문과 비교했을 때 차이는 없지만, 속도면에서 차이가 있다. (요소가 많을수록 차이 남)flatMaplet numbers = [[1, nil], [..

  • format_list_bulleted Swift
  • · 2025. 7. 8.
  • textsms

ARC (자동 참조 카운트) 자세히 알아보기 + 참조 키워드(weak, strong, unowned)

정의ARC(Automatic Reference Counting)는 메모리 구조에서 힙 영역을 관리한다.Swift에서 힙에 메모리를 할때는 참조타입을 생성할 때 자동으로 할당하게 된다.ARC는 할당된 메모리가 더 이상 필요하지 않을 때 자동으로 해제한다.C++에서는 new, delete 키워드를 통해 클래스 인스턴스를 생성할 때 메모리를 할당, 해제 한다.특징컴파일 시점에 언제 참조되고 해제되는지 결정되어 런타임때 그대로 실행된다.장단점장점개발자가 참조 해제 시점을 파악할 수 있음RunTime 시점에 추가 리소스가 발생하지 않음단점순환 참조 발생 시 영구적으로 메모리가 해제되지 않을 수 있음MRC? ARC?둘 다 Reference Counting을 하지만, Manual, Automatic의 차이가 있다.M..

  • format_list_bulleted Swift
  • · 2025. 7. 1.
  • textsms
Pinit 셀 재사용 이슈

Pinit 셀 재사용 이슈

발생했던 문제Pinit 에서는 이미지가 있을때는 그대로 보여주고, 이미지가 없다면 기록한 위치의 지도를 스냅샷으로 보여준다.여기서 문제가 발생했다.이미지는 저장된걸 바로 보여주지만, 스냅샷은 주소만 보내주고 셀에서 스냅샷 이미지를 로드하기에 몇 초 더 지연시간이 생긴다.이때 셀이 엄청 많을때 스크롤을 하면, 재사용 때문에 이전에 사용된 이미지 또는 스냅샷이 먼저 보이고 나중에 제대로 된 스냅샷으로 갈아끼워지는 문제가 있었다.문제점 파악문제점은 역시 셀 재사용 매커니즘을 제대로 이해못하고 지연시간을 고려하지 않았기 때문이다.셀이 재사용 될 때 이전 데이터를 그대로 들고 있다는 것 역시 인지하지 못했기 때문에 일어난 문제였다.셀이 화면에서 사라지면 셀 자체가 지워지지 않고 이전 데이터 그대로 Reusable..

  • format_list_bulleted UIKit
  • · 2025. 6. 25.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 12
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (89)
    • iOS (67)
      • Swift (14)
      • RxSwift (2)
      • UIKit (35)
      • SwiftUI (10)
      • Test (4)
    • 코퉤엣 (12)
    • Git (2)
    • Android (8)
최근 글
인기 글
태그
  • #tableView
  • #programmers
  • #android
  • #SWIFT
  • #UIKit
  • #코딩테스트
  • #백준
  • #swiftUI
  • #Kotlin
  • #ios
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.