Network11 [Network] API 게이트웨이, NAT 게이트웨이 API 게이트웨이개념API 게이트웨이는 클라이언트(모바일 앱, 웹, 다른 서비스 등)가 내부의 다양한 백엔드 서비스나 마이크로서비스의 API에 접근할 때, 중앙 집중적인 진입점(Entry Point) 역할을 하는 서비스다. 즉 여러 개의 분산된 서비스 및 API 엔드포인트를 한 곳에서 통합하고 관리하며, 외부 요청을 내부 서비스로 라우팅해주는 **프록시**나 **프런트 도어** 같은 역할을 한다. 기능 및 특징엔드포인트 관리 및 라우팅각기 다른 서비스로 분산된 API들을 단일 도메인 및 엔드포인트로 노출함으로써 클라이언트는 복잡한 내부 구조를 알 필요 없이 간단한 URL하나로 접근 가능하다.인증/인가 및 보안토큰 검증, OAuth, JWT 등의 인증/인가 로직을 게이트웨이 레벨에서 처리할 수 있어 각 서.. 2024. 12. 7. [Network] Web Socket 웹 소켓은 웹 환경에서 클라이언트와 서버 간에 양방향(Full-Duplex) 통신을 할 수 있도록 해주는 프로토콜이다. 기존의 HTTP 통신 방식은 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)을 하는 식의 단방향, 요청 - 응답 패턴에 기반하고 있었기 때문에 실시간 양방향 데이터 송수신에 제약이 많았다. 이를 극복하기 위해 웹 소켓이 등장했다. 특징실시간 양방향 통신웹소켓 연결이 수립되면 서버와 클라이언트 양쪽 모두 언제든지 자유롭게 데이터를 전송할 수 있다. 클라이언트가 요청을 보내지 않아도 서버가 주기적으로 필요할 때마다 클라이언트로 데이터를 push할 수 있다.지속적인 연결 상태 유지일반적인 HTTP 요청은 매번 요청-응답 시 연결을 맺었다 끊는 과정을 반복하지만, 웹소.. 2024. 12. 7. CS 네트워크 Blocking, Non-blocking, Sync, Async Blocking/Non-blocking과 Synchronous/Asynchronous는 컴퓨팅과 프로그래밍에서 중요한 개념이다. 입력/출력(I/O) 작업을 처리하는 방식에서 차이를 보인다. 종종 혼동되지만 서로 다른 개념이다. ㅇ 개념Blocking과 Non-blocking은 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 구분한다. Blocking호출된 함수가 자신이 할 일을 모두 마칠 때까지 제어권을 계속 가지고서 호출한 함수에게 바로 돌려주지 않는 상황을 말한다.Non-blocking호출된 함수가 자신이 할 일을 모두 마치지 않았더라도 바로 제어권을 건네주어 호출한 함수가 다른 일을 진행할 수 있도록 해주는 상황을 의미한다. Sync와 Async는 결과를 돌려주었을 때 순서와 결과에 관심이 .. 2024. 10. 17. CS 네트워크 로드밸런싱 로드밸런싱은 네트워크 트래픽을 여러 서버에 고르게 분산하여 시스템의 성능과 가용성을 향상시키는 기술이다. 로드밸런서는 서버 간에 작업을 효율적으로 분배하여, 특정 서버에 과부하가 걸리는 상황을 방지하고 전체 시스템의 응답 시간을 개선한다. 이 기술은 웹 애플리케이션, 데이터베이스 서버, 게임 서버등 다양한 분야에서 사용된다. ㅇ 개념로드밸런싱은 하나의 서버가 처리할 수 있는 용량을 초과하는 트래픽이 발생할 때, 여러 서버로 트래픽을 나누어 처리함으로 성능 저하를 방지한다.. 이때 트래픽을 받을 여러 서버를 하나의 서버처럼 보여지도록 처리한다. ㅇ 장점성능향상여러 서버가 병렬로 트래픽을 처리하므로 전체 시스템의 속도가 빨라진다.확장성로드 밸런서를 통해 서버를 추가함으로 손쉽게 시스템의 용량을 확장할 수 있.. 2024. 10. 17. CS 네트워크 TLS/SSL Handshake TLS/SSL Handshake는 클라이언트와 서버가 안전한 통신을 설정하기 위해 서로 인증하고, 암호화된 세션을 시작하는 과정이다. 이 과정에서 대칭 키를 생성하고 안전하게 공유하기 위한 메커니즘을 사용하여 이후의 데이터 통신을 암호화한다. ㅇ 핸드쉐이크의 목적인증클라이언트가 서버의 신뢰성을 확인하고, 서버 인증서를 통해 서버가 신뢰할 수 있는 엔티티임을 증명암호화된 통신 채널 설정대칭 암호화 키를 안전하게 생성하고 공유하여, 그 이후의 통신이 암호화될 수 있게한다.무결성 보장통신 중 데이터가 변경되지 않았음을 보장한다. ㅇ 핸드쉐이크의 과정 클라이언트는 서버에게 client hello 메세지를 담아 서버로 보낸다. 이 때 암호화된 정보를 함께 담는다. (버전, 암호 알고리즘, 압축 방식 등)서버는.. 2024. 10. 17. CS 네트워크 HTTP & HTTPS HTTP(HyperText Transfer Protocol)는 웹 브라우저와 서버 간에 데이터를 주고받는데 사용되는 프로토콜로, 웹 페이지나 리소스를 전송하는데 널리 사용된다. HTTPS(HyperText Transfer Protocol Secure)는 HTTP에 SSL/TLS(보안계층)을 추가해 강화한 프로토콜이다. 두 프로토콜은 기능과 보안 측면에서 차이가 있으며 웹 환경에 따라 각각 적절하게 사용된다. ㅇ HTTP(HyperText Transfer Protocol)특징비연결형 프로토콜각 요청 - 응답이 완료되면 연결이 종료된다.(connectionless)지속적인 연결 없이 매번 새로운 연결을 설정하므로 상태 정보를 유지하지 않음(Stateless)평문 전송데이터가 암호화되지 않은 상태로 전송된다... 2024. 10. 15. CS 네트워크 대칭키 & 공개키(비대칭키) 대칭키 암호화와 공개키 암호화는 데이터를 보호하기 위해 사용하는 두 가지 주요 암호화 기법이다. 데이터를 암호화(Encryption)하고 복호화(Decryption)할 때 서로 다른 방식으로 작동한다. 각각은 장단점이 있으며, 다양한 보안 요구에 맞춰 사용된다. 대칭키 암호화 방식암복호화에 사용하는 키가 동일하다.공개키 암호화 방식암복호화에 사용하는 키가 서로 다르며 비대칭키 암호화라고도 한다. ㅇ 대칭키대칭키 암호화는 하나의 동일한 키를 사용해 데이터를 암호화하고 복호화한다. 송신자와 수신자가 같은 키를 공유해야만 데이터를 안전하게 주고받을 수 있다. 특징하나의 키로 암호화와 복호화를 수행빠르고 효율적이지만, 키를 안전하게 공유하기 어려움(탈취 관리 걱정)대용량 데이터 암호화에 적합기밀성을 제공하나,.. 2024. 10. 15. CS 네트워크 TCP & UDP TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷에서 데이터를 전송하는 두 가지 주요 프로토콜이다. 이들은 IP(Internet Protocol) 위에서 동작하며, 각각의 특성에 따라 다른 목적의 네트워크 통신에 활용된다. ㅇ TCP인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면, TCP는 패킷을 추적 및 관리한다.TCP는 신뢰성 있고 연결 지향적인 프로토콜로, 데이터 전송 과정에서 정확성과 순서를 보장한다. TCP의 특징높은 신뢰성을 보장연결 지향 방식으로 패킷 교환 방식을 사용(가상 회선 방식 x)연결 : 3-Way H.. 2024. 10. 15. CS 네트워크 TCP/IP 흐름제어 & 혼잡제어 TCP 통신이란 네트워크 통신에서 신뢰적인 연결 방식을 의미한다. 기본적으로 Reliable Network를 보장할 수 있도록 하는 프로토콜이다. Unreliable전송한 데이터그램이 유실될 수 있고, 순서가 바뀌어 도착할 수 있다.Reliable세그먼트가 유실될 경우 재전송을 통해 복구해주며, 순서가 바뀌어 도착하더라도 순서 번호를 이용하여 제대로 맞추어 전달한다. ㅇ Reliable Network의 문제점손실packet이 손실될 수 있는 문제순서 바뀜packet의 순서가 바뀔 수 있는 문제Congestion네트워크가 혼잡한 문제Overloadreceiver가 overload되는 문제** TCP의 전송 제어 방법은 데이터의 양을 조절하는 흐름제어, 통신 도중 데이터가 유실되거나 잘못된 데이터가 수신되.. 2024. 10. 14. 이전 1 2 다음