Programming Languages 6

Concurrency

1️⃣ Swift Concurrency 개요무엇이 추가되었나?Swift 5.5: async / await 도입Swift 6: 데이터 레이스 없는 동시성을 컴파일러가 보장왜 중요한가?UI 멈춤 방지네트워크 / 계산 작업과 UI를 동시에 처리Swift 6 모드에서 안전한 동시성 강제2️⃣ 핵심 개념 정리Asynchronous (비동기)작업을 중단(suspend) 했다가 재개(resume)기다리는 동안 다른 작업 가능⏱ 시간은 그대로지만 앱이 멈추지 않음Parallel (병렬)여러 작업을 동시에 실행⏱ 전체 시간 단축관리 난이도 ↑👉 비동기 ≠ 병렬👉 병렬은 비동기의 한 형태3️⃣ 문제 상황: Concurrency 없는 앱기존 코드 문제 toastLabel.text = makeToast() // 2초 sl..

Protocols / Extensions/ Error Handling

1️⃣ Protocol (프로토콜)역할타입이 반드시 가져야 할 속성과 메서드의 “약속”Class / Struct / Enum 모두 채택 가능protocol CalorieCountable { var calories: Int { get } func description() -> String } 핵심 포인트구현 ❌, 요구사항만 정의{ get } → 읽기 전용{ get set } → 읽기/쓰기2️⃣ Protocol 채택 (Conformance)Class / Struct에서 직접 채택class Burger: CalorieCountable { ... } struct Fries: CalorieCountable { ... } 요구된 모든 프로퍼티/메서드 구현 필수var 요구 → let 구현 가..

Class / Struct

1️⃣ Class (클래스)목적복잡한 객체 표현예: 직원, 상품, 동물 등구성Properties: 상태 저장Methods: 동작 정의 class Animal { var name: String func makeSound() { } } 특징인스턴스 생성: let a = Animal()initializer (init) 로 초기값 강제 가능상속 가능Reference Type (참조 타입)2️⃣ Initializer (초기화자) init(name: String) { self.name = name } 인스턴스 생성 시 모든 프로퍼티 초기화 보장self → 프로퍼티 구분용3️⃣ Subclass (상속) class Mammal: Animal { let hasFurOrHair = true } 부모..

Functions (함수) / Closures

기본 형태func name(param: Type) -> ReturnType { ... } 핵심 포인트매개변수, 반환값 모두 선택 사항호출 시 argument label 사용단일 표현식이면 return 생략 가능주요 기능 정리기능문법 / 예함수 정의func f() {}매개변수func f(x: Int)반환값func f() -> Int호출f(x: 10)암묵적 returnfunc f() -> Int { 10 } ※ 한줄코드의 경우 return 생략 가능매개변수의 별칭func f(forValue x: Int) ※ 호출하는 쪽은 f(forValue : 50) 📌 Nested Functions (중첩 함수)기능설명함수 안의 함수함수 내부에 정의외부 변수 접근가능 (클로저처럼 동작)용도로직 분리, 가독성 향상..

Swift / C++ Collection Types 비교

Array구분Swift ArrayC++ vector초기 선언var a: [Int] = []vector v;초기 선언var a = [1,2,3]vector v{1,2,3};초기 선언Array(repeating:0, count:5)vector v(5,0);개수a.countv.size()상태a.isEmptyv.empty()접근a[i]v[i]추가a.append(x)v.push_back(x)삽입a.insert(x, at:i)v.insert(v.begin()+i, x)수정a[i] = xv[i] = x제거a.remove(at:i)v.erase(v.begin()+i)제거a.removeLast()v.pop_back()초기화a.removeAll()v.clear() Dictionary구분Swift DictionaryC++ ..

Swift vs C/C++ 문법 비교

C/C++Swift선언 종료반드시 ; 로 종료n/a데이터 타입short / unsigned shortint / unsigned intfloatdoubleboolchar / unsigned charstringInt 혹은(Int8, Int16, Int32, Int64)UInt (부호 없는 정수) 혹은(UInt8, UInt16, UInt32, UInt64)FloatDoubleBoolCharacterString상수 선언const int a = 0;let a = 0 혹은 let a : Int = 0변수 선언int a = 0;var a = 0 혹은 var a : Int = 0변수선언시 null/nil의 대응없음 (컴파일러가 초기값을 넣어줌)var a : String? print..