Claude Code를 개인 워크벤치처럼 쓰는 방법 Notes Claude Code를 처음 붙였을 때는 보통 “코드를 대신 얼마나 잘 짜 주나”부터 보게 된다. 실제로 몇 달 써보니 더 중요했던 건 다른 쪽이었다. 내 경우에는 이 도구를 단일 코딩 보조 도구보다, 여러 개인 프로젝트와 취업 준비 자료를 묶어 관리하는 개인 워크벤치처럼 쓰게 됐다. 지금은 크게 다섯 갈래로 활용하고 있다. 나만의 AI 디자... 2026/08/16 Notes, Common
spring-internals-lab로 다시 읽는 Spring 2 - BeanDefinition과 등록 단계 Notes GitHub 저장소 이번 글의 질문 Spring에서 빈을 등록하는 경로는 하나가 아니다. @Component 스캔 @Configuration의 @Bean registerBeanDefinition() 직접 등록 정적 팩토리 메서드 Supplier 기반 등록 겉으로 보기에는 결국 모두 “빈 하나 등록”처럼 보인다. 하지만 컨테... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 5 - Bean lifecycle과 후처리기 Notes GitHub 저장소 Bean lifecycle은 한 줄로 끝나지 않는다 Spring에서 Bean 생명주기를 단순하게 설명하면 보통 이렇게 말한다. 생성 의존성 주입 초기화 사용 소멸 이 설명은 틀리진 않지만 너무 평평하다. 실제로는 이 사이에 Aware, BeanPostProcessor, @PostConstruct, Ini... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 4 - 의존성 주입과 후보 선택 Notes GitHub 저장소 이번 글의 질문 의존성 주입은 흔히 한 덩어리로 설명되지만, 실제로는 두 단계로 나뉜다. 어떤 생성자를 쓸 것인가 그 생성자의 각 파라미터를 무엇으로 채울 것인가 여기에 후보가 여러 개일 때는 또 별도 규칙이 붙는다. @Primary @Qualifier 파라미터 이름 일치 순환 참조 여부 이번... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 8 - DispatcherServlet과 MVC 요청 흐름 Notes GitHub 저장소 이번 글의 질문 Spring MVC를 처음 배울 때는 @GetMapping과 @RequestBody부터 보게 된다. 하지만 이 시점에는 아직 가장 중요한 질문이 비어 있다. 요청은 어떤 순서로 컨트롤러 메서드에 도달하는가 HandlerMapping과 HandlerAdapter는 왜 분리되어 있는가 리터럴 경로와 변... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 6 - 프록시와 AOP Notes GitHub 저장소 이번 글의 질문 Spring AOP를 이해할 때 가장 먼저 잡아야 하는 건 @Aspect 문법이 아니다. 그보다 더 아래 질문이 있다. 언제 JDK 프록시를 쓰고 언제 CGLIB을 쓰는가 인터셉터 체인은 어떻게 진행되는가 final, private, self-invocation은 왜 AOP를 우회하는가 수동 P... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 3 - refresh()와 Bean 생성 파이프라인 Notes GitHub 저장소 이번 글의 질문 ApplicationContext.refresh()는 Spring 컨테이너 초기화의 중심이다. 그런데 실무에서는 이 메서드를 직접 호출할 일보다 결과만 접할 일이 훨씬 많다. 그래서 다음 질문이 자주 흐릿하게 남는다. BeanFactoryPostProcessor와 BeanPostProcessor는 정확히 ... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 9 - Spring Boot는 무엇을 자동으로 조립하는가 Notes GitHub 저장소 Spring Boot를 별도 프레임워크처럼 보면 오해가 생긴다 Boot를 처음 쓰면 모든 것이 너무 쉽게 돌아간다. SpringApplication.run(App.class, args); 이 한 줄 때문에 Boot를 Framework와는 다른 거대한 마법처럼 느끼기 쉽다. 하지만 spring-internals-lab의 17... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 7 - @Transactional의 실체 Notes GitHub 저장소 @Transactional은 애노테이션이 아니라 인터셉터다 Spring을 오래 써도 @Transactional은 자꾸 마법처럼 느껴진다. 하지만 앞선 글에서 AOP 구조를 먼저 정리해 두면 이 기능도 훨씬 덜 추상적으로 보인다. 이번 글의 질문은 다음과 같다. @Transactional은 실제로 어디서 트랜잭션을 시작하... 2026/08/13 Notes, Spring
spring-internals-lab로 다시 읽는 Spring 1 - 이 프로젝트는 무엇을 검증하려는가 Notes GitHub 저장소 왜 이런 저장소가 따로 필요한가 Spring을 오래 써도 아래 질문은 의외로 끝까지 흐릿하게 남는다. Bean은 등록만 된 상태와 실제 생성된 상태가 어떻게 다른가 BeanPostProcessor는 정확히 어느 타이밍에 개입하는가 @Transactional은 왜 프록시를 통해서만 동작하는가 DispatcherS... 2026/08/13 Notes, Spring