CS/네트워크

·CS/네트워크
프록시(Proxy)프록시는 클라이언트와 서버 사이에서 중개 역할을 하는 중개자로 이러한 프록시를 서버로 이용할 수 있다.프록시 서버는 클라이언트의 요청을 받아 웹 서버에 전달하고, 웹 서버의 응답을 프록시 서버가 클라이언트에 다시 반환한다.프록시 개념을 도입하게 되면 상당히 많은 역할을 부여할 수 있다. 웹 프로젝트를 진행할 때도 프록시 서버를 자주 다뤘는데 내가 가지고 있는 프록시 지식이 아주 적은 부분인 것 같아서 한 번 정리를 해보려고 한다.프록시 서버는 어디에 위치하는지에 따라서 Forward Proxy, Reverse Proxy로 구분된다. Forward ProxyForward Proxy 방식은 클라이언트 앞에 프록시 서버가 위치하는 형태로 클라이언트가 직접 웹 서버와 연결하는 대신, 프록시 서..
·CS/네트워크
SSL(Secure Sockets Layer)최근에 사람들이 주로 사용하는 웹 사이트들은 모두 HTTPS 형식의 통신을 하는 것을 알 수 있다.이러한 HTTPS 통신은 기존의 HTTP 통신에 SSL 프로토콜을 결합한 통신 프로토콜인데 그렇다면 왜 굳이 SSL 프로토콜을 결합해서 통신을 하는 것일까?기존의 HTTP 통신에서는 한 가지 중요한 문제가 있는데 그것은 바로 HTTP 통신으로 데이터를 전달하게 되면 아무런 보안 장치 없이 있는 그대로 데이터를 보낸다는 것이었다.중요한 정보가 담긴 데이터를 보낸다고 했을 때 중간에 공격자가 해당 데이터를 확인하면 어떤 내용인지 바로 확인할 수 있어 굉장히 큰 보안 문제를 야기할 수 있다.이러한 문제를 해결하기 위해서는 데이터를 전달할 때 다른 사람에게 노출되어도 내..
·CS/네트워크
SOP(Same Origin Policy, 동일 출처 정책)동일 출처 정책은 한 출처(Origin)의 문서 및 스크립트가 다른 출처의 리소스와 상호작용하는 방법을 제한하는 브라우저 보안 기능이다. 즉, 동일한 출처에서만 리소스를 공유할 수 있게 제한하는 정책이다. Origin(출처)동일 출처 정책과 이후에 정리할 CORS에도 똑같은 정책이라는 용어가 들어가는데 그렇다면 출처(Origin)는 대체 어떤 것을 의미하는 것일까?출처를 먼저 알아보자면 출처는 프로토콜(스키마), 포트, 호스트로 정의할 수 있다.동일 출처 정책에서 동일 출처에 대한 의미는 URL에서 위의 세 가지(프로토콜, 포트, 호스트)가 모두 동일한 경우 동일한 출처로 간주된다.예를 들어 http://www.example.com/test/te..
·CS/네트워크
REST(Representational State Transfer) APIREST API는 HTTP 요청을 사용하여 데이터에 접근하고 이를 사용 또는 인터넷을 통해 안전하게 교환하는 API 아키텍처이다. 즉, REST API는 두 컴퓨터 시스템이 통신하는 방법이라고 생각해 볼 수 있다.REST는 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌는데 이를 기반으로 대규모의 고성능 통신을 안정적으로 지원할 수 있게 되었다. API(Application Programming Interface)API는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한 것이다. REST 설계 원칙균일한 인터페이스동일한 리소스에 대한 모든 API 요청은 요청의 출처와 관계 없이 동일하게 표시..
·CS/네트워크
로드 밸런싱(Load Balancing)로드 밸런싱은 네트워크 또는 서버에 가해지는 부하(로드)를 분산해주는 기술을 의미한다.로드 밸런싱을 제공하는 서비스 또는 장치(로드 밸런서)는 클라이언트와 네트워크 트래픽이 집중되는 서버들 또는 네트워크 허브 사이에 위치하게 되는데 이를 통해서 부하가 특정 한곳에 집중되지 않고 트래픽을 균형 있게 분산하여 서버나 네트워크 허브들의 성능을 높일 수 있다. 로드 밸런싱의 이점1. 가용성만약 서버가 단 한대로 이루어져있다면 해당 서버가 여러 가지 문제로 인해 다운될 시 사용자는 더 이상 서비스를 이용할 수 없게 된다.하지만 로드 밸런싱을 통해 여러 서버로 부하를 분산하면 특정 서버에서 문제가 발생하여도 전체 서비스에 영향이 적고, 어떤 서버에 문제가 발생하고 있는지 파악..
·CS/네트워크
DNS(Domain Name System)인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하게 되는데 이를 IP 주소라고 한다. 하지만 숫자로 이루어진 해당 IP 주소는 너무 길어지면 사람이 기억하기 어려워진다.이때 사람들이 이해하기 쉽게 특정 이름을 부여하게 된다면 숫자보다 기억하기 수월해진다. 이것을 도메인 네임(Domain Name)이라고 부른다.DNS는 사람이 이해하기 쉬운 이름으로 되어 있는 도메인 네임과 실제 IP 주소 간의 매핑을 관리하게 되는 시스템으로 분산형 DB로 되어 있다.DNS의 대표적인 예시로 전화번호부를 생각해볼 수 있는데 만약 핸드폰으로 다른 누군가에게 전화를 건다면 전화번호를 외워서 전화하는 것이 아닌 이미 저장되어 있는 이름 혹은 별칭을 통해서 전화를 하게 된다.실..
·CS/네트워크
대역폭(Bandwidth)네트워크에서 대역폭이란 네트워크에서 특정 시간 내에 전송될 수 있는 데이터의 최대 용량을 의미한다.네트워크의 대역폭이 높을수록 한 번에 더 많은 데이터가 전송 될 수 있다.네트워크 대역폭이 네트워크 성능에 영향을 줄 수 있지만 그것이 곧 전체적인 네트워크 성능을 보여주는 것은 아니다.네트워크 대역폭의 단위로는 bps(Bits per Sec), Mbps(Megabits per Sec), Gbps(Gigabits per Sec)로 나타낸다.필요한 대역폭을 파악하여 단위 시간 내 네트워크를 통해 보내야 할 데이터가 많다면 대역폭을 그만큼 확보해야 하나 무작정 크게 잡으면 비용이 낭비된다. 하나의 예시로 AWS EC2 스펙(m5 기준)을 확인해보면 네트워크 대역폭을 확인할 수 있는데 사..
·CS/네트워크
HTTP(HyperText Transfer Protocol)HTTP는 애플리케이션 계층에서 웹 서비스 통신에 사용되는 프로토콜이다.HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜로 웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이기도 하다.클라이언트-서버 프로토콜이란 클라이언트 및 서버 요구 사항을 기반으로 하는 요청 및 응답 프로토콜로 서로 호환된다면 모든 유형의 콘텐츠를 교환할 수 있다. HTTP 요청HTTP 요청은 웹 브라우저와 같은 인터넷 통신 플랫폼에서 웹 사이트를 로드하는 데 필요한 정보를 요청하는 방법이다.인터넷을 통해 이루어진 각 HTTP 요청은 서로 다른 유형의 정보를 전달하는 인코딩 된 데이터를 전달하게 된다.일반적으로 아래와 같은 정..
·CS/네트워크
IP(Internet Protocol) 주소 IP 주소는 인터넷 프로토콜 주소를 나타낸다. 즉, 네트워크를 통해 장치를 식별하는 고유 주소를 의미하는데 이는 인터넷이나 로컬 네트워크를 통해 전송되는 데이터의 구조를 관리하는 일련의 규칙과 거의 같다. IP주소는 인터넷이 서로 다른 라우터, 컴퓨터 및 웹사이트를 구별하는 데 도움이 되는데 이는 특정 네트워크에서 특정 기계 식별자 역할을 하며 소스와 대상 간의 시각적 통신을 개선하는 데 도움이 된다. ARP(Address Resolution Protocol) ARP는 주어진 IP 주소에 대한 MAC 주소를 검색하는 데 사용되는 프로토콜로 데이터를 목적지까지 보내기 위해서는 IP주소만 이용해서 보낼 수 없기 때문에 물리적 주소인 MAC 주소가 필요하게 된다. ..
·CS/네트워크
TCP(Transmission Control Protocol) TCP는 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 연결을 진행하며 이를 바탕으로 신뢰성을 구축해서 수신 여부를 확인하는 가상회선 패킷 교환 방식을 사용한다. 장점 단점 신뢰할 수 있는 프로토콜이다. 광역 네트워크용으로 만들어졌으므로 리소스가 부족한 소규모 네트워크에서는 크기가 문제가 될 수 있다. 오류 검사 메커니즘과 복구 메커니즘을 제공한다. 여러 계층을 실행하므로 네트워크 속도를 늦출 수 있다. 흐름 제어를 제공한다. 연결을 통한 안정적인 데이터 전달을 보장함에 따른 오버헤드가 발생하여 속도가 느리다. 데이터가 전송된 정확한 순서대로 올바르게 도달했는지 확인할 수 있다. 가상회선 패킷 교환 방식 각 패킷에는 가상회선 식별자..
·CS/네트워크
네트워크 기기네트워크는 여러 개의 네트워크 기기를 기반으로 구축된다.네트워크 기기는 계층별로 처리 범위를 나눌 수 있는데 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가능하다. 계층별 주요 네트워크 기기애플리케이션 계층: L7 스위치인터넷 계층: 라우터, L3 스위치데이터 링크 계층: 브리지, L2 스위치물리 계층: NIC, 리피터, AP 애플리케이션 계층L7 스위치스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비이다.여러 스위치 중 L7 스위치는 로드밸런서라고도 하며 서버의 부하를 분산하는 기기이다.클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할을 하며 시스템이 처리할 수 있는 ..
·CS/네트워크
OSI 7계층 CS 지식 중에서 네트워크 분야를 학습하면 가장 먼저 접하게 되는 지식이 바로 OSI 7계층이다.OSI 7계층은 표준 프로토콜을 사용하여 다양한 통신 시스템이 통신할 수 있도록 국제표준화 기구에서 만든 개념 모델이다. 말 그대로 컴퓨터 간 서로 통신할 수 있는 표준이라고 생각하면 될 것 같다.각 계층은 하위 계층과 상위 계층 간의 통신이 가능하여 데이터를 주고받을 수 있다.데이터는 Application Layer(응용 계층)에서 Physical Layer(물리 계층)으로 흐르게 되고 마지막 물리 계층이 데이터를 전송할 상대 PC의 물리 계층으로 전송하여 해당 PC의 물리 계층에서부터 다시 응용 계층으로 데이터가 전달된다.각 계층마다 어떤 역할을 가지고 있는지 하나씩 살펴보자. Applica..
·CS/네트워크
유선 LAN 유선 LAN은 주로 이더넷으로 구축하며 전이중화 통신을 쓴다. 이더넷 이더넷은 가장 널리 사용되는 LAN 기술이며 IEEE802.3이라는 프로토콜에 따라 정의된다. 이더넷은 이해와 구현 및 유지 관리가 쉽고 저렴한 네트워크 구현이 가능하고 토폴로지 측면에서 유연성도 제공하기 때문에 폭넓게 사용되고 있다. 이더넷은 일반적으로 버스 토폴로지를 사용하고 있으며 OSI 모델에서 물리 계층과 데이터 링크 계층에서 작동한다. 주로 DLL을 다루므로 PDU는 프레임이다. 유선 네트워킹에서 이더넷을 자주 사용하는데 그 이유로 무선 네트워크보다 더 안전하고 간섭에 덜 민감하기 때문이다. 전이중화 통신 양쪽 장치가 동시에 송수신할 수 있는 방식을 말한다. 송신로와 수신로로 나눠서 데이터를 주고받으며 현대의 고..
·CS/네트워크
네트워크(Network) 네트워크는 노드와 링크가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다.여기서 노드는 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 네트워크 케이블 또는 무선 네트워크의 공간을 의미한다.컴퓨터 네트워크의 작동은 간단히 규칙이나 프로토콜로 정의될 수 있으며 이러한 규칙과 프로토콜은 링크를 통해 데이터를 송수신하고 컴퓨터 네트워크 간의 통신을 가능케 한다.좋은 네트워크를 만들기 위해서는 많은 처리량을 처리할 수 있고 지연 시간이 짧으며 장애 빈도가 적으면서 좋은 보안을 갖춰야 한다. 처리량처리량은 링크를 통해 전달되는 단위 시간당 데이터양을 말한다.단위로는 bps(bits per second)를 사용하고 초당 전송 또는 수신되는 비트 수를 의미한다.처리..
Hosae905
'CS/네트워크' 카테고리의 글 목록