CS

면접 질문

challnum 2022. 9. 7. 09:15

1. 프레임워크와 라이브러리의 차이

  1. 프레임워크
    • 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 되며 사용자는 원하는 기능 구현에 집중하여 개발할 수 있도록 필수적인 코드나 기능들을 위한 뼈대를 제공한다.
  2. 라이브러리
    • 특정 기능들을 모아둔 코드
  3. 차이 점
    • 라이브러리의 경우 사용자는 코드의 흐름을 직접제어 해야 하며 프레임워크는 애플리케이션의 코드가 프레임 워크의 제어를 받게 된다.

2. Bean LifeCycle

3. @request param/ @request body/@ModelAttribute의 차이

  1. @ModelAttribute
    • 여러 파라미터를 매개변수에 바인딩해줄 수 있습니다.
    • setter를 사용해 담아주기 때문에 해당 매개변수의 바인딩 받는 필드는 setter가 있어야 합니다.
    • 입 변환에 실패하더라도 작업은 계속됩니다. (WebExchangeBindException 발생
  2. @request body
    • HttpMessageReader가 request body를 Java Object로 역직렬화 합니다.
    • GET요청시 Setter 존재
    • POST요청시 기본 생성자 존재해야 하며 Setter는 없어도 된다.
  3. @request param
    • 1 : 1로 값을 바인딩
    • 약 1:1로 받는값이 메서드 매개변수의 생성자(1개의 인자만 받는)의 인자와 일치하면 객체를 바로 바인딩 해줍니다.
    • 못된 파라미터값이 들어오면 400 BadRequest를 발생시킵니다.
  4. https://parkadd.tistory.com/70

4. 서블릿 (Servlet)

  1. 서블릿이란 Dynamic Web Page(인자에 따라 바뀌는 Page)를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다.
  2. 웹을 만들때 발생하는 다양한 요청과 응답을 간단한 메서드 호출로 관리하게 해주는 기술
  3. https://coding-factory.tistory.com/742

5.  서블릿의 실행 과정

  1. Servlet Request, Servlet Response 객체를 생성합니다.
  2. 설정 파일을 참고하여 매핑할 Servlet을 확인합니다.
  3. 해당 서블릿 인스턴스 존재의 유무를 확인하여 없으면 init() 메소드를 호출하여 생성합니다.
  4. Servlet Container에 스레드를 생성하고 service를 실행합니다.
  5. 응답을 처리하였으면 distory() 메소드를 실행하여 Servlet Request, Servlet Response 객체를 소멸합니다.
  6. https://coding-factory.tistory.com/742

6. 자바의 특징

  1. 객체지향
    • 기능들을 객체형태로 만들어 객체들을 결합해 하나의 프로젝트로 만드는 것
  2. 인터프리티 언어
    • 텍스트 소스를 컴파일하여 클래스 파일로 만든뒤 런타임이 클래스 파일을 인터프리티 하면서 실행
  3. 독립적인 플랫폼
    • 어떠한 운영체제라도 독립적으로 자바 언어 사용(JVM 사용)
  4. 자동 메모리 관리
    • 개발자는 메모리 접근 불가 자바가 직접 관리
    • 객체 생성시 자동적으로 메모리 영역을 찾아서 할당
  5. 멀티 쓰레딩 지원
    • 하나의 프로그램 단위가 동일한 쓰레드 동시 수행 가능
  6. 동적
    • 오류가 발생시 오류 클래스만 수정하면 되기에 전체 수정 필요가 없다.
  7. 안전하며 강력
    • 모든 메모리 접근을 자바가 관리하기에 시스템 붕괴 우려가 없다.
  8. https://s-bug.tistory.com/57

7. 자바언어와 기존의 언어의 다른 특징

  • 자바는 바이트 코드로 변환하기에 모든 플랫폼에서 실행이 가능하다.

8. 예외처리의 필요성과 목적

  • 예외처리는 컴파일 에러 런타입에러 논리적에러가 있으며 프로그램 실행시에 의도한 바에 맞지 않게 코드가 작동하거나 비정상적인 종료를 막을 수 있다.

 

'CS' 카테고리의 다른 글

CS  (0) 2022.09.14
면접 질문  (0) 2022.09.06
면접 질문  (0) 2022.09.05
면접 질문  (0) 2022.09.02
ORM, JPA, Spring Data JPA  (1) 2022.09.01