내일배움캠프 79일차
오늘은 다음주차로 넘어가서 좀더 심화적인 과정을 각자 하기로 했다. 나는 QueryDSL 적용을 맡았다.
기술면접 질문과 답
16. OSI 7계층에 대해 아는대로 설명해주세요.
OSI 7계층이란 통신이 일어나는 과정을 7단계로 정의한 국제 통신 표준 규약입니다. 각 계층은 독립되어 있으며 계급과 상하구조가 존재합니다. L1부터 물리 계층, 데이터링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 이루어져 있습니다. 각 계층은 하위계층을 사용하고 현재 계층의 기능을 포함하여 상위계층에 제공합니다. 전송시 각각의 층마다 인식할 수 있어야 하는 헤더를 붙이는데 이를 캡슐화라고 합니다. 수신시에는 계층이 올라갈 수록 헤더를 떼내는데 이를 디캡슐화라고 합니다.
17. 세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해주세요.
세션기반 인증은 사용자의 인증 정보가 서버의 세션 저장소에 저장되는 방식입니다. 사용자가 로그인을 하면, 해당 인증 정보를 서버의 세션 저장소에 저장하고, 사용자에게는 저장된 세션 정보의 식별자인 세션 ID를 발급합니다. 발급된 세션 ID는 브라우저에 쿠키형태로 저장되지만 실제 인증 정보는 서버에 저장되어 있습니다. 반면 토큰 기반 인증은 인증 정보를 클라이언트가 직접 들고 있는 방식입니다. 이 때 인증 정보가 토큰의 형태로 브라우저의 로컬 스토리지 혹은 쿠키에 저장됩니다. 대표적인 토큰인 JWT의 경우 디지털 서명이 존재해 토큰의 내용이 위변조되었는지 서버 측에서 확인이 가능합니다.
18. JWT, Refresh, Access Token에 대해서 설명해주세요.
JWT란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 클레임 기반의 웹토큰입니다. 주로 회원 인증이나 정보 전달에 사용됩니다. 액세스 토큰이란 사용자의 정보를 담고 있는 토큰으로서 사용자 인증/인가를 위한 토큰입니다. 서버는 액세스 토큰을 받으면 토큰의 정보를 사용하여 사용자 정보를 제공해주는 역할을 합니다. 액세스 토큰은 탈취당할 때를 대비해 만료시간을 짧게 잡습니다. 리프레쉬 토큰은 액세스 토큰의 만료시간이 다 되었을 때 새로운 토큰을 발급해주는 토큰입니다. 제 3자에 의해 액세스 토큰을 탈취당해도 만료시간이 지나면 새로운 토큰을 발급하기 때문 보안성을 강화시킵니다. 리프레쉬 토큰은 액세스 토큰보다 만료시간을 길게 잡습니다.