728x90

분류 전체보기 177

[키워드 정리/네트워크] 이더넷 프레임이란

이더넷 프레임이란 데이터 링크 계층의 데이터 단위로 이더넷 프레임을 기반으로 데이터가 전달되며, 아래와 같은 필드들로 구성된다. Preamble (7바이트): 이더넷 프레임이 시작됨을 알려준다. SFD (1바이트): Start Frame Delimiter, 다음 필드부터 주소 필드가 시작됨을 알려준다. Destination Address (6바이트): 목적지 주소 Source Address (6바이트): 시작지 주소 Ether Type (2바이트): IPv4, IPv6와 같이 데이터 링크 계층 위의 IP프로토콜을 정의한다. Paylaod (가변 바이트): 데이터 또는 페이로드라고 한다. 길이가 가변적이다. 이진 데이터로 구성된다. IEEE 표준으로 페이로드는 최대 1500바이트이다. FCS (4바이트):..

[기술 면접/네트워크] 주소창에 www.naver.com을 입력했을 때 일어나는 일

기술 면접의 최단골 질문. 주소창에 www.naver.com(특정 url)을 입력했을 때 컴퓨터에 어떤 일이 일어나는지 알아보자. 아래 7가지 단계로 이야기 해볼 수 있다. 리다이렉트 캐싱 DNS IP라우팅 & ARP TCP 연결 구축 응답 & 콘텐츠 다운로드 브라우저 렌더링 1. 리다이렉트 리다이렉트가 있다면 리다이렉트를 진행하고, 없다면 그대로 해당 요청에 대한 과정이 진행된다. 2. 캐싱 해당 요청이 캐싱이 가능한지 여부를 파악한다. 캐싱되어 있는 요청이라면 캐싱된 값을 반환하며, 캐싱 되지 않은 새로운 요청이라면 그 다음 단계로 넘어간다. 캐싱은 요청에 대한 응답을 저장하고 해당 값이 다시 요청되면 서버에 다시 요청하지 않고, 저장된 값을 제공하는 기술이다. 캐싱은 브라우저 캐시와 공유 캐시로 구..

[개념 정리/네트워크] REST API

개발자 채용 공고에서 빠지지 않고 등장하는 용어 REST API. REST API의 뜻과 API를 REST API로 만드는 방법에 대해 알아보자. REST API란 REST API는 RESTful API라고도 하며, RESTful하다는 것은 RESTful한 것으로 규정된 일련의 특징과 규칙 등을 지키는 것을 말한다. 2000년에 Roy Thomas Fielding이 쓴 논문에서 처음 등장한 개념으로, 논문에서는 REST API로서 갖춰야할 특징을 8가지로 규정했으나, 우리에게 실질적으로 주요한 특징 5가지만 살펴보자. REST API 특징 1. Uniform-Interface API에서 자원들은 각각의 독립적인 인터페이스를 가지며, 각각의 자원들이 url 자원 식별, 표현을 통한 자원 조작, Self-d..

[네트워크] 대규모 트래픽으로 인한 서버 과부하 해결 방법 5가지

서버 과부하란 서버가 리소스를 소진하여 들어오는 요청을 처리하지 못할 때 발생한다. 이 때 서버는 사용자의 웹 요청을 처리하지 못하며, 사용자에게 응답 없음이 뜬다. 이런 서버 과부하를 예방하거나, 해결할 수 있는 대표적인 방법 5가지를 알아보자. 1. 모니터링을 통한 자원 할당 서버 과부하로 서버가 응답없음이 드는 데에는 여러 이유가 있지만, 그 중 하나가 자원의 한계점 도달이다. 보통 서버의 CPU 사용량이 80~90%에 도달하거나 메모리가 부족하여 스와핑이 계속 발생하면 과부하 상태가 된다. 이는 모니터링을 통한 자원의 적절한 할당으로 해결할 수 있다. 자원은 CPU, 메모리, 대역폭을 포함한다. AWS 오토스케일링 (auto scaling) AWS 오토스케일링이란 서비스 이용 불가 상태 발생 이전..

[키워드 정리/네트워크] 유선 LAN, 무선 LAN 관련 용어 정리

유선 LAN과 무선 LAN에 관련된 용어와 개념을 정리해보자. 유선 LAN 유선 LAN은 동축 케이블, 광케이블 등으로 만들어져, 이더넷 IEEE802.3 프로토콜을 기반으로 전이중화 통신을 사용한다. IEEE802.3 IEEE802.3이란 이더넷프레임이 어떤 구조를 기반으로 할 것인지, 케이블의 최대 전송량, 어떤 케이블만 가능하도록 할 것인지 등을 정한 규칙이다. 전이중화 통신 전이중화(full duplex) 통신은 양쪽 장치가 동시에 송수신할 수 있는 방식이다. 송신로와 수신로를 나누어 데이터를 주고 받을 수 있으며, 따라서 회선이 2개이다. CSMA/CD(Carrier Sense Multiple Access with Collision Detection) 과거에는 유선 LAN에 반이중화 통신 중 하..

[키워드 정리/네트워크] 네트워크 계층별 기기/장치 정리

네트워크 기기는 계층별로 구분될 수 있다. 네트워크 기기의 특징 중 하나는 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있으나, 그 반대는 불가능하다. 예를 들어, 애플리케이션 계층을 담당하는 로드 밸런서는 네트워크 분산처리까지 가능하지만, 물리계층의 장치 중 하나인 NIC는 이를 수행할 수 없다. 레이어별 프로토콜, PDU 정리 Layer Number Layer Name Protocol Protocol Data Unit Addressing 5 Application HTTP, SMTP,... Messages n/a 4 Transport TCP/UDP Segments/Datagrams Port#s 3 Network or Internet IP Packets IP Address 2 Data Link E..

[http통신] http 메서드 종류

http 메서드는 아래와 같은 종류가 있다. 굵은 글씨로 표시된 메서드들이 가장 흔히 사용된다. GET POST PUT HEAD DELETE PATCH OPTIONS CONNECT TRACE 주요한 5가지 메서드 GET, POST, PUT, PATCH, DELETE에 대해 알아보자. GET 데이터를 읽기 요청 body를 사용할 수 없어, url을 기반으로 데이터를 요청한다. url을 기반으로 하기 때문에 2000자 미만 길이 제한이 있다. 성공 시 status code 200 캐싱이 가능하다. url을 기반으로 하여 요청 파라미터가 브라우저 기록에 남는다. url을 기반으로 하여 ASCII문자열만 보낼 수 있다. 사용자 이름, 비밀번호 등 민감한 정보를 전달할 때는 사용하지 않는다. POST 데이터 생성..

[개념 정리] 로그인 - 세션 기반 인증 VS 토큰 기반 인증

로그인 구현 방식으로는 대표적으로 세션 기반 인증 방식과 토큰 기반 인증 방식 두 가지가 있다. 프로젝트 진행 시에는 토큰 기반 인증 방식만 사용해보았는데, 각각의 특징과 장단점을 살펴보자. 세션 기반 인증 방식 세션: 서버와 클라이언트의 연결이 활성화된 상태. 세션ID: 웹 서버 또는 DB에 저장되는 클라이언트에 대한 고유한 ID. 세션 기반 로그인 프로세스는 아래와 같다. 최초 로그인 -> 세션 ID 생성 -> 서버에서 세션ID를 쿠키로 설정하여 클라이언트에게 전달 클라이언트가 서버에 요청을 보낼 때, 해당 세션 ID를 쿠키로 담아 전에 로그인한 아이디인지 확인 맞다면 로그인 유지 단점 사용자의 상태에 관한 데이터를 서버에 저장했을 때, 로그인 상태인 유저의 수가 늘어난다면 서버 메모리 과부하가 일어..

[개념 정리] 웹브라우저 캐시 - 로컬 스토리지, 세션 스토리지, 쿠키 비교 정리

캐시(cache)의 사전적 의미는 데이터나 값을 미리 복사해 놓은 임시 장소이다. 다시 혹은 자주 사용해야 하는 데이터를 임시로 저장해두어 요청 효율을 높이는 방식이라고 볼 수 있다. 웹브라우저의 임시 데이터 저장소 캐시에는 세 종류가 있다. 로컬 스토리지, 세션 스토리지, 쿠키 세 가지이다. 각각의 특징과 셋의 차이점에 대해 알아보자. 참고로, 이 내용은 기술 면접의 단골 질문에 반드시 포함되는 부분이니 꼭 외워두도록 하자. 로컬 스토리지(local storage) 로컬 스토리지는 웹 스토리지 객체로 브라우저 내에 {key: value} 형태로 오리진*에 종속되어 저장되는 데이터를 말한다. 오리진이 같다면 동일 브라우저 내에서 공유된다. 특징은 아래와 같다. 하나의 키에 하나의 값만 저장된다. 사용자가..

[개념 정리/네트워크] HTTPS와 TLS - 핸드 셰이크

SSL(Secure Socket Layer)은 SSL 1.0부터 시작하여, SSL 2.0, SSL 3.0 으로 버전이 올라가다, TLS(Transport Layer Security Protocol)1.0 으로 명칭을 변경한 후, TLS 1.3 버전까지 업데이트 되었다. 아래 내용은 TLS 1.3을 기반으로 한다. TLS는 전송 계층에서 보안을 제공하는 프로토콜이다. 클라이언트와 서버가 통신할 때, TLS를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 한다. TLS 핸드셰이크 TLS 핸드셰이크 과정을 차근 차근 살펴보자. 크게 보자면 사용할 TLS 버전을 정한 후, 사이퍼슈트, 서버의 공개 키, SSL 인증서를 기반으로 인증 작업을 수행한다. 이후, 대칭 암호화를 위해 세션 키를 생성한다. 1. C..

728x90