전체 글 221

커스텀 echo 커멘드에 프리픽스 추가해보기

echoblue 명령어를 처음 구현했을 때는 echo와 완전히 동일한 동작이었습니다. 이번에는 입력값을 그대로 반환하는 대신, echo2_ prefix를 붙여서 반환하도록 기능을 확장해봤습니다. echoblue "abc" → echo2_abcechoblue "hello world" → echo2_hello world 핸들러 수정 변경이 필요한 곳은 src/server.c의 핸들러 함수 하나입니다.변경 전:void echoblueCommand(client *c) { addReplyBulk(c, c->argv[1]);}변경 후: void echoblueCommand(client *c) { robj *obj = getDecodedObject(c->argv[1]); sds r..

소스를 분석하고 echoblue 커맨드를 valkey 에 추가해보기

오픈소스 기여를 공부하면서 Valkey 프로젝트에 간단한 명령어를 직접 추가해보는 과제를 진행해봤습니다. 대상은 echoblue라는 명령어로, Redis의 ECHO처럼 입력한 문자열을 그대로 반환하는 기능입니다. 단순해 보이지만 실제로 명령어 하나가 등록되기까지 건드려야 하는 파일이 여러 개이고, 내부 구조를 이해하지 않으면 어디서 시작해야 할지 막막합니다. 이 글에서는 구현 전 분석부터 테스트 통과까지 전 과정을 기록해봤습니다. 기존 echo 명령어 분석 새 명령어를 추가하기 전에 기존 echo 명령어가 어떻게 구현되어 있는지 파악하는 것이 먼저였습니다. echo는 가장 단순한 명령어 중 하나라 레퍼런스로 삼기 좋았습니다. 관련 파일 목록 - src/commands/echo.json — 명령어..

Valkey RESP 실습해보기

Valkey RESP 를 실습해보았습니다. 환경은 docker 로 로컬에 Valkey 이미지를 띄운 후 테스트했습니다.# docker-compose.ymlversion: '3.8'services: valkey: image: valkey/valkey:latest container_name: valkey-server ports: - "6379:6379" docker-compose up -dtelnet localhost 6379 간단한 SET/GET 명령어*3$3SET$5hello$5world+OK*2$3GET$5hello$5world ZSET ZADD / ZRANGE 명령어*4$4ZADD$11leaderboard$41000$7player1:1*4$6ZRANGE$11leade..

[과제] git object 뜯어보기

파이썬 파일을 만들고 커밋을 날려보며 object 파일을 확인해봤습니다 Tree 오브젝트 : 파일이름인 test.py 와 Blob 오브젝트의 해시, 파일모드 및 타입을 알 수 있습니다. Blob 오브젝트 : 파일의 내용을 표시해줍니다.커밋을 두번 날렸는데 blob 오브젝트도 두개가 생겼습니다. 이 파일을 보기전엔 파일수정이 되면 수정된 파트만 가지고있나? 라고생각했는데 그게아니라 수정버전의 모든 파일내용을 따로 기록하고있는걸 알 수 있었습니다. Commit 오브젝트 : 트리오브젝트의 해시를 가지고있으며 커밋메세지 작성정보와 작성자를 가지고있습니다.

DB 장애에 Pod가 죽었다... Liveness Probe에 /actuator/health 쓰면 안 되는 이유

잘 수정되지 않는 운영 환경 서버에서 어느 날 DB에 문제가 발생했는데, Pod가 죽는 현상을 목격했습니다. 분명 Datadog 모니터링상 메모리/CPU 등 어떠한 지표도 크게 문제가 되지 않았는데 Pod가 죽으니, "왜?" 라는 생각과 함께 대응하기 어려웠던 부분이 있었습니다.수습 후에 원인을 찾았고, 알아봤던 내용을 기록합니다.주 원인은 Spring Actuator Health 엔드포인트 설정이었습니다. 기존 K8s의 Liveness Probe 설정을 확인해보니 /actuator/health를 찌르고 있었습니다.Liveness Probe와 Readiness Probe이번 이슈의 원인을 이해하려면 이 둘의 차이를 짚고 넘어가야 합니다.Liveness Probe는 "이 프로세스가 아직 동작하고 있는가?"..

개발/스프링 2026.03.26

출퇴근 기록 간략화를 위한 사이드프로젝트 (feat. 인텔리제이 codex 에이전트)

회사에서 출근기록을 위해 사내 그룹웨어에 들어가서 출근 버튼을 눌러야하는데회사에 일찍와도 엘리베이터가 늦게 와서 사무실까지 늦게 도착한다던가갑자기 사내 인터넷이 느리다던가 하는 이유로출근버튼을 늦게 찍었을때를 대비하기위한 사이드 프로젝트를 해봤습니다 마침 회사에서 제공하는 인텔리제이 codex 에이전트가 오픈기념 무료여서 한 번 테스트할 겸 사용해봤어요 일단 바이브코딩을 위해 스펙정의를 해보려했습니다.제가 사용하고있는 유즈케이스를 정리해주고, 버튼이 어떤 태그로 구성되어있는지 적어줬어요이 프로젝트를 크롬 확장프로그램으로 만들어서 실제 제가 출근버튼을 누르기위해 사용하는 플로우를 재현해주길 바랬습니다.바이브코딩을 해보려해. spec 을 정의해줬으면 좋겠어나는 회사에서 사용할 손쉽게 출근 버튼을 누르는..

사이드/ai 2026.02.04

Claude Code와 바이브코딩으로 맛보기용 여행 AI 서비스를 만든 이야기

AI 코딩 어시스턴트가 대세인 요즘, 저도 Claude Code를 활용해서 사이드 프로젝트를 진행해봤습니다. 기획서만 던져주고 "알아서 해줘"라고 했을 때 과연 얼마나 잘 될까? 직접 경험한 후기입니다.회사에선 사이드이펙트 방지를 위해 정해진 부분 부분만 수정하고 개발하게끔 쓰고있는데처음부터 프로젝트를 정의하고 만드는 과정이 너무 궁금했습니다 만들고자 한 것: ChatGPT처럼 대화하면서 여행지를 추천해주는 AI 서비스핵심 기능: - 대화형 인터페이스로 여행지 추천 - 시즌/예산/스타일 기반 맞춤 추천 - 실시간 항공권 가격 조회 초기의 프롬프트는 아래와 같습니다.프로젝트를 하나 바이브코딩으로 만들고싶은데1. 내가 여행을 좋아하다보니까 여행지추천, 그 여행지의 관관명소와 맛집, 즐길거리. 그리고 ..

사이드/ai 2026.01.28

도커 업데이트 이후 Testcontainers 테스트 실패 이슈 해결 기록

사내에서 사용하는 소프트웨어들은 보안팀을 통해 버전 관리가 되고 있고,이번에 도커도 29 버전으로 업데이트가 진행되었습니다. 제가 진행 중인 프로젝트에서는 DB 등 외부 자원을 포함한 테스트를 할 때 Testcontainers(1.21.0 버전) 를 활용하고 있습니다.그런데 도커를 업데이트한 이후, 로컬에서 테스트 코드를 실행했을 때 아래와 같은 에러 메시지가 출력되며 테스트가 동작하지 않았습니다.Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment.Please see logs and check configuration...Could not find a valid Docker environment. Ple..

개발/이슈 2025.11.25