웹 애플리케이션 작동원리
웹 애플리케이션
웹 애플리케이션은 다양한 동적인 응답을 웹 브라우저라는 소프트웨어를 통해 가능하게 한 애플리케이션이다.
네이티브 애플리케이션
특정 기기에 설치해서 사용하는 애플리케이션이다.
Ex) 모바일용 애플리케이션
- 웹 애플리케이션의 장점
- 브라우저를 통해 실행되기 때문에 설치나 다운로드가 필요 없다.
- 업데이터 등의 유지관리가 쉽다.
- 네이티브 애플리케이션에 비래 만들기가 비교적 간편하다.
- 애플리케이션 스토어 승인이 필요 없다.
- 웹 애플리케이션의 단점
- 인터넷이 없으면 사용이 불가능하다.
- 네이티브 애플리케이션에 비해 속도가 느리다.
- 애플리케이션 스토어에서 관리되지 않아 사용자 접근성이 떨어진다.
- 질적으로 보안상 위험에 노출되기 쉽다.
네트워크를 만드는 기술
TCP/IP 기본
LAN과 WAN
- LAN(Local Area Networ) : 좁은 범위에서 연결된 네트워크
- WAN(World Area Networ) : LAN들이 모여 세계적으로 연결된 네트워크
인터네트워킹(Internetworking)
인터네트워킹이란 여러 네트워크를 연결하는 것을 의미한다.
네트워크를 확장하는 방식은 크게 두 가지 방법이 있다.
- 한 네트워크를 확장하는 방법
- 네트워크와 네트워크를 연결하는 방법
인터네트워킹은 네트워크의 일부에서 고장이 나도 영향이 광범위하게 퍼지지 않는다는 점과 불필요한 통신이 네트워크 전체로 확산하지 않는다는 점, 개별 네트워크를 각각의 방침에 따라 관리가 가능하다는 등의 장점이 있다.
전 세계적으로 인터네트워킹하는 것이 우리가 사용하는 인터넷이다.
프로토콜(Protocol)
인터넷에 연결되어 있는 컴퓨터가 다른 여러 컴퓨터와 소통하려면 약속이 필요하다.
여기서 공통된 약속을 프로토콜이라 하며 지금은 'TCP/IP'프로토콜이 주로 사용하는 약속이다.
TCP/IP
인터넷 통신 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약의 모음이다.
이 모음은 다른 컴퓨터나 다른 운영체제, 다른 회선 간의 통신이 가능하게 해준다.
인터넷이 처음 시작하던 시기에 정의되어 현재까지 표준으로 사용하고 있는 TCP(Transmission Control Protocol)와 IP(Internet Protocol)에서 가져와 TCP/IP라고 부른다.
- TCP/IP 4계층 모델
계층 단위 | TCP/IP 4계층 모델 | 주요 프로토콜 | 역할 |
---|---|---|---|
4층 | 응용 계층 | HTTP, DNS, FTP, ... | 애플리케이션에 맞추어 통신 |
3층 | 전송 계층 | TCP, UDP, ... | IP와 애플리케이션을 중개해 데이터를 확실하게 전달 |
2층 | 인터넷 계층 | IP, ICMP, ARP, RARP | 네트워크 주소를 기반으로 데이터를 전송 |
1층 | 네트워크 접근 계층 | Ethernet, wifi, ... | 컴퓨터를 물리적으로 네트워크에 연결하여 기기 간의 전송이 가능하게 함 |
IP 주소
TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용하는 주소이다.
IP 주소에는 Private 주소와 Public 주소가 있다. LAN 네트워크 내부에서 사용되는 것이 Private IP 주소이고, Public IP 주소는 인터넷에서 사용된다.
IP는 인터넷상에서 사용하는 주소체계를 의미한다. 인터넷에 연결된 모든 PC는 IP 주소체계에 따라 네 덩이의 숫자로 구분되며, 이것은 IPv4라고 한다. IPv4는 Internet Protocol version 4의 줄임말로, IP 주소체계의 네 번째 버전을 뜻한다.
MAC 주소
IP 주소만 가지고는 네트워크 상에서 송수신이 불가능하다. 각 네트워크 기기는 처음부터 제조사에서 할당하는 고유 시리얼인 MAC 주소를 IP 주소와 조합해야만 네트워크를 통한 통신이 가능하다.
이더넷에서는 네트워크상의 송수신 상대를 특정하고자 MAC 주소를 사용하고, TCP/IP 에서는 IP 주소를 사용하기 때문이다.
같은 LAN에 속한 기기끼리 통신할 때는 상대방의 MAC 주소를 파악하는 과정이 있다.
이때 사용하는 것이 ARP(Address Resolution Protocol)이다. MAC 주소를 파악하기 위해 네트워크 전체에 브로드캐스트를 통해 패킷을 보내고, 해당 IP를 가지고 있는 컴퓨터가 자신의 MAC 주소를 Response하게 됨으로써 통신할 수 있게 해주는 프로토콜이다.
패킷
기기끼리의 통신에는 회선 교환(Circuit Switching) 방식과 패킷 교환(Packet Switching) 방식이 있다.
- 회선 교환 방식
- 통신 회선을 설명하여 데이터를 교환하며, 음성전화 시스템에 사용
- 일대일로 데이터를 교환하고, 전화간 통화 중에는 다른 상태와 전화통화가 불가능
- 패킷 교환 방식
- 원본 데이터를 패킷이라고 하는 작은 단위로 나누고, 여러 회선을 주고 받음
- 하나의 패킷은 헤더와 페이로드로 구성되어 있고, 헤더에는 어떤 데이터의 몇 번째 데이터인지의 정보와 보내는 곳이나 최종 목적지에 대한 정보 등이 있음
- 주고받을 데이터를 작게 분할하여 전송해도, 도착한 곳에서 원래대로 복원 가능
IP
IP 주소 구조
IPv4 주소는 000.000.000.000 의 형식으로 되어 있다.
10진수로 표기되어 있지만, 실제론 마침표로 구분된 4개의 8비트 필드(8자리 2진수 4개)로 되어 있다.
각 8비트 필드는 IPv4 주소에서 1 바이트를 나타내고, IPv4 주소의 바이트를 나타내는 이러한 형식을 점으로 구분된 십진수 형식이라고도 한다.
IP 주소는 네트워크부와 호스트부로 나뉜다.
- 네트워크부 : 어떤 네트워크인지 알 수 있는 정보
- 호스트부 : 네트워크 안의 특정 컴퓨터를 지칭하는 정보
IPv4 주소에서 네트워크부가 어디까지인지 나타내는 것이 서브넷 마스크이다.
- IP 주소 : 192.168.1.1
- 서브넷 마스크 : 255.255.255.0
- 네트워크 주소 : 192.168.1.0
- 브로드캐스트 주소 : 192.168.1.255
8자리 2진수 묶음을 옥텟이라고 부른다. IPv4 주소는 4개의 옥텟으로 이루어져 있고, 각각을 1~4옥텟이라고 부른다.
위 서브넷 마스크의 경우, 1~3까지의 옥텟을 네트워크부로 사용하는 서브넷 마스크이고, 4옥텟은 호스트부로 사용한다.
IP 주소의 할당과 관리
MAC 주소와 달리 IP 주소는 처음부터 주어지는 것이 아니라 할당되는 것이다.
위 그림처럼 호스트부를 변경해 가면서 IP 할당이 이루어지게 된다.
호스트부는 8자리로 이루어진 2진수이므로, 할당할 수 없는 시작(0)과 끝 숫자(255)를 제외한 번호로 할당이 가능하다.
- 호스트부가 0으로만 이루어진 것은 네트워크 주소로 그 네트워크를 의미한다.
- 호스트부가 1로만 이루어진 것은 브로드캐스트 주소로 ARP와 같은 기능을 사용하기 위해 사용한다.
IP 프로토콜의 한계
- 비연결성
- 비신뢰성
패킷을 받을 대상이 없거나 특정한 이유로 서비스 불능 상태로 빠져도 데이터를 받을 상대의 상태 파악이 불가능하기 때문에 패킷을 그대로 전송하는 비연결성 문제가 있다.
중간에 패킷이 사라지더라도 보내는 기기 측에서는 알 수 있는 방법이 없다. 또한, 서로 다른 노드를 거쳐서 전송되는 특성상, 보내는 기기측에서 의도한 순서대로 데이터가 도착하지 않을 수 있다.
또한, 한 IP에서 여러 애플리케이션이 작동하는 경우, 특정할 수 없는 한계가 있다.
이런 한계를 극복하기 위해 TCP와 UDP가 사용된다.
TCP, UDP
TCP와 UDP는 TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작한다. 전송 계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와 4계층에서 동작하는 애플리케이션(HTTP 등)을 중개하는 역할을 한다.
TCP와 UDP의 차이점
TCP는 통신 신회성을 높이는 기능이 구현되어 있다. UDP에는 신뢰성을 높이는 기능이 없는 대신 보다 높은 속도와 효율성을 제공한다.
이런 이유로, 데이터의 신뢰성을 필요로하는 애플리케이션은 TCP, 빠른 속도나 실시간 통신이 중요한 애플리케이션의 경우 UDP로 구분해서 사용한다.
특히 웹애플리케이션에서 많이 사용하는 HTTP의 경우 모든 데이터를 제대로 송수신이 가능해야 하는 특성상 TCP를 사용한다.
프로토콜 종류 | TCP(Transmission Control Protocol) | UDP(User Datagram Protocol) |
---|---|---|
연결 방싱 | 연결형 서비스 | 비연결형 서비스 |
패킷 교환 방식 | 가상 회선 방식 | 데이터그램 방식 |
전송 순서 | 전송 순서 보장 | 전송 순서가 바뀔 수 있음 |
수신 여부 확인 | 수신 여부를 확인함 | 수신 여부를 확인하지 않음 |
통신 방식 | 1:1 통신 | 1:1 또는 1:N 또는 N:N 통신 |
신뢰성 | 높음 | 낮음 |
속도 | 느림 | 빠름 |
TCP 3-way handshake
TCP/IP의 개념은 1970년대 미 국방부가 미국과 영국, 프랑스 대학들의 연구자들과 협력하여 개발했다.
TCP 3-way handshake 는 양 끝단의(end to end) 기기의 신뢰성 있는 데이터 통신을 위해 TCP 방식이 연결을 설정하는 방식으로 세 단계를 통해 연결을 설정한다.
- sender는 receiver와 연결 설정을 위해 segment를 랜덤으로 설정된 SYN(Synchronize Sequence Number)와 함께 보낸다. 이 요청은 receiver에게 sender가 통신을 시작하고 싶다고 알린다.
- receiver는 받은 요청을 바탕으로 SYN/ACK 신호 세트를 응답한다. ACK(Acknowledgement) 응답으로 보내는 segment가 유효한 SYN 요청을 받았는지를 의미한다.
- 마지막 단계에서 sender는 받은 ACK를 receiver에게 전송을 하면서, 신뢰성 있는 연결이 성립되었다는 사실을 sender와 receiver 양쪽에서 알 수 있고, 실제 데이터 전송을 시작한다.
UDP의 사용 이유
- 애플리케이션의 정교한 제어가 가능
- TCP의 경우 receiver가 전송 받을 준비가 될 때까지 세그먼트를 반복적으로 재전송한다. 실시간 전송에 대한 요구가 큰 애플리케이션들은 높은 latency를 지양하므로 약간의 데이터 손실을 감수한다. 대신 개발자 스스로가 이를 보완하기 위해 애플리케이션에 추가 기능을 구현할 수 있다.
- 연결 설정에 무관함
- TCP 3-way handshake가 없는 UDP는 예비 과정 없이 바로 전송을 시작한다. 설정 단계에서 발생하는 지연이 없는 만큼, 반응속도가 빠르다. 또한, TCP가 신뢰성을 위해 많은 파라미터와 정보 전달이 필요한 것과 비교해 UDP는 연결 설정 관리를 하지 않기 때문에 어떠한 파라미터도 기록하지 않는다. 따라서 서버에서도 TCP에 비해 더 많은 클라이언트를 수용 가능하다.
'CS > 네트워크' 카테고리의 다른 글
HTTP (0) | 2023.04.16 |
---|---|
웹 애플리케이션 작동원리 4 (0) | 2023.04.16 |
웹 애플리케이션 작동원리 3 (0) | 2023.04.16 |
웹 애플리케이션 작동원리 2 (0) | 2023.04.16 |