분류 전체보기 45

iOS프로그래밍실무(12/15)

✅ Action Segue란?스토리보드에서 UI 요소(버튼, 셀 등)에 연결해 사용하는 자동 전환 방식입니다.사용자가 해당 UI 요소를 **터치하면 자동으로 화면 전환(segue)**이 발생합니다.별도의 코드 없이 간단한 화면 이동을 구현할 때 많이 사용합니다.🟦 예시:버튼을 스토리보드에서 다른 ViewController로 드래그 연결하면, 버튼을 누를 때 자동으로 화면 전환이 실행됨.✅ Manual Segue란?코드에서 직접 호출해서 화면 전환을 실행하는 방식입니다.스토리보드에 segue는 만들어두되, 자동으로 실행되지 않고필요한 시점에 코드로 performSegue(withIdentifier:sender:)를 호출해 실행합니다.조건문, 인증, 데이터 확인 등 복잡한 로직에 따라 화면을 전환할 때 유..

카테고리 없음 2025.05.21

iOS프로그래밍실무(10/15)

📌 TableView 기본 구조 이해iOS 앱에서 표 형태로 데이터를 출력할 때 사용하는 UI 컴포넌트가 UITableViewTableView 사용을 위해선 반드시 DataSource와 Delegate 프로토콜을 채택해야 함📌 필수 메서드 구현tableView(_:numberOfRowsInSection:): 섹션 내 셀의 개수를 반환tableView(_:cellForRowAt:): 각 셀에 들어갈 내용을 구성📌 커스텀 셀 만들기스토리보드에서 셀을 선택한 후, Identifier를 지정 (예: "myCell")셀 내부에 Label을 추가하고, 커스텀 셀 클래스(MyTableViewCell.swift)를 생성해 IBOutlet 연결📌 네트워크 요청 흐름URLSession을 사용해 외부 API 서버와 ..

카테고리 없음 2025.05.14

iOS프로그래밍실무(11/15)

func decode(_ type: T.Type, from data: Data) throws -> T where T : Decodable 이 함수는 Data 타입의 JSON 데이터를 받아서, Codable 구조체로 변환해주는 함수 예외처리 해줘 Main Thread Checker: UI API called on a background thread: -[UITableView reloadData] tableView.reloadData()는 화면을 갱신하는 UI 작업인데,이걸 백그라운드 스레드(예: API 호출 완료 콜백) 안에서 호출했기 때문에 문제가 생긴 것 iOS에서는 모든 UI 작업은 무조건 메인 스레드에서 해야 한다는 규칙이 있음그렇지 않으면 앱이 비정상 작동하거나 튕길 수 있어서, Xcode에서 ..

카테고리 없음 2025.05.14

iOS프로그래밍실무(9/15)

CRUD란?서버에 요청하는 정보의 동작은 4가지로 구분되며, 이를 CRUD라고 부릅니다.Create : 쓰기Read : 읽기Update : 수정Delete : 삭제각 동작의 영문 첫 글자를 따서 CRUD라고 부릅니다. RESTful API URI 설계 원칙URI에는 "정보의 종류(분류 체계)"만 포함시켜야 하며,"읽기/쓰기 등의 동작(action)"은 URI에 표현하지 않는 것이 원칙입니다.예시:✅ /movies (영화 자원에 접근)❌ /getMovies, /readMovieList (비권장: 동작이 포함됨) 동작은 HTTP 메서드로 구분RESTful API에서는 HTTP 메서드를 사용하여 요청의 동작을 구분합니다.HTTP 메서드의미설명GET읽기데이터 조회POST생성새 데이터 추가PUT수정기존 데이터 전..

카테고리 없음 2025.05.06

iOS프로그래밍실무(7/15)

// 날짜를 표현하는 열거형 enumenum Date { case intDate(Int, Int, Int) // (Int, Int, Int) 형태의 연관값 (연, 월, 일) case stringDate(String) // String 형태의 연관값 (예: "2025년 5월 20일")}// 열거형 값 선언 및 초기화var todayDate = Date.intDate(2025, 4, 30)// 아래 줄을 주석 처리하면 intDate(2025,4,30)이 유지됨todayDate = Date.stringDate("2025년 5월 20일") // 열거형 값을 switch문으로 분기 처리switch todayDate {case .intDate(let year, let mont..

카테고리 없음 2025.04.16

iOS프로그래밍실무(6/15)

var x : Int! var x : Int?두 개 소스의 공통점과 차이점(시험 나옴) ✅ 공통점옵셔널 타입둘 다 nil을 가질 수 있는 옵셔널메모리 구조내부적으로 값을 감싸는 Optional 열거형초기 상태값을 안 넣으면 기본적으로 nil✅ 차이점언래핑직접 꺼내야 함 (x!, if let, guard let)자동으로 꺼내짐사용 시 안정성더 안전함 (명시적으로 처리)위험할 수 있음 (실수 시 앱 크래시)코드 작성 방식옵셔널임을 항상 인식하며 코딩옵셔널 같지만 보통 변수처럼 사용주 사용처일반적인 옵셔널 처리 상황나중에 값이 꼭 들어올 걸 보장할 때 (ex. IBOutlet 등)  실행문에서 ! ? 두 개의 차이점 ? 사용: 옵셔널 체이닝 (안전하게 접근)! 사용: 강제 언래핑 (위험한 방식) 차이 요약안전..

카테고리 없음 2025.04.09

iOS프로그래밍실무(5/15)

프로토콜은 여러 개가 올 수 있고 여러 개 채택한다.부모는 없거나 하나만 올 수 있다, 하나만 상속 가능.두 개의 필수 메서드가 있고 나머지는 필요하면 사용한다. 테이블 두 개 프로토콜은 특정 순간에 자동으로 호출된다.이 프로토콜의 메서드들은 사용자의 상호작용이나 특정 시점에 자동으로 호출되어 동작을 정의한다.  전체 화면에 꽉 차는 뷰를 만들 때 좋은 방법  indexPath.row해당 셀의 행 번호 (row)indexPath.section해당 셀의 섹션 번호indexPath.description전체 IndexPath를 [section, row] 형태로 문자열로 출력

카테고리 없음 2025.04.02

iOS프로그래밍실무(3/15)

📱 무드등 iOS 앱 사전 계획서1. 앱 이름 (가칭)Lumi / GlowTime / Moodify / 무드무드(앱 이름은 감성적이거나 직관적으로 전달되도록 고려)2. 앱 개발 목적사용자에게 감성적 무드 조명을 제공하여 휴식, 수면, 집중 등 다양한 상황에서 사용할 수 있도록 함.물리적 조명 없이도 스마트폰 하나로 무드 조명 효과를 구현.3. 주요 타겟층10~30대 감성 소비층취침 전 무드등 사용층감성 인테리어를 선호하는 유저명상 및 집중, 힐링을 원하는 유저4. 핵심 기능 구성기능명상세 설명🎨 컬러 선택원하는 색상을 직접 선택하거나, 컬러 팔레트에서 선택🕰️ 타이머 설정지정 시간 후 자동 종료 (예: 10분, 30분, 1시간)🌈 색상 전환 모드그라데이션, 무지개 모드, 부드러운 색 전환 등🔊 ..

카테고리 없음 2025.03.19

iOS프로그래밍실무(2/15)

wift에서 Int형의 최소값(min)과 최대값(max)최소값 (Int.min): -9,223,372,036,854,775,808최대값 (Int.max): 9,223,372,036,854,775,807let myTuple = (10, 12.1, "Hi")-> (Int, Double, String)let myTuple = (count: 10, length: 12.1, message: "Hi")-> (count: Int, length: Double, message: String)  var age : Int? age = 20 print(age) var myAge = age ?? 1 print(myAge)print(age) = Optional(20)print(myAge) = 20 1. 열거형이란?관련된 값들을 ..

카테고리 없음 2025.03.19