OpenClaw SOUL.md 설계 — 봇 3개에 서로 다른 성격 입히기

“☕” 8 “min read”OpenClaw를 설치하면 모든 봇이 동일한 영어 템플릿 SOUL.md를 가지고 시작합니다. 3개 봇에 각각 다른 성격을 부여하는 과정, 그리고 “친구 봇이 첫 대화에서 직접 이름을 물어보게” 설계한 방법을 공유합니다. 배경 — 3개 봇이 전부 똑같은 성격이었다 AWS Lightsail에 OpenClaw 멀티 에이전트 구축하기 — 삽질 기록 포함에서 Discord Bot 3개를 멀티 에이전트로 연결했습니다. 실제로 Discord에서 각 봇에게 … 더 읽기

OpenClaw 비용 최적화 — Bedrock IAM 에러부터 Gemini Fallback 설정까지

“☕” 5 “min read”Lightsail 블루프린트로 OpenClaw를 설치하면 기본값이 AWS Bedrock입니다. 그런데 IAM 크로스 계정 에러가 발생하고, Claude Max 구독도 쓸 수 없다는 걸 확인하는 과정을 거쳐 Anthropic API Key + Gemini Fallback 이중 구성으로 정착했습니다. AWS Lightsail에 OpenClaw 멀티 에이전트 구축하기 — 1편 배경 — 처음엔 그냥 되는 줄 알았다 1편에서 Lightsail 블루프린트로 OpenClaw를 설치하고 Discord Bot 3개를 … 더 읽기

AWS Lightsail에 OpenClaw 멀티 에이전트 구축하기 — 삽질 기록 포함

“☕” 6 “min read”OpenClaw는 내 서버에서 돌아가는 오픈소스 AI 어시스턴트입니다. 이 글에서는 AWS Lightsail에 설치하고 Discord Bot 3개를 사용자별로 분리된 멀티 에이전트로 연결한 전 과정을 다룹니다. 배경 — 왜 OpenClaw를 직접 서버에 올렸나 가족이나 팀원들에게도 AI 어시스턴트 환경을 만들어주고 싶었습니다. 그런데 상용 서비스는 사람마다 구독이 필요하고, 데이터가 외부 서버로 나간다는 점이 걸렸습니다. OpenClaw는 이 문제를 깔끔하게 해결해줍니다. 내 … 더 읽기

MQTT 테스트 자동화 도구 개발기 (3) — JavaFX GUI + jpackage exe 배포

“☕” 12 “min read”시리즈: Part 1: 설계와 인프라 · Part 2: 35개 테스트 케이스 · Part 3: GUI와 배포 CLI에서 GUI로 전환한 이유 Part 1과 Part 2에서 만든 35개 테스트 케이스를 CLI로 실행하는 것은 개발자에겐 편하지만, 다른 팀원이 사용하기엔 장벽이 있었습니다: CLI (gradlew) GUI 도구 JDK + Gradle 설치 필요 더블클릭으로 실행 인증서 경로를 환경변수로 설정 파일 선택 … 더 읽기

MQTT 테스트 자동화 도구 개발기 (2) — 35개 테스트 케이스 구현기

“☕” 15 “min read”시리즈: Part 1: 설계와 인프라 · Part 2: 35개 테스트 케이스 · Part 3: GUI와 배포 테스트 설계 원칙 Part 1에서 구축한 인프라 위에 35개 테스트 케이스를 구현했습니다. 먼저 설계 원칙부터 짚고 가겠습니다: 카테고리 전체 맵 카테고리 TC 수 테스트 메서드 우선순위 분포 페이로드 크기 3 8 P0: 3, P1: 5 페이로드 형식 6 18 … 더 읽기

MQTT 테스트 자동화 도구 개발기 (1) — 프로젝트 설계와 테스트 인프라 구축

“☕” 9 “min read”시리즈: Part 1: 설계와 인프라 · Part 2: 35개 테스트 케이스 · Part 3: GUI와 배포 왜 MQTT 테스트 자동화가 필요했나? IoT 프로젝트에서 AWS IoT Core를 MQTT 브로커로 도입하면서, 디바이스가 보내는 다양한 입력값에 대한 체계적인 검증이 필요해졌습니다. 처음엔 MQTTX 같은 GUI 도구로 수동 테스트를 했는데, 문제가 금방 드러났습니다: 문제 설명 ⏱️ 반복 비용 35개 시나리오를 … 더 읽기

AWS Lightsail로 WordPress 블로그 구축하기 — 인스턴스 생성부터 플러그인 설정까지

“☕” 7 “min read”개발자 블로그를 시작하려면 플랫폼 선택부터 서버 구축까지 결정할 게 많습니다. 이 글에서는 AWS Lightsail에 Bitnami WordPress를 올려서 기술 블로그를 구축한 전체 과정을 정리합니다. 인스턴스 생성, 도메인 연결, SSL 설정, 플러그인 구성까지 한 번에 다룹니다. 1. 왜 AWS Lightsail을 선택했는가 블로그 호스팅 선택지는 여러 가지가 있습니다. 선택지 월 비용 장점 단점 가비아/카페24 호스팅 5,000~10,000원 관리 편함 … 더 읽기

Gitea 오픈소스 두 번째 기여: 영문 로케일 오타와 문법 수정하기

“☕” 5 “min read”첫 번째 Gitea 기여(DNF5 명령어 수정)를 마치고 나니, 다음 기여거리를 찾는 데 훨씬 자신감이 붙었습니다. 이번에는 영문 로케일 파일의 오타와 문법 오류를 수정하고, Go 소스코드의 키 참조까지 함께 고친 과정을 공유합니다. 배경: 이슈를 찾기까지 Gitea 프로젝트에 기여할 이슈를 찾던 중, 핵심 메인테이너가 직접 작성한 메타 이슈 #35015를 발견했습니다. “Some good first issues (likely easy to … 더 읽기

ZGC vs G1GC — Off-Heap 메모리 해제 차이 완전 정리

“☕” 14 “min read”GC만 바꿨을 뿐인데 OutOfMemoryError: Direct buffer memory가 터집니다. 이 글에서는 Java 17 기준으로 G1GC와 ZGC가 Off-Heap 메모리를 해제하는 메커니즘이 어떻게 다른지, 그리고 GC 선택에 따라 어떤 튜닝이 필요한지 정리합니다. 이 글은 이전 글: Off-Heap 메모리와 DirectByteBuffer 누수 탐지 가이드의 후속편입니다. DirectByteBuffer의 기본 동작 원리와 누수 탐지 방법은 이전 글을 먼저 참고하세요. 1. 왜 GC에 따라 … 더 읽기

AWS Lightsail 크립토마이너 감염 대응기: 탐지부터 제거까지

“☕” 11 “min read”서버 CPU가 이유 없이 100%를 찍고 있다면, 누군가 내 서버에서 암호화폐를 채굴하고 있을 수 있습니다. 이 글은 제 AWS Lightsail WordPress 서버에서 실제로 발생한 Monero 크립토마이너 감염 사건의 발견부터 완전 제거까지의 과정을 기록한 대응기입니다. 1. 어느 날 서버가 느려졌다 개인 기술 블로그(WordPress)와 사이드 프로젝트 API 서버를 AWS Lightsail 인스턴스 하나에서 운영하고 있었습니다. Bitnami WordPress 스택(Apache … 더 읽기