TIL ( 깊은 복사와 얕은 복사 & jwt )

2024. 7. 26. 23:36TIL

💡면접카타 질의응답

 

 

깊은 복사와 얕은 복사의 차이와 구현하는 방법 

 

깊은 복사와 얕은 복사는 객체를 복사하는 방식에 따라 다르다.
얕은 복사는 객체의 최상위 속성만 복사하고, 중첩된 객체들은 원본 객체와 참조를 공유한다.
그렇기때문에 복사된 객체의 중첩된 객체를 변경하면 원본 객체의 중첩된 객체도 영향을 받는다. 얕은 복사 방법으로는  object.assign() 과 Spread Operator 를 사용합니다.
깊은 복사는 객체의 모든 속성을 재귀적으로 복사하여 중첩되 객체도 새로운 객체로 생성한다.그렇기 때문에 객체를 변경해도 원본 객체는 변경되지 않는다.
깊은 복사의 방법으로는 JSON.parse() 와 JSON.stringify() 를 사용하는데 이 방법은 함수,undefinded, Symbol 등과 같은 데이터 타입은 복사할 수 없다.

 

 

JWT 를 어디서 처리하는지, 검증 방식, 재발급 방식과 주기, 다른 API 서비스 호출시 인증 처리방법

 

 jwt는 Json 형식의 정보를 안전하게 전송하기 위해 사용하는 토큰으로, 주로 인증 및 정보 교환에 사용됩니다.
jwt는 Header, Payload, Signature로 구성됩니다. 
- Header : 토큰의 유형과 해싱 알고리즘을 나타낸다.
- Payload : 사용자 정보 및 기타 클레임을 포함한다.
- Signature : Header와 Payload를 기반으로 비밀 키를 사용해 생성된 서명이다.

jwt는 일반적으로 서버에서 생성되고 클라이언트에 전송됩니다 인증 과정은 우선 사용자가 로그인 정보를 입력하고 서버에 요청을 보내면 서버는 사용자 정보를 검증한 후 jwt를 생성하여 클라이언트에 반환합니다. 클라이언트는 반환받은 jwt를 로컬 저장소에 저장합니다.

jwt 검증 방식으로는 클라이언트가 서버에 요청을 보낼 때, JWT를 HTTP 헤더에 포함시킵니다. 서버는 요청 헤더에서 JWT를 추출하고 JWT형식이 올바른지 확인합니다. 그리고 비밀 키를 사용하여 JWT의 서명을 검증하고 서명이 유효하다면 해당 토큰이 변조되지 않았음을 확인합니다.

jwt는 일반적으로 만료 기간이 설정되어 있어 JWT와 함께 Refresh Token을 사용하여 만료된 JWT를 재발급 받습니다.

다른 API서비스 호출시 JWT를 인증하는 방식은 클라이언트가 다른 API 서비스를 호출할 때 저장된 JWT를 HTTP 요청의 Authorization 헤더에 포함시킵니다. 

'TIL' 카테고리의 다른 글

TIL ( nodejs는 싱글스레드인가에 대하여 )  (0) 2024.07.30
TIL ( 해시테이블과 이진검색트리 )  (0) 2024.07.29
TIL(swagger사용하기)  (0) 2024.07.25
TIL(Proxy)  (2) 2024.07.24
TIL ( crypto-js 란)  (0) 2024.07.23