도시의 통일성과 디자인 시스템
산토리니의 재료와 색이 만드는 질서에서 서비스의 Foundation을 생각하다.
JWT 기반 인증 흐름 이해하기
쿠키와 세션의 한계에서 출발해 JWT의 구조, 인증 과정, 장단점과 보안상 주의점을 정리합니다.
운영체제의 파일 시스템 이해하기
파일과 디렉터리부터 할당 방식, 자유 공간 관리, 디스크 스케줄링까지 파일 시스템의 구조를 살펴봅니다.
Swift Concurrency의 Continuation 이해하기
콜백 기반 API를 async/await로 연결하는 Continuation의 동작과 checked·unsafe 방식의 차이를 정리합니다.
Swift의 strong, weak, unowned 참조
ARC에서 strong, weak, unowned 참조가 객체의 생명주기에 미치는 영향과 선택 기준을 비교합니다.
Swift ARC와 메모리 관리
ARC가 참조 횟수로 메모리를 관리하는 원리와 강한 참조 순환을 끊는 방법을 살펴봅니다.
운영체제는 메모리를 어떻게 관리할까
주소 바인딩, 논리·물리 주소, 동적 적재와 연결을 통해 운영체제의 메모리 관리 흐름을 이해합니다.
이미지 다운로드로 비교하는 Swift 비동기 처리
같은 이미지 다운로드 기능을 escaping 클로저, Combine, async/await로 구현하며 차이를 비교합니다.
데드락이 발생하는 조건과 해결 방법
데드락의 네 가지 발생 조건과 자원 할당 그래프, 예방·회피·탐지·회복 전략을 정리합니다.
Swift 오류 처리: throw, try, do-catch
Error와 throws로 오류를 정의하고 do-catch, try?, try!로 처리하는 방법을 비교합니다.
UIViewRepresentable로 UIKit과 SwiftUI 연결하기
makeUIView와 updateUIView, Coordinator를 이용해 UIKit 뷰와 SwiftUI 상태를 양방향으로 연결합니다.
matchedGeometryEffect로 뷰 전환 연결하기
Namespace와 동일한 ID를 이용해 서로 다른 뷰를 하나의 자연스러운 전환으로 연결하는 방법을 살펴봅니다.
Swift 제네릭으로 재사용 가능한 코드 만들기
제네릭 함수와 타입, 타입 제약을 이용해 타입 안전성을 유지하면서 중복을 줄이는 방법을 정리합니다.
Swift inout 매개변수 이해하기
값 타입 매개변수를 함수 안에서 변경하는 inout의 사용법과 copy-in copy-out 동작을 살펴봅니다.
safeAreaInset으로 안전 영역에 콘텐츠 배치하기
safeAreaInset의 edge와 spacing이 콘텐츠 영역에 미치는 영향을 상단·하단 배치 예제로 살펴봅니다.
presentationDetents로 크기를 조절하는 Sheet 만들기
presentationDetents로 Sheet의 높이를 지정하고 selection으로 현재 크기를 제어하는 방법을 정리합니다.
퀵 정렬의 분할 정복 과정 이해하기
피벗을 기준으로 배열을 나누고 재귀적으로 정렬하는 퀵 정렬의 과정과 시간 복잡도를 살펴봅니다.
버블 정렬의 동작 과정 이해하기
인접한 두 원소를 반복해서 비교·교환하는 버블 정렬의 동작과 O(n²) 비용을 살펴봅니다.
시간 복잡도와 Big-O 표기법 이해하기
입력 크기에 따른 실행 시간의 증가율을 Big-O로 표현하고 대표적인 복잡도를 비교합니다.
Combine의 Publisher와 Subscriber 이해하기
Combine에서 Publisher가 값을 내보내고 Subscriber가 구독하는 흐름과 주요 연산자를 정리합니다.
Swift의 escaping 클로저 이해하기
함수 실행이 끝난 뒤에도 호출되는 escaping 클로저의 생명주기와 메모리 관리 시 주의점을 살펴봅니다.
SwiftUI @State로 값의 변화 관리하기
뷰가 소유한 값의 변화를 추적하고 화면을 다시 그리게 하는 @State의 역할과 사용 범위를 정리합니다.
@EnvironmentObject로 전역 상태 공유하기
여러 하위 뷰가 같은 ObservableObject를 공유할 때 @EnvironmentObject를 주입하고 읽는 방법을 살펴봅니다.
SwiftUI 객체 상태와 프로퍼티 래퍼 비교하기
ObservableObject와 @Published의 변화가 뷰에 전달되는 과정, @ObservedObject와 @StateObject의 소유권 차이를 비교합니다.
SwiftUI에서 데이터 모델 분리하기
화면 데이터와 표현 코드를 분리하고 Identifiable 모델을 목록과 상세 뷰에서 활용하는 방법을 정리합니다.
GeometryReader로 크기와 좌표 읽기
부모가 제안한 크기와 좌표 공간을 읽어 반응형 레이아웃을 만드는 GeometryReader의 동작을 살펴봅니다.
ScrollViewReader로 스크롤 위치 제어하기
뷰에 ID를 부여하고 scrollTo를 호출해 원하는 항목으로 이동하는 방법과 anchor 옵션을 정리합니다.
NavigationStack으로 화면 이동 관리하기
NavigationLink와 NavigationPath를 이용해 화면 이동 경로를 값으로 관리하는 방법을 살펴봅니다.
@AppStorage로 사용자 설정 저장하기
UserDefaults와 연결된 @AppStorage로 간단한 사용자 설정을 저장하고 화면에 반영하는 방법을 정리합니다.
한글 받침에 맞는 조사 자동으로 붙이기
문자열의 마지막 한글 음절을 분해해 받침 유무를 판별하고 알맞은 조사를 붙이는 방법을 구현합니다.
onTapGesture로 탭 동작 처리하기
onTapGesture의 count와 location을 활용해 단일·다중 탭과 탭 위치를 처리하는 방법을 살펴봅니다.
if let과 guard let으로 옵셔널 안전하게 다루기
옵셔널 값을 안전하게 꺼내는 if let과 guard let의 제어 흐름과 사용 기준을 비교합니다.
운영체제의 중심, 커널 이해하기
하드웨어와 애플리케이션 사이에서 프로세스, 메모리, 장치를 관리하는 커널의 역할과 구조를 살펴봅니다.
SwiftUI transition으로 뷰의 등장과 퇴장 표현하기
뷰가 계층에 삽입되거나 제거될 때 transition과 animation으로 전환 효과를 적용하는 방법을 정리합니다.
onAppear와 onDisappear의 실행 시점 이해하기
뷰의 등장과 퇴장 시 실행되는 생명주기 콜백의 사용법과 반복 호출 가능성을 살펴봅니다.
운영체제는 어떤 일을 할까
컴퓨터 자원을 관리하고 프로그램에 실행 환경을 제공하는 운영체제의 목적과 핵심 역할을 정리합니다.
SwiftUI ActionSheet로 선택지 제공하기
여러 선택지를 아래에서 제시하는 ActionSheet의 버튼 구성과 표시 상태 관리 방법을 살펴봅니다.
SwiftUI Alert 구성과 상태 관리하기
제목·메시지·버튼을 구성하고 바인딩 상태로 Alert의 표시 시점을 제어하는 방법을 정리합니다.
SwiftUI List의 구성과 편집 기능
정적·동적 행과 Section을 구성하고 삭제·이동·추가 기능 및 List 스타일을 적용하는 방법을 살펴봅니다.
조건에 따라 달라지는 SwiftUI 뷰 만들기
ViewBuilder 안에서 if-else와 switch를 사용해 상태에 따라 다른 뷰를 반환하는 방법을 정리합니다.
@Binding으로 부모와 자식의 상태 연결하기
상태의 소유권은 부모에 두고 자식이 값을 읽고 변경하게 만드는 @Binding의 데이터 흐름을 살펴봅니다.
LazyVStack과 LazyHStack은 언제 필요할까
화면에 필요한 시점에 자식 뷰를 만드는 Lazy Stack의 특징과 일반 Stack과의 차이를 비교합니다.
SwiftUI ScrollView의 방향과 표시 옵션
수직·수평 스크롤 방향과 스크롤 표시기 옵션을 지정하고 콘텐츠를 배치하는 방법을 정리합니다.
ForEach로 데이터 기반 뷰 만들기
식별 가능한 데이터를 순회하며 반복되는 뷰를 만드는 ForEach의 기본 사용법을 살펴봅니다.
초기화와 enum으로 재사용 가능한 뷰 만들기
초기화 매개변수와 enum을 이용해 같은 구조의 뷰를 여러 상태와 스타일로 재사용하는 방법을 정리합니다.
SwiftUI Image의 크기와 비율 조절하기
Asset과 SF Symbols 이미지를 불러오고 resizable, aspectRatio로 크기와 비율을 조절하는 방법을 살펴봅니다.
padding과 Spacer로 여백 설계하기
뷰 안팎의 여백을 만드는 padding과 남은 공간을 배분하는 Spacer의 차이를 정리합니다.
VStack, HStack, ZStack으로 레이아웃 구성하기
세로·가로·겹침 방향으로 자식 뷰를 배치하는 세 가지 Stack과 정렬·간격 옵션을 비교합니다.
background와 overlay의 레이아웃 차이
기준 뷰의 뒤와 앞에 콘텐츠를 배치하는 background와 overlay의 크기·정렬 방식을 비교합니다.
SwiftUI frame이 제안하는 크기 이해하기
부모와 자식 사이에서 크기를 제안하는 frame의 width, height, alignment 동작을 살펴봅니다.
SF Symbols로 SwiftUI 아이콘 구성하기
SF Symbols를 Image로 불러오고 크기, 굵기, 색과 렌더링 방식을 조절하는 방법을 정리합니다.
SwiftUI에서 그라디언트 만들기
색과 위치를 조합해 Linear, Radial, Angular Gradient를 만드는 방법을 비교합니다.
SwiftUI Color를 만들고 적용하는 방법
기본 색상, RGB와 Asset 색상을 생성하고 foreground·background에 적용하는 방법을 살펴봅니다.
SwiftUI Shape으로 기본 도형 그리기
Circle, Rectangle, Capsule 등 기본 Shape을 만들고 fill과 stroke로 표현하는 방법을 정리합니다.
SwiftUI Text의 스타일과 정렬 다루기
문자열을 표시하고 font, weight, alignment와 줄 수 제한으로 텍스트 스타일을 제어하는 방법을 살펴봅니다.
Swift 조건문: if-else와 switch
조건의 형태와 경우의 수에 따라 if-else와 switch를 선택하고 범위 패턴과 fallthrough를 올바르게 사용하는 방법을 정리합니다.
Swift 열거형과 원시값
서로 연관된 상태를 enum으로 모델링하고 타입 추론과 원시값을 활용해 유효한 값만 안전하게 다루는 방법을 살펴봅니다.
Swift의 비교·논리·비트 연산자
비교 연산으로 Bool 값을 만들고 논리 연산으로 조건을 조합하는 방법, 비트 연산과 OptionSet이 필요한 경우를 예제로 정리합니다.
Swift 반복문: for-in, while, repeat-while
컬렉션 순회와 조건 반복에 사용하는 for-in, while, repeat-while의 차이를 비교하고 상황에 맞는 선택 기준을 설명합니다.
Swift 컬렉션: Array, Dictionary, Set
순서, 키와 값, 중복 허용 여부를 기준으로 Swift의 Array, Dictionary, Set을 비교하고 기본적인 추가·조회·삭제 방법을 정리합니다.
Swift의 Any, AnyObject와 함수 타입
여러 타입을 담는 Any와 클래스 인스턴스만 받는 AnyObject의 차이, 매개변수 표현과 일급 객체로서의 함수를 정리합니다.
Swift 기본 데이터 타입과 문자열
Int, UInt, Bool, Float, Double, Character, String의 역할을 비교하고 문자열 보간·여러 줄 문자열·접두어와 접미어 검사를 설명합니다.
Swift 변수·상수와 네이밍
var와 let의 차이를 이해하고 Swift의 식별자 규칙, lowerCamelCase 중심의 네이밍 원칙과 순서도로 흐름을 표현하는 방법을 정리합니다.
Swift 함수, 반복문과 문자열 보간
작업을 함수로 분리하고 for-in으로 반복하며 문자열 보간과 print의 separator·terminator로 출력 형식을 제어하는 방법을 살펴봅니다.
Git Fork와 Pull Request 이해하기
원본 저장소를 Fork한 뒤 브랜치를 추적하고 변경을 Push해 Pull Request로 전달하는 협업 흐름과 흔한 브랜치 누락 문제를 정리합니다.
컴퓨팅 사고와 Git의 기본 개념
이진수와 문자 인코딩, 알고리즘과 추상화, 컴퓨터 구조를 통해 컴퓨팅 사고의 기초를 살펴보고 Git의 버전 관리 흐름을 연결합니다.