← 홈

🟨JavaScript

⌘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

📦 기본

🏷️ 변수 & 타입

let x = 1 블록 스코프 변수
const y = 2 상수 (재할당 불가)
var z = 3 함수 스코프 (피하기)
typeof x 변수 타입 확인
undefined 초기화되지 않은 변수
null 의도적 빈 값
NaN 숫자가 아님
Infinity / -Infinity 무한 값

연산자

=== / !== 엄격한 동등 (타입 + 값)
== / != 느슨한 동등 (피하기)
&& 논리 AND
|| 논리 OR
?? Nullish 병합
?. 옵셔널 체이닝
...arr 스프레드 연산자
...rest 나머지 매개변수
** 거듭제곱

📝 문자열

🔤 문자열 메서드

`Hello ${name}` 템플릿 리터럴
s.length 문자열 길이
s.toUpperCase() / toLowerCase() 대소문자 변환
s.trim() / trimStart() / trimEnd() 공백 제거
s.split(sep) 배열로 분할
s.slice(start, end) 부분 문자열 추출
s.substring(start, end) 부분 문자열 추출
s.replace(old, new) 첫 번째 일치 교체
s.replaceAll(old, new) 모든 일치 교체
s.includes(sub) 포함 여부 확인
s.startsWith(pre) / endsWith(suf) 시작/끝 확인
s.indexOf(sub) 인덱스 찾기 (없으면 -1)
s.padStart(len, char) / padEnd() 문자열 패딩
s.repeat(n) 문자열 반복

📋 배열

📑 배열 메서드

[...arr1, ...arr2] 배열 병합
arr.push(x) / pop() 끝에 추가/제거
arr.unshift(x) / shift() 앞에 추가/제거
arr.slice(start, end) 부분 추출 (불변)
arr.splice(i, n, ...items) 제거/삽입 (변경)
arr.concat(arr2) 배열 합치기
arr.join(sep) 문자열로 합침
arr.reverse() 역순 (변경)
arr.sort((a,b) => a-b) 정렬 (변경)
arr.includes(x) 포함 여부
arr.indexOf(x) / lastIndexOf(x) 인덱스 찾기
arr.flat(depth) 중첩 배열 평탄화
Array.isArray(x) 배열인지 확인
Array.from(iterable) 이터러블에서 생성

🔄 배열 반복

arr.forEach(fn) 각 요소에 대해 실행
arr.map(fn) 요소 변환
arr.filter(fn) 요소 필터링
arr.reduce((acc, x) => ..., init) 단일 값으로 축소
arr.find(fn) 첫 번째 일치 찾기
arr.findIndex(fn) 첫 번째 일치 인덱스
arr.some(fn) 하나라도 일치하는지
arr.every(fn) 모두 일치하는지
arr.flatMap(fn) 맵 후 평탄화

🔧 객체

📦 객체 연산

{ ...obj1, ...obj2 } 객체 병합
{ key: value } 객체 리터럴
{ key } 단축 프로퍼티
{ [expr]: value } 계산된 프로퍼티
obj.key / obj["key"] 프로퍼티 접근
obj?.key 옵셔널 체이닝
delete obj.key 프로퍼티 삭제
"key" in obj 키 존재 확인
Object.keys(obj) 모든 키 가져오기
Object.values(obj) 모든 값 가져오기
Object.entries(obj) [키, 값] 쌍 가져오기
Object.assign(target, src) 프로퍼티 복사
Object.freeze(obj) 불변으로 만들기
Object.fromEntries(arr) 엔트리에서 생성

📤 구조 분해

const { a, b } = obj 객체 구조 분해
const { a: x } = obj 변수 이름 변경
const { a = 1 } = obj 기본값
const { a, ...rest } = obj 나머지 프로퍼티
const [a, b] = arr 배열 구조 분해
const [a, , b] = arr 요소 건너뛰기
const [a, ...rest] = arr 나머지 요소

⚙️ 함수

📝 함수 유형

function name(a, b) {} 함수 선언
const fn = function() {} 함수 표현식
const fn = () => {} 화살표 함수
const fn = (a) => a * 2 암시적 반환 화살표
function fn(a = 1) {} 기본 매개변수
function fn(...args) {} 나머지 매개변수
fn.call(this, a, b) this 컨텍스트로 호출
fn.apply(this, [a, b]) 배열 인자로 호출
fn.bind(this) 바인딩된 함수 생성

🔒 클로저 & 스코프

let (block scope) 블록 스코프 변수
const (block scope) 블록 스코프 상수
var (function scope) 함수 스코프 (호이스팅)
closure 외부 스코프 접근 함수
IIFE: (function() {})() 즉시 실행 함수

비동기/Promise

🤝 Promise

new Promise((resolve, reject) => {}) Promise 생성
promise.then(fn) 이행 처리
promise.catch(fn) 거부 처리
promise.finally(fn) 항상 실행
Promise.resolve(val) 이행된 Promise 생성
Promise.reject(err) 거부된 Promise 생성
Promise.all([p1, p2]) 모두 대기 (빠른 실패)
Promise.allSettled([p1, p2]) 모두 대기 (실패 없음)
Promise.race([p1, p2]) 첫 번째 완료
Promise.any([p1, p2]) 첫 번째 이행

Async/Await

async function fn() {} 비동기 함수
const fn = async () => {} 비동기 화살표 함수
await promise Promise 대기
try { await } catch (e) {} 에러 처리
await Promise.all([...]) 병렬 실행
for await (const x of asyncIter) 비동기 반복

📝 비동기 예제

// 에러 처리가 있는 Async/await
async function fetchData(url) {
try {
const response = await fetch(url);
if (!response.ok) throw new Error('HTTP 에러');
const data = await response.json();
return data;
} catch (error) {
console.error('Fetch 실패:', error);
throw error;
}
}

// 병렬 요청
const [users, posts] = await Promise.all([
fetchData('/api/users'),
fetchData('/api/posts')
]);

🏛️ 클래스

📦 클래스 문법

class Name {} 클래스 선언
class Child extends Parent {} 상속
constructor() {} 생성자 메서드
super() 부모 생성자 호출
super.method() 부모 메서드 호출
static method() {} 정적 메서드
static property = value 정적 프로퍼티
get prop() {} 게터
set prop(val) {} 세터
#privateField 프라이빗 필드
#privateMethod() {} 프라이빗 메서드

📦 모듈

📤 가져오기/내보내기

export const x = 1 명명된 내보내기
export default fn 기본 내보내기
export { x, y } 내보내기 목록
export { x as alias } 이름 변경 내보내기
import { x } from './mod' 명명된 가져오기
import x from './mod' 기본 가져오기
import * as mod from './mod' 네임스페이스 가져오기
import { x as alias } from './mod' 이름 변경 가져오기
import('./mod') 동적 가져오기
export * from './mod' 전체 재내보내기

🌐 DOM

🎯 요소 선택

document.getElementById(id) ID로 가져오기
document.querySelector(sel) 첫 번째 일치
document.querySelectorAll(sel) 모든 일치
document.getElementsByClassName(c) 클래스로 가져오기
document.getElementsByTagName(t) 태그로 가져오기
el.closest(sel) 가장 가까운 조상 찾기
el.matches(sel) 선택자 일치 테스트

🔧 요소 조작

el.textContent = "text" 텍스트 내용 설정
el.innerHTML = "<p>html</p>" HTML 내용 설정
el.setAttribute(name, val) 속성 설정
el.getAttribute(name) 속성 가져오기
el.classList.add(c) / remove(c) 클래스 추가/제거
el.classList.toggle(c) 클래스 토글
el.classList.contains(c) 클래스 확인
el.style.prop = value 인라인 스타일 설정
document.createElement(tag) 요소 생성
parent.appendChild(el) 자식 추가
parent.removeChild(el) 자식 제거
el.remove() 요소 제거

🎪 이벤트

el.addEventListener(type, fn) 이벤트 리스너 추가
el.removeEventListener(type, fn) 이벤트 리스너 제거
event.preventDefault() 기본 동작 방지
event.stopPropagation() 버블링 중지
event.target 발생시킨 요소
event.currentTarget 리스너가 있는 요소
{ once: true, passive: true } 이벤트 옵션

💡

🚀 모범 사례

  • 기본적으로 const, 필요할 때 let, var 피하기
  • 비교에 == 대신 === 사용
  • this 보존을 위해 콜백에 화살표 함수 사용
  • 문자열 연결 대신 템플릿 리터럴 사용
  • 깔끔한 코드를 위해 구조 분해 사용
  • .then() 체인 대신 async/await 사용
  • null 에러 방지를 위해 옵셔널 체이닝 ?. 사용
  • 기본값을 위해 nullish 병합 ?? 사용