← 홈

🐪

⌘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

기초

변수

스칼라
my $name = "John";
my $age = 25;
my $pi = 3.14;
my $undef;  # undefined
배열
my @nums = (1, 2, 3, 4, 5);
my @mixed = ("a", 1, 2.5);
my $first = $nums[0];
my $len = scalar @nums;  # or $#nums + 1
push @nums, 6;
pop @nums;
shift @nums;
unshift @nums, 0;
해시
my %person = (
  name => "John",
  age => 25,
);
my $name = $person{name};
$person{city} = "NYC";
delete $person{age};
my @keys = keys %person;
my @vals = values %person;
참조
my $scalar_ref = \$name;
my $array_ref = \@nums;
my $hash_ref = \%person;

# Dereference
print $$scalar_ref;
print @$array_ref;
print %$hash_ref;

# Arrow notation
print $array_ref->[0];
print $hash_ref->{name};

문자열

문자열 연산
my $str = "Hello";
my $len = length($str);
my $upper = uc($str);
my $lower = lc($str);
my $sub = substr($str, 0, 3);  # "Hel"
my $idx = index($str, "l");    # 2
my $concat = $str . " World";
보간
my $name = "John";
print "Hello, $name!\n";       # Interpolates
print 'Hello, $name!\n';       # Literal
print "Array: @nums\n";        # Interpolates array
print "Hash key: $person{name}\n";
Here-doc
my $text = <<END;
This is a
multi-line
string.
END

제어 흐름

조건문

if/elsif/else
if ($x > 10) {
  print "big";
} elsif ($x > 5) {
  print "medium";
} else {
  print "small";
}
unless
unless ($logged_in) {
  print "Please login";
}

# Same as: if (!$logged_in)
삼항 연산자
my $status = $age >= 18 ? "adult" : "minor";
문장 수식어
print "Hi" if $greet;
print "Error" unless $valid;
print $_ for @items;

반복문

for/foreach
for my $i (0..9) {
  print "$i\n";
}

foreach my $item (@items) {
  print "$item\n";
}

# C-style
for (my $i = 0; $i < 10; $i++) {
  print "$i\n";
}
while/until
while ($x < 10) {
  $x++;
}

until ($x >= 10) {
  $x++;
}

# do-while
do {
  $x++;
} while ($x < 10);
루프 제어
for my $i (1..10) {
  next if $i % 2 == 0;  # skip even
  last if $i > 7;        # break
  redo if $retry;        # restart iteration
  print "$i\n";
}

정규 표현식

정규식 연산

매칭
if ($str =~ /pattern/) {
  print "Match!";
}

if ($str !~ /pattern/) {
  print "No match";
}

# Case insensitive
if ($str =~ /pattern/i) { }
캡처
if ($str =~ /(\w+)@(\w+)/) {
  my $user = $1;
  my $domain = $2;
}

# Named captures
if ($str =~ /(?<user>\w+)@(?<domain>\w+)/) {
  print $+{user};
}
치환
$str =~ s/old/new/;      # First occurrence
$str =~ s/old/new/g;     # Global
$str =~ s/old/new/gi;    # Global, case insensitive

# Transliteration
$str =~ tr/a-z/A-Z/;     # Uppercase
Split/Join
my @words = split /\s+/, $str;
my @parts = split /,/, $csv;
my $str = join ", ", @words;

서브루틴

함수

기본 서브루틴
sub greet {
  my ($name) = @_;
  return "Hello, $name!";
}

my $msg = greet("World");
여러 인자
sub add {
  my ($a, $b) = @_;
  return $a + $b;
}

# Default values
sub greet {
  my ($name, $greeting) = @_;
  $greeting //= "Hello";
  return "$greeting, $name!";
}
여러 값 반환
sub min_max {
  my @nums = @_;
  my $min = (sort { $a <=> $b } @nums)[0];
  my $max = (sort { $b <=> $a } @nums)[0];
  return ($min, $max);
}

my ($min, $max) = min_max(3, 1, 4, 1, 5);
익명 서브루틴
my $add = sub {
  my ($a, $b) = @_;
  return $a + $b;
};

print $add->(2, 3);

파일 I/O

파일 연산

파일 읽기
open(my $fh, "<", "file.txt") or die "Cannot open: $!";
while (my $line = <$fh>) {
  chomp $line;
  print "$line\n";
}
close($fh);

# Read entire file
my @lines = <$fh>;
my $content = do { local $/; <$fh> };
파일 쓰기
open(my $fh, ">", "file.txt") or die "Cannot open: $!";
print $fh "Hello, World!\n";
close($fh);

# Append
open(my $fh, ">>", "file.txt") or die $!;
파일 테스트
-e $file  # exists
-f $file  # regular file
-d $file  # directory
-r $file  # readable
-w $file  # writable
-s $file  # size (bytes)
-z $file  # zero size

모듈

CPAN

cpan Module::Name 모듈 설치
cpanm Module::Name cpanminus로 설치
perl -MCPAN -e shell CPAN 셸

모듈 사용

모듈 임포트
use strict;
use warnings;
use Data::Dumper;
use File::Path qw(make_path remove_tree);
use JSON qw(encode_json decode_json);
모듈 생성
# MyModule.pm
package MyModule;
use strict;
use warnings;
use Exporter qw(import);
our @EXPORT_OK = qw(hello);

sub hello {
  my ($name) = @_;
  return "Hello, $name!";
}

1;  # Module must return true