목록컴퓨터네트워크 (11)
철학과 학생의 개발자 도전기
JWT(JSON Web Token)란 무엇인가?JWT(Jason Web Token)는 사용자 인증 및 정보 교환에 널리 사용되는 경량의 JSON 기반 표준입니다(JWT, RFC 7519). 서버와 클라이언트 간의 안전한 정보 전송을 가능하게 하며, 인증 토큰으로 활용되어 로그인 세션 관리 등에 이용됩니다.작동 원리 및 구조JWT는 사용자가 시스템에 로그인할 때 발급됩니다. 서버는 사용자의 인증 정보를 검증한 후, JWT를 생성하여 클라이언트에 반환합니다. 클라이언트는 이후의 요청에 이 토큰을 포함시켜 서버에 보내, 자신이 이미 인증됐음을 증명합니다. 서버는 요청을 받을 때마다 JWT의 유효성을 검증하고 요청에 응답합니다. JWT는 세 부분으로 구성됩니다: 헤더(Header), 페이로드(Payload), ..

1. 동기/비동기 통신 2. 동기식 통신 요청(Request)을 보낸 후 응답(Response)을 받을 때까지 기다리는 방식. 요청과 응답이 동시에 일어나는 것처럼 순차적으로 처리됨. 장점 요청과 응답의 순서가 보장되어, 요청에 대한 명확한 처리 결과를 받을 수 있음. 데이터 처리에 있어 일관성과 신뢰성을 유지할 수 있음. 단점 응답이 지연될 경우 요청을 보낸 스레드는 다른 작업을 수행할 수 없는 블록 상태가 됨. 블록 상태로 인해 시스템의 성능 저하가 발생할 수 있음. 3. 비동기식 통신 요청을 보낸 후 응답을 즉시 기다리지 않고 다른 작업을 수행할 수 있는 방식. 요청과 응답이 비동기적으로 처리됨. 장점 응답을 기다리지 않고 즉시 다른 작업을 수행할 수 있어 높은 효율성과 성능을 제공함. 여러 요청을..
1. 로드 밸런싱이란 네트워크 트래픽을 여러개의 리소스 서버에 균등하게 분산하는 기술이다. 데이터가 중복되는 리소스 서버를 여러개 두어 대용량 트래픽에 대비한다. 모든 리소스 서버가 균등하게 사용되도록 트래픽을 제어한다. 2. 로드 밸런싱의 장점 애플리케이션 가용성 강화 서버 문제 자동 감지 및 트래픽을 정상 서버로 리디렉션 가동 중지 없이 유지 관리 및 업그레이드 가능 자동 재해 복구 및 상태 확인을 통한 문제 예방 애플리케이션 확장성 향상 트래픽 분산을 통한 병목 현상 방지 수요에 따른 서버의 유연한 추가 및 제거 지원 중복성 추가로 안정적인 시스템 보장 애플리케이션 보안 강화 트래픽 모니터링 및 악성 콘텐츠 차단 기능 DDoS 공격 대응으로 서버 장애 최소화 네트워크 방화벽을 통한 안전한 트래픽 라..

1. TLS/SSL이란 SSL(Secure Sockets Layer)은 TLS(Transport Layer Security)의 과거 명칭이다. TLS는 안전한 인터넷 통신을 위한 암호화 및 인증 프로토콜이다. Certificate Authority(CA)라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용된다. 2. TLS Handshake TLS Handshake는 TLS 암호화를 사용하는 통신 세션을 실행하는 프로세스이다. TLS Handshake 중에, 통신하는 양측에서는 메시지를 교환하여 서로를 인식하고 검증하며 사용할 암호화 알고리즘을 구성하고 세션 키에 합의한다. 이는 HTTPS 작동 원리의 근간이 된다. TLS Handshake 과정 RSA 키 교환 알고리즘 TLS Handsha..
1. HTTP (Hypertext Transfer Protocol) 1) 특징 HTTP는 응용 계층에서 두 애플리케이션이 데이터를 주고 받기 위한 규약이다. 서버-클라이언트 모델로 구성되며, 요청과 응답으로 동작한다. 예시) 웹 브라우저(클라이언트)가 서버에 HTML 혹은 JSON을 요청하는 경우 80번 포트를 기본으로 사용한다. 평문으로 데이터를 주고 받기 때문에, 통신 내용을 제3자가 조회할 수 있다. 2) 구조 TCP/IP 위에서 동작한다. Stateless하게 통신한다. Method, Path, Header, Body, Status Code 등으로 구성된다. 3) 요청 메소드 종류 GET : 데이터를 조회할 때 사용 POST : 데이터를 생성할 때 사용 PUT : 데이터를 수정할 할 때 사용 DE..

0. 개요 기밀성(Confidentiality): 인가되지 않은 자는 정보를 확인하지 못하도록 하며, 정보가 유출되더라도 평문으로 해독할 수 없고 변조 또는 위조하지 못하도록 기밀을 유지한다. 무결성(Integrity): 인가 되지 않은 자로 부터 위조 또는 변조가 발생하지 않았는지 확인 인증(Authentication): 수신 받은 메시지가 송신자 본인이라는 것을 확인하고 증명한다. 부인 방지(Non-repudiation): 메시지를 보낸 사람이 보낸 사실을 부인하거나, 받은 사람이 받은 사실을 부인할 경우 증명하는 기술을 말한다. 대칭키 알고리즘은 기밀성을 제공하고, 무결성/인증/부인방지를 제공하지 않는다. 공개키 알고리즘은 기밀성/인증/부인방지 기능을 제공한다. 여기서 무결성은 대칭키, 공개키 알고..

1. TCP와 패킷 이메일, 채팅 메시지, 금융 거래 내용 등의 데이터를 전송하는 기본 단위가 패킷이다. 하나의 데이터는 여러 개의 패킷으로 쪼개져서 전송된다. TCP는 신뢰성을 보장하기 위해, 각 패킷에 번호를 부여하여 누락을 확인하고 순서에 맞게 재조립한다. TCP는 신뢰성을 보장하기 위해, 흐름제어/혼잡제어/오류제어 기법을 사용한다. 2 . 흐름 제어 송신자와 수신자 사이의 데이터 처리 속도 차이로 인해 수신자 버퍼의 오버플로우가 발생할 수 있다. 이것을 방지하는 기법이 흐름제어다. 수신자가 감당할 수 있는 속도로 데이터를 보내도록 송신자의 데이터 전송 속도를 제어한다. 1) 정지 - 대기 패킷을 전송하고 확인 응답을 받은 후에 다음 패킷을 전송한다. 속도가 느리다는 단점이 있다. 2) 슬라이딩 ..

TCP란 연결성: 연결을 성공한 후에 통신 데이터의 경계를 구분하지 않음 (byte stream service) 데이터의 전송 순서를 보장 (데이터의 순서유지를 위해 각 바이트마다 번호 부여) 신뢰성 있는 데이터를 전송 (Sequence Number, Ack Number) Sequence Number : TCP 세그먼트의 연속된 데이터 번호 Ack Number : 상대방으로부터 받아야하는 다음 TCP 세그먼트 데이터 번호 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 것 방지) 연결의 설정(3-way handshaking), 해제(4-way handshacking) 3-Way Handshake 데이터를 전송하기 전에 클라이언트와 서버를 연결하는 과정 State 종류 ..