[iOS] iOS 프로그래밍 실무 12주차 정리
·
Study/iOS
Navigation Controller vs Root View Controller iOS 앱 개발에서 root view controller와 navigation controller는 서로 다른 역할을 수행합니다.Root View Controller는 앱 실행 시 UIWindow에 가장 처음 설정되는 최상위 뷰 컨트롤러입니다. 사용자에게 가장 먼저 보여지는 화면이며, 앱의 진입점을 정의합니다.보통 UINavigationController나 UITabBarController와 같은 컨테이너 뷰 컨트롤러가 root view controller로 설정됩니다.위 그림에서는 Navigation Controller가 루트로 설정되어 있고, 그 내부에 실제 화면을 담당할 View Controller가 포함되어 있습니다..
[iOS] iOS 프로그래밍 실무 11주차 정리
·
Study/iOS
JSON 디코딩 시 발생하는 오류 iOS 앱 개발 중 URLSession과 JSONDecoder를 이용하여 API로부터 데이터를 가져오고 파싱할 때, 흔히 마주치는 에러 중 하나가 다음과 같습니다: 🔧 해결 방법 1: do-catch를 사용한 에러 처리let decoder = JSONDecoder()do { let decodedData = try decoder.decode(MovieData.self, from: JSONdata) // decodedData 활용} catch { print("Decoding failed with error: \(error)")} 이렇게 하면 JSON 파싱이 실패할 경우에도 앱이 크래시 없이 동작하며, 실패 원인을 로그로 확인할 수 있습니다.🧹 해결 방법 ..
[iOS] iOS 프로그래밍 실무 10주차 정리
·
Study/iOS
작성일자(250507) 기준 영화진흥위원회 박스오피스 순위 Table View, Auto Layout Constraints 프로토콜을 선언, 요구되는 메서드를 미구현 오류 UITableView의 delegate와 dataSourcetable.dataSource = selftable.delegate = self 이 두 줄은 UITableView가 데이터를 어떻게 표시하고, 사용자 반응에 어떻게 대응할지를 정하는 핵심 코드다.dataSource테이블에 무엇을 얼마나 보여줄지 결정하는 역할.예: 몇 줄인지, 각 셀에 어떤 텍스트를 넣을지.delegate사용자의 행동에 대한 반응을 처리.예: 셀을 눌렀을 때 어떤 동작을 할지 지정.self를 할당하는 이유ViewController가 직접 이 두 역할을..
[iOS] iOS 프로그래밍 실무 9주차 정리
·
Study/iOS
🌐 API란 무엇인가?웹 개발이나 앱 개발에서 자주 등장하는 용어, API.많이 들어봤지만 정확히 무엇을 의미하고, 왜 사용하는지 명확히 짚고 넘어가는 것이 중요합니다.🔧 API란?API (Application Programming Interface)는소프트웨어와 소프트웨어 사이의 통신을 가능하게 하는 연결 인터페이스입니다.사용자가 **프로그램과 대화하는 도구가 UI(User Interface)**라면,프로그램끼리 데이터나 기능을 주고받기 위한 연결창구가 API입니다.예를 들어, 영화진흥위원회(KOBIS)에서 제공하는 영화 순위 정보를 앱에서 사용하려면,앱은 KOBIS 서버에 데이터 요청(Request)을 보내고, 서버는 응답(Response)으로 JSON 데이터를 전달합니다.이 전체 흐름을 담당하는..
[iOS] iOS 프로그래밍 실무 7주차 정리
·
Study/iOS
UITableViewCell.CellStyleUITableView는 iOS 개발에서 가장 널리 사용되는 컴포넌트 중 하나입니다. 특히 UITableViewCell은 사용자에게 정보를 보여주는 핵심 요소입니다. 이 셀의 스타일을 정의하는 UITableViewCell.CellStyle 열거형(enum)은 각기 다른 레이아웃을 제공해 사용성 높은 UI를 구성할 수 있게 도와줍니다. 📌 UITableViewCell.CellStyle이란?UITableViewCell.CellStyle은 UITableViewCell의 콘텐츠 배치를 정의하는 열거형입니다. Apple 공식 문서에 따르면, 이 열거형은 다음과 같은 스타일들을 제공합니다:defaultsubtitlevalue1value2이들 각각은 textLabel과 d..
[iOS] iOS 프로그래밍 실무 6주차 정리
·
Study/iOS
Swift 옵셔널 체이닝 (Optional Chaining)Swift에서 옵셔널 체이닝은 옵셔널 값의 속성, 메서드, 서브스크립트에 접근할 때 사용하는 안전한 문법입니다. ?를 통해 중첩된 옵셔널 구조에 안전하게 접근할 수 있어 코드가 간결하고 안정적입니다. 🔓 옵셔널 언래핑 방식 비교var x: String? = "Hi"1. 강제 언래핑 (x!) → ❌ 위험, nil이면 crash2. 옵셔널 바인딩 (if let) → ✅ 안전3. nil 병합 연산자 (??) → ✅ 기본값 제공4. 옵셔널 체이닝 (x?.count) → ✅ 가장 간결하고 안전한 방법let b = x?.count // Optional(2)🤖 Optional Chaining이란?cell.textLabel?.texttextLabel은 UI..
[iOS] iOS 프로그래밍 실무 5주차 정리
·
Study/iOS
Delegate와 DataSource 사용 UI 컴포넌트 정리UI 컴포넌트Delegate 사용Delegate 설명UITableViewO셀 선택, 편집, 고정 등 사용자 인터랙션과 테이블 뷰 시각적인 변화 관리UICollectionViewO셀 선택, 편집, 레이아웃 변환 등 사용자 인터랙션과 뷰의 시각적인 변화 관리UIPickerViewO각 컴포넌트(열)의 선택된 항목을 관리UIScrollViewO스크롤 이벤트, 확대/축소 등 사용자 인터랙션 관리UIPageViewControllerO페이지 전환과 같은 사용자 인터랙션 관리UISearchBarO텍스트 변경, 검색 버튼 클릭 등 사용자 인터랙션 관리UITextViewO텍스트 변경, 입력 시작/종료 등 사용자 인터랙션 관리UITextFieldO텍스트 필드의 변..
[iOS] iOS 프로그래밍 실무 4주차 정리
·
Study/iOS
ViewController.swift 기본 구조Xcode로 새 iOS 프로젝트를 만들면 아래와 같은 ViewController 코드가 자동 생성됩니다:import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 뷰가 메모리에 올라온 후 실행되는 초기 설정 위치 }} 핵심 포인트import UIKit: iOS UI를 만들 때 필요한 프레임워크UIViewController: 화면을 담당하는 기본 클래스viewDidLoad(): 뷰가 처음 로드될 때 호출되는 메서드. 초기 UI 설정이나 데이터 로딩에 사용   iOS 앱 생명주기 – configur..
[iOS] iOS 프로그래밍 실무 3주차 정리
·
Study/iOS
Xcode 프로젝트 설정 주요 항목 Minimum Deployments:iOS 버전: 앱의 최소 지원 버전을 설정합니다. 여기서는 iOS 16.0 이상을 지원합니다.Identity:App Category: 앱의 카테고리를 설정하는 부분으로, 이 경우 "None"으로 설정되어 있습니다.Display Name: 앱의 이름을 설정하는 항목입니다. 사용자가 앱을 확인할 때 보게 되는 이름을 설정합니다.Bundle Identifier: 앱을 고유하게 식별할 수 있는 식별자입니다. Version: 앱의 버전을 설정하는 부분입니다. 현재 "1.0"으로 설정되어 있습니다.Build: 앱의 빌드 번호를 설정하는 부분으로, 현재는 빌드 1로 설정되어 있습니다.Deployment Info:iPhone Orientation:..
[iOS] iOS 프로그래밍 실무 2주차 정리
·
Study/iOS
옵셔널(Optional) 타입Swift에서는 값이 없을 가능성이 있는 변수를 안전하게 처리하기 위해 옵셔널(Optional) 타입을 사용합니다.1. 옵셔널이란?옵셔널은 값이 존재할 수도 있고, 존재하지 않을 수도 있는 변수를 선언할 때 사용됩니다. 값이 없을 경우 nil을 반환할 수 있습니다.2. 옵셔널 선언 방법옵셔널 변수를 선언하려면 타입 뒤에 ?를 붙입니다.var index: Int? // index는 Int 값을 가질 수도 있고, nil이 될 수도 있음3. 옵셔널 값의 처리 방법옵셔널 타입의 값을 사용할 때는 반드시 옵셔널을 해제(Unwrapping) 해야 합니다.1) 강제 언래핑 (Forced Unwrapping)!를 사용하여 강제로 값을 추출하는 방법이지만, 값이 nil일 경우 런타임 오류가 ..
[iOS] iOS 프로그래밍 실무 1주차 정리
·
Study/iOS
앱 개발 기술 정리1. Native 앱 개발안드로이드 (Android)사용 언어: Java, KotliniOS사용 언어: Swift, Objective-C2. Cross Platform (크로스 플랫폼)한 번 개발하여 여러 운영체제(Android, iOS)에서 실행 가능React NativeFlutter (Dart 사용)3. Hybrid 앱 개발웹 기술을 활용한 앱 개발 방식WebView 기반 웹사이트 앱사용 기술: HTML, CSS, JavaScriptApache Cordova4. 기타 기술 및 트렌드Stack Overflow 트렌드: Flutter의 인기가 React Native보다 빠르게 증가하는 추세Firebase: 실시간 데이터베이스 서비스 제공ReactiveX: 비동기 프로그래밍을 위한 API..
[iOS] iOS 프로그래밍 기초 14주차 정리
·
Study/iOS
클로저를 지원하는 프로그래밍 언어클로저(Closure)를 지원하는 프로그래밍 언어는 함수형 프로그래밍 패러다임 또는 함수가 1급 시민(First-Class Citizen)인 언어에서 흔히 찾아볼 수 있습니다. 아래는 클로저를 지원하는 주요 프로그래밍 언어의 예입니다:1. 함수형 프로그래밍 언어Haskell: 완전한 함수형 언어로 클로저를 본질적으로 지원.Scala: 함수형 프로그래밍을 지원하며 클로저 사용 가능.Clojure: 이름 자체가 클로저에서 유래. 클로저가 기본 제공.OCaml: 클로저를 함수의 기본 특성으로 제공.F#: 함수형 및 명령형 패러다임 혼합, 클로저 지원.2. 스크립트 언어JavaScript: 클로저를 완전히 지원하며 콜백 함수나 비동기 프로그래밍에 자주 사용.Python: 함수 내..