목록CS (36)
delpho
1. JVM의 구조와 Java의 실행방식을 설명해주세요. # JVM ( Java Virtual Machine ) 자바와 운영체제 사이에서 중개자 역할을 수행 자바가 운영체제에 구애 받지 않고 프로그램을 실행할 수 있도록 도와줌 가비지 컬렉터를 사용한 메모리 관리도 자동으로 수행하며, 다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작 # 자바는 왜 JVM이 필요할까? Java 컴파일러는. java 파일을. class 파일로 컴파일한다. 이는. java 파일을 Java byte code로 변환하여. class 만드는 것인데 Byte Code는 기계어가 아니기 때문에 OS에서 바로 실행이 되지 않는다. 이를 해결하기 위해 JVM을 통해 .class 파일을 로드/해석하여 Java 프로그램을 실행하..
1. Servlet Filter와 Spring Interceptor의 차이는 무엇인가요? # Filter 프론트에서 Dispatcher Sevlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능 DS는 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것임! 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너에 의해 관리가 되는 것이고(스프링 빈으로 등록은 된다), 디스패처 서블릿 전/후에 처리하는 것 필터를 추가하기 위해서는 javax.servlet의 Filter 인터페이스를 구현(implements)해야 하며 이는 다음의 3가지 메소드를 가지고 있다. init 메소드 doFilter 메소드 destroy 메소드 ..
1. DI 종류는 어떤것이 있고, 이들의 차이는 무엇인가요? 위의 그림에서는 DI의 종류가 저렇게 3가지로 되어있다. 근데.. 조금 찾아보니 분류가 조금 다르게 되있는거같아서 찾아본 내용으로 다시 정리를 해보려한다. DI (Dependency Injection)의 종류는 크게 3개가 있다. 1. 생성자 주입 방식 (Constructor Injection) 말 그대로 생성자를 통해 의존성 주입 (DI) 가장 권장되는 주입 방식 Lombok 사용하면 간단하게 사용 가능 (@AllArgsConstructor) 객체의 불변성 확보 (final 사용 가능) 의존 관계를 주입하지 않으면 Controller 객체 생성 불가 순환 의존성 파악 가능 Bean 객체를 생성하는 시점에 생성자의 파라미터 빈 객체를 찾아 먼저..
1. Spring DI/IoC는 어떻게 동작하나요? # IoC 객체 지향 언어에서 Object간의 연결 관계를 런타임에 결정하는 것 일반적으로는 객체 생성이 필요한 위치에서 개발자가 직접 new를 통해 생성 런타임이 아닌 컴파일 시 결정됌 # DI 객체간의 의존관계를 의존 관계를 컨테이너가 설정할 수 있도록 지정해주는 방식 객체간의 연결 관계가 느슨해짐 (기존의 생성 방법은 결합도가 높음) 2. Spring Bean이란 무엇인가요? sclass를 생성하고 new를 통해 생성한 객체가 아닌, Spring IoC 컨테이너가 관리하는 자바 객체를 Bean이라고 부름 주의! java Bean이랑은 다름 java bean jsp에서 주로 사용되는 것, 데이터 전달을 위해 사용 (DTO 랑 비슷한 역할) 클래스는 ..