본문 바로가기

분류 전체보기45

[면접질문대비] SpringBoot 트랜잭션 관리 🔍 스프링 부트 트랜잭션 관리의 구체적인 동작 원리1. 선언적 트랜잭션 관리 (@Transactional)스프링은 AOP를 기반으로 트랜잭션을 관리합니다.즉, @Transactional 을 붙이면 프록시 객체가 생성되어 해당 메서드에 트랜잭션을 적용합니다.@Transactionalpublic void doSomething() { // 1. 트랜잭션 시작 // 2. 비즈니스 로직 실행 // 3. 성공 시 커밋 / 예외 발생 시 롤백} 2. 내부적으로 어떻게 동작하나?스프링이 PlatformTransactionManager 를 사용하여 트랜잭션을 시작/커밋/롤백합니다. 순서1. Transactional 이 붙은 메서드 호출2. 프록시 객체가 해당 호출 가로채기3. 트랜잭션 시작4. 메서드.. 2025. 6. 9.
[면접질문대비] Static 클래스/메서드는 오버라이딩이 될까? NO! 1. 🔧 오버라이딩이란? 오버라이딩은 부모클래스의 메서드를 자식 클래스가 재정의하는 것 조건1. 인스턴스 메서드여야 함 ( static 안됨)2. 메서드 이름, 매개변수, 반환형이 같아야 함3. 접근 제어자는 더 좁게 하면 안 됨 2. ❗ static 메서드는 오버라이딩되지 않는다class Parent { static void sayHello() { System.out.println("Hello from Parent"); }}class Child extends Parent { static void sayHello() { System.out.println("Hello from Child"); }} Parent obj = new Child();obj.sayH.. 2025. 6. 6.
[면접질문대비] Static 이란 무엇인가? 1. ✅ static 이란? Static 은 "정적인", 즉 클래스에 귀속되는 요소임을 나타내는 키워드자바에서 static이 붙은 변수나 메서드는 인스턴스(객체)가 없어도 사용 가능하며, 클래스 수준에서 공유 2. 🔍 static이 붙을 수 있는 대상대상의미변수 (static 변수)모든 객체가 공유하는 클래스 변수메서드 (static 메서드)인스턴스 없이 호출 가능한 클래스 메서드블록 (static 초기화 블록)클래스 로딩 시 단 한 번 실행클래스 (staitc 중첩 클래스)외부 클래스에 종속된 내부 정적 클래스 3. 📦 static 변수 (클래스 변수)public class User { public static int userCount = 0; public User() { u.. 2025. 6. 6.
[면접질문] 면접질문대비 / Spring Bean이란 무엇인가? 생명주기는? 1. ✅ Spring Bean이란? Spring Bean은 Spring IoC 컨테이너에 의해 관리되는 자바 객체를 의미스프링 프레임워크에서는 객체를 직접 생성하지 않고, 스프링 컨테이너가 관리하는 객체를 주입받아 사용 특징1. 스프링이 직접 생성하고 관리2. 객체 생명주기를 스프링이 제어 ( 생성 -> 초기화 -> 소멸)3. 주로 @Component, @Service, @Repository, @Controller 등의 어노테이션으로 등록하게 됨 즉, Bean으로 등록하게되면 Spring 컨테이너가 해당 객체의 생명주기를 관리하게 되고, 객체를 생성하고 필요할 때 주입하고, 소멸까지 관리하게 된다. Spring이 객체를 대신 생성하고, 직접 new하지 않아도 사용이 가능객체를 명시적으로 생성하지 않.. 2025. 5. 29.