스택(Stack)
1. 스택 개념 스택은 데이터를 한 쪽 끝에서만 넣고 뺄 수 있는 후입선출(LIFO, Last In First Out) 방식의 자료구조입니다. 즉, 가장 나중에 넣은 데이터가 가장 먼저 나옵니다. 2. 기본 연산 push(item): 스택의 맨 위에 데이터(item)를 추가합니다. pop(): 스택의 맨 위 데이터를 제거하고 반환합니...
1. 스택 개념 스택은 데이터를 한 쪽 끝에서만 넣고 뺄 수 있는 후입선출(LIFO, Last In First Out) 방식의 자료구조입니다. 즉, 가장 나중에 넣은 데이터가 가장 먼저 나옵니다. 2. 기본 연산 push(item): 스택의 맨 위에 데이터(item)를 추가합니다. pop(): 스택의 맨 위 데이터를 제거하고 반환합니...
Swift로 알아보는 연결 리스트(Linked List) iOS 개발에서 컬렉션 타입은 기본이다. 대부분은 Array로 시작하지만, 내부 동작이나 성능 최적화를 고려하다 보면 다른 자료구조도 반드시 이해해야 한다. 그중 대표적인 것이 **연결 리스트(Linked List)**다. Swift로 직접 구현해보며 개념과 특성을 정리한다. 배열과 ...
1. 문서 주석 생성 2. 문서 주석 에시 3. 커서를 올리거나 작성중에 바로 확인 가능
Swift에서 Array란 무엇인가? iOS 개발에서 가장 자주 쓰이는 컬렉션 중 하나가 Array다. 배열은 데이터를 순서대로 저장하고, 인덱스를 통해 접근할 수 있는 자료구조다. Swift의 Array는 단순한 리스트가 아니다. 타입 안정성, 제네릭, 값 타입 특성을 포함하는 강력한 구조체다. 배열의 기본 정의 var names: [S...
ios 앱의 생명 주기를 관리하는 객체. 앱이 시작, 종료, 백그라운드 전환될 때 등 이벤트를 처리함. 생명주기란 iOS 앱은 실행 중 다음과 같은 상태(State)를 거칩니다 Not Running (실행되지 않음) 앱이 완전히 종료된 상태 (앱이 실행되지 않았거나 강제 종료됨) Inactive (...
Swift 클로저(Closure) 핵심 정리 – 함수도 값이다 Swift에서 클로저는 **일급 시민(First-Class Citizen)**이다. 즉, 함수 자체가 변수에 저장되고, 다른 함수에 인자로 넘기거나 반환값으로 사용할 수 있다는 뜻이다. 함수형 프로그래밍이 가능한 Swift에서 클로저는 자주 쓰이며, UIKit/SwiftUI에서 콜백, ...
SwiftUI의 onReceive: 외부 이벤트에 반응하는 방법 앱을 개발하다 보면 외부에서 발생하는 이벤트나 주기적인 데이터 변경에 뷰가 반응해야 할 때가 있다. 예를 들어, 타이머, 알림(Notification), 네트워크 응답 등이다. SwiftUI에서는 이런 외부 이벤트를 onReceive를 통해 간결하게 처리할 수 있다. 이번 글에서는 o...
ObservableObject Combine에서 ObservableObject를 사용하는 이유는 해당 프로토콜을 채택한 객체의 상태 변화를 감지하고 UI에 즉시 실시간으로 반영하기 위해서 입니다. class ViewModel: ObservableObject { @Published var count = 0 } `@Published` ...
제네릭은 다양한 타입에서 동작할 수 있는 코드를 작성할 수 있도록 해준다. 제네릭 함수 같은 로직의 함수임에도 타입이 달라서 두번 선언해야함. //Int 타입의 두 값을 바꾸는 함수 func swapInts(_ a: inout Int, _ b: inout Int) { let temp = a a = b b = temp ...
Swift 위젯의 구조: Provider와 생성자의 이해 iOS 14부터 애플은 홈 화면에 위젯을 배치할 수 있도록 WidgetKit을 도입했다. SwiftUI 기반으로 작성되는 위젯은 앱과는 다른 생명주기와 구조를 가진다. 이 글에서는 위젯을 구성하는 핵심 구조인 Provider, 그리고 위젯에서 종종 만나는 생성자 규칙에 대해 다룬다. 위젯...