토큰 기반의 인증 방식으로, JSON 포맷을 이용 구조 Header 암호화 방식(alg)과 타입(typ) 지정 { "alg": "HS256", "type" : "JWT" } Payload 데이터 { "userId": "19874223" } Signature 토큰 확인 HMAC-SHA256( secret, base64urlEncoding(header) + '.' + base64urlEncoding(payload) ) 세 파트(Header . Payload . Signature)는 Base64rl 인코딩을 사용하여 각각 인코딩됨 → 점(.)을 사용해 연결 const token = base64urlEncoding(header) + '.' + base64urlEncoding(payload) + '.' + bas..
계층 OSI 7 계층 TCP/IP 4계층 (기존) TCP/IP 4계층 (업데이트) 7 응용 (Application) 응용 (Application) 응용 (Application) 6 표현 (Presentation) 5 세션 (Session) 4 전송 (Transport) 전송 (Transport) OSI 와 동일 3 네트워크 (Network) 인터넷 (Internet) OSI 와 동일 2 데이터 링크 (Data Link) 네트워크 엑세스 (Network Access) OSI 와 동일 1 물리 (Physical) OSI 와 동일 - OSI 7계층 : 이론적, 데이터 통신 시 필요한 장비나 처리 방법 등을 7단계로 표준화 - TCP/IP 4계층 : 실무적, 효율적 (현대의 인터넷은 TCP/IP 모델을 따름, ..
* OSI 7계층 중 전송 계층(Transport Layer)에서 사용하는 프로토콜 * 통신할 때 주로 사용하는 것은 TCP TCP 양방향 연결형 서비스 데이터 수신 확인 필수, 에러 체크, 전송 속도 체크(흐름 제어), 혼잡 제어 => 높은 신뢰성 => but, 높은 오버헤드 (데이터의 헤더 사이즈 큼, 전송되지 않는 다면 재전송하는 추가 동작 필요) TCP 사용하는 서비스 : FTP, SMTP, TELNET, HTTP 등 UDP 비연결형 서비스 (데이터를 보내거나 받는다는 신호 없이 일방적으로 데이터 전송) TCP 기능인 데이터 재전송, 에러 체크, 흐름 제어 모두 x => 신뢰성 보장 x => but, 빠름 (데이터 헤더 사이즈 줄어듦) 언제 사용? 실시간으로 데이터가 오고 가는 서비스 (ex. 스..
클로저(Clousure)란? 어떤 함수 A에서 선언한 변수 a를 참조하는 내부함수 B를 외부로 전달할 경우 A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상 (가비지 콜렉터의 동작 방식 때문) const A = () => { // 어떤 함수 A let a = 1 // 에서 선언한 변수 a const B = () => { // 를 참조하는 내부함수 B return ++a // (스코프 체이닝에 따라 A에서 선언한 변수 a에 접근) } return B // (* A의 실행 컨텍스트가 실제로 종료되는 시점) } // 를 외부로 전달할 경우 A의 실행 컨텍스가 종료된 이후에도 (*return하면 그 함수는 생을 마감) const newA = A() // 변수 a가 사라지지 않는 현상 conso..