← 홈

λ

⌘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

기초

설정

ghcup install ghc GHC 설치
ghci 대화형 REPL
ghc Main.hs -o main 컴파일
runghc script.hs 스크립트 실행
cabal init 프로젝트 초기화
cabal build 프로젝트 빌드
cabal run 프로젝트 실행
stack new myproject 새 Stack 프로젝트

기본 문법

Hello World
main :: IO ()
main = putStrLn "Hello, World!"

-- With do notation
main = do
  putStrLn "What is your name?"
  name <- getLine
  putStrLn ("Hello, " ++ name ++ "!")
변수와 타입
-- Type annotations
x :: Int
x = 42

pi' :: Double
pi' = 3.14159

name :: String
name = "Haskell"

isTrue :: Bool
isTrue = True

-- Type inference
result = x + 10  -- Inferred as Int

함수

함수 정의

기본 함수
-- Simple function
add :: Int -> Int -> Int
add x y = x + y

-- Pattern matching
factorial :: Int -> Int
factorial 0 = 1
factorial n = n * factorial (n - 1)

-- Guards
absVal :: Int -> Int
absVal n
  | n < 0     = -n
  | otherwise = n

-- Where clause
circleArea :: Double -> Double
circleArea r = pi * r ^ 2
  where pi = 3.14159
람다 & 고차 함수
-- Lambda expression
add = \x y -> x + y

-- Higher-order functions
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)

-- map, filter, fold
map (*2) [1,2,3]         -- [2,4,6]
filter even [1,2,3,4]    -- [2,4]
foldr (+) 0 [1,2,3]      -- 6
foldl (+) 0 [1,2,3]      -- 6

-- Function composition
f . g = \x -> f (g x)
squareSum = sum . map (^2)

리스트

리스트 연산

리스트 기초
-- List creation
nums = [1, 2, 3, 4, 5]
chars = ['a', 'b', 'c']  -- Same as "abc"
range = [1..10]          -- [1,2,3,4,5,6,7,8,9,10]
even' = [2,4..10]        -- [2,4,6,8,10]

-- Cons operator
1 : [2, 3]               -- [1,2,3]
'h' : "ello"             -- "hello"

-- Concatenation
[1,2] ++ [3,4]           -- [1,2,3,4]
리스트 함수
head [1,2,3]       -- 1
tail [1,2,3]       -- [2,3]
last [1,2,3]       -- 3
init [1,2,3]       -- [1,2]
length [1,2,3]     -- 3
null []            -- True
reverse [1,2,3]    -- [3,2,1]
take 2 [1,2,3]     -- [1,2]
drop 2 [1,2,3]     -- [3]
elem 2 [1,2,3]     -- True
zip [1,2] ['a','b'] -- [(1,'a'),(2,'b')]
zipWith (+) [1,2] [3,4]  -- [4,6]
리스트 컴프리헨션
[x * 2 | x <- [1..5]]                -- [2,4,6,8,10]
[x | x <- [1..10], even x]           -- [2,4,6,8,10]
[(x,y) | x <- [1,2], y <- ['a','b']]  -- [(1,'a'),(1,'b'),(2,'a'),(2,'b')]
[x + y | x <- [1,2], y <- [10,20], x + y > 11]  -- [12,21,22]

타입

타입 시스템

대수적 데이터 타입
-- Sum type (enum)
data Color = Red | Green | Blue

-- Product type (record)
data Person = Person {
  name :: String,
  age :: Int
}

-- Usage
john = Person { name = "John", age = 30 }
john = Person "John" 30

-- Parameterized type
data Maybe a = Nothing | Just a
data Either a b = Left a | Right b
data List a = Empty | Cons a (List a)
타입 클래스
-- Define typeclass
class Eq a where
  (==) :: a -> a -> Bool
  (/=) :: a -> a -> Bool

-- Instance
instance Eq Color where
  Red == Red = True
  Green == Green = True
  Blue == Blue = True
  _ == _ = False

-- Deriving
data Point = Point Int Int
  deriving (Show, Eq, Ord)

-- Common typeclasses: Show, Read, Eq, Ord, Num, Functor, Monad

모나드

모나드 기초

Maybe 모나드
-- Maybe for optional values
safeDivide :: Int -> Int -> Maybe Int
safeDivide _ 0 = Nothing
safeDivide x y = Just (x `div` y)

-- Chaining with >>=
result = Just 10 >>= \x ->
         Just 2  >>= \y ->
         safeDivide x y  -- Just 5

-- Do notation (same as above)
result = do
  x <- Just 10
  y <- Just 2
  safeDivide x y
IO 모나드
-- IO actions
main :: IO ()
main = do
  putStrLn "Enter name:"
  name <- getLine
  let greeting = "Hello, " ++ name
  putStrLn greeting
  return ()

-- Useful IO functions
print :: Show a => a -> IO ()
readFile :: FilePath -> IO String
writeFile :: FilePath -> String -> IO ()
getArgs :: IO [String]