티스토리 뷰
안녕하세요. 좋아요요정입니다.
프론트엔드 면접을 준비하며 Network에 대해 조금이라도 이해하고자 정리한 개념입니다. :) 어렵네요
화이팅!
[목차]
네트워크 기본 지식
CORS
HTTP
TCP/UDP, IP
네트워크(network)
네트워크란 컴퓨터들이 통신망을 통해 서로 그물처럼 연결된 체계를 말합니다.
클라이언트와 서버간의 정보가 오고가는 역할을 하는 기술의 총칭을 의미하며, 데이터를 케이블에 실어 나르는 것을 의미합니다. 컴퓨터와 프린터, 컴퓨터와 운영체제, 서버와 클라이언트 등 네트워크를 이용하는 관계들이 서로의 네트워크의 종류와 상관 없이 누구나 정보를 주고받을 수 있습니다.
네트워크의 종류
- LAN : 비교적 가까운 거리의 컾뮤터와 주변기기들을 연결하는 네트워크
- MAN : 도시등과 같이 지리적으로 같은 위치에 있는 여러개의 랜을 연결하는 네트워크
- WAN : LAN, MAN을 다시 하나로 묶는 거대한 네트워크
네트워크를 구성하는 하드웨어
- 컴퓨터와 주변기기 : 컴퓨터와 네트워크를 연결해 사용할 수 있는 주변기기(프린터 등)와의 관계
- 네트워크 소프트웨어 : 운영체제, 응용 프로그램, 서버 프로그램 등 네트워크와 소프트웨어와의 관계
- 서버와 클라이언트 : 공급자와 사용자의 형태로 서비스를 위한 네트워크 연결 관계
OSI 7계층
- 제 1계층(물리 계층):
- 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다.
- 통신단위는 비트로 1과 0으로 전송. 데이터를 전달하는 역할만 한다.
- 제 2계층(데이터 링크 계층)
- 네트워크 카드(기기에 연결되는)가 만들어질 떄부터 물리적 주소값이 정해져있다. 브릿지나 스위치를 통해서 맥주소를 가지고 물리 계층에서 받은 정보를 전달한다.
- 에러검출/재전송/흐름제어를 수행하여 안전한 정보의 전달을 수행할 수 있도록 한다.
- 주소 체계는 계층이 없는 단일 구조이다.
- 제 3계층(네트워크 계층)
- 주소 부여(IP), 경로 설정(Route)를 수행, 데이터를 목적지까지 가장 안전하고 빠르게 전달한다.
- 제 4계층(전송 계층)
- 사용자가 데이터를 주고 받을 수 있도록 프로세스 간의 논리적인 통신을 한다.
- TCP, UDP 프로토콜
- 제 5계층(세션 계층)
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공하고, 응용 프로그램의 관점에서 본다.
- 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다.
- 통신을 하기 위한 세션을 확립, 유지, 중단하는 기능을 운영체제가 해준다
- 제 6계층(표현 계층)
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공, 암호화한다.
- 코드간의 번역, 인코딩 등 해당 데이터의 형식상 차이를 구분하는 역할
- 제 7계층(응용 계층)
- 응용 프로세스와 직접 관계하며 최종 목적지.
- 네트워크의 최종 양 끝단은 HTTP, FTP, SMTP, POP3, IMAP, Telnet과 같은 프로토콜이다.
- 네트워크 소프트웨어 UI부분, 사용자의 입출력부분에 해당한다.
캡슐화
- 데이터를 운반하기 위해서는 데이터 이외에 다른 것이 필요합니다.
- 각 계층에서는 데이터 운반을 위한 이름표를 붙히고, 프레임으로 감싸 비트로 변환되어 운반됩니다.
위치호칭상태
사용자 | 데이터(Data) | 통신할 데이터 |
7,6,5계층 | 메세지(Message) | 데이터를 통신용으로 변환한 것과 7계층의 헤더 |
4계층 | 세그먼트(Segment) 데이터그램(datagram) | 메세지와 4계층 TCP/UDP헤더 |
3계층 | 데이터그램(datagram) | 세그먼트, 데이터그램과 IP헤더 |
2계층 | 프레임(Frame) | 데이터그램을 Frame header/trailer로 감쌈 |
1계층 | 신호 | 프레임을 전송매체로 운반하기 위한 비트신호로 변환 |
[참고]
네트워크 기초 지식 정리
네트워크에 대한 기본지식
네트워크-전공지식
네트워크 기초 지식
CORS 정책
교차 출처 리소스 공유(Cross-Origin Resource Sharing)으로 출처(URL, 포트, 호스트)등이 다른 경우에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 정책입니다.
예를 들어 http://baejiu.com에서 http://baejiu.com/data 로 요청을 하게 된다면 보안상의 이유로 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한합니다.
API를 사용하는 웹 애플리케이션은 자신의 출처와 동일한 리소스만 불러올 수 있으며, 다른 출처의 리소스를 불러오기 위해서는 서버츨 응답에서 접근 권한을 주는 CORS 헤더를 포함해 해결할 수 있습니다. Node.js의 경우 cors 모듈을 사용할 수 있습니다.
HTTP
HTTP(Hypertext Transfer Protocol)은 웹에서 브라우저와 서버 간에 데이터를 주고받기 위해 사용되는 통신 프로토콜입니다.
HTTP 프로토콜 특징
HTTP 프로토콜은 상태가 없는 프로토콜입니다. 상태가 없다는 의미는 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말입니다. 첫번째 요청과 두번째 요청은 서로 관련이 없다는 뜻입니다.
이러한 특징으로 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄일 수 있는 이점이 있습니다.
Request & Response
클라이언트는 HTTP 프로토콜로 데이터를 주고받기 위해서 Request, 요청을 보내고 서버로부터 Response, 응답을 받아야 합니다.
HTTP 요청 메서드
클라이언트단에서 URL을 이용해 서버에 특정 데이터를 요청할 수 있습니다. 그리고 HTTP 요청 메서드를 통해 특정 동작을 수행할 수 있습니다.
요청 | 기능 |
GET | 서버에게 자원을 요청 |
POST | 서버에 새로운 자원을 전달/서버에 자원 생성 |
PUT | 서버에게 존재하는 자원에 대한 변경 |
DELETE | 존재하는 자원에 대한 삭제 |
HTTP 상태 코드
클라이언트가 URL과 요청 메서드를 통해 서버에게 Request를 보냈을 때 서버는 진행된 상태에 따라 응답을 해줄 수 있습니다.
이때 상태 코드를 통해 요청에 대한 상태를 전달합니다.
- 200번대 : 대부분 성공을 의미합니다.
- 300번대 : 리다이렉션, 클라이언트가 이전 주소로 데이터를 요청했을 때 새 URL로 유도하는 경우입니다.
- 400번대 : 클라이언트의 에러입니다. 코드가 잘못되었거나, 네트워크, 권한이 없는 경우, 잘못된 요청이 경우 입니다.
- 500번대 : 서버의 에러입니다.
[참고]
프런트엔드 개발자가 알아야하는 HTTP 프로토콜 Part 1
TCP/UDP
- 제 4계층(네트워크 계층)에서 통신 제어와 서비스의 식별을 수행하는 계층입니다.
- '신뢰성'과 '신속성'으로 분류하여 서로 다른 프로토콜을 마련하고 있습니다.
TCP
- 신뢰성: 데이터를 중요하게 생각해 활실하게 주고받고 싶은 경우
- 데이터를 송신할 때 확인 응답을 주고 받는 절차가 있습니다.
- HTTP, FTP, SMTP, TELNET 등과 같이 데이터를 누락시키고 싶지 않은 서비스에 주로 사용됩니다.
UDP
- 신속성: 데이터를 보내기 전 확인 응답을 주고받는 절차를 생략할 수 있어 신속성을 높인다.
- 주로 DNS, VoIP등에 사용된다.
IP
- IP는 제 3계층에서 진행되며 Internet Protocol의 약자이다.
- 4계층으로부터 받은 데이터에 IT헤더를 붙혀서 패킷으로 만들어질 때 사용됩니다.
- IP헤더에는 여러 필드값(버전, 헤더, 프로토콜 등)과 출발지 IP주소, 도착지 IP주소가 들어갑니다.
- IP는 IP주소라는 32비트로 된 식별전호를 사용해 컴퓨터를 식별합니다. 8비트마다 점(.)으로 구분되고 10진수로 표기됩니다.(예. 192.168.1.1 )
'개발일기' 카테고리의 다른 글
프론트엔드 면접을 대비하여 지식 요약2(JavaScript 관련) (0) | 2022.03.10 |
---|---|
프론트엔드 면접을 대비하여 지식 요약1 (Programming용어 관련) (0) | 2022.03.07 |
[react] object 깊은 복사하는 함수 (0) | 2021.12.14 |
- Total
- Today
- Yesterday
- 스택
- SET
- Python
- 리액트
- 복제
- 면접대비
- 선언
- Call
- JS
- JavaScript
- 파이썬
- 생성자함수
- 프로토타입
- 타이핑
- 프로퍼티
- 타이핑효과
- react
- 프로그래머스
- 면접
- this
- 스터디
- 프론트엔드
- 메서드
- 자바스크립트
- 함수
- 코딩테스트
- 객체
- Prototype
- 팀러버덕
- 상속
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |