IT/인터뷰준비

java/spring framework 면접준비 기록

haemni 2022. 3. 1. 12:32
728x90
반응형
SMALL

1. Servlet

  - Java Servlet : Java를 이용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램

  - 서블릿 컨테이너 통해 생명주기를 관리한다.

 

* 서블릿 컨테이너

  - 서블릿과 웹서버 간의 통신 지원

  - 멀티스레딩 관리 및 지원

  - 순서

   1) 웹서버 통한 클라이언트 요청

   2) 서블릿 컨테이너에 요청 위임

   3) 서블릿컨테이너가 요청 Url과 매핑된 서블릿 탐색

   4) 서블릿컨테이너는 해당 서블릿을 컴파일 후 메모리에 로드

   5) 서블릿 객체를 초기화하는 init()메소드를 실행한 후 서블릿 스레드를 생성한다. 스레드는 service()메소드를 수행하여 클라이언트 요청 수행/ 반납

   6) 제거 destroy()메소드 통해 서블릿 제거

 

 

2. Spring Framework(추가예정)

 -  DI : 스프링 컨테이너는 객체를 생성해주고 객체 간의 관계를 맺어주는 관리자로서의 역할을 한다. DI의존성 주입이 발생하지 않는다면 각각의 사용자들이 동일한 비즈니스 로직을 수행하여 중복된 객체를 생성하게 되는데 이는 리소스 낭비로 이어진다. 따라서 객체를 싱글톤으로 생성하여 하나의 객체를 모두가 사용하게끔 한다.

 

 - AOP : OOP에서 기능별로 클래스를 분리하여 어느정도의 중복을 제거했음에도 , 로그나 트랜잭션, 자원해제, 성능 테스트 등의 메소드처럼 중복되는 코드가 발생한다. 따라서 개발자는 비즈니스 로직에 집중하고, 스프링 프레임워크가 그 비즈니스 로직 전후로 공통 기능을 수행하게 하는 것이 AOP이다. 

 

3. JAVA

  - JAVA언어의 특징

    1) 운영체제에 독립적이다 (JVM이 기능하기 때문)

    2) 객체지향!

       : 데이터를 객체로 취급하여 프로그램에 반영된다.

        * 다형성 - 하나의 메소드나 클래스가 상속받는 클래스에 따라 다르게 작동하는 것

        * 상속 - 공통적 | 추상적 내용을 추상 클래스에 정의하고, 이 추상 클래스를 상속받아 실체 클래스에서 구현하도록 함.

        * 캡슐화(은닉성)  - 결합도를 낮추고 응집성을 높인다 

    3) 멀티 스레드 지원

    4) Garbage Collector통한 메모리 관리 기능 지원

 

  - JAVA 접근지정자

   1) protected : 같은 패키지 및 상속관계에 있는 클래스들이 접근 가능

   2) default : 지정하지않았을 때 기본 접근지정자 , 같은 패키지 내 클래스가 접근가능

   3) public : 모두 접근가능

   4) private : 현재 클래스에서 접근 가능

 

  - 자바 컴파일 과정

    소스코드 --컴파일러--> 바이트코드( .class ) --JVM -- > 기계어

 

  - 오버로딩 vs 오버라이딩 

   1) 오버로딩 : 같은 이름의 메소드를 여러개 정의하는 것. 단 매개변수의 타입이나 갯수가 달라야한다. (리턴타입이나 접근제어자와는 무관함)

  2) 오버라이딩 : 상속 개념에서 나온 것으로 부모 클래스의 메소드를 자식 클래스에서 재정의

 

  - static 변수

   : 클래스가 로딩될 때 메모리 공간을 할당하는데 ,static 변수는 처음 설정된 메모리공간이 변하지않는다. static 메모리영역에 저장됨 

 

  - Java메모리영역 

   1) 메소드영역 : 메소드 저장

   2) stack영역 : 지역변수 데이터 값 저장되는 공간.

   3) heap영역 : 실제 객체가 저장되는 곳, 스택의 데이터를 참조한다

   4) static영역 : 전역변수, static 정적 멤버변수가 저장됨 . 프로그램 종료될 때까지 언제든지 사용이 가능하다.

 

반응형
LIST