핵심 요약이 글에서 바로 이해할 것 AOP가 왜 필요한지, 핵심 용어가 무엇인지 한 번에 정리합니다.이 글에서 바로 해결할 것 Spring AOP가 프록시 기반으로 어떻게 동작하는지, 왜 self-invocation에서 안 먹는지 설명합니다.바로 확인할 설정 Advice, Pointcut, Join Point, 프록시 적용 범위를 실무 기준으로 체크합니다.핵심 결론 Spring AOP는 공통 관심사를 분리하는 도구이지만, 프록시 기반 한계를 모르면 트랜잭션·로깅·권한 처리에서 쉽게 막힙니다.한눈에 보는 개념 / 구조항목설명실무 포인트AOP로깅, 트랜잭션, 보안처럼 여러 곳에 공통으로 필요한 기능을 핵심 비즈니스 로직과 분리하는 방식입니다.중복 코드를 줄이고 관심사를 분리할 수 있습니다.Spring AOP..
핵심 요약이 글에서 바로 이해할 것 @Transactional이 무엇을 보장하고, 어디에 붙일 때 의미가 살아나는지 정리합니다.이 글에서 바로 해결할 것 롤백이 안 되는 이유, readOnly = true를 붙여도 왜 수정이 되는 것처럼 보이는지 실무 관점으로 설명합니다.바로 확인할 설정 예외 타입, 프록시 호출 구조, 메서드 접근제한자, 트랜잭션 경계 위치를 체크합니다.핵심 결론 @Transactional은 "붙이면 끝"이 아니라 어디서 시작되고 어떤 예외에서 끝나는지를 알아야 제대로 쓸 수 있습니다.한눈에 보는 개념 / 구조항목설명실무 포인트@Transactional여러 DB 작업을 하나의 트랜잭션으로 묶어 성공하면 커밋하고, 실패하면 롤백하도록 만드는 Spring 선언형 트랜잭션 기능입니다.서비스 ..
Spring Boot를 처음 공부할 때 많은 사람이 가장 헷갈려하는 부분 중 하나가 바로 Controller, Service, Repository를 왜 나누는가입니다. 코드를 따라 치다 보면 클래스는 늘어나는데, 각 계층이 무엇을 맡고 어디까지 책임져야 하는지는 오히려 더 흐릿하게 느껴질 수 있습니다.특히 입문 단계에서는 Controller에 로직을 다 넣어도 일단 동작은 하기 때문에, 굳이 Service와 Repository를 나눠야 하는 이유가 잘 와닿지 않는 경우가 많습니다. 하지만 프로젝트가 조금만 커져도 이 구조를 이해했는지 여부가 유지보수성과 가독성을 크게 갈라놓습니다.결론부터 말하면 Spring MVC 구조의 핵심은 요청을 받는 역할, 비즈니스 로직을 처리하는 역할, DB에 접근하는 역할을 ..
Spring을 처음 공부할 때 가장 먼저 막히는 지점이 바로 IoC, DI, Bean, Container입니다. 용어는 계속 나오는데 각각이 정확히 무엇이고, 서로 어떤 관계인지 한 번에 정리되지 않아서 개념이 흐릿하게 남는 경우가 많습니다.특히 Spring Boot 예제를 따라 치다 보면 @Component, @Service, @Autowired, ApplicationContext 같은 키워드는 자주 보이는데, 왜 이런 구조를 쓰는지 이해하지 못하면 나중에 설정이나 에러를 만났을 때 훨씬 더 헷갈리게 됩니다.결론부터 말하면 Spring의 핵심은 객체를 내가 직접 만들고 연결하던 방식을 프레임워크가 대신 관리하게 바꾸는 것입니다. 이 글에서는 Spring 핵심 개념을 쉬운 정의부터 구조, 예제, 자주 막..
자바를 공부하다 보면 JVM 구조, JVM 메모리 영역, Runtime Data Area 같은 말을 정말 자주 보게 됩니다. 그런데 막상 설명을 읽어보면 용어가 비슷해서 Heap이 뭔지, Stack은 왜 필요한지, Method Area는 정확히 어디에 쓰이는지 한 번에 정리가 잘 안 되는 경우가 많습니다.특히 면접 준비나 실무 학습을 하다 보면 "JVM 메모리 구조 설명해보세요" 같은 질문을 자주 만나는데, 단순히 이름만 외우면 금방 헷갈립니다. 각 영역에 무엇이 저장되고, 언제 생성되고, 어떤 문제가 자주 발생하는지까지 같이 이해해야 제대로 기억에 남습니다.그래서 이번 글에서는 JVM의 전체 구조를 먼저 아주 쉽게 잡고, 그다음 Runtime Data Area를 기준으로 Method Area, Heap..
