스프링프레임워크 12

개발자 면접 질문 - 트랜잭션 전파 옵션

1. 전파 옵션 1) REQUIRED - 기본 속성. 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 새로운 트랜잭션을 생성한다. 2) SUPPORTS - 이미 시작된 트랜잭션이 있으면 참여하고 이외에는 트랜잭션 없이 진행하게 만든다. 3) REQUIRES_NEW - 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션이 생성된다. 4) MADATORY - REQUIRED와 비슷하게 이미 시작된 트랜잭션이 있으면 참여한다. - 트랜잭션이 없을 경우에는 예외를 발생한다. - 혼자서는 독립적으로 트랜잭션을 진행하면 안되는 경우에 사용한다. 5) NOT_SUPPORTED - 트랜잭션을 사용하지 않게 한다. - 이미 진행 중인 트랜잭션이 있으면 보류 시킨다. 6) NAVER - 트랜잭션을 사용하지 않도록 강..

개발자 면접 질문 - 트랜잭션 격리 수준

1. 트랜잭션 격리 수준(Isolation Level) - 트랜잭션에서 일관성이 없는 데이터를 허용하도록 하는 수준 2. 필요성 - 데이터베이스는 ACID(트랜잭션 특징) 같이 원자적이면서도 독립적인 수행을 하도록 한다. - 그래서 Locking 이라는 개념이 등장한다. - 하지만 무조건적인 Locking으로 동시에 수행되는 많은 트랜잭션들을 순서대로 처리하는 방식은 성능이 떨어진다. - 그래서 최대한 효율적인 Locking 방법이 필요하다. 3. Isolation Level 종류 1) Read Uncommitted (레벨0) - 커밋되지 않는 읽기 - 트랜잭션 A가 특정 컬럼 데이터를 변경하고 있을 때(커밋하지 않은 상태) 트랜잭션 B가 read하면 트랜잭션 A가 변경한 데이터를 읽어온다. - 커밋되지..

개발자 면접 질문 - 디스패쳐 서블릿(Dispatcher-Servlet) 정의

1. 디스패쳐 서블릿(Dispatcher Servlet) - Servlet Container에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 프리젠테이션 계층의 제일 앞에 배치해 중앙 집중식으로 처리해주는 프론트 컨트롤러 2. 프론트 컨트롤러 - 주로 서블릿 컨테이너의 제일 앞에서 서버로 들어오는 클라이언트의 모든 요청을 받아 처리해주는 컨트롤러

개발자 면접 질문 - 서블릿(Servlet) 정의

1. 서블릿(Servlet) - 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술 2. 특징 - 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트 - html을 사용하여 요청에 응답 - Java Thread를 이용하여 동작 - MVC 패턴에서 Controller로 이용된다. 3. 동작 방식 - 사용자가 URL을 클릭하면 HTTP Request를 Servlet Container로 전송 - HTTP Request를 전송받은 Servlet Container는 HttpServletRequest, HttpServletResponse 객체를 생성 - web.xml은 사용자가 요청한 URL을 분석하여 어떤 서블릿에 대한..

개발자 면접 질문 - 스프링 프레임워크 정의

1. 스프링 프레임워크 - 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 2. 스프링 프레임워크를 쓰는 이유 - DI(의존 주입) : 객체간의 의존관계를 객체 자신이 아닌 외부의 조립기가 수행 - AOP(관점 지향 프로그래밍) : 공통 관심사항을 구현한 로직을 핵심 사항을 구현한 코드안에 삽입하는 것 * 자바는 하나의 클래스에 대한 수직적인 흐름만 제어 가능 / 스프링을 쓰면 수평 제어가 가능해진다. * 스프링을 통해 Java 가 수직, 수평 제어가 모두 가능해진다. - IOC(제어의 역전) : 프레임워크에게 제어 권한을 주는 것 * DI 와 AOP를 사용하여 IoC를 실현한다. - 예를 들어 B 클래스의 new B() 의 제어권한은 B에게 있다(능동적), B의 제어 권..