dev

A collection of 41 posts
Claude Code 세션 종료 시 resume 명령어 자동 클립보드 복사
dev

Claude Code 세션 종료 시 resume 명령어 자동 클립보드 복사

Claude Code를 쓰다 보면 세션을 종료 후 재시작해야 할 때가 있다. 종료하면 claude --resume {session_id} 형태로 터미널에 뜨는데, 매번 이걸 드래그해서 복사하는 게 번거로워서 자동화했다. Claude Code의 hook 기능을 쓰면 이걸 자동화할 수 있다. 설정 ~/.claude/settings.json에 SessionEnd hook을 추가한다. "hooks": { "SessionEnd": [ { "hooks&
1 min read
SSH 접속했더니 Backspace가 안 먹힌다? terminfo 문제 해결법
dev

SSH 접속했더니 Backspace가 안 먹힌다? terminfo 문제 해결법

새 터미널 앱을 설치하고 신나게 쓰다가, 원격 서버에 SSH로 접속한 순간 Backspace가 먹통이 된 경험이 있는가? 글자를 지우려고 Backspace를 눌렀는데 커서가 뒤로 가는 게 아니라 공백이 찍히는 황당한 상황. 이 글에서는 왜 이런 일이 생기는지, 그리고 명령어 한 줄로 어떻게 해결하는지 정리한다. 증상 * 로컬에서는 모든 게 정상 * SSH로 원격 서버에
3 min read
여러 대의 Mac에서 Claude Code 설정을 동기화하는 방법
dev

여러 대의 Mac에서 Claude Code 설정을 동기화하는 방법

MacBook Pro와 Mac Mini를 동시에 쓰고 있다. 두 머신 모두 Claude Code를 쓰는데, 한쪽에서 설정한 커스텀 스킬, 에이전트, 메모리 같은 것들이 다른 쪽에는 없다. 매번 수동으로 복사하는 건 말이 안 된다. ~/.claude 폴더를 두 머신 간에 자동으로 동기화하고, 동시에 Git으로 형상관리까지 하고 싶었다. ~/.claude 안에는 뭐가 있나 Claude Code의 모든
6 min read
SSH 접속 시 zsh 탭 완성이 대소문자를 구분하는 문제 해결
dev

SSH 접속 시 zsh 탭 완성이 대소문자를 구분하는 문제 해결

맥북에서는 cd d + Tab을 누르면 D로 시작하는 폴더도 함께 뜬다. 대소문자를 구분하지 않는다. 그런데 맥미니에 SSH로 접속하면 cd d + Tab 시 소문자 d로 시작하는 폴더만 나온다. 두 머신 모두 APFS(case-insensitive) 파일시스템인데 동작이 다르다. 원인 macOS의 zsh는 기본적으로 completion 시스템(compinit)이 자동 로드되지 않는다. 맥북은 Oh My Zsh 같은
2 min read
[Powerlevel10k+Oh-My-Zsh] Cursor Agent 터미널 출력/잘림/깨짐 해결법
dev

[Powerlevel10k+Oh-My-Zsh] Cursor Agent 터미널 출력/잘림/깨짐 해결법

⚠️ Powerlevel10k/Powerlevel9k 사용자라면 반드시 읽어보세요! Powerlevel10k나 Powerlevel9k 테마를 사용하고 있다면, Cursor AI Assistant와 터미널 작업 시 명령어 완료 감지가 제대로 되지 않는 문제를 겪고 있을 가능성이 높습니다. Cursor 공식 문서에서 이 문제를 명시적으로 언급하고 있으며, CURSOR_AGENT 환경변수를 사용하는 것이 유일한 공식 해결책입니다. 🐛 현상 및 원인 - Cursor 공식 문서
4 min read
로컬에서 Uniswap 프론트엔드 구동 후 테스트넷 이용하기
dev

로컬에서 Uniswap 프론트엔드 구동 후 테스트넷 이용하기

로컬에서 Uniswap 프론트엔드 구동 후 테스트넷 이용하기 유니스왑을 테스트넷 환경에서 사용하는법은 간단하다. 연결된 월렛의 네트워크를 테스트넷으로 변경하면된다. 혹은 쿼리스트링에서 체인을 명시해주면 된다. 예를들어 Ethereum Sepolia테스트넷에서 유니스왑을 사용하고 싶으면 아래 url처럼 하면 된다. https://app.uniswap.org/swap?chain=sepolia 그러나 현재의 uniswap web interface는 sepolia테스트넷 환경에서 제대로 작동하지 않는다. Uniswap
4 min read
[Mac] Aache Spark 설치
dev

[Mac] Aache Spark 설치

Table of Contents * Java 설치 * Scala 설치 * Spark 설치 * Pyspark를 위한 환경설정 * 샘플 코드 * Scala * Python * Spark Web UI * [Optional] Jupyter에서 pyspark 사용하기 * Pyspark의 default 실행환경을 Jupyter notebook으로 강제설정하는법 * 기존 Jupyter에서 pyspark 실행시키기 * 방법1. findspark 활용하기 * 방법2. 경로 잡아주기 * 참조 Java 설치 이미 설치된 java의 경로를 찾고 싶다면 /usr/libexec/
3 min read
[airflow] 6. Multi cluster에서 airflow 실행하기
dev

[airflow] 6. Multi cluster에서 airflow 실행하기

Table of Contents * 요약 * airflow configuration * 두개의 인스턴스에서 각각 worker 실행하기 * task가 실행될 worker를 명시적으로 지정하기 * 1번 인스턴스에서 * 2번 인스턴스에서 * 참조 요약 * 다루는 내용 * 분산 인스턴스에서 각각 airflow worker를 실행하고 task를 분산해서 실행하는법 * task가 실행될 worker를 명시적으로 지정하는법 * 테스트 환경 * 두 개의 Amazon EC2 Instance 사용 * 1번 Instance에 아래와 같이
4 min read
[airflow] 5. Pyspark sample code on airflow
dev

[airflow] 5. Pyspark sample code on airflow

Airflow에서 Pyspark task 실행하기 Table of Contents * data_download, spark_job, sleep 총 3개의 task가 있다. * data_download가 완료된 후, 동시에 나머지 두개의 task가 실행되는 DAG이다. * 병렬로 task가 수행된다는걸 보여주기위해 sleep task를 만들었다. * gantt를 보면 data_download가 완료된 후, 동시에 나머지 두개의 task가 실행되는걸 확인할 수 있다. from airflow import
2 min read
[airflow] 4. CeleryExecutor 사용하기
dev

[airflow] 4. CeleryExecutor 사용하기

Airflow CeleryExecutor 사용하기 Table of Contents * Rabbitmq, Celery 설치 * Rabbitmq 설정 * airflow.cfg 수정 * localhost?? * meta db 설정 * 실행 * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. Database설치&설정은 이전 글을
3 min read
[airflow] 3. LocalExecutor 사용하기
dev

[airflow] 3. LocalExecutor 사용하기

Airflow LocalExecutor 사용하기 Table of Contents * Postgres 설치 * Database 설정 * airflow.cfg 수정 * meta db 설정 * airflow initdb * 참조 Airflow는 기본값으로 sqlite를 사용한다. sqlite에서는 SequentialExecutor만 설정가능하기에 DAG내에서 task의 병렬실행이 불가능하다. 병렬실행을 가능하게 하려면 LocalExecutor나 CeleryExecutor를 사용해야하는데 그러기위해선 Database를 Sqlite가 아닌 다른 Database를 사용해야 한다. 이 글에선 postgres를 예로 들어 설명하겠다.
2 min read