바이브 코딩의 시대근래 바이브 코딩을 꽤나 하고 있다.아니 코딩을 안하고 바이브 코딩만 하고 있다고 봐도 무방하다.바이브 코딩 하면서 손코딩도 조금 한다. 근데 그 마저도 할까말까 고민된다. 수정하면 에이전트한테 다시 읽게해줘야하기 때문이다. 나는 클로드 4.5 소넷부터 작업 형식이 근본적으로 변하고 있다고 체감한다. 이건 단순한 도구의 변화가 아니다. 일하는 방식 자체의 패러다임이 전환되고 있다. 직접 만들지 않는 것들나는 이제 많은 것을 직접 만들지 않는다. 문서? 직접 안 쓴다.PPT? 직접 안 만든다.이력서? 직접 안 쓴다. 그렇다고 기존 이력서 플랫폼을 사용하느냐? 아니다.내가 만든 이력서 플랫폼을 사용한다. 정확히는 에이전트와 함께 만들고 사용한다. GitHub - wonow-playgrou..
분류 전체보기
Prompt Layer의 Jared Zoneraich가 발표한 'How Claude Code Works'를 통해 Claude Code의 내부 작동 방식과 설계 철학을 깊이 있게 살펴보자. 코딩 에이전트의 진화코딩 에이전트는 빠르게 발전해왔다: 1단계: ChatGPT에서 코드 복사/붙여넣기2단계: Cursor 초기 버전 (VS Code 포크 + Command K)3단계: Cursor 어시스턴트 (에이전트와 대화)4단계: Claude Code (헤드리스 방식, 코드를 직접 건드리지 않음) 성공의 핵심 요인Claude Code가 폭발적으로 성장한 이유는 두 가지 혁신의 결합이다: 단순한 아키텍처(Simple Architecture)더 나은 모델(Better Models) 설계 철학: 도구를 주고 간섭하지 말라..
개발 AI 에이전트인 Claude Code가 어떻게 코드베이스를 탐색하고 작업하는지 내부 메커니즘을 알아보자코딩 AI Agent를 만들고 있는데 내가 도구가 뭐뭐 있냐고 물어보자 대답을 너무 잘해주길래 Claude Code에게 똑같이 물어봤다. 도구 정의 방식Claude Code는 시스템 프롬프트에 모든 도구가 JSONSchema 형식으로 정의되어 있다.예를 들어 Grep 도구는 이렇게 정의된다. { "name": "Grep", "description": "A powerful search tool built on ripgrep...", "parameters": { "pattern": { "type": "string", "description": "검색할 정규식 패턴" }, "path": ..
제 맛대로 번역했습니다. 에이전트의 실력은 우리가 주는 도구에 달려있다. 제대로 된 도구를 만드는 노하우, 그리고 Claude 에게 도구를 직접 튜닝하게 해 성능을 올리는 방법 MCP는 LLM 에이전트에게 업무를 해결하게 할 수 있는 수백 개의 도구를 제공해줄 수 있다. 하지만 그 도구를 어떻게 효율적으로 만들 수 있을까? 1장- 도구의 빠른 프로토타입 제작 및 테스트 방법- 에이전트와 함께 종합 평가를 만들고 실행하는 법- Claude Code 같은 에이전트와 협업해 자동으로 도구 성능을 높이는 방법 2장- 어떤 도구를 만들어야하고, 만들지 말아야하는가- 도구에 이름을 붙여 경계를 명확하게- 에이전트가 바로 쓸 수 있는 정보만 골라서 주기- 토큰 효율을 위한 도구 최적화- 도구 설명 및 스펙 프롬프트 ..
누워서 SNS를 보고 있다보면 초등학생 아이가 게임을 만들었다.. 등의 이야기를 심심치 않게 볼 수 있다.처음엔 회의적으로 바라보았다. 어차피 AI 로 개발하면 유지보수도 안 되고, 오류 터지면 누가 고치는 거야?날이 지날 수록 영상으로 올라오는 개발 결과의 퀄리티가 점점 높아지고..같이 일하던 동료가 모든 도메인을 하루만에 3레이어를 헥사고날로 다 바꿔서 온 날이게 강한 트리거로 작동했다. 음.. 나도 웹에서 물어만보지말고 요즘 유행한다는 커서를 써볼까?첫 커서 사용은 되게 불만족스러웠다.코드가 중간에서 끊기고, 코드의 전체적인 맥락을 이해하지 못하며이미 앞단에서 Valid 에서 다 거쳐서 올라왔는데 서비스단에서 다시 한번 쓰잘데기 없는 검증 로직을 끼워놓거나객체 지향언어에서 객체지향성을 무시하며 코드..
ThreadLocal 정리ThreadLocal 은 각 쓰레드마다 독립된 변수 값을 저장하게 해주는 클래스다.즉 쓰레드마다 다른 값을 가지게 해준다. private static final ThreadLocal threadLocal = new ThreadLocal();threadLocal.set("A"); // 현재 쓰레드에 값 저장threadLocal.get(); // 현재 쓰레드의 값 가져오기threadLocal.remove(); // 반드시 정리 필요 주의 사항1. 비동기 코드 / 쓰레드 변경 구간에 주의해야한다.ThreadLocal 은 쓰레드 단위로 값이 저장이 된다. 그래서 다른 쓰레드로 넘어가면 값이 공유되지 않는다.ThreadLocal local = new ThreadLocal();loca..
Git SubmoduleGit Submodule 은 Git 레포지토리 내에 다른 레포지토리를 두는 것으로, 모듈화에 필요한 것들을 넣어두면 편하게 사용할 수 있다.일단 파이파이, 메이븐 등에 안올려도 되고, Git 이여서 익숙하고 편하다. 그래서 선택했다. 개요Submodule 에 엔티티 등 서브모듈들을 정의했는데, 변동사항이 많아서 인터페이스로 최소한으로 남겨두고 구현체에서 변동사항만 구현하고 나머지는 정의하고 싶었다. // 서브모듈@MappedSuperclass@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public abstract BaseUser { @Id @GeneratedValue(strategy = GenerationType...
의문다른 프레임워크를 하며 의문점이 생겼다. 다른 프레임워크들은 직접 쿼리문을 쓰거나 ORM 등을 이용하여 쿼리를 작성하여 객체의 필드값을 하나하나 빼서 저장을 하는 경우가 있는데, Spring 에서 아니, JPA/Hibernate 에서는 @Getter 등이 없어도 repository.save(entity) 만 하면 값이 저장이 된다. 어떻게 이게 가능한 걸까? @Getter 없이 어떻게 값을 읽고 전부 저장할까?Hibernate 는 기본적으로 엔티티의 상태를 읽고 쓸 때 Java 의 리플렉션 기능을 이용한다. 예를 들어 Entity 클래스 필드에 @Id 같은 어노테이션이 붙어 있으면, Hibernate 는 해당 필드에 직접 접근 하여 값을 읽고 쓴다.이러한 방법이 있기에 Getter, Setter 등이..
저는 Spring 을 쓸 때 손이 엄청 바빠져요엔티티,, 컨트롤러,, DTO,,, 서비스,,, 하나하나 만드느라 엄청 귀찮거덩요아 이거 누가 대신좀 해줬으면 좋겠다... 했는데...나 개발자지?? 내가 만들 수 있지?? 그래서 만들었습니다.Spring CRUD 생성기Python 기반으로 되어 있으며 pip 로 깔아서 사용할 수 있어요3Layer, Hexa 일단 이 두개 대중적인거 위주로 해놨습니다. https://github.com/wonowonow/spring-boot-crud-generator GitHub - wonowonow/spring-boot-crud-generator: ✍️ Spring Boot 단순 crud 작업 귀찮아서 만들었습니다.✍️ Spring Boot 단순 crud 작업 귀찮아서 만..