목록분류 전체보기 (28)
CHHB stroy
회사에 10년 묵은 PHP 프로젝트가 하나 있다. PHP 5 시절에 짠 코드가 그대로 살아있고, 함수 하나가 500줄씩 되고, 전역 변수가 사방에 깔려있고, SQL이 코드에 그냥 박혀있는 그런 코드. 손대기 무서워서 다들 피하던 녀석인데, Claude Code로 조금씩 리팩토링해봤더니 생각보다 할 만했다.물론 "Claude한테 던지면 알아서 다 해주겠지" 하면 큰코다친다. 레거시 리팩토링은 AI한테도 어렵다. 근데 제대로 된 워크플로우로 접근하면 혼자 할 때보다 훨씬 빠르고 안전하게 할 수 있다. 오늘은 내가 시행착오 끝에 정리한 PHP 리팩토링 방법을 공유한다.시작 전에: 리팩토링의 대전제리팩토링의 핵심은 동작은 그대로 두고 구조만 바꾸는 것이다. 이게 안 지켜지면 그건 리팩토링이 아니라 그냥 코드 망..
Claude Code 관련 글이 대부분 VSCode 기준이라, IntelliJ 쓰는 사람 입장에서는 좀 답답했다. 나처럼 백엔드 Java/Kotlin 개발하면서 IntelliJ를 메인으로 쓰는 사람들 많을 텐데. 그래서 JetBrains IDE에서 Claude Code를 어떻게 세팅하고 쓰는지 정리해봤다.결론부터 말하면, IntelliJ에서도 Claude Code 잘 된다. VSCode랑 거의 똑같은 경험을 준다. diff를 IDE 안에서 보고, 선택한 코드를 자동으로 공유하고, 에러까지 실시간으로 Claude한테 넘겨준다.시작하기 전에 알아둘 것Claude Code의 JetBrains 플러그인은 단독으로 동작하는 게 아니다. Claude Code CLI가 먼저 설치돼 있어야 하고, 플러그인은 그 위에서..
지난번에 Claude Code의 CLAUDE.md에 대해 글을 썼는데, Codex를 쓰는 사람들한테서 "Codex는 그런 거 없냐"는 질문을 받았다. 있다. AGENTS.md다. 개념은 비슷한데, 재밌는 건 이게 Codex 전용이 아니라 거의 표준처럼 굳어지고 있다는 점이다.Codex 처음 쓸 때 매번 "pnpm 써", "테스트는 vitest로 돌려", "이 폴더는 건드리지 마" 같은 걸 반복하다가, AGENTS.md 하나 써두니까 그 뒤로 Codex가 알아서 프로젝트 규칙을 지키더라. 한 번 세팅에 한 시간 정도 투자했는데, 그 효과는 계속 누적된다.오늘은 이 AGENTS.md를 어떻게 쓰는지, 어떻게 써야 Codex가 잘 따르는지 정리해본다.AGENTS.md가 뭔데한 줄로 말하면, AI 코딩 에이전트..
Claude Code 쓰면서 처음에 제일 답답했던 게 뭐냐면, 매번 같은 말을 반복해야 한다는 거였다. "들여쓰기는 2칸으로 해줘", "패키지 매니저는 pnpm 쓰고 있어", "CSS는 Tailwind만 써", "console.log 남기지 마"... 세션 새로 열 때마다 이걸 다시 설명하고 있는 나를 발견했다.그러다 CLAUDE.md를 알게 됐고, 이게 게임 체인저였다. 한 시간 투자해서 제대로 써두니까 그 뒤로 같은 설명을 반복할 일이 없어졌다. 어떤 글에서 "CLAUDE.md는 투자 대비 효과(ROI)가 가장 높은 작업"이라고 했는데, 정말 공감한다.오늘은 이 CLAUDE.md를 어떻게 쓰는지, 어떻게 써야 효과가 있는지 정리해보려고 한다.CLAUDE.md가 뭔데한 줄로 말하면, Claude Cod..
Copilot이 자동완성의 끝판왕이라고 생각했는데, Codex를 써보니까 레벨이 다르다. Copilot이 "이 줄 다음에 뭐가 올까?" 를 맞추는 거라면, Codex는 "이 프로젝트에서 이 기능을 구현하려면 어떤 파일을 어떻게 고쳐야 하는지" 를 통째로 처리하는 에이전트다. 파일 읽고, 수정하고, 터미널 명령어까지 실행한다.처음에 "이게 Copilot이랑 뭐가 다르다는 거지?" 했는데, 한번 써보면 안다. 차원이 다른 물건이다. VSCode에서 Codex 세팅하는 법을 처음부터 끝까지 정리해본다.Codex가 정확히 뭔데OpenAI가 만든 코딩 에이전트다. 이름이 같아서 헷갈릴 수 있는데, 2023년에 없어진 옛날 Codex API와는 완전히 다른 제품이다. 2025년 4월에 CLI로 처음 나왔고, 지금은..
Copilot 쓰다가 Claude Code로 갈아탄 지 몇 달 됐다. 솔직히 처음에는 "터미널에서 AI를 쓴다고?" 하면서 좀 회의적이었는데, 한번 써보니까 차원이 다르더라. 코드 한 줄 자동완성하는 수준이 아니라, 프로젝트 전체 구조를 이해하고 여러 파일을 동시에 수정해준다. 리팩토링 시켜보면 진짜 소름 돋는다.근데 설치 과정에서 좀 헤매는 사람이 많은 것 같다. 나도 처음에 Node.js 버전 때문에 삽질했었고. 그래서 VSCode에서 Claude Code 쓰는 방법을 처음부터 끝까지 정리해봤다.Claude Code가 뭔데먼저 개념 정리부터. Claude Code는 Anthropic이 만든 터미널 기반 AI 코딩 에이전트다. Copilot이나 Cursor 같은 에디터 내장 자동완성 도구와는 성격이 다..
쿼리 튜닝하다 보면 "인덱스 걸었는데 왜 안 빨라지지?" 하는 순간이 온다. 실행 계획 열어보면 인덱스를 타긴 타는데, 그 뒤에 Key Lookup이라는 놈이 붙어 있다. 이게 뭔가 하고 파봤더니, 인덱스에서 원하는 데이터를 다 못 가져와서 원본 테이블을 다시 뒤지고 있는 거였다. 인덱스를 탔는데 결국 테이블도 읽는, 이 모순적인 상황.INCLUDE를 알기 전과 후로 내 인덱스 설계가 완전히 달라졌다. 과장 좀 보태면 MSSQL 인덱스에서 제일 중요한 기능이 INCLUDE라고 생각한다.먼저 인덱스 구조를 알아야 한다INCLUDE가 왜 필요한지 이해하려면, MSSQL 인덱스가 내부적으로 어떻게 생겼는지를 알아야 한다.MSSQL의 Non-Clustered Index는 B-Tree 구조다. 크게 두 부분으로 ..
서버 운영하다 보면 액세스 로그를 한번쯤 열어보게 된다. 그리고 놀란다. 내가 만든 적도 없는 경로로 요청이 미친 듯이 들어오고 있거든. /wp-login.php, /admin, /phpmyadmin, /.env 같은 것들. WordPress 안 쓰는데 wp-login으로 로그인 시도를 하고 있고, .env 파일을 긁어가려는 봇이 하루에도 수백 번씩 찔러본다.처음 봤을 때 좀 소름 돋았다. "이게 매일 이러고 있었어?" 싶어서.이런 요청들을 그냥 놔두면 서버 리소스도 잡아먹고, 혹시라도 실제로 취약점이 있으면 뚫릴 수도 있다. .htaccess로 이런 요청들을 차단하는 방법을 정리해봤다..htaccess가 뭔데Apache 웹서버에서 디렉토리 단위로 설정을 제어하는 파일이다. 서버 설정 파일(httpd.c..