← 홈

🟣Kotlin

⌘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

📝 Kotlin 기본

📦 변수 & 타입

val constant = 10 불변 (final)
var variable = 10 가변
val x: Int = 10 명시적 타입
lateinit var name: String 지연 초기화
val lazy by lazy { } 지연 초기화
const val MAX = 100 컴파일 타임 상수

🔢 데이터 타입

Int, Long, Short, Byte 정수 타입
Float, Double 부동소수점
Boolean 불리언
Char 문자
String 문자열
Any 루트 타입
Unit void 동등
Nothing 반환 없음

Null 안전성

var name: String? Nullable 타입
name?.length 안전 호출
name ?: "default" 엘비스 연산자
name!! 널 아님 단언
name?.let { } 안전 let
as? 안전 캐스트

📚 컬렉션

📋 리스트

listOf(1, 2, 3) 불변 리스트
mutableListOf(1, 2, 3) 가변 리스트
emptyList<Int>() 빈 리스트
list[0] 요소 얻기
list.getOrNull(0) 안전 얻기
list.first() / list.last() 첫/마지막
list + element 요소 추가
list - element 요소 제거

🗂️ Map & Set

mapOf("a" to 1, "b" to 2) 불변 맵
mutableMapOf<String, Int>() 가변 맵
map["key"] 값 얻기 (nullable)
map.getOrDefault("key", 0) 기본값으로 얻기
setOf(1, 2, 3) 불변 집합
mutableSetOf<Int>() 가변 집합

컬렉션 연산

.filter { it > 0 } 요소 필터링
.map { it * 2 } 요소 변환
.flatMap { it.items } 중첩 평탄화
.forEach { } 요소 반복
.reduce { acc, x -> acc + x } 단일로 축소
.fold(0) { acc, x -> acc + x } 초기값으로 접기
.groupBy { it.category } 키로 그룹화
.sortedBy { it.name } 선택자로 정렬

함수 & 람다

📦 함수

fun name() { } 기본 함수
fun name(): Int { return 0 } 반환 타입 있음
fun name() = expression 단일 표현식
fun name(x: Int = 0) 기본 매개변수
fun name(vararg items: Int) vararg 매개변수
fun name(block: () -> Unit) 함수 매개변수
infix fun Int.add(x: Int) infix 함수
tailrec fun factorial(n: Int) 꼬리 재귀

🎯 람다

{ x: Int -> x * 2 } 람다 표현식
{ it * 2 } 암시적 it
list.map { it * 2 } 후행 람다
::functionName 함수 참조
Type::method 메서드 참조
{ _, y -> y } 미사용 매개변수

🔧 스코프 함수

obj.let { it.method() } let - 람다 결과 반환
obj.run { method() } run - this를 수신자로
obj.apply { prop = value } apply - 객체 반환
obj.also { print(it) } also - 부수 효과
with(obj) { method() } with - null 체크 없음
obj.takeIf { condition } takeIf - 조건부
obj.takeUnless { condition } takeUnless - 부정

🏗️ 클래스 & 객체

📦 클래스

class MyClass { } 클래스 정의
class MyClass(val prop: Int) 기본 생성자
constructor(x: Int) : this() 보조 생성자
init { } 초기화 블록
open class Parent 상속 가능
class Child : Parent() 상속
abstract class MyClass 추상 클래스
sealed class Result 봉인 클래스

📊 데이터 & 특수 클래스

data class User(val name: String) 데이터 클래스
object Singleton { } 객체 선언
companion object { } 동반 객체
enum class State { ACTIVE, INACTIVE } 열거형 클래스
value class Email(val value: String) 값 클래스
inner class Inner 내부 클래스

📋 인터페이스 & 위임

interface MyInterface { } 인터페이스 정의
class MyClass : Interface 인터페이스 구현
fun interface SAM { fun run() } 함수형 인터페이스
class MyClass : Interface by delegate 위임
var prop by Delegates.observable() 속성 위임

코루틴

🚀 기본

suspend fun fetchData() suspend 함수
launch { } 실행 후 잊기
async { } Deferred 반환
deferred.await() 결과 대기
runBlocking { } 블로킹 코루틴
coroutineScope { } 새 스코프
withContext(Dispatchers.IO) { } 컨텍스트 전환

🔄 디스패처 & 컨텍스트

Dispatchers.Main 메인/UI 스레드
Dispatchers.IO I/O 작업
Dispatchers.Default CPU 집약적
Dispatchers.Unconfined 특정 스레드 없음
Job() 작업 생성
job.cancel() 작업 취소
SupervisorJob() 독립적 자식

🌊 Flow

flow { emit(value) } flow 생성
flowOf(1, 2, 3) 값에서 flow
.collect { } 값 수집
.map { } 값 변환
.filter { } 값 필터링
.catch { } 에러 처리
.stateIn(scope) StateFlow로 변환
MutableStateFlow(initial) 가변 상태 플로우

💡 팁 & 모범 사례

유용한 팁

  • 불변성을 위해 var보다 val 선호
  • DTO에 data 클래스 사용
  • 상태에 sealed 클래스 사용
  • 스코프 함수 적절히 사용
  • !! 연산자 피하고 안전 호출 선호
  • API 확장에 확장 함수 사용
  • 람다에 inline 함수 사용
  • 비동기 스트림에 Flow 사용