AppStorage에 문자열 배열을 사용하기 위한 Array에 Extension하기
전체 코드 extension Array: RawRepresentable where Element: Codable { public init?(rawValue: String) { guard let data = rawValue.data(using: .utf8), let result = try? JSONDeco...
전체 코드 extension Array: RawRepresentable where Element: Codable { public init?(rawValue: String) { guard let data = rawValue.data(using: .utf8), let result = try? JSONDeco...
Swift에서 struct와 class의 차이 – 언제 어떤 타입을 써야 할까? Swift에서는 데이터 모델을 만들 때 struct와 class 두 가지 타입 중 선택할 수 있다. 둘은 비슷해 보이지만, 실제로는 메모리 관리, 동작 방식, 사용 용도에서 중요한 차이가 있다. 이 글에서는 struct와 class의 차이를 정리하고, 언제 어떤 상황에...
계층적 콘텐츠를 탐색하기 위한 스택기반 체계의 뷰 컨트롤러이다. 어떤 아이템을 클릭하면 상세 페이지로 넘어가면서 이전 페이지와 현재 페이지 사이의 계층이 생긴다. UINavigationController는 여러 개의 UIViewController를 스택(Stack) 자료구조 형태로 관리하는 컨테이너 뷰 컨트롤러다. 내부적으로 ViewControll...
객체 간의 통신을 위한 디자인 패턴. 한 객체가 자신의 일부 기능을 다른 객체(Delegate)에게 위임하는 방식 📎 필요한 이유 중복되는 코드를 줄이고 유연하게 객체를 사용하기 위해서 ⛳ 델리게이트 패턴 구조 Protocol 정의 Delegate 객체 생성 및 프로토콜 채택 위임자에게 실행 요청 1. Protoco...
래치(Ratch) : 0 or 1의 데이터를 저장할 수 있는 최소의 단위 레지스터 : 8개의 래치로 구성된 메모리의 최소 단위, 숫자 한개를 저장할 수 있음 캐시(Cashe)의 역할 CPU에서 램의 데이터를 읽어올때 하나씩만 읽어오면 이동이 많기때문에 램의 특정 블럭에 있는 모든 데이터를 복사해서 CPU...
Swift Getter & Setter 완벽 가이드 목차 개요 기본 개념 Computed Properties Property Observers 실제 활용 사례 성능 고려사항 개요 Swift에서 Getter와 Setter는 클래스, 구조체, 열거형의 프로퍼티에 접근하고 값을 설정하는 메커니즘입니다. 이들은 데이터 캡...
Swift Async/Await 핵심 가이드 Swift 5.5에서 도입된 async/await는 복잡한 콜백 지옥을 해결하고 직관적인 비동기 코드를 작성할 수 있게 해줍니다. async의 역할 async 키워드는 함수가 비동기적으로 실행될 수 있음을 선언합니다. 이는 함수가 실행 중간에 멈출 수 있고, 다른 작업에게 실행 기회를 줄 수 있다는 의...
Swift에서의 스레드(Thread): GCD와 함께 알아보는 동시성 기초 1. 스레드란? **스레드(Thread)**는 하나의 프로세스 내부에서 실행되는 작업 단위다. Swift에서는 동시에 여러 작업을 수행하거나, 무거운 연산을 백그라운드로 넘기기 위해 주로 사용된다. 예: 네트워크 요청 이미지 다운로드 파일 읽기/쓰기 UI...
1. AWS에서 도메인 등록하기 AWS Route 53 콘솔로 이동 도메인 등록 ‘도메인 등록’ 메뉴로 이동하여 원하는 도메인을 검색하고 등록 도메인을 등록하면 Route 53에서 자동으로 호스팅 영역이 생성됨 2. GCP에서 VM 인스턴스 생성 및 설정 GCP 콘솔로 이동 왼쪽 메...
1. 추상화란? 추상화(Abstraction)는 복잡한 시스템에서 핵심 개념만 노출하고, 내부 구현은 숨기는 객체지향 설계 원칙이다. 무엇을 할 수 있는지 정의 어떻게 하는지는 숨김 Swift에서는 Protocol이 Java의 인터페이스 역할을 하며, 추상화를 실현하는 핵심 도구다. 2. Swift에서의 인터페이스 = Protoc...