4. 개인적 예상 면접 질문 정리

박상훈·2023년 4월 19일
0

면접준비

목록 보기
5/5

1. Rest API

출처 : https://thalals.tistory.com/284

REST한 방식으로 데이터를 상호교환하게 설계된 API를 말합니다. 이걸 풀어말하면

-> HTTP를 잘사용하기위해, URI와 HTTP메소드를 사용해서, URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할것인지 표현하여 설계된 API를 말합니다.

정리 : RESTful API(=REST API)란,

REST한 방식으로 클라이언트와 서버간 상호 데이터 교환을 하는 API이며, 서로간에 stateless한 특징을 가지는 API입니다.

2. 토큰 방식의 인증/인가와 Session 방식의 차이

출처 : https://hudi.blog/session-based-auth-vs-token-based-auth/

  • 세션 기반의 인증방식

세션기반 인가는 사용자의 인증 정보가 서버의 세션 저장소에 저장되는 방식이다. 사용자가 로그인을 하면, 해당 인증 정보를 서버의 세션 저장소에 저장하고, 사용자에게는 저장된 세션 정보의 식별자인 Session ID를 발급한다. 발급된 Session ID는 브라우저에 쿠키 형태로 저장되지만, 실제 인증 정보는 서버에 저장되어 있다.

브라우저는 인증 절차를 마친 이후의 요청마다 HTTP Cookie 헤더에 Session ID 를 함께 서버로 전송한다. 서버는 요청을 전달받고, Session ID에 해당하는 세션 정보가 세션 저장소에 존재한다면 해당 사용자를 인증된 사용자로 판단한다.

  • 토큰 기반의 인증방식

세션 기반 인증이 인증 정보를 서버에 저장하는 방식이라면, 토큰 기반 인증은 인증 정보를 클라이언트가 직접 들고 있는 방식이다. 이때 인증 정보가 토큰의 형태로 브라우저의 로컬 스토리지(혹은 쿠키)에 저장된다. 토큰의 종류에 따라 다르겠지만, 대표적인 토큰인 JWT의 경우 디지털 서명이 존재해 토큰의 내용이 위변조 되었는지 서버측에서 확인할 수 있다.

토큰 기반 인증에서는 사용자가 가지고 있는 토큰을 HTTP 의 Authorization 헤더에 실어 보낸다. 이 헤더를 수신한 서버는 토큰이 위변조 되었거나, 만료 시각이 지나지 않은지 확인한 이후 토큰에 담겨있는 사용자 인증 정보를 확인해 사용자를 인가한다.

3. DI시 생성자 주입 방식이 좋은 이유

출처 : https://yeonyeon.tistory.com/220

1) 객체의 불변성

생성자 주입 방식사용 -> 객체를 생성할 때 주입 가능
setter 주입 방식사용 -> 객체를 생성하고 그 이후에도 언제든 의존관계 주입 가능 -> 객체의 변경이 가능해짐.

2) 순환참조 오류 방지

생성자 주입 방식사용 -> 객체를 빈으로 등록하는 시점에서 서로가 서로를 의존한다면 순환참조 오류를 터트림
필드, 메서드 주입 방식사용 -> 등록 시점이 아닌 모든 객체 생성이 완료 된 후에 순환참조 오류가 발생하기 때문에 StackOverFlow가 발생할 것임.( 이러한 문제를 모르고 구동시켰을 경우... 후.. )

profile
기록하는 습관

0개의 댓글