← 홈

🔌

⌘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

기초

기본 구조

스케치 구조
// Called once at startup
void setup() {
  // Initialize pins, serial, etc.
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

// Called repeatedly
void loop() {
  // Main program logic
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

Arduino CLI

arduino-cli compile --fqbn arduino:avr:uno sketch 스케치 컴파일
arduino-cli upload -p /dev/ttyUSB0 --fqbn arduino:avr:uno sketch 보드에 업로드
arduino-cli board list 연결된 보드 목록
arduino-cli lib install "Servo" 라이브러리 설치
arduino-cli monitor -p /dev/ttyUSB0 시리얼 모니터

디지털 I/O

디지털 핀

핀 모드
// Set pin mode
pinMode(pin, INPUT);         // High impedance input
pinMode(pin, OUTPUT);        // Output
pinMode(pin, INPUT_PULLUP);  // Input with internal pull-up

// Write digital output
digitalWrite(pin, HIGH);     // Set pin high (5V/3.3V)
digitalWrite(pin, LOW);      // Set pin low (0V)

// Read digital input
int value = digitalRead(pin);  // Returns HIGH or LOW
버튼 예제
const int buttonPin = 2;
const int ledPin = 13;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

아날로그 I/O

아날로그 핀

아날로그 읽기/쓰기
// Read analog input (0-1023 for 10-bit ADC)
int value = analogRead(A0);

// Convert to voltage (for 5V reference)
float voltage = value * (5.0 / 1023.0);

// PWM output (0-255)
analogWrite(pin, 127);  // 50% duty cycle

// Change PWM frequency (advanced)
// TCCR0B = TCCR0B & 0b11111000 | 0x01;
가변저항 예제
const int potPin = A0;
const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int potValue = analogRead(potPin);
  int brightness = map(potValue, 0, 1023, 0, 255);
  analogWrite(ledPin, brightness);
  delay(10);
}

시리얼 통신

시리얼

시리얼 기초
void setup() {
  Serial.begin(9600);  // Start serial at 9600 baud
}

void loop() {
  // Print data
  Serial.print("Value: ");
  Serial.println(42);        // With newline
  Serial.printf("x=%d\n", x); // Formatted (ESP32)
  
  // Read data
  if (Serial.available() > 0) {
    char c = Serial.read();           // Read one byte
    String s = Serial.readString();   // Read string
    int n = Serial.parseInt();        // Read integer
  }
}

타이밍

시간 함수

지연 및 타이밍
delay(1000);              // Wait 1000 milliseconds
delayMicroseconds(100);   // Wait 100 microseconds

unsigned long ms = millis();   // Milliseconds since start
unsigned long us = micros();   // Microseconds since start

// Non-blocking delay pattern
unsigned long previousMillis = 0;
const long interval = 1000;

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    // Do something every interval
  }
}

일반 라이브러리

인기 라이브러리

서보
#include <Servo.h>

Servo myServo;

void setup() {
  myServo.attach(9);  // Attach to pin 9
}

void loop() {
  myServo.write(90);   // Move to 90 degrees
  delay(1000);
  myServo.write(0);    // Move to 0 degrees
  delay(1000);
}
I2C (Wire)
#include <Wire.h>

void setup() {
  Wire.begin();  // Join as master
}

void loop() {
  // Write to device
  Wire.beginTransmission(0x50);  // Address
  Wire.write(0x00);              // Register
  Wire.write(0xFF);              // Data
  Wire.endTransmission();
  
  // Read from device
  Wire.requestFrom(0x50, 1);     // Request 1 byte
  if (Wire.available()) {
    byte data = Wire.read();
  }
}
SPI
#include <SPI.h>

const int CS = 10;

void setup() {
  SPI.begin();
  pinMode(CS, OUTPUT);
  digitalWrite(CS, HIGH);
}

void loop() {
  digitalWrite(CS, LOW);         // Select device
  SPI.transfer(0x01);            // Send byte
  byte result = SPI.transfer(0); // Receive byte
  digitalWrite(CS, HIGH);        // Deselect
}

인터럽트

외부 인터럽트

인터럽트 처리
volatile int counter = 0;  // Use volatile!

void setup() {
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(
    digitalPinToInterrupt(2),
    handleInterrupt,
    FALLING  // RISING, FALLING, CHANGE, LOW
  );
}

void handleInterrupt() {
  counter++;  // Keep ISR short!
}

void loop() {
  noInterrupts();  // Disable interrupts
  int c = counter;
  interrupts();    // Re-enable
  Serial.println(c);
}