iOS 22

[iOS] 2025.02.25 비동기 프로그래밍 / 제네릭

비동기 프로그래밍 / 제네릭 비동기 프로그래밍1. 비동기 프로그래밍 :작업을 동시에 실행하거나, 완료 여부를 기다리지 않고 다음 작업을 수행할 수 있는 프로그래밍 방식.iOS에서는 주로 GCD(Grand Central Dispatch)와 비동기 메서드를 사용. 2. 동기 vs 비동기동기(Synchronous) : 작업이 완료될 때까지 대기.비동기(Asynchronous) : 작업 완료를 기다리지 않고 바로 다음 작업 실행. 3. GCD의 주요 큐 :Main Queue : UI 작업을 처리.Global Queue : 백그라운드 작업 처리.Custom Queue : 사용자 정의 작업 큐.비동기 프로그래밍 예제DispatchQueue.global().async {    print("비동기 작업 실행")    ..

iOS 2025.02.25

[iOS] 2025.02.25 클로저 / 객체지향 프로그래밍

클로저1. 클로저란?코드에서 독립적으로 전달 및 사용할 수 있는 기능을 가진 코드 블록.변수나 상수에 저장 가능하며, 함수의 인자로 전달할 수 있음.함수 = 이름이 있는 클로저클로저 = 코드의 묶음2. 클로저 문법클로저는 다음과 같은 형태로 작성됨.{ (매개변수) -> 반환타입 in    실행 코드} 3. 캡처(Capture)클로저는 외부 변수나 상수의 값을 캡처하여 저장함.var number = 10let closure = { number += 5 }closure()print(number) // 15* 일반적인 함수와 비교했을때, 일반 함수는 실행이 끝나면 지역 변수가 사라지지만 클로저는 실행될 때 해당 변수나 상수의 값을 저장하고, 이후에도 그 값을 사용할 수 있도록 유지함. 클로저 기본 예제let ..

iOS 2025.02.25

[iOS] 2025.02.24 자료구조 / 메모리 구조 및 ARC

자료구조 / 메모리 구조 및 ARC1.  자료구조배열(Array)데이터를 순차적으로 저장하는 자료구조인덱스를 사용해 특정 요소에 접근.특징 : 빠른 조회, 삽입/삭제 시 성능 저하 추가append() -> 마지막에 추가+= -> 여러개 추가insert(at:) -> 원하는 위치에 추가 삭제remove(at:) -> 특정 위치 요소 삭제removeLast() -> 마지막 요소 삭제removeAll() -> 전체 요소 삭제 조회.first -> 첫번째 요소 가져오기.last -> 마지막 요소 가져오기* second는 안됐음. 옵셔널이므로 !(강제 언래핑) 필요.isEmpty -> 배열이 비어 있는지 확인. 수정var items = ["Book", "Laptop", "Phone"]items[1] = "Tabl..

iOS 2025.02.24

[iOS] 2025.02.21 Struct와 Class / 프로토콜

Struct와 Class1. Struct(구조체)값 타입(Value Type)으로, 메모리에서 값을 복사해 사용하므로 독립된 인스턴스를 생성.상속 불가능.주로 데이터를 저장하거나 간단한 로직을 수행할 때 사용.2. Class(클래스)참조 타입(Reference Type)으로, 메모리에서 동일한 인스턴스를 여러 곳에서 참조.상속 가능.객체지향 프로그래밍의 주요 개념으로 사용. * init이란? Swift에서 Class(클래스)나 Struct(구조체)의 인스턴스를 생성할 때 호출되는 초기화 메서드(initializer)임.* 인스턴스란? Class나 Struct를 사용하여 만들어 낸 실제 객체를 의미. Class나 Struct는 설계도라고 이해하면 편함.* Struct(구조체)를 정의하면 자동으로 모든 속성..

iOS 2025.02.21

[iOS] 2025.02.12 프로젝트 : "간단한 가위바위보 게임 만들기"

프로젝트 : "간단한 가위바위보 게임 만들기"기능 목록1. 사용자가 "가위", "바위", "보" 중 하나를 입력하면 컴퓨터가 무작위 선택을 한다.2. 조건문을 사용하여 승패를 판별하고 결과를 출력한다.3. 사용자가 "그만"을 입력할 때 까지 반복적으로 게임을 진행한다.4. 사용자의 입력이 올바르지 않으면 다시 입력하도록 처리한다. 1단계 : 컴퓨터가 무작위 선택하는 함수 만들기가위바위보 게임에서는 컴퓨터가 랜덤하게 "가위", "바위", "보" 중 하나를 선택해야 함.* 처음 본 .randomElement()!, 느낌표가 꼭 있어야 하는 것 확인. 2단계 : 승패를 판별하는 함수 만들기사용자와 컴퓨터의 선택을 비교하여 승패를 판별하는 로직을 작성.3단계 : 사용자 입력을 받아 게임을 반복하기사용자가 "그만..

iOS 2025.02.12

[iOS] 2025.02.11 함수의 사용 방법 이해하기

함수의 사용 방법 이해하기 반환값이 있는 함수함수가 특정 연산을 수행한 후, 결과를 반환하는 형태.func multiply(a: Int, b: Int) -> Int { return a * b } let result = multiply(a: 5, b: 3) print(result) // 15 출력여러 개의 매개변수를 받는 함수두 개 이상의 값을 입력받아 다양한 결과를 출력할 수 있음.func introduce(name: String, age: Int) { print("제 이름은 \(name)이고, 나이는 \(age)살입니다.") } introduce(name: "Tom", age: 25)함수 사용해보기과제 1: 두 수를 더하는 함수 만들기문제: 두 개의 정수를 입력받아 합을 반환하는 함수를 작성하세요.함수..

iOS 2025.02.11

[iOS] 2025.02.10 함수의 선언과 사용 방법 이해하기

함수의 선언 방법 이해하기 매개변수가 없는 함수매개변수를 받지 않고, 호출하면 항상 같은 결과를 출력하는 함수. func sayHello() { print("안녕하세요!") } sayHello() // "안녕하세요!" 출력매개변수가 있는 함수함수를 호출할 때 특정 값을 전달하여 다양한 결과를 출력할 수 있음.func greet(name: String) { print("안녕하세요, \(name)님!") }  greet(name: "Alice") // "안녕하세요, Alice님!" 출력 greet(name: "Bob") // "안녕하세요, Bob님!" 출력반환값이 있는 함수함수를 호출하면 결과를 반환하는 함수.func add(a: Int, b: Int) -> Int { return a + b } let su..

iOS 2025.02.10

[iOS] 2025.02.07 반복문 이해하기

반복문 이해하기1. for-in 문정해진 횟수만큼 반복해야 할 때 사용.배열(Array) 또는 범위(Range)의 요소를 순회할 때 사용.단, 반복 횟수가 미리 정해져 있어야 함.범위를 사용하여 특정 범위의 숫자를 반복할 수 있음.예시 코드for i in 1...5 { print("반복 \(i)회") }예시코드// 배열 요소 출력 let names = ["Alice", "Bob", "Charlie"] for name in names { print("이름: \(name)") }2. while 문반복 횟수가 정해져 있지 않고, 특정 조건이 참일 동안 반복할 때 사용루프를 실행하기 전 조건을 먼저 검사.조건이 거짓이면 반복을 실행하지 않음.사용 사례반복 횟수를 미리 알 수 없을 때.사용자가 특정 조건을 만족할..

iOS 2025.02.07

[iOS] 2025.02.07 조건문 이해하기

*오늘도 Online Swift Playground는 먹통이라 Swift Fiddle 이용.*실제로 Xcode에서 어떻게 돌아가는지 눈으로 보고싶음..조건문 이해하기 1. if - else 문특정조건이 참이되면 실행되고, 거짓이면 다른 코드가 실행됨.단순한 조건을 확인할 때 주로 사용됨.(두 가지 경우를 나누어 처리할 때) 예시 코드let temperature = 30 if temperature > 25 { print("더운 날씨입니다.") } else { print("시원한 날씨입니다.") }  2. else if 문여러 개의 조건을 순차적으로 검사할 때.조건이 여러 개, 우선순위에 따라 차례로 검사할 때. 예시 코드let score = 85 if score >= 90 { print("A 등급입니다!"..

iOS 2025.02.07

[iOS] 2025.02.06 연산자의 이해

*여전히 맥북은 없고 Online Swift Playground는 접속이 안돼서 Swift Fiddle 이용함. 연산자의 이해 산술 연산자(Arithmatic Operators) 덧셈 +, 뺄셈 -, 곱셈 *, 나눗셈 /, 나머지 % 예시 코드let a = 10let b = 3 print("덧셈: \\(a + b), 뺄셈: \\(a - b)") print("곱셈: \\(a * b), 나눗셈: \\(a / b), 나머지: \\(a % b)") *코드가 대소문자 구분한다는 걸 알게됨!*4 나누기 10을 하면 나머지가 4가 나오는데, 소수점 표현은 못하는걸까...?(질문) 비교 연산자(Comparison Operators) ==  값이 같은지 비교 !=   값이 다른지 비교 >    왼쪽 값이 더 큰지 비교 ..

iOS 2025.02.06