← 홈

⚙️C/C++

⌘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

📝 C 기본

📦 데이터 타입

int x = 10; 정수 (4 바이트)
float f = 3.14f; 부동소수점 (4 바이트)
double d = 3.14159; 배정밀도 (8 바이트)
char c = 'A'; 문자 (1 바이트)
char str[] = "hello"; 문자열 (char 배열)
int arr[5] = {1,2,3,4,5}; 배열 선언
const int MAX = 100; 상수

👉 포인터

int *ptr = &x; int 포인터
*ptr = 20; 포인터 역참조
ptr++; 포인터 연산
int **pp = &ptr; 이중 포인터
void *vp; void 포인터
int (*fp)(int); 함수 포인터

🧠 메모리 관리

malloc(size) 메모리 할당
calloc(n, size) 할당 및 초기화
realloc(ptr, size) 메모리 재할당
free(ptr) 메모리 해제
sizeof(type) 타입 크기

C++ 기본

📤 입출력 & 문자열

std::cout << "text" << std::endl; 표준 출력
std::cin >> variable; 표준 입력
std::getline(std::cin, str); 한 줄 읽기
std::string s = "hello"; 문자열 타입
s.length() / s.size() 문자열 길이
s.substr(pos, len) 부분 문자열
s.find("text") 부분 문자열 찾기

🧠 메모리 (C++)

int *p = new int; 단일 할당
int *arr = new int[10]; 배열 할당
delete p; 단일 해제
delete[] arr; 배열 해제
std::unique_ptr<T> 유니크 스마트 포인터
std::shared_ptr<T> 공유 스마트 포인터
std::make_unique<T>(args) unique_ptr 생성
std::make_shared<T>(args) shared_ptr 생성

🔗 참조

int &ref = x; Lvalue 참조
int &&rref = 10; Rvalue 참조
const int &cref = x; const 참조
std::move(obj) 이동 시맨틱
std::forward<T>(arg) 완벽 전달

🏗️ 객체 지향 프로그래밍

📦 클래스

class MyClass { }; 클래스 정의
public: 공개 접근
private: 비공개 접근
protected: 보호 접근
MyClass() { } 생성자
~MyClass() { } 소멸자
MyClass(const MyClass&) 복사 생성자
MyClass(MyClass&&) 이동 생성자

🌳 상속

class Derived : public Base 공개 상속
virtual void func() 가상 함수
virtual void func() = 0 순수 가상
override 오버라이드 지정자
final final 지정자
dynamic_cast<T*>(ptr) 런타임 캐스트

연산자 오버로딩

T operator+(const T& rhs) 이항 연산자
T& operator=(const T& rhs) 대입 연산자
bool operator==(const T& rhs) 동등 연산자
T& operator[](size_t i) 첨자 연산자
operator T() 변환 연산자

📚 STL 컨테이너

📋 시퀀스 컨테이너

std::vector<T> 동적 배열
std::array<T, N> 고정 배열
std::deque<T> 양방향 큐
std::list<T> 이중 연결 리스트
std::forward_list<T> 단일 연결 리스트

🗂️ 연관 컨테이너

std::set<T> 정렬된 고유 집합
std::multiset<T> 정렬된 다중 집합
std::map<K, V> 정렬된 키-값
std::multimap<K, V> 정렬된 다중 맵
std::unordered_set<T> 해시 집합
std::unordered_map<K, V> 해시 맵

컨테이너 연산

v.push_back(x) 끝에 추가
v.emplace_back(args) 제자리 생성
v.pop_back() 끝에서 제거
v.insert(it, x) 위치에 삽입
v.erase(it) 위치에서 삭제
v.clear() 모두 삭제
v.size() 크기 얻기
v.empty() 비어있는지 확인

🔧 STL 알고리즘

🔍 정렬 & 검색

std::sort(begin, end) 범위 정렬
std::stable_sort(begin, end) 안정 정렬
std::partial_sort(begin, mid, end) 부분 정렬
std::binary_search(begin, end, val) 이진 검색
std::lower_bound(begin, end, val) 하한
std::upper_bound(begin, end, val) 상한
std::find(begin, end, val) 요소 찾기
std::find_if(begin, end, pred) 조건으로 찾기

🔄 변환

std::transform(begin, end, out, func) 요소 변환
std::copy(begin, end, out) 범위 복사
std::move(begin, end, out) 범위 이동
std::fill(begin, end, val) 값으로 채우기
std::reverse(begin, end) 범위 뒤집기
std::rotate(begin, mid, end) 범위 회전
std::unique(begin, end) 연속 중복 제거

🔢 수치

std::accumulate(begin, end, init) 요소 합계
std::inner_product(b1, e1, b2, init) 내적
std::partial_sum(begin, end, out) 부분 합
std::min_element(begin, end) 최소값 찾기
std::max_element(begin, end) 최대값 찾기
std::count(begin, end, val) 발생 횟수

🚀 모던 C++ (11/14/17/20)

🔮 Auto & 타입 추론

auto x = 10; 자동 타입 추론
decltype(expr) 표현식에서 타입 추론
auto func() -> int 후행 반환 타입
auto [a, b] = pair; 구조적 바인딩 (C++17)

🎯 람다 표현식

[](int x) { return x*2; } 기본 람다
[=](int x) { } 값으로 캡처
[&](int x) { } 참조로 캡처
[this](int x) { } this 캡처
[x=std::move(y)]() { } 초기화 캡처 (C++14)
[]<typename T>(T x) { } 제네릭 람다 (C++20)

🔀 동시성

std::thread t(func, args); 스레드 생성
t.join(); 스레드 대기
t.detach(); 스레드 분리
std::mutex mtx; 뮤텍스
std::lock_guard<std::mutex> lock(mtx); RAII 잠금
std::async(std::launch::async, func) 비동기 실행
std::future<T> 미래 결과
std::atomic<T> 원자적 타입

C++20 기능

concept MyConcept = ...; 컨셉 정의
requires (T x) { ... } requires 절
std::ranges::sort(v) Ranges 알고리즘
v | std::views::filter(pred) Views 파이프라인
co_await expr 코루틴 await
co_yield value 코루틴 yield
std::span<T> 비소유 뷰
auto operator<=>(const T&) = default; 3방향 비교

📐 템플릿

🔧 함수 & 클래스 템플릿

template<typename T> 템플릿 선언
template<typename T, typename U> 다중 타입 매개변수
template<int N> 비타입 매개변수
template<typename... Args> 가변 템플릿
template<> class MyClass<int> 완전 특수화
template<typename T> class MyClass<T*> 부분 특수화

🏷️ 타입 특성

std::is_same_v<T, U> 같은 타입 확인
std::is_integral_v<T> 정수형 확인
std::is_pointer_v<T> 포인터 확인
std::remove_reference_t<T> 참조 제거
std::decay_t<T> 타입 감쇄
std::enable_if_t<cond, T> SFINAE 헬퍼

💡 팁 & 모범 사례

유용한 팁

  • 소유권에는 원시 포인터보다 스마트 포인터 선호
  • 가능한 곳에 const와 constexpr 사용
  • 큰 객체는 참조로 전달 선호
  • 리소스 관리에 RAII 사용
  • 범위 기반 for 루프 선호
  • NULL이나 0 대신 nullptr 사용
  • C 스타일 배열보다 std::array 선호
  • 컴파일러 경고 활성화 (-Wall -Wextra)