← 홈

🍎Swift

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

📝 Swift 기본

📦 변수 & 상수

let constant = 10 상수 (불변)
var variable = 10 변수 (가변)
var x: Int = 10 명시적 타입
var name: String? 옵셔널 타입
var name: String! 암시적 언래핑
typealias Name = String 타입 별칭

🔢 데이터 타입

Int, Int8, Int16, Int32, Int64 정수 타입
UInt, UInt8, ... 부호 없는 정수
Float, Double 부동소수점
Bool 불리언
String 문자열
Character 단일 문자
Any 모든 타입
AnyObject 모든 클래스 타입

옵셔널

if let value = optional { } 옵셔널 바인딩
guard let value = optional else { return } guard let
optional ?? defaultValue nil 병합
optional?.property 옵셔널 체이닝
optional! 강제 언래핑
if let x, let y { } 다중 바인딩 (Swift 5.7+)

📚 컬렉션

📋 배열

var arr: [Int] = [] 빈 배열
var arr = [1, 2, 3] 배열 리터럴
arr.append(4) 요소 추가
arr.insert(0, at: 0) 인덱스에 삽입
arr.remove(at: 0) 인덱스에서 제거
arr.count 배열 크기
arr.isEmpty 비어있는지 확인
arr.first / arr.last 첫/마지막 요소

🗂️ 딕셔너리

var dict: [String: Int] = [:] 빈 딕셔너리
var dict = ["a": 1, "b": 2] 딕셔너리 리터럴
dict["key"] = value 값 설정
dict["key"] 값 얻기 (옵셔널)
dict.removeValue(forKey: "key") 값 제거
dict.keys / dict.values 키/값

🔵 집합

var set: Set<Int> = [] 빈 집합
var set: Set = [1, 2, 3] 집합 리터럴
set.insert(4) 요소 삽입
set.remove(1) 요소 제거
set.contains(1) 포함 확인
set1.union(set2) 합집합
set1.intersection(set2) 교집합

함수 & 클로저

📦 함수

func name() { } 기본 함수
func name(param: Int) -> Int 반환 값이 있는 함수
func name(_ param: Int) 인수 레이블 없음
func name(label param: Int) 커스텀 인수 레이블
func name(param: Int = 0) 기본 매개변수
func name(_ params: Int...) 가변 매개변수
func name(param: inout Int) inout 매개변수
func name() throws -> Int throwing 함수

🎯 클로저

{ (params) -> ReturnType in } 전체 클로저 구문
{ param in return param * 2 } 추론된 타입
{ $0 * 2 } 축약 인수
arr.map { $0 * 2 } 후행 클로저
@escaping () -> Void 탈출 클로저
@autoclosure 자동 클로저
[weak self] weak 캡처
[unowned self] unowned 캡처

🏗️ 클래스 & 구조체

📦 클래스

class MyClass { } 클래스 정의
init() { } 이니셜라이저
deinit { } 디이니셜라이저
convenience init() { } 편의 이니셜라이저
required init() { } 필수 이니셜라이저
class Child: Parent { } 상속
override func method() 메서드 오버라이드
final class MyClass { } final 클래스

📐 구조체

struct MyStruct { } 구조체 정의
mutating func method() mutating 메서드
MyStruct(prop: value) 멤버별 이니셜라이저

🏷️ 속성

var stored = 0 저장 속성
var computed: Int { get { } } 계산 속성
lazy var prop = ... 지연 속성
static var prop = ... 타입 속성
willSet { } 속성 관찰자
didSet { } 속성 관찰자
@Published var prop 게시 속성

📋 프로토콜 & 확장

📄 프로토콜

protocol MyProtocol { } 프로토콜 정의
var prop: Int { get set } 속성 요구사항
func method() 메서드 요구사항
class MyClass: Protocol 프로토콜 채택
protocol P: AnotherProtocol 프로토콜 상속
associatedtype T 연관 타입
@objc optional func method() 선택적 메서드

확장

extension MyType { } 타입 확장
extension MyType: Protocol { } 프로토콜 준수
extension Array where Element: Numeric { } 조건부 확장

🎯 열거형 & 패턴 매칭

📋 열거형

enum Direction { case north, south } 기본 열거형
enum Result { case success(Int) } 연관 값
enum Status: Int { case active = 1 } 원시 값
Direction.north case 접근
Status(rawValue: 1) 원시 값으로 초기화
indirect enum Tree { } 재귀 열거형

🔀 Switch & 패턴 매칭

switch value { case pattern: } switch 문
case let x where x > 0: where 절
case .success(let value): 값 바인딩
case 0...10: 범위 패턴
case (let x, let y): 튜플 패턴
case is MyType: 타입 캐스팅 패턴
fallthrough 폴스루

동시성 (Swift 5.5+)

🔄 Async/Await

func fetchData() async -> Data 비동기 함수
let result = await fetchData() await 호출
async let a = fetch() 동시 바인딩
func method() async throws 비동기 throwing
try await task await throwing
Task { await ... } 태스크 생성
Task.detached { } 분리 태스크

🎭 액터

actor MyActor { } 액터 정의
await actor.property 액터 접근
nonisolated func method() 비격리 메서드
@MainActor 메인 액터
@globalActor 전역 액터

💡 팁 & 모범 사례

유용한 팁

  • 가능하면 var보다 let 선호
  • 조기 종료에 guard 사용
  • 값 시맨틱에 클래스보다 구조체 선호
  • 순환 참조 방지에 weak/unowned 사용
  • 코드 구성에 확장 사용
  • 프로토콜 지향 프로그래밍 선호
  • 에러 처리에 Result 타입 사용
  • UI 업데이트에 @MainActor 사용