1. filter와 interceptor
필터는 dispatcher servlet 바깥에 존재합니다.
인터셉터는 dispatcher servlet 안에 존재합니다.
필터와 인터셉터의 예외 처리 방식
필터는 기본적으로 서블릿 컨텍스트로 예외가 흘러갑니다.
인터셉터는 ResponseEntityExceptionHandler 라는 Spring MVC에서 제공하는 기본 예외에서 모든 예외가 잡힙니다
interceptor에서 prehandle에서 false 가 나오면, postHandle, postComplete메서드가 호출되지 않는다'
필터와 인터셉터의 기능 차이
filter : ServletRequest, ServletResponse 를 바꿔 끼울 수 있다
interceptor : 어떤 컨트롤러에서 실행되는지 조금 더 구체적인 정보를 얻을 수 있다
2. 인증과 인가 Basic, Jwt, Token, Session, Cookie
Basic : Base64 알고리즘으로 정보를 인코딩한다. 매 요청마다 정보를 담아서 보내주어 보안상 문제로 잘 사용되지 않는다
Jwt : Json Web Token 의 약자로, Header, Payload, Signature 구조로 되어있다
Token방식 : 인증이나 인가를 하는 방식으로 토큰을 헤더나 쿠키를 통해 전달하는 것
Session방식 : 인증이나 인가를 하는 방식으로 서버에 session을 저장하고, 이에 해당하는 id를 쿠키나 토큰으로 전달받아 인증하는 방식
쿠키 : 브라우저에 저장해 매 요청마다 계속 전달되는 정보. 종류로는 persistent Cookie, Session Cookie 가 있다
3. Challenge-response
Challenge
서버측에서 송신한 질문(challenge)에 대해 클라이언트가 올바른 응답을 하는 과정을 거쳐 인증을 진행하는 방식
Challenge-response
client 인증의 경우
클라이언트가 사용하는 키에 대한 정보를 가지고 있어야 한다
서버에서 생성되는 challenge 는 매번 변경되어야 한다
4. 테스트의 종류(e2e, 단위테스트, 통합테스트, 슬라이스 테스트)
e2e : 애플리케이션의 흐름을 처음부터 끝까지 테스트하는 경우
단위 테스트 : 제어할 수 없는 의존성이 포함되어있지 않은 테스트
통합 테스트 : 제어할 수 없는 의존성이 포함되어 있는 테스트
슬라이스 테스트 : 통합테스트의 일부분인데, 작은 범위를 테스트 하는 것
5. 테스트에서 스프링 컨텍스트는 같은 컨텍스트에 대한 요구를 캐싱해 성능을 높일 수 있다
같은 컨텍스트라고 판단되는 완벽하게 동일한 빈만으로 이루어지지 않은 경우이다
6. Json
Javascript Object Notation
Key, value 로 이루어진 정보 교환 방식이다
7. Transaction
Transaction의 성질에는 ACID 가 있다
Atomic : 전부 실패하거나, 전부 성공해야 한다
Consistency : 트랜잭션이 시작 전후에도 데이터베이스의 상태는 일관되어야 한다
Isolated : 다른 트랜잭션으로부터 독립되어야 한다
Durability : 트랜잭션이 성공적으로 수행되었다면 로그가 남아서, 시스템 오류가 남아도 복구 가능해야 한다
Isolated level : 트랜잭션의 격리 레벨
Read Uncommitted : 다른 트랜잭션의 커밋되지 않은 데이터도 읽을 수 있다
Read Committed : 다른 트랜잭션의 커밋된 데이터만 읽을 수 있다
Repeatable Read : 같은 행을 반복적으로 읽어도 같은 데이터가 읽힌다
Serializable : 완벽한 읽기 일관성 모드를 제공한다. select 문장이 사용하는 모든 데이터에 shared lock(read lock) 이 걸려 읽기만 가능하다
Transaction Propagation
트랜잭션은 아무 설정이 없으면 Required 속성을 갖는다
Required new, Supported, Not supported, mandatory, never, nested 가 있다
8.Http 메서드
Get, Post, Put, Delete, Patch, Option, Head 가 있습니다
상태코드로는 200번대, 300번대, 400번대, 500번대가 있습니다
'우아한테크코스' 카테고리의 다른 글
[레벨3] 프로젝트 1주차 회고 (0) | 2023.07.01 |
---|---|
DB 에 변경된 부분만 업데이트 하려면(feat Proxy 객체, 변경감지) (12) | 2023.05.16 |
레벨 인터뷰 스터디 준비 (0) | 2023.04.23 |
우아한테크코스 레벨1 레벨로그 준비 (0) | 2023.03.28 |
다른 사람의 리뷰를 훔치자 (5) | 2023.03.19 |