Tech Interview/Network

Tech Interview/Network

[Network] 목차

순번유형01OSI 7계층OSI 7계층물리 계층데이터 링크 계층네트워크 계층전송 계층세션 계층표현 계층응용 계층02웹 통신의 큰 흐름 03TCP와 IPTCPIP흐름제어오류제어혼잡제어04TCP와 UDPTCPTCP의 헤더 분석3-way-handshake4-way-handshakeUDPUDP의 헤더 분석05HTTP와 HTTPSHTTPHTTP  헤더HTTP 메서드HTTP 상태 코드HTTPSHTTP 동작 과정TLS/SSL handshake (HTTS 동작 과정)06CORSCORSCORS 동작 과정07쿠키와 세션HTTP 프로토콜쿠키세션08DNSDNSDNS 라운드 로빈 방식09RESTRESTREST APIRESTful10Stateful과 StatelessStatefulStateless11SocketSocket 통신We..

Tech Interview/Network

[Network] I/O

✔️ I/O I/O란? 입력(Input)과 출력(Output)의 약자 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 프로그램, 운영 혹은 장치 I/O 작업은 커널 레벨에서만 수행할 수 있으므로 프로세스나 스레드는 커널에게 I/O를 요청해야 함 Blocking I/O 프로세스(스레드)가 커널에게 I/O를 요청하는 함수를 호출한 후, 커널이 작업을 완료하면 작업 결과를 반환함 I/O 작업이 진행되는 동안 프로세스(스레드)는 자신의 작업을 중단한 채 대기해야 하므로 리소스(CPU) 낭비가 심함 만약 여러 클라이언트가 접속하는 서버를 Blocking 방식으로 구현하는 경우, 다른 클라이언트가 진행하는 작업을 중지하지 않게 하기 위해 클라이언트 별로 별도의 스레드가 생성되므로 많아진 스레드로 인한 문맥 교환이 증..

Tech Interview/Network

[Network] 동기와 비동기

✔️ 동기와 비동기 Blocking과 Non-Blocking 호출된 함수(B)가 호출한 함수(A)에게 제어권을 건네주는 유무의 차이 Blocking은 B가 자신의 할 일을 다 마칠 때까지 제어권을 가지고 있으므로 A는 B의 일이 다 마칠 때까지 기다려야 함 Non-Blocking은 B가 할 일을 마치지 않았어도 A에게 바로 제어권을 넘겨주므로 B의 일을 기다리면서 A의 일을 진행할 수 있음 즉, 호출된 함수에서 일을 시작할 때 바로 제어권을 넘겨주느냐, 할 일을 마치고 넘겨주느냐에 따라 나뉨 Synchronous와 Asynchronous 호출된 함수(B)와 호출한 함수(A)의 동시성 유무의 차이 Synchronous은 A가 B의 일을 기다리면서 현재 상태가 어떤지 계속 체크 Asynchronous는 B의..

Tech Interview/Network

[Network] 로드 밸런싱

✔️ 로드 밸런싱 로드 밸런싱이란? 둘 이상의 CPU 또는 저장 장치와 같은 컴퓨터 자원들에게 작업을 나누는 것 무중단 서비스를 제공하기 위해 여러 서버가 나눠서 일하도록 균등하게 트래픽을 분산시켜주는 것 분산식 웹 서비스로, 여러 서버에 부하를 나누어주는 역할을 하게 되어 클라이언트와 서버 사이에서 부하가 일어나지 않도록 도와줌 서비스를 운영하는 사이트의 규모에 따라 웹 서버를 추가로 증설하면서 로드 밸런서로 관리해주면 웹 서버의 부하 해결 가능 로드 밸런서가 서버를 선택하는 방식 CPU 스케줄링의 라운드 로빈 방식을 활용하여 선택 연결 개수가 가장 적은 서버를 선택 사용자의 IP를 해싱하여 특정 사용자가 항상 같은 서버로 연결되도록 선택 또한 서버를 분배하는 로드 밸런서에 문제가 생길 수도 있으므로 ..

Tech Interview/Network

[Network] 암호화

✔️ 암호화 암호화란? 데이터를 암호화되지 않은 일반 텍스트에서 암호화된 암호 텍스트로 변환하는 방법 사용자는 암호화 키를 사용하여 암호화된 데이터에 액세스하고, 암호 해독 키를 사용하여 해독된 데이터에 액세스 암호화는 사이버 보안을 사용하여 무차별 암호 대입, 그리고 맬웨어 및 랜섬웨어를 포함하는 사이버 공격으로부터 데이터를 보호 대칭키 암호화란? 암호화에 사용되는 키와 복호화에 사용되는 키가 동일한 암호화 기법 암호화한 정보를 누군가에게 보낼 때, 암호키도 함께 보내줘야 함 암호키 자체는 암호화가 되지 않은 평문이므로 분실하거나 타인에게 노출되면 보안에 매우 취약할 수 있음 키 전달 및 관리에 어려움이 있지만, 암호화 연산 속도가 빠르기 때문에 효율적인 암호화 시스템을 구축할 수 있음 공개키 암호화(..

Tech Interview/Network

[Network] Socket

✔️ Socket Socket 통신이란? 클라이언트와 서버가 특정 포트를 통해 양방향 통신을 하는 방식 데이터 전달 후 계속해서 연결을 유지하도록 하여 HTTP에 비해 더 많은 리소스를 소모하게 됨 그러므로 클라이언트와 서버가 실시간으로 계속해서 데이터를 주고 받아야 하는 경우에 사용 또는 실시간 동영상 스트리밍이나 온라인 게임 등에 사용 WebSocket이란? 웹 페이지의 한계에서 벗어나 실시간으로 상호작용하는 웹 서비스를 만드는 표준 기술 실시간 웹을 구현하기 위해서는 양방향 통신이 가능해야 하는데, WebSocket 이전에는 Polling, Streaming 방식의 AJAX 코드를 이용하여 이를 구현하였으나 각 브라우저마다 구현 방법이 달라 개발이 어려운 문제점이 있어 이를 위해 WebSocket이..

Tech Interview/Network

[Network] Stateful과 Stateless

✔️ Stateful과 Stateless Stateful이란? 서버와 클라이언트 간 세션 상태에 기반하여 클라이언트에 응답을 보내게 됨 이를 위해 서버는 세션 상태를 포함한 클라이언트와의 세션 정보를 저장하게 됨 예) TCP의 3-way-handshake로 세션 상태를 established한 상태로 만들어 클라이언트와 서버가 데이터를 주고 받음 그러므로 TCP는 세션 상태에 따라 서버의 응답이 달라지는 Stateful 프로토콜 만약 로드밸런스를 사용할 경우 세션 정보가 저장된 서버를 향해서만 요청이 유지되도록 관리가 필요 Stateless란? 서버의 응답이 클라이언트와의 세션 상태와 독립적 서버는 단순히 요청이 오면 응답을 보내는 역할만 수행하며, 세션 관리는 클라이언트에게 책임이 있음 그러므로 서버는 ..

Tech Interview/Network

[Network] REST

✔️ REST와 RESTful REST란? Representational State Transfer (대표적인 상태 전달) 월드 와이드 웹(www)과 같은 분산 하이퍼 미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 클라이언트와 서버 간 통신 방식 HTTL URI를 통해 자원을 명시하고 HTTP Method를 통해 자원을 처리하도록 설계됨 즉, 자원 기반의 구조(ROA) 설계의 중심에 자원이 있고 HTTP Method를 통해 자원을 처리하도록 설계된 아키텍처 HTTP와 REST 모두 Stateless한 성격을 가지며 HTTP는 Stateless한 프로토콜, REST는 Stateless한 설계 구조 (..

김깅긍
'Tech Interview/Network' 카테고리의 글 목록