프로그래밍90 [Xcode] Entitlements 파일 엔타이틀먼트 파일(Entitlements file)이란?앱이 특정한 시스템 기능(권한) 을 사용하고자 할 때, 그 기능을 앱 서명(Signing) 시점에 명시적으로 선언하는 설정 파일`.entitlements` 확장자이며, 내부는 plist(XML) 형식으로 되어 있다. 기능Entitlement키설명푸시 알림aps-environmentAPNs 등록을 위한 선언App Groupcom.apple.security.application-groups앱 간 데이터 공유iCloudcom.apple.developer.icloud-servicesiCloud 문서/키-값 저장키체인 공유keychain-access-groups앱 간 키체인 공유백그라운드 작업UIBackgroundModes위치 추적, 오디오, fetch 등.. 프로그래밍/Xcode 2025. 4. 8. [Xcode] 최적화(Optimization) 레벨 1. Xcode의 최적화(Optimization) 레벨이란? 최적화 레벨은 코드를 컴파일할 때, 실행 속도/용량/효율을 개선하기 위해 적용되는 컴파일러의 자동 처리 전략주요 최적화 옵션 (Build Settings > Optimization Level)설정 이름값설명None-O0최적화 없음 (디버깅용, 개발 중)Fast-O빠른 컴파일을 위한 일부 최적화Fastest, Smallest-Os실행 성능 + 바이너리 크기 최적화 (기본 Release용)Aggressive-O3더 많은 최적화 (주의 필요)Whole Module Optimization-whole-module-optimizationSwift 전용, 모듈 전체로 최적화일반적인 세팅 • Debug 빌드: -O0 (최적화 없음 → 디버깅 쉬움) • Rel.. 프로그래밍/Xcode 2025. 4. 5. [Xcode] Configuration, xcconfig 정리 Xcode 프로젝트 관련해서 진득하게 공부한 적이 없어서 기록 겸 시작.. 1. Build Configuration 추가 프로젝트 파일 선택 후 info 탭에서 Configuration 생성 2. 새로 생성한 Configuration을 현재 빌드 스킴에 적용스터디 용이니 Run 항목만 수정하도록 한다. 3. 각 xcconfig을 파일로 생성 후 Project 설정 info 탭에서 각 파일 맵핑각 xcconfig 파일 생성각 타겟에 xcconfig 파일 매칭 4. 각 xcconfig 파일 내용 작성 및 연동파일 생성 후 프로젝트 파일 선택 -> TARGETS 선택 후 Build Settings 설정에서 xcconfig에 작성한 내용을 연결BUNDLE_IDENTIFIER 이 정상적으로 적용됐는지 확인위 방.. 프로그래밍/Xcode 2025. 4. 4. Swift Concurrency - 1. 동시성 프로그래밍의 기본 개념 이해 Swift 동시성 프로그래밍의 기본 개념 이해Swift의 동시성 프로그래밍 모델을 이해하기 위해서는 먼저 왜 새로운 동시성 모델이 필요했는지, 그리고 기존 접근법의 한계가 무엇인지 명확히 알아야 합니다. 이 섹션에서는 Swift Concurrency의 등장 배경부터 핵심 개념까지 상세히 설명합니다.왜 Swift Concurrency가 필요했는가?기존 GCD(Grand Central Dispatch)와 OperationQueue의 한계1. 스레드 폭발(Thread Explosion) 문제// 과도한 스레드 생성 예시for i in 0..GCD는 동시 작업이 증가할 때 너무 많은 스레드를 생성할 수 있습니다. 이는 다음과 같은 문제를 야기합니다:스레드 생성과 컨텍스트 스위칭 오버헤드 증가시스템 리소스(메모리.. 프로그래밍/Swift Concurrency 2025. 3. 20. 초보자도 쉽게 배우는 마크다운(Markdown) 기본 문법 가이드 마크다운(Markdown) 기본 문법 가이드1. 마크다운이란?마크다운(Markdown)은 가볍고 사용하기 쉬운 마크업 언어로, 텍스트를 간단한 기호를 사용하여 서식 있는 문서로 변환할 수 있습니다. 일반적으로 README 파일, 블로그 게시글, 문서 작성 등에 많이 사용됩니다.2. 기본 문법2.1 제목(Header)제목을 만들려면 # 기호를 사용합니다. #의 개수에 따라 제목의 크기가 결정됩니다.# 제목 1## 제목 2### 제목 3#### 제목 4##### 제목 5###### 제목 62.2 문단(Paragraph)문장을 작성하면 자동으로 하나의 문단이 생성됩니다. 문단을 구분하려면 한 줄을 띄우면 됩니다.이것은 첫 번째 문단입니다.이것은 두 번째 문단입니다.이것은 첫 번째 문단입니다.이것은 두 번째 문.. 프로그래밍/Etc. 2025. 3. 18. HTML 기초 문법 가이드 블로그 작성을 위한 필수 HTML 문법 가이드블로그를 HTML로 직접 작성하면 더 많은 커스터마이징이 가능해집니다. 이 글에서는 블로그 포스팅에 자주 사용되는 HTML 태그들과 그 사용법을 알아보겠습니다.1. 기본 구조모든 HTML 문서는 다음과 같은 기본 구조를 가집니다: 2. 제목 태그제목은 부터 까지의 태그를 사용합니다. 이 가장 큰 제목이고, 숫자가 커질수록 크기가 작아집니다.블로그 제목챕터 제목소제목3. 단락본문 내용은 태그를 사용하여 작성합니다.이것은 단락입니다. 블로그의 주요 내용을 여기에 작성합니다.4. 강조텍스트를 강조하기 위해 과 태그를 사용합니다.이것은 굵은 글씨입니다.이것은 기울어진 글씨입니다.5. 링크다른 페이지로의 링크는 태그를 사용합니다.링크 텍스트6. 이미지이미지는.. 프로그래밍/Etc. 2025. 3. 16. [Swift] 구조체(struct)와 클래스(class)의 차이 정리 구조체와 클래스의 정의 및 구문 Swift에서 구조체와 클래스 모두 사용하여 사용자 정의 데이터 유형을 정의할 수 있습니다. 구조체를 정의하는 구문은 다음과 같습니다: struct MyStruct { // properties and methods } 클래스를 정의하는 구문은 유사합니다: class MyClass { // properties and methods } Reference vs Value Type 구조체와 클래스의 가장 중요한 차이점 중 하나는 메모리 처리 방식입니다. 구조체는 값 유형이므로 구조체 인스턴스를 만들 때 복사됩니다. 이는 각 구조체 인스턴스가 데이터의 자체 복사본을 갖게 되어 한 인스턴스의 수정이 다른 인스턴스에 영향을 미치지 않는다는 것을 의미합니다. 반면에 클래스는 참조 유형입.. 프로그래밍/Swift 2023. 3. 1. WCSession / WCSessionDelegate 정리 WCSession은 WatchConnectivity 프레임워크에서 제공하는 클래스로, iOS 앱과 Apple Watch에서 실행되는 watchOS 앱 간의 통신을 가능하게 합니다. 이 클래스는 두 기기 간에 데이터를 주고받을 수 있는 메서드와 통신 세션의 상태를 관리하는 메서드를 제공합니다. WCSessionDelegate는 iOS 앱과 watchOS 앱 간의 통신 세션과 관련된 이벤트를 처리할 수 있는 메서드를 정의하는 프로토콜입니다. 이 프로토콜의 메서드는 WCSession 객체에 의해 호출되며, 세션이 활성화되거나 비활성화되거나, 메시지를 수신하는 등의 이벤트에 대응합니다. WCSession의 주요 메서드 activate() iOS 앱과 watchOS 앱 간의 세션을 활성화합니다. 데이터를 보내거나.. 프로그래밍/Swift 2023. 2. 28. UIScrollView / UIScrollViewDelegate 정리 UIScrollView UIScrollView는 iOS에서 화면의 표시 영역보다 큰 콘텐츠를 스크롤하여 볼 수 있게 해주는 뷰입니다. UIScrollView는 UIView의 하위 클래스이며, 수직 또는 수평으로 콘텐츠를 스크롤하고 콘텐츠를 확대하거나 축소하는 인터페이스를 제공합니다. UIScrollView의 중요 프로퍼티 contentOffset: 이 속성은 현재 보이는 콘텐츠의 위치를 스크롤 뷰의 원점에 상대적으로 지정합니다. 이것은 콘텐츠의 x와 y 오프셋을 나타내는 CGPoint 값입니다. 이 속성을 사용하여 콘텐츠를 프로그래밍 방식으로 스크롤하거나 동적 효과를 위해 다른 뷰에 바인딩할 수 있습니다. contentSize: 이 속성은 스크롤 뷰 내에서 스크롤 가능한 콘텐츠 영역의 크기를 지정합니다... 프로그래밍/iOS Developer Documentation 2023. 2. 25. UICollectionView 섹션에 배경 색상을 적용하기 UICollectionView는 iOS 앱에서 데이터를 표시하는 데 자주 사용되는 컴포넌트 중 하나입니다. UICollectionView의 각 셀은 일반적으로 특정 데이터 항목을 나타내며, 해당 셀의 배경 색상을 지정할 수 있습니다. 그러나 UICollectionView의 섹션에 배경 색상을 적용하는 것은 조금 더 복잡합니다. 이번 글에서는 UICollectionView의 섹션에 직접 배경 색상을 적용하는 방법에 대해 알아보겠습니다.willDisplay(_:forItemAt:)에서 셀에 직접 backgroundColor 주입UICollectionViewDelegate의 willDisplay(_:forItemAt:) 메서드를 사용하여 셀이 표시될 때마다 해당 셀의 배경 색상을 설정할 수 있습니다. 이 방법.. 프로그래밍/Swift 2023. 2. 23. [Swift] Opaque Types 찍어먹기 doc: https://docs.swift.org/swift-book/LanguageGuide/OpaqueTypes.html Opaque Types Opaque Types을 사용한 fuction이나 method는 리턴되는 값의 타입에 대한 정보를 숨기는 타입으로 반환된다. 함수의 반환 타입으로 구체적인 타입을 제공하지 않고, 반환 값이 채택하는 프로토콜로 묘사된다. 프로토콜 타입을 반환하는 것과 다르게 Opaque Types은 타입 정보를 보존한다. => 컴파일러는 타입 정보에 접근할 수 있지만, 모듈의 클라이언트는 그렇지 않다. Opaque Type을 사용하지 않을 시 protocol Weapon { func attack() } struct NoTypeWeapon: Weapon { func attack.. 프로그래밍/Swift 2022. 2. 16. [UIKit] draw(_:) 개발문서 번역 Instance Method - draw(_:) 전달된 직사각형(rect) 내에 리시버들의 이미지를 그린다. Declaration func draw(_ rect: CGRect) Parameters rect 뷰들 bounds 중 업데이트가 필요한 부분 이다. 처음 뷰를 그릴 때 이 rect는 일반적으로 뷰의 전체 visible bounds 이다. 하지만, 이후 그리기 작업 중에는 , rect가 뷰의 일부만 지정될 수 있다. Discusstion 이 메서드의 기본 구현은 아무 동작도 없다. Core Graphics와 UIKit과 같은 기술을 사용하여 자신의 콘텐츠를 그리는 서브클래스는 이 메서드를 오버라이드 하고 해당 서브뷰의 draw 코드를 구현해야 한다. 너의 뷰(UIVIew의 서브클래스)가 다른 방법으.. 프로그래밍/iOS Developer Documentation 2021. 2. 2. 이전 1 2 3 4 ··· 8 다음