COURSES
LABS
Swift 프로그래밍 가이드
Swift 언어의 기초부터 고급 기법까지 배울 수 있는 필수 공식 입문서
Hello, Swift!
01. 문서 소개
02. Swift 언어 소개
03. 버전 호환성
Swift 기본
01. 소개
02. 상수와 변수
03. 주석
04. 세미콜론
05. 정수
06. 부동 소수점 숫자
07. 타입 안전성과 타입 추론
08. 숫자 리터럴
09. 숫자 타입 변환
10. 타입 별칭
11. Boolean 타입
12. 튜플
13. 옵셔널
14. 오류 처리
15. Assertions과 Preconditions
기본 연산자
01. 소개
02. 연산자 용어 정리
03. 할당 연산자
04. 산술 연산자
05. 복합 할당 연산자
06. 비교 연산자
07. 삼항 조건 연산자
08. nil 병합 연산자
09. 범위 연산자
10. 논리 연산자
문자열과 문자
01. 소개
02. 문자열 리터럴
03. 빈 문자열 초기화하기
04. 문자열 가변성
05. 문자열은 값 타입
06. 문자 다루기
07. 문자열과 문자 연결하기
08. 문자열 보간법
09. Unicode
10. 문자열의 문자 수 세기
11. 문자열 접근 및 수정하기
12. 부분문자열
13. 문자열 비교하기
14. 문자열의 Unicode 표현
컬렉션 타입
01. 소개
02. 컬렉션의 가변성
03. Array
04. Set
05. 집합 연산
06. Dictionary
제어 흐름
01. 소개
02. for-In 루프
03. while 반복문
04. 조건문
05. 제어 흐름 변경하기
06. 조기 종료
07. defer
08. API 사용 가능성 확인하기
함수
01. 소개
02. 함수 정의 및 호출
03. 함수 매개변수와 반환 값
04. 함수 인자 레이블과 매개변수 이름
05. 함수 타입
06. 중첩 함수
클로저
01. 소개
02. 클로저 표현식
03. 후행 클로저
04. 클로저와 값 캡처
05. 클로저는 참조 타입
06. 탈출 클로저
07. Autoclosures
열거형
01. 소개
02. 열거형 문법
03. 열거형과 switch 문
04. 열거형 Case 순회하기
05. 연관값
06. 원시값
07. 재귀 열거형
구조체와 클래스
01. 소개
02. 구조체와 클래스 비교
03. 구조체와 열거형은 값 타입
04. 클래스는 참조 타입
속성
01. 소개
02. 저장 속성
03. 계산 속성
04. 속성 옵저버
05. 속성 래퍼
06. 전역 변수와 지역 변수
07. 타입 속성
메서드
01. 소개
02. 인스턴스 메서드
03. 타입 메서드
서브스크립트
01. 소개
02. 서브스크립트 문법
03. 서브스크립트 사용법
04. 서브스크립트의 다양한 옵션
05. 타입 서브스크립트
상속
01. 소개
02. 기본 클래스 정의하기
03. 상속의 개념과 서브클래싱
04. 오버라이딩
05. 오버라이딩 방지하기
해제(Deinitialization)
01. 소개
02. 객체 해제
03. Deinitializer 사용 예제
옵셔널 체이닝
01. 소개
02. 강제 언래핑의 대안, 옵셔널 체이닝
03. 모델 클래스 정의
04. 옵셔널 체이닝을 통한 속성 접근
05. 옵셔널 체이닝을 통한 메서드 호출
06. 옵셔널 체이닝을 통한 서브스크립트 접근
07. 여러 단계의 옵셔널 체이닝 연결하기
08. 옵셔널 체이닝과 옵셔널 반환 값
오류 처리
01. 소개
02. 오류 표현과 오류 던지기
03. 오류 처리하기
04. 정리 동작 지정하기
동시성
01. 소개
02. 비동기 함수 정의와 호출
03. 비동기 시퀀스
04. 비동기 함수를 병렬로 호출하기
05. 태스크와 태스크 그룹
06. Actor
07. Sendable 타입
매크로
01. 소개
02. 독립형 매크로
03. 첨부형 매크로
04. 매크로 선언
05. 매크로 확장
06. 매크로 구현
07. 매크로 개발과 디버깅
타입 캐스팅
01. 클래스 계층 구조와 타입 캐스팅
02. 타입 확인하기
03. 다운캐스팅
04. Any와 AnyObject를 위한 타입 캐스팅
중첩 타입
01. 소개
02. 중첩 타입 실전 예제
03. 중첩 타입 참조하기
Extension
01. 소개
02. Extension 문법
03. Extension으로 계산 속성 추가하기
04. Extension으로 이니셜라이저 추가하기
05. Extension으로 메서드 추가하기
06. Extension으로 서브스크립트 추가하기
07. Extension으로 중첩 타입 추가하기
프로토콜
01. 소개
02. 프로토콜 문법
03. 프로토콜의 속성 요구사항
04. 프로토콜의 메서드 요구사항
05. 프로토콜의 변경 가능 메서드 요구사항
06. 프로토콜의 이니셜라이져 요구사항
07. 프로토콜을 타입으로 사용하기
08. Delegation 패턴
09. 프로토콜 준수를 Extension으로 추가하기
10. 자동 생성된 구현 사용하기
11. 프로토콜 타입의 컬렉션
12. 프로토콜 상속
13. 클래스 전용 프로토콜
14. 프로토콜 조합
15. 프로토콜 준수 여부 확인하기
16. 선택적인 프로토콜 요구사항
17. 프로토콜 확장
제네릭
01. 소개
02. 제네릭이 해결하는 문제
03. 제네릭 함수
04. 타입 매개변수
05. 타입 매개변수 이름 짓기
06. 제네릭 타입
07. 제네릭 타입 확장하기
08. 제네릭의 타입 제약
09. 연관 타입
10. 제네릭 Where절
11. 제네릭 Where 절을 사용한 확장
12. 컨텍스트 Where 절
13. 연관 타입과 제네릭 Where절
14. 제네릭 서브스크립트
불투명 타입과 박스형 타입
01. 소개
02. 불투명 타입이 해결하는 문제
03. 불투명 타입 반환하기
04. 박스형 타입
05. 불투명 타입과 박스형 프로토콜 타입의 차이점 1편
06. 불투명 타입과 박스형 프로토콜 타입의 차이점 2편
Automatic Reference Counting
01. 소개
02. ARC는 어떻게 동작하는가?
03. 실전 ARC!
04. 강한 참조 순환 이해하기
05. 클래스 인스턴스 사이의 강한 참조 순환 해결하기
06. 클로저로 인한 강한 참조 순환
07. 클로저와 클래스 인스턴스 사이의 강한 참조 순환 해결하기
메모리 안전성
01. 소개
02. 메모리에 대한 접근 충돌 이해하기
03. In-Out 매개변수에 대한 접근 충돌
04. 메서드에서 self에 대한 접근 충돌
05. 속성에 대한 접근 충돌
접근 제어
01. 소개
02. 모듈과 소스 파일
03. 접근 수준
04. 접근 제어 문법
05. 타입별 접근 제어
06. 하위 클래스 정의 및 멤버 오버라이딩
07. 상수, 변수, 속성 및 서브스크립트의 접근 제어
08. 이니셜라이저의 접근 제어
09. 프로토콜의 접근 제어
10. Extensions
11. 제네릭 접근 수준
12. 타입 별칭 접근 제어
고급 연산자
01. 소개
02. 비트 연산자
03. 오버플로우 연산자
04. 연산자 우선순위와 결합 방향
05. 연산자 메서드
06. 사용자 정의 연산자
07. Result Builder로 선언형 코드 작성하기