본문 바로가기

개발 공통 기술

(2)
직렬화(Serializable)란 무엇인가? 보통 Java, Json-Serialization 라는 단어들을 사용하여 직렬화를 이야기 하곤 한다. 위키백과에서의 '직렬화'에 대한 설명 컴퓨터 과학 의 데이터 스토리지 문맥에서 데이터 구조 나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장(이를테면 파일 이나 메모리 버퍼 에서, 또는 네트워크 연결 링크 간 전송)하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다. 요약하면 ⇒ 데이터 구조나 Object(객체)를 저장이나 전송에 적합한 다른 데이터 형식으로 변환하는 과정 이러한 과정을 마샬링 이라고도 하는데, 마샬링은 파이썬 표준 라이브러리(Python standard library)에서 "직렬화하다"는 용어와 동일하게 간주되지만, 자바 계열 RFC 2713에서는 동일하게 간주되지 않는다. ..
JWT 는 만능이 아니다. 이 포스팅은 기본적인 JWT 이해가 있다고 생각하고 글을 작성하였습니다. 우리는 JWT 를 사용할때, JWT의 장점만 생각하고 단점에 대해 크게 고민없이 JWT를 사용하곤 한다. 모든 기술에는 장단점이 존재하며, JWT 에도 단점이 있다. JWT 의 구조 JWT는 HEADER.PAYLOAD.SIGNATURE 이렇게 3가지의 필드가 존재한다. 모든 필드는 JSON으로 표현되며 이러한 JSON 필드들을 각각 Base64 인코딩하고 (.)을 기준으로 하나의 값으로 합친 것이 JWT 이다. JWT 공격 방법 JWT는 Base64로 encoded JSON 값이며, Base64를 Decode하면 누구나 내용을 볼 수 있기 때문에 JWT 안에는 중요한 정보는 없어야 한다. JWT Signature Secret Cra..