← 홈

💎

⌘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

기초

변수와 데이터 타입

지역 변수
name = "Ruby"
인스턴스 변수
@name = "Ruby"
클래스 변수
@@count = 0
전역 변수
$global = "value"
상수
PI = 3.14159
심볼
:my_symbol
배열
arr = [1, 2, 3]
해시
hash = { key: "value", name: "Ruby" }
범위
(1..10) # 1 to 10 inclusive
(1...10) # 1 to 9

문자열 메서드

보간
"Hello, #{name}!"
길이
str.length # or str.size
대소문자 변환
str.upcase
str.downcase
str.capitalize
분할
"a,b,c".split(",") # ["a", "b", "c"]
결합
["a", "b"].join("-") # "a-b"
공백 제거
str.strip # both ends
str.lstrip # left
str.rstrip # right
치환
str.gsub("old", "new")
포함 여부
str.include?("sub")

제어 흐름

조건문

If/elsif/else
if condition
  # code
elsif other
  # code
else
  # code
end
Unless (if not)
unless condition
  # runs if condition is false
end
삼항 연산자
result = condition ? "yes" : "no"
Case/when
case value
when 1
  "one"
when 2, 3
  "two or three"
else
  "other"
end
한 줄 if
puts "yes" if condition

반복문

While 루프
while condition
  # code
end
Until 루프
until condition
  # runs until condition is true
end
For 루프
for i in 1..5
  puts i
end
Each 반복
[1, 2, 3].each { |n| puts n }
Times 반복
5.times { |i| puts i }
무한 루프와 break
loop do
  break if condition
end
Next (continue)
[1,2,3].each { |n| next if n == 2; puts n }

메서드와 블록

메서드

메서드 정의
def greet(name)
  "Hello, #{name}!"
end
기본 매개변수
def greet(name = "World")
  "Hello, #{name}!"
end
키워드 인자
def greet(name:, age: 0)
  "#{name} is #{age}"
end
스플랫 연산자
def sum(*numbers)
  numbers.reduce(:+)
end
반환값
# Last expression is returned
def add(a, b)
  a + b
end

블록과 Proc

do/end 블록
[1, 2, 3].each do |n|
  puts n
end
{} 블록
[1, 2, 3].map { |n| n * 2 }
Yield
def my_method
  yield if block_given?
end
Proc
my_proc = Proc.new { |n| n * 2 }
my_proc.call(5) # 10
람다
my_lambda = ->(n) { n * 2 }
my_lambda.call(5) # 10

클래스와 모듈

클래스

클래스 정의
class Person
  def initialize(name)
    @name = name
  end
end
속성 접근자
class Person
  attr_reader :name    # getter
  attr_writer :age     # setter
  attr_accessor :email # both
end
상속
class Student < Person
  def initialize(name, grade)
    super(name)
    @grade = grade
  end
end
클래스 메서드
class Person
  def self.count
    @@count
  end
end

모듈

모듈 정의
module Greetable
  def greet
    "Hello!"
  end
end
Include (믹스인)
class Person
  include Greetable
end
Extend (클래스 메서드)
class Person
  extend Greetable
end
네임스페이스
module MyApp
  class User
  end
end
MyApp::User.new

컬렉션

배열 메서드

Map
[1, 2, 3].map { |n| n * 2 } # [2, 4, 6]
Select (필터)
[1, 2, 3, 4].select { |n| n.even? } # [2, 4]
Reject
[1, 2, 3, 4].reject { |n| n.even? } # [1, 3]
Reduce
[1, 2, 3].reduce(0) { |sum, n| sum + n } # 6
Find
[1, 2, 3].find { |n| n > 1 } # 2
Any?/All?
[1, 2, 3].any? { |n| n > 2 } # true
[1, 2, 3].all? { |n| n > 0 } # true
정렬
[3, 1, 2].sort # [1, 2, 3]
[3, 1, 2].sort.reverse # [3, 2, 1]
평탄화
[[1, 2], [3, 4]].flatten # [1, 2, 3, 4]
nil 제거
[1, nil, 2, nil].compact # [1, 2]
중복 제거
[1, 1, 2, 2].uniq # [1, 2]

해시 메서드

접근
hash[:key]
hash.fetch(:key, "default")
키/값
hash.keys
hash.values
병합
hash1.merge(hash2)
Each
hash.each { |k, v| puts "#{k}: #{v}" }
변환
hash.transform_values { |v| v.upcase }
Select
hash.select { |k, v| v > 10 }

파일 입출력

파일 작업

파일 읽기
content = File.read("file.txt")
줄 단위 읽기
lines = File.readlines("file.txt")
파일 쓰기
File.write("file.txt", "content")
파일에 추가
File.open("file.txt", "a") { |f| f.puts "new line" }
파일 존재 여부
File.exist?("file.txt")
파일 삭제
File.delete("file.txt")

예외 처리

예외 처리

Begin/rescue
begin
  # risky code
rescue StandardError => e
  puts e.message
end
다중 rescue
begin
  # code
rescue TypeError
  # handle
rescue ArgumentError
  # handle
end
Ensure (finally)
begin
  # code
rescue
  # handle
ensure
  # always runs
end
예외 발생
raise "Error message"
raise ArgumentError, "Invalid argument"
재시도
begin
  # code
rescue
  retry # try again
end