레벨 인터뷰를 준비하는 과정에서 만든 간단한 정리본입니다.
- spring bean scope란?
- 싱글톤 스코프 : 애플리케이션 컨텍스트의 스코프와 동일한 생명 주기를 가지고 있다.
- 프로토타입 스코프 : 매 요청마다 새로운 객체가 만들어진다
- request : 웹의 요청하나마다 새로운 객체가 만들어진다
- session : 브라우저의 세션 하나마다 새로운 객체가 만들어진다
- application : 서블릿 스코프와 동일한 생명주기를 가지고 있다
- transactional annotation 이란?
- 하나의 논리적 transaction 을 만들기 위한 어노테이션이다
- 물리적 transaction 이 없다면, 새로운 transaction을 만든다.
- @Transactional(readonly =true)
- db 의 트랜잭션 id 가 생성되지 않기에, 성능이 향상된다
- mysql의 경우 master, slave 가 있을 때 slave 에만 요청을 보내 성능 향상을 기대할 수 있다
- 실수로 변경을 시도했을 때, 예외가 발생해 개발자의 실수를 막아준다
- proxy 객체가 만들어지기에 성능상 불이익이 생길 수 있다
- dispatcher servlet 이란?
- Http 프로토콜로 들어오는 요청을 받아 적절한 컨트롤러에 위임해 주는 프론트 컨트롤러의 역할
- gradle 종속성 구문이란?
- api :
- 종속성 전이가 일어난다. c→b→a(api) 일 경우 c에서 a에 접근이 가능하다
- a가 변경될 경우 c까지 재빌드가 일어난다
- implementation :
- testImplementation + runtimeOnly + compileOnly 를 가지고 있다
- testImplementation :
- 테스트시 runtimeOnly + compileOnly를 가지고 있다
- runtimeOnly :
- 런타임에서만 구현체에 대한 정보가 필요할 때 사용한다
- compileOnly :
- 컴파일 타임에만 라이브러리가 필요할 경우 사용한다
- api :
- dao 와 repository의 차이란?
- dao는 db에 종속적으로 작성되어야 한다
- repository는 domain 객체를 통해서 소통해야 한다
- @repository 어노테이션에 적힌 내용을 기준을 봤을 때, 애그리거트 루트당 하나만 만들어져야 한다
'우아한테크코스' 카테고리의 다른 글
DB 에 변경된 부분만 업데이트 하려면(feat Proxy 객체, 변경감지) (12) | 2023.05.16 |
---|---|
레벨 인터뷰 스터디 (0) | 2023.05.07 |
우아한테크코스 레벨1 레벨로그 준비 (0) | 2023.03.28 |
다른 사람의 리뷰를 훔치자 (5) | 2023.03.19 |
[3주차 회고] 오리같이 살아보자 (1) | 2023.02.28 |