DI 컨테이너가 리플렉션을 사용하여 동작하는 원리에 대해 읽다가,문득 컴파일 시점과 런타임 시점이 나뉜 이유가 궁금해졌다. 근본적으로 컴파일/런타임을 이해하지 못해서 리플렉션도 잘 이해하지 못하고 있는 것 같아서두 개의 차이를 알아보고자 한다.1. Complie과 Runtime컴파일 시점 (Compile-Time)코드가 작성된 후, 컴파일러에 의해 바이트코드로 변환되는 시점이다.주요 작업:문법 오류 체크.타입 검증 (예: 변수 타입과 메서드 호출이 올바른지 확인).클래스 파일(.class) 생성.결과물: JVM이 실행할 수 있는 바이트코드(.class 파일)가 생성된다.런타임 시점 (Runtime)컴파일된 바이트코드를 JVM이 실행하는 시점이다.주요 작업:JVM이 클래스 로더(ClassLoader)를 통..