Vim에서 긴 코드를 수정할 때 마우스 휠 대신 마크(Mark) 기능을 사용하면 작업 효율이 비약적으로 상승함. 1. 마크(Mark)란? 문서 내 특정 위치에 **'보이지 않는 북마크'**를 남기는 기능. 알파벳을 이용해 위치를 저장하고 단축키로 즉시 복귀할 수 있음. 2. 기본 사용법 위치 기억하기 (Marking) m + 알파벳: 현재 위치를 해당 알파벳으로 기억 (예: ma) 위치로 이동하기 (Jumping) '... Continue Reading →
Python function keyword-only and positional-only
기본 문법 def function(positional_only, /, flexible, *, keyword_only): pass / 앞: 위치 전용 - 순서대로만 /와 * 사이: 자유 - 둘 다 가능 * 뒤: 키워드 전용 - 이름=값으로만 키워드 전용 (*) def connect(*, host: str, port: int): pass connect(host="localhost", port=8080) # ✓ connect("localhost", 8080) # ✗ 위치 전용 (/) def pow(x, y, /): return x ** y pow(2, 3) # ✓ pow(x=2, y=3) # ✗... Continue Reading →
Google ADK와 Pydantic: 에이전트 초기화의 내부 구조
Google ADK(Agent Development Kit)에서 커스텀 에이전트를 설계할 때, 부모 클래스의 생성자인 super().__init__에 정의된 멤버 변수들을 모두 전달하는 구조를 가진다. 일반적인 상속 구조와는 다른 이 메커니즘의 핵심은 Pydantic에 있다. 1. Pydantic 기반의 필드 주입 ADK의 BaseAgent는 Pydantic의 BaseModel을 상속받아 구현되었다. 파이썬의 표준 클래스와 달리, Pydantic 기반 클래스는 클래스 바디에 선언된 타입 어노테이션을 참조하여 생성자 인자를 동적으로... Continue Reading →
Vim 단축키
기본 모드 모드 전환 방법 키설명iInsert 모드 (커서 위치)IInsert 모드 (줄 맨 앞)aInsert 모드 (커서 다음)AInsert 모드 (줄 맨 뒤)oInsert 모드 (아래 새 줄)OInsert 모드 (위에 새 줄)EscNormal 모드로 돌아가기Ctrl+[Normal 모드로 (Esc 대체)vVisual 모드 (문자 단위)VVisual 모드 (줄 단위)Ctrl+vVisual Block 모드:Command 모드 이동 (Motions) 기본 방향키 키설명h왼쪽j아래k위l오른쪽w다음 단어 시작W다음 단어 시작 (공백 기준)e다음 단어 끝E다음... Continue Reading →
IntersectionObserver를 활용한 TOC(Table of Contents / 목차) 구현
개요 IntersectionObserver API를 사용하면 스크롤 이벤트 없이도 효율적으로 요소의 가시성을 감지할 수 있다. 이 특성을 활용하여 문서의 목차(TOC)를 구현하고, 현재 읽고 있는 섹션을 자동으로 하이라이트하는 기능을 만들 수 있다. IntersectionObserver란? IntersectionObserver는 타겟 요소와 상위 요소 또는 뷰포트 사이의 교차 영역 변화를 비동기적으로 관찰하는 API다. 스크롤 이벤트를 직접 다루는 것보다 성능이 우수하며, 코드도 더 간결하게 작성할... Continue Reading →
CSS Display와 Spacing 완벽 가이드
"Claude 생성 문서" Display 속성의 기본값 display 속성의 기본값은 요소마다 다릅니다. Block 요소 (display: block) <div>, <p>, <h1>~<h6>, <ul>, <ol>, <li> <header>, <footer>, <section>, <article> <form>, <table> Inline 요소 (display: inline) <span>, <a>, <strong>, <em>, <b>, <i> <code>, <small> Inline-block 요소 <img>, <button>, <input>, <select>, <textarea> 핵심: <div>는 기본값이 display: block이므로, 따로 지정하지 않아도 block으로... Continue Reading →
임베디드 기사 실기 기출문제 확장판 (2015-2023년)
임베디드 기사 실기 기출문제 확장판 (2015-2023년) 본 문서는 2015년부터 2023년까지의 임베디드 기사 실기 기출문제를 주제별로 분류하고, 내용을 검증·수정·확장한 자료입니다. 📋 목차 메모리 관련 컴파일러 및 링커 주소 지정 및 데이터 표현 리눅스 파일 시스템 부팅 및 시스템 초기화 소프트웨어 개발 방법론 네트워크 프로그래밍 커널 관련 프로세스 및 스레드 동기화 기법 메모리 관리 디바이스 드라이버 UML... Continue Reading →
Nginx Reverse Proxy 완벽 가이드
Nginx를 사용하면 특정 도메인 경로를 로컬 포트로 연결할 수 있습니다. 예를 들어 http://yourdomain.com/api를 http://localhost:3000으로 연결하는 것이 가능합니다. Nginx 설치 # Ubuntu/Debian sudo apt update sudo apt install nginx # CentOS/RHEL sudo yum install nginx 기본 설정 /etc/nginx/sites-available/myapp 파일을 생성합니다: server { listen 80; server_name yourdomain.com; location /api { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Host $host;... Continue Reading →
브라우저가 자동으로 반응하는 HTTP 상태 코드와 헤더들
웹 개발을 하다 보면 HTTP 상태 코드를 자주 다루게 됩니다. 하지만 이 중 일부는 단순히 정보를 전달하는 것을 넘어서, 브라우저가 특정 동작을 자동으로 실행하도록 만듭니다. 예를 들어 301 Moved Permanently를 받으면 브라우저는 자동으로 새 주소로 이동하고, 401 Unauthorized를 받으면 로그인 팝업을 띄웁니다. 이런 "브라우저의 자동 동작"을 이해하면 더 효율적인 웹 애플리케이션을 만들 수 있습니다. 이... Continue Reading →
무료 온프레미스 칸반보드 + 업무관리 도구 탐색기
개인이나 팀에서 무료로 사용할 수 있는 온프레미스 칸반보드 솔루션들을 알아봤습니다. Notion을 사용 중이지만, 자체 서버에서 운영하면서 API도 제공하는 도구들을 찾아보았습니다. 오픈소스 칸반보드 옵션들 Wekan MIT 라이선스 오픈소스 Trello 클론으로 UI가 매우 유사 Docker로 간편 설치 REST API 제공 카드 댓글, 라벨, 체크리스트 등 기본 기능 제공 실시간 업데이트 지원 특징: 심플하고 가벼우며 Trello에서 데이터 마이그레이션... Continue Reading →
