개발하는 프로 국밥러
article thumbnail
JWT(Json Web Token)
CS/네트워크 2022. 6. 27. 20:12

지난 시간에 이어 JWT 에 대해서 이야기 해보겠습니다. Json 포맷을 사용하여, 토큰 자체를 정보로 사용하는 방식으로 주로 회원 인증이나, 정보 전달에 사용된다. JWT 구조 Header, Payload, Signature 의 3 부분으로 이루어지며, JSON 형태인 Base64Url 로 인코딩 되어 표현된다. 각각의 부분을 이어 주기 위해서 . 구분자를 사용하여 구분한다. Header 토큰의 헤더는 typ, alg 두 가지 정보로 구성된다. alg 는 헤더를 암호화 하는 것이 아니라, signature 를 해싱하기 위한 알고리즘을 지정하는 것이다. typ : 토큰의 타입을 지정 ex)JWT alg : 알고리즘 방식을 지정하며, signature 및 토큰 검증에 사용 payload 토큰의 페이로드에는..

article thumbnail
세션과 토큰
CS/네트워크 2022. 6. 27. 20:07

로그인 처리를 하던 도중 세션과 토큰의 차이점에 대해서 정리해 보고자 한다. 서버(세션) 기존 인증 시스템은 서버 기반의 인증 방식으로 서버 측에서 사용자의 정보를 기억해야 한다. 서버가 사용자들의 정보를 기억하기 위해서 세션을 유지해야 하는데, 메모리 또는 디비를 통해 관리한다. 이러한 서버를 Sateful 서버라고 한다. 이러한 세션 인증 방식은 다음과 같은 문제점을 가지고 있다. 세션 사용자가 인증을 할 때 서버는, 이 정보를 저장해야 하고, 이를 세션이라고 부른다. 대부분의 경우에는 메모리에 저장하는데, 로그인 중인 사용자가 늘어날 때, 서버의 RAM 에 부하가 걸리게 된다. 이를 위해 디비에 저장하고 하는데, 디비에 무리를 줄 수 있다. 확장성 더 많은 트래픽을 처리해야 할 때, 세션을 사용한다..

article thumbnail
리다이렉션?
CS/네트워크 2022. 6. 1. 22:49

최근에 서블릿 JSP 를 사용한 MVC 패턴을 사용하면서, redirection 과 forword 의 개념이 헷갈려 애를 먹었던 기억이 있다.. 때문에 오늘 리다이렉션을 한번 정리하고자 한다. 리다이렉션 먼저 리다이렉션은 HTTP 300번대 상태코드로 요청을 완료하기 위해서 유저에게 추가적인 조치가 필요한 상태를 말한다. 말로 하면 이해가 어렵기 때문에 그림과 함께 설명해 보도록 하겠다! 첫번째, 클라이언트가 서버에 요청을 보내게 되면, 서버는 300번대 리다이렉션 상태코드를 반환하게 된다. 두번째, 이때 서버는 Location을 통해서 새로 이동해야 할 위치를 알려주게 되고, 세번째, 클라이언트는 서버에게 받은 위치 정보를 참고해, 새로운 URL 로 접근하게 되는 것이다! (후,, 최대한 쉽게 설명해보..

article thumbnail
컴퓨터는 인터넷에서 어떻게 통신할까?
CS/네트워크 2022. 5. 30. 18:30

컴퓨터가 가까이에 유선으로 연결되어 있다면 어렵지 않게 통신할 수 있겠지만, 우리는 인터넷을 통해서 통신하는 세상에 살고있다. 그렇다면 컴퓨터는 인터넷 상에서 어떻게 통신하는 것일까? 인터넷에 검색해보면 아래와 같이 이해하기 힘든 그림들이 너무 많은데 김영한님의 강의를 통해 쉽게 정리 할 수 있었다. 먼저 컴퓨터가 인터넷 상에서 통신을 하기 위해서 가장 기본적인 것은 다들 한번쯤은 들어봤을 법한, IP(인터넷 프로토콜) 이다. 우리의 컴퓨터는 인터넷을 통해 목적하는 IP 주소로 이동하며, 그 사이사이에 노드 단위로 이동한다. 데이터를 전달할때는 데이터를 패킷이라는 단위로 전달하는데, 패킷에는 기본적으로 출발지IP, 도착지IP, 전송 데이터로 이루어져 있다고 생각하면 된다. 이 IP에는 한계가 존재하는데 ..

article thumbnail
포트 포워딩
CS/네트워크 2022. 4. 16. 13:33

오늘은 포트포워딩에 대한 이야기를 다뤄보고자 합니다. 들어가며 과거에는 대부분 집에서 인터넷을 사용하는 기기가 컴퓨터 하나였기 때문에, 인터넷을 설치한다고 하면 모뎀 한개로 인터넷이 연결될 수 있었습니다. 하지만 최근에는 인터넷을 사용하는 기기가 컴퓨터 뿐 아니라, 스마트폰, 테블릿, 등등.. 다양해 졌기 때문에 다양한 기기들이 인터넷을 사용하기 위해서 유무선 공유기를 설치하는 것을 볼 수 있습니다. 하지만 어떤 서버를 구축하게 된다면 공유기는 큰 문제가 됩니다. 왜 이런일이 생기며, 포트포워딩을 통해서 어떻게 이 문제를 해결할 수 있는지 알아보겠습니다. 공유기 - 공인IP, 사설IP 전세계적으로 인터넷을 사용하기 위해서는 목적지에 해당하는 IP주소를 가지고 있어야 합니다. 우리가 흔히 알고있는 127...

article thumbnail
왜 서버 구축에는 리눅스를 사용할까?
CS/네트워크 2022. 4. 13. 13:38

들어가며 오늘의 포스팅은 얼마전, virtualBOX를 활용하여 생전 처음 리눅스에서 프로그래밍을 하며 느낀점을 적어보려 한다. 개발을 시작한지 얼마 되지 않았던 나는, 여러가지 궁금증이 항상 많다. 그 중 하나가 서버를 돌릴 때 왜 보기도 힘든 CUI(Character User Interface)기반의 리눅스를 사용하냐는 것이었다... 때문에 오늘 서버구축을 위해 리눅스를 사용하는 이유를 이야기 해보고자 한다. 리눅스를 사용하는 이유는 다음과 같다고 한다. 무료 오픈소스 리눅스는 무료 오픈소스 운영체제로, 완전 무료 정책이기 때문에 그 어떠한 금액도 필요로 하지않는다. 웹서버로 리눅스를 사용하는 가장 큰 이유라고 생각한다. 우수한 보안성 PC에 가장 위협적인 건 바이러스 또는 해킹이 아닐까 싶다. 시간..