Java 공부를 하다 보면 어느 순간 반드시 만나게 되는 개념이 있다.👉 Reflection처음 들으면 이름부터 어렵다.그리고 보통 설명도 이렇게 나온다.런타임에 클래스 정보를 분석하는 기능처음 보는 사람 입장에서는:"그래서 정확히 뭘 할 수 있다는 건데?"싶어진다.근데 Reflection은:✔ Spring✔ JPA✔ Lombok✔ Jackson✔ Mockito✔ 테스트 프레임워크같은 거의 모든 Java 프레임워크 내부에서 사용되는 핵심 기술이다.실무에서도 엄청 중요하다.왜냐면:객체를 동적으로 제어할 수 있기 때문이다.오늘은 Reflection이 무엇인지 초보자도 이해할 수 있게 쉽게 정리해보겠다.Reflection 이란?👉 실행 중(Runtime)에 클래스 정보를 분석하고 조작하는 기술쉽게 말하면:..
스프링(Spring) + 데이터베이스 공부하다 보면 거의 반드시 만나게 되는 어노테이션이 있다.👉 @Transactional처음에는 그냥 이렇게 사용한다.@Transactionalpublic void save() {}그리고 대부분 이렇게 생각한다."이거 붙이면 DB 저장이 안전해지는 건가?"맞다.근데 실무로 가면:✔ 언제 commit 되는지✔ rollback은 어떻게 되는지✔ checked exception은 왜 rollback 안 되는지✔ 프록시는 왜 등장하는지✔ self invocation 문제는 뭔지이런 내부 동작 원리를 반드시 이해해야 한다.오늘은 @Transactional을 초보자도 이해할 수 있게 완벽하게 쉽게 정리해보겠다.@Transactional 이란?👉 데이터베이스 작업을 하나의 트랜..
스프링(Spring) 공부를 시작하면 거의 가장 먼저 보는 어노테이션이 있다.👉 @Autowired처음에는 그냥 이렇게 사용한다.@Autowiredprivate UserService userService;그리고 대부분 이렇게 생각한다."신기하게 객체가 자동으로 들어오네?"맞다.근데 실무로 가면:✔ 어떻게 객체를 찾는지✔ Bean을 어떻게 주입하는지✔ 같은 타입 여러 개면 어떻게 되는지✔ 생성자 주입이 왜 좋은지이런 내부 원리를 반드시 이해해야 한다.오늘은 Spring의 @Autowired 동작 원리를 초보자도 이해할 수 있게 쉽게 정리해보겠다.@Autowired 란?👉 Spring이 객체를 자동으로 주입해주는 기능쉽게 말하면:"new 안 해도 객체 연결"해주는 기능이다.원래 자바 방식기존 자바는 직접..
스프링 + DB 작업하다 보면 어느 순간 마주치는 꽤 중요한 예외가 있다.👉 DataIntegrityViolationException이건 단순한 자바 문법 문제가 아니라,"데이터베이스 무결성(Integrity) 깨짐" 과 관련된 예외라서실무에서 반드시 이해하고 넘어가야 한다.DataIntegrityViolationException 이란?👉 "DB 제약 조건을 위반했을 때 발생하는 예외"즉,중복되면 안 되는 값이 들어왔거나 (UNIQUE)반드시 있어야 하는 값이 없거나 (NOT NULL)존재하지 않는 값을 참조했거나 (FOREIGN KEY)👉 이런 경우에 터진다.가장 흔한 원인 3가지1. UNIQUE 제약 위반 (중복 데이터)@Entitypublic class User { @Column(uniq..