전체 글 117

Swift - ARC (Automatic Reference Count) 정리 및 강한 순환 참조 해결

ARC(Automatic Reference Counting, 자동 참조 카운팅)Swift에서 힙(Heap) 영역에서 메모리 관리를 자동으로 수행하는 메커니즘앱의 메모리 사용량을 효율적으로 관리하여 객체가 더 이상 필요하지 않을 때 메모리를 해제함 클래스 객체 생성 할 때의 ARC 매커니즘1. 클래스 객체 생성클래스 객체가 생성되어 Heap에 올라오면 ARC는 자동적으로 클래스 객체를 참조하는 수를 관리함객체가 생성될 때, ARC는 해당 객체에 대한 참조 카운트를 1로 설정 2. 객체 참조 추가객체를 다른 변수나 상수에 할당하거나, 다른 객체에서 참조할 때마다 참조 카운트 증가  3. 객체 참조 삭제참조하는 객체가 해제될 때마다 참조 카운팅이 자동으로 감소시킴  4. 객체 메모리 해제참조 카운팅이 0이 되..

Swift 2024.12.08

Swift - Struct와 Class 선택과 차이점

Struct와 Class: Swift에서의 선택과 차이점Swift를 공부하다 보면 Struct와 Class를 어떻게, 언제 사용해야 할지 고민되는 순간이 옵니다. 이 글에서는 두 타입의 공통점과 차이점, 그리고 상황에 따라 어떤 타입을 선택해야 할지에 대해 알아보겠습니다. 공통점1. Struct와 Class 모두 속성(프로퍼티)과 메서드 정의 가능struct PersonStruct { var name: String // 속성 func greet() { // 메서드 print("Hello, \\(name)!") }}class PersonClass { var name: String = "soo" // 속성 func greet() { // 메서드..

Swift 2024.12.06

Swift - UICollectionViewFlowLayout 셀 크기 다르게 구현 (UILabel)

문제 상황 셀의 heigh은 고정이지만, width는 글자의 길이에 따라 다름기존의 UICollectionView 선언 과정에서 layout의 itemSize를 지정하는 방법은 모든 셀의 사이즈가 고정되기 때문에 사용할 수 없음 해결 과정String을 Extension하여 UILabel의 text, font에 따라 UILabel의 너비를 구하는 함수 구현// String을 Extension하여 UILabel의 text, font에 따라 UILabel의 너비를 구하는 함수 구현extension String { func getUILabelWidth(fontSize : CGFloat, fontWeight : UIFont.Weight) -> CGFloat { let label = UILabel..

Swift 2024.12.02

Swift - KeyChain이란?

KeyChain민가한 정보를 안전하게 저장하는 데 사용되는 iOS/macOS의 보안 기능비밀번호, 인증 토큰, 사용자 인증 정보와 같은 데이터를 암호화된 형태로 안전하게 저장 가능Keychain Services API를 통해 정보를 저장하고 불어옴키체인 항목을 추가(add), 검색(retrieve), 삭제(delete), 수정(modify) 기능을 사용함https://developer.apple.com/documentation/security/storing-keys-in-the-keychain주요 특징보안성 : 데이터를 암호화해서 저장하므로, 데이터를 보호할 수 있음앱 간 공유 : 동일한 개발자가 만든 앱끼리 Keychain을 공유할 수 있음Keychain Item의 속성 중 kSecAttrAccessG..

Swift 2024.11.24

Swift - modal 여러 개 한 번에 dismiss 하기

📑 학습 내용화면 전환을 모달 방식으로 여러번 한 후, 한 번에 dismiss 하는 방법presentingViewController : 현재 뷰를 띄운 뷰 컨트롤러self.presentingViewController?.presentingViewController?.dismiss(animated: true)→ presentingViewController 를 여러번 사용하여 이전 뷰 컨트롤러를 사용 가능함📚 참고 자료https://developer.apple.com/documentation/uikit/uiviewcontroller/1621430-presentingviewcontrollerhttps://velog.io/@hyesuuou/SwiftiOS-modal-2개-한번에-dismiss하기 [Swift/..

Swift 2024.11.20

Swift - Configuration Settings File(.xcconfig 파일)을 이용한 git에 API Key 숨기기

📑 학습 내용.xcconfig 파일을 이용하여 API Key를 git에 노출시키지 않도록 방법API Key는 민감한 정보이기 때문에 보안을 위해 Info.plist 파일에 저장하여 사용하면 좋음 1. Configuration Settings File 생성  2. API Key 선언  3. info.plist에 API 키 참조  4. .xcconfig 파일을 사용할 수 있도록 Project Info에 Configuration 파일 추가  5. API Key 불러오기- Bundle.main.infoDictionary?[”API_KEY”] as? String ?? “” 으로 불러오면 됨 init() { if let key = Bundle.main.infoDictionary["API_KEY"..

Swift 2024.11.16

Swift - 카카오 로그인 오류(웹 관리자 설정 오류, KOE101) 해결

문제 상황카카오 웹 로그인 중 앱 관리자 설정 오류 발생해결 과정KOE101 에러 : 잘못된 앱 키 또는 앱 키 타입을 사용하거나, 앱 키에 오타가 있을 경우 발생되는 에러카카오 디벨로퍼스 접속 후 앱 키 확인 (https://developers.kakao.com/console/app)→ 네이티브 앱 키를 제대로 쓰고 있었지만 .xcconfig 파일에 저장된 값을 제대로 불러오지 못했었음AppDelegate.swift 파일에서 초기화 할 때, .xcconfig 파일에 저장된 API Key를 불러오는 과정을 수정import UIKitimport KakaoSDKCommon@mainclass AppDelegate: UIResponder, UIApplicationDelegate { func applicat..

Swift 2024.11.16