network 11

[네트워크 Network] 🤷‍♂️ 동기/비동기 & 블로킹/논블로킹 개념 🫸

I/O란 무엇?소프트웨어 아키텍처를 이해하고자 할 때, 우리는 동기(Synchronous), 비동기(Asynchronous), 블로킹(Blocking), 논블로킹(non-Blocking)과 같은 개념을 만나게 된다.이러한 개념이 탄생하게 된 이유는 I/O(Input/Output) 때문이라고 볼 수 있는데 왜 I/O로 인해서 위와 같은 개념들이 탄생했을까?I/O (Input / Output) 의 정의I/O 는 컴퓨터 프로그램이 자신을 둘러싼 외부 환경과 상호작용하는 모든 행위를 총칭한다. 컴퓨터 시스템의 핵심을 연산처리하는 CPU와 작업공간인 RAM으로 보면, I/O는 이 핵심 영역 바깥의 모든 장치와의 데이터 교환을 의미한다.Input(입력) : 외부의 데이터를 프로그램 내부로 가져오는 과정스토리지(HD..

[네트워크 Network] 프록시 🥷

프록시프록시(Proxy)는 '대리인'을 의미한다. 네트워크 아키텍처에서 프록시 서버는 클라이언트와 최종 목적지 서버 사이의 중간 다리 역할을 수행하며, 모든 통신을 대리한다.단순히 요청을 전달만 하는 것이 아니라, 이 중간 지점에서 다양한 부가 기능을 수행하며 시스템 전체의 보안, 성능, 효율성을 높이는 핵심 컴포넌트로 활약한다.핵심 작동 원리Request Interception (요청 가로채기): 클라이언트의 HTTP 요청 메시지는 원래 목적지 서버가 아닌 프록시 서버로 향하게 된다. 이를 위해 클라이언트는 프록시 서버의 주소를 미리 알고 있도록 설정되어야 한다.Packet Re-construction (패킷 재구성): 프록시 서버는 클라이언트로부터 받은 요청 패킷을 해석(Parsing)하게 된다. H..

[네트워크 Network] 로드밸런싱 🛣️

로드 밸런서란?로드 밸런서(Load Balancer)는 이름 그대로 '부하(Load)를 분산(Balancing)하는 장치'다. 애플리케이션에 들어오는 네트워크 트래픽(요청)을 여러 대의 서버에 효율적으로 나누어주는 역할을 한다.스케일 업(Scale-up)과 스케일 아웃(Scale-out)트래픽 증가에 대처하기 위해 서버 처리 용량을 늘리는 방식은 크게 두 가지가 있다. 로드 밸런서는 특히 '스케일 아웃' 방식에서 핵심적인 역할을 한다.스케일 업 (Scale-up, 수직 확장)개념: 기존 서버의 성능 자체를 높이는 방식 (예: CPU, RAM, 디스크 사양 업그레이드)장점: 구조가 단순하고 구현이 쉽다.단점: 성능 향상에 한계가 있으며, 비용이 기하급수적으로 증가할 수 있다. 하나의 장비에 의존하므로 장애..

[네트워크 Network] 네트워크 ACL & 보안그룹 🔐

네트워크 ACL과 보안그룹클라우드 환경에서 애플리케이션을 배포하고 운영할 때, 보안은 매우 중요하다.특히 AWS와 같은 클라우드 서비스는 사용자가 직접 네트워크 보안을 설정하고 관리할 수 있는 강력한 기능들을 제공하고 있는데, 그중에서도 가장 기본적이면서도 핵심적인 두 가지 방화벽은 NACL(네트워크 ACL, Network Access Control List)과 Security Group(보안 그룹)이 있다.이전 VPC 개념을 정리하면서 마지막에 스쳐 지나가듯이 잠깐 언급했는데 이번 글에서 NACL과 Security Group의 개념과 특징을 명확히 정리하고 둘의 장단점을 비교하며 언제 어떻게 사용해야 하는지에 대해 알아보겠다.Security Group (보안 그룹): 인스턴스의 든든한 개인 경호원보안 ..

[네트워크 Network] VPC란 무엇일까? (개념) ☁️

VPC란?VPC (Virtual Private Cloud) 란 독립적인 가상의 네트워크 공간으로 사용자의 설정에 따라 자유롭게 구성될 수 있는 공간을 의미한다.사용자는 자기가 원하는대로 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워크 환경을 구성해 VPC를 생성할 수 있다.AWS를 사용한다고 했을 때, 만약 VPC가 없다면 EC2 인스턴스들이 서로 거미줄 처럼 연결되어 인터넷과 연결된다. 이런 구조는 시스템의 복잡도를 올라가며 하나의 인스턴스를 추가해도 모든 인스턴스를 수정해야하는 불편함이 생긴다.인스턴스란? 클라우드 컴퓨팅에서 인스턴스는 타사 클라우드 서비스에서 제공하는 서버 리소스로 하나의 가상 컴퓨터라고 이해하면 된다.VPC를 적용하게 되면 VPC별..

[네트워크 Network] 📑 API? REST? REST API? RESTful API?!

API란 무엇인가?API(Application Programming Interface)란, 애플리케이션 간의 소통을 가능하게 하는 중개자 역할을 한다. API의 맥락에서 애플리케이션이란 고유한 기능을 가진 모든 소프트웨어를 나타내며, 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다. 인터페이스는 요청과 응답을 사용해 두 애플리케이션이 서로 소통하는 방법을 정의하고 있다. 즉, API는 서로 다른 프로그램이 “대화”할 수 있게 해주는 통역사와 같다.웹 API웹 API 또는 웹 서비스 API는 웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스이다. 모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아니다. 역사적으로 API는 월드 와이드 웹(WWW)전에 만들어졌기 때문에 Jav..

[네트워크 Network] 인증 / 인가 방식에 대해 (쿠키, 세션, 토큰, JWT) 🍪

인증(Authentication) : “누구세요?”인증은 클라이언트가 누구인지, 즉 사용자의 신원을 증명하고 확인하는 절차를 의미한다. 이는 사용자로 부터 제공받은 자격 증명(Credential)을 검증하여, 해당 사용자가 주장하는 신원이 실제로 유효한지 확인하는 과정이다. 예시 :아이디와 비밀번호생체 정보 인증 (Face ID, 지문인식 등)OAuth2.0 같은 표준 프로토콜을 활용한 제 3자 서비스( 카카오로 로그인, 구글로 로그인 등)를 통한 신원 확인인증은 사용자의 접근을 허용하기 위한 첫 번째 관문이며, 이 과정이 성공적으로 완료되어야만 인가 절차로 넘어갈 수 있다.인가(Authorization) : “뭘 할 수 있죠?”인가는 인증된 사용자가 특정 리소스에 접근하거나 특정 작업을 수행할 수 있는..

[네트워트 Network] 🌐 HTTP & HTTPS 그리고 보안과 암호화 🔐

HTTP 란?HTTP(Hyper Text Transfer Protocol)란 클라이언트(우리의 웹 브라우저)와 서버가 서로 데이터를 주고받기 위해 사용하는 가장 기본적인 '약속' 또는 '규칙'이다. 웹의 초기부터 사용되어 온 이 프로토콜 덕분에 우리는 웹 페이지를 보고, 이미지를 다운로드하고, 동영상을 스트리밍할 수 있다.HTTP 특징클라이언트-서버 아키텍처 : 모든 HTTP 통신은 요청-응답 모델을 따른다. 웹 브라우저와 같은 클라이언트가 특정 자원(예: HTML 문서, 이미지)을 요청하면, 웹 서버는 해당 요청을 처리하고 응답을 반환하는 구조무상태 프로토콜 (Stateless Protocol) : 각 요청이 이전의 어떤 요청과도 무관한 독립적인 트랜잭션으로 처리됨을 의미. 서버는 요청 간에 클라이언트..

[네트워크 Network] TCP & UDP 그리고... 3 & 4 way Handshake 🤝

TCP & UDP / 신뢰 vs 신속전송 계층의 역할네트워크의 계층 중 전송 계층(4 계층)은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로 데이터의 전달을 담당한다.네트워크 계층(3 계층)이 편지를 주소로 배달하는 우체부라면, 전송 계층은 그 편지를 받아 정확한 동과 호수의 우편함으로 넣어주는 역할을 한다.데이터가 올바르게, 효율적으로 전달되도록 제어하는 모든 규칙과 절차가 전송 계층의 핵심이며 이런 임무를 수행하기 위해 전송 계층은 대표적으로 TCP와 UDP라는 두 가지의 프로토콜을 사용한다.TCP (Transmission Control Protocol) - 전송 제어 프로토콜전송 제어 프로토콜(TCP)은 이름 그대로 데이터 전송의 전 과정을 세밀하게 제어하여 신뢰성을 보장하는 데 모든 초..

[네트워크 Network] OSI 7계층과 TCP/IP 4계층 🏢

OSI 7계층OSI(Open Systems Interconnection) mode은 1984년 ISO가 다른 시스템 간의 원활한 통신을 위해 제안해 만든 통신 규약으로, 네트워크 통신을 7개의 계층으로 나눠 데이터 전송 과정을 이해하고 설계하는 데 사용되는 참조 모델이다.1 계층 - 물리 계층 (Physical Layer): 물리 계층은 OSI 모델의 최하위 계층으로, 장치 간의 실제 물리적인 연결을 담당한다.물리 계층의 통신 단위는 비트(Bit)이며, 단지 데이터를 전기적인 신호로 변환해서 주고 받는 기능만 있다.주요 장비로는 허브, 리피터, 모뎀, 케이블 등이 있다.2 계층 - 데이터 링크 계층 (Data Link Layer): 데이터 링크 계층은 노드 간 메시지 전달을 담당한다.데이터 링크 계층의 ..