← 홈

🌙

⌘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

기초

변수와 타입

지역 변수
local name = "Lua"
전역 변수
name = "Lua"  -- avoid globals
Nil
local x = nil
불리언
local flag = true
숫자
local n = 42
local f = 3.14
문자열
local s = "Hello"
local s2 = 'World'
테이블 (배열)
local arr = {1, 2, 3}  -- 1-indexed!
테이블 (딕셔너리)
local t = {name = "Lua", version = 5.4}
타입 확인
type(x)  -- "nil", "number", "string", etc.

문자열

연결
"Hello " .. "World"
길이
#str
여러 줄
[[Multi
line
string]]
포맷
string.format("Hello, %s!", name)
대소문자
string.upper(s)
string.lower(s)
부분 문자열
string.sub(s, 1, 5)
찾기
string.find(s, "pattern")
치환
string.gsub(s, "old", "new")

테이블

테이블 연산

생성
local t = {}
local arr = {1, 2, 3}
local dict = {a = 1, b = 2}
접근
t[1]  -- array (1-indexed)
t.key or t["key"]  -- dict
값 설정
t[1] = "first"
t.key = "value"
길이
#t  -- only for array part
삽입
table.insert(t, value)
table.insert(t, 1, value)  -- at index
제거
table.remove(t)  -- last
table.remove(t, 1)  -- at index
정렬
table.sort(t)
table.sort(t, function(a, b) return a > b end)
연결
table.concat(t, ", ")

반복

ipairs (배열)
for i, v in ipairs(arr) do
  print(i, v)
end
pairs (전체)
for k, v in pairs(t) do
  print(k, v)
end
숫자 for
for i = 1, #t do
  print(t[i])
end

제어 흐름

조건문과 반복문

If/elseif/else
if x > 0 then
  print("positive")
elseif x < 0 then
  print("negative")
else
  print("zero")
end
Truthy/Falsy
-- Only nil and false are falsy
-- 0 and "" are truthy!
And/Or 관용구
local x = a or default
local y = condition and a or b
While
while condition do
  -- code
end
Repeat-until
repeat
  -- code
until condition
For 숫자
for i = 1, 10 do
  print(i)
end
for i = 10, 1, -1 do  -- step
  print(i)
end
Break
while true do
  if condition then break end
end

함수

함수 정의

지역 함수
local function add(a, b)
  return a + b
end
익명 함수
local add = function(a, b)
  return a + b
end
다중 반환
local function minmax(t)
  return math.min(unpack(t)), math.max(unpack(t))
end
local min, max = minmax({1, 2, 3})
가변 인자
local function sum(...)
  local args = {...}
  local total = 0
  for _, v in ipairs(args) do
    total = total + v
  end
  return total
end
기본값
local function greet(name)
  name = name or "World"
  print("Hello, " .. name)
end

클로저

클로저
local function counter()
  local count = 0
  return function()
    count = count + 1
    return count
  end
end
local c = counter()
c()  -- 1
c()  -- 2

객체 지향

객체 지향 패턴

간단한 객체
local Person = {}
Person.name = "John"
function Person:greet()
  print("Hello, " .. self.name)
end
생성자
function Person:new(name)
  local obj = {name = name}
  setmetatable(obj, {__index = self})
  return obj
end
local p = Person:new("Alice")
메서드 호출
p:greet()  -- self is p
p.greet(p) -- equivalent
상속
local Student = {}
setmetatable(Student, {__index = Person})
function Student:new(name, grade)
  local obj = Person:new(name)
  obj.grade = grade
  setmetatable(obj, {__index = self})
  return obj
end

메타테이블

메타테이블 설정
setmetatable(t, mt)
메타테이블 가져오기
getmetatable(t)
__index
mt.__index = function(t, k)
  return default
end
__newindex
mt.__newindex = function(t, k, v)
  rawset(t, k, v)
end
__tostring
mt.__tostring = function(t)
  return "MyObject"
end
__add, __sub 등
mt.__add = function(a, b)
  return a.value + b.value
end

모듈

모듈 패턴

모듈 정의
-- mymodule.lua
local M = {}

function M.hello()
  print("Hello")
end

return M
모듈 로드
local mymod = require("mymodule")
mymod.hello()
패키지 경로
package.path = package.path .. ";./lib/?.lua"

표준 라이브러리

자주 쓰는 함수

출력
print("Hello")
io.write("No newline")
수학
math.abs(x)
math.floor(x)
math.ceil(x)
math.random()
math.sin(x), math.cos(x)
OS
os.time()
os.date()
os.execute("command")
os.getenv("PATH")
파일 입출력
local f = io.open("file.txt", "r")
local content = f:read("*all")
f:close()
파일 쓰기
local f = io.open("file.txt", "w")
f:write("content")
f:close()