The A :

728x90
반응형

Today I Lean

네트워크 _ 웹 애플리케이션의 작동원리

 

 

 

 

 

학습목표 및 개념정리

# 웹 애플리케이션에 대한 이해

- 웹 애플리케이션 네이티브 애플리케이션의 기본 개념에 대해 이해할 수 있다.

# 네트워크를 만드는 기술

-  네트워크를 만드는 기술을 이해할 수 있다.

  • TCP/IP의 기본개념에 대해 이해할 수 있다.
  • TCP와 UDP, PORT의 개념과 그 차이를 이해할 수 있다.
  • URL, DNS의 개념과 작동원리에 대해 이해할 수 있다.

 

# 웹을 구성하는 기술

- 웹을 구성하는 기술을 이해할 수 있다.

  • 웹의 기본적인 개념에 대해 이해할 수 있다.
  • 클라이언트-서버 아키텍처와 웹 애플리케이션 아키텍처의 흐름을 이해할 수 있다.
  • 웹 애플리케이션을 구현하는 방식과 기술에 대해 이해할 수 있다.
  • SSR과 CSR의 기본개념과 차이를 이해할 수 있다.
  • CORS의 기본 개념에 대해 이해할 수 있다,
  • SPA를 가능하게 하는 AJAX에 대해 이해할 수 있다.

 

#  HTTP

- HTTP mmessages의 구조를 설명할 수 있다,

  • HTTP의 동작방식을 이해할 수 있다.
  • HTTP requests와 responses를 구분할 수 있다.
  • HTTP의 응답 메시지를 찾아볼 수 있다.

 

 

 

배운 것

# 웹 애플리케이션에 대한 이해

1. 웹 애플리케이션 vs 네이티브 애플리케이션

  웹 애플리케이션 네이티브 애플리케이션
설명  웹 브라우저를 통해 접근이 가능  특정 기기에 설치해서 사용
 Apple IOS, Android OS, Windows와 같은 특정 실행환경에 종속
 설치된 기기를 제외하고는 실행될 수 없음
장점 브라우저를 통해 실행되기 때문에 설치나 다운로드가 필요 없음
업데이트 등의 유지관리가 쉬움
네이티브 애플리케이션에 비해 비교적 만들기 간편
애플리케이션 스토어의 승인 불필요

▪ 웹 애플리케이션 보다 빠름
 애플리케이션이 설치된 기기의 시스템 / 기기의 리소스에 접근이 용이 (GPS, 카메라 등)
 인터넷 없이 사용 가능
 웹 애플리케이션에 비해 안전
(모바일의 경우 앱스토어의 승인을 받아야 함)
단점 인터넷이 없으면 사용 불가
네이티브 애플리케이션에 비해 느림
애플리케이션 스토어에서 관리되지 않아 사용자의 접근성이 떨어짐
보안상 위험에 노출되기 쉬움

웹 애플리케이션에 비해 개발비가 높음(멀티 플랫폼 개발 등)
빠른 업데이트가 힘듦
앱스토어에 승인 받기가 힘드고. 비용이 발생함



 

 

 

# 네트워크를 만드는 기술

1. TCP/IP 

- LAN과 WAN
 LAN (Local Area Network) : 좁은 범위에서 연결된 네트워크

 → 인터넷 라우터를 통해 연결된 인터넷 (유무선 인터넷 모두 포함)

 WAN (Wide Area Network) : LAN들이 모여서 세계의 네트워크를 구성하는 것

 

- 인터네트워킹 (Internetworking)

네트워크를 확장하는 방식

  • 하나의 네트워크를 확장
  • 네트워크와 네트워크를 연결 → 인터네트워킹 → 인터넷

 장점

  • 네트워크의 일부가 고장이 나도 영향이 광범위 하게 퍼지지 않음
  • 불필요한 통신이 네트워크 전체로 확산되지 않음
  • 개별 네트워크를 각각 따로 관리 가능

 

 

- 프로토콜 (Prorocol)

 : 컴퓨터끼리 네트워크를 사용하여 소통하기 위한 공통된 약속

 

 

- TCP / IP (Transmission Control Prorocol / Internet Protocol)

 : 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 통신규약의 모음

  TCP/IP 4계층 모델 주요 프로토콜 역할
4층 응용 계층 HTTP, DNS, FTP 등 애플리케이션에 맞춰 통신
3층 전송 계층 TCP, UDP 등 IP와 애플리케이션을 중개
데이터 전달
2층 인터넷 계층 IP, ICMP, ARP, RARP 네트워크 주소를 기반으로 데이터 전송
1층 네트워크 접근 계층 Ethernet, Wifi 등 컴퓨터를 물리적으로 네트워크에 연결해서 기기간 전송이 가능하게 함

 

 

- 주소 (Address)

 : 네트워크에 연결된 특정 PC의 주소를 나타내는 체계 → IP address (IP주소)

 

IP 주소 : TCP/IP 구조에서 컴퓨터를 식별하기 위한 주소 (그때그때 할당)

MAC 주소 : 제조사에서 처음부터 할당하는 고유 시리얼 (처음부터 주어짐)

 → 이더넷 에서는 네트워크상의 송수신 상대를 특정할 때 MAC 주소를 사용하고, TCP/IP 에서는 IP address를 사용

 → 같은 LAN상의 기기끼리 통신할 때 상대의 MAC주소를 먼저 파악함

 → 이때 사용하는 것이 ARP (Address Resolution Prorocol)

 

 

- 패킷

 : 기기끼리의 통신에는 회성 교환(Circuit Switching) 방식과 패킷 교환(Packet Switching) 방식이 있지만 회성 교환 방식은 1 : 1 통신방식이기 때문에 컴퓨터네트워크에서 효율적이지 않음

 

패킷교환

 : 원본 데이터를 패킷(Packet)이라고 하는 작은 단위로 나누고, 여러 회선을 공용해 통신을 주고 받음

 : 하나의 패킷 (헤더와 페이로드로 구성)

 : 헤더 (어떤 데이터의 몇번째 데이터인지의 정보 + 보내는 곳의 정보 + 도착지의 정보가 들어있음)

 → 이렇게 데이터를 작게 분할하여 전달해도 도착에서는 원래의 데이터 대로 복원이 가능

 

 

 

 

2. IP

- IP 주소
 : TCP/IP 구조에서 컴퓨터를 식별하기 위한 주소

LAN 네트워크 내부에서 사용 : privet 주소

인터넷에서 사용 : public IP 주소

 → 인터넷에 연결된 모든 PC는 IP 주소체계를 따라 네덩이의 숫자로 구분됨

 → OOO.OOO.OOO.OOO의 구조

 

 

- IP 주소 구조

▪ 서브넷 마스크 (Subnet Mask)

 : IPv4 주소에서 네트워크부 가 어디까지인지 나타내는 것

 : 아래 예시에서는 1~3까지의 옥텟을 네트워크부로 사용하는 서브넷 마스크. 따라서 4옥텟은 호스트부로 사용

 ex) 192.168.1.100

 → 192.168.1 (network part) .100 (host part)

 

 

- IP 주소의 할당과 관리

 : 시작(0)과 끝(255)를 제외한 254개의 주소만이 할당 가능한 IP주소

 

▪ 호스트부가 0으로만 이루어진 주소 → 네트워크 주소 (해당 네트워크를 의미)

▪ 호스트부가 1으로만 이루어진 주소 → 브로드캐스트 주소 (ARP와 같은 기능을 사용하기 위해 사용)

 

 

- IP 프로토콜의 한계

▪ 비 연결성 : 패킷을 받을 대상이 없거나 특정한 이유로 서비스 불능 상태에 빠져도 데이터를 받을 상대의 상태 파악이 불가능하여 패킷을 그대로 전송함

▪ 비 신뢰성 : 중간에 패킷이 사라지거나, 보내는 기기에서 의도한대로 데이터가 도착하지 않을 수 있음

 

 

 

 

3. TCP, UDP

- TCP/IP 4계층 모델
 : TCP와 UDP는 TCP/IP 4계층 모델을 기준으로 IP 프로토콜의 계층인 인터넷 계층의 상위에서 동작

 : 전송계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP와, 4계층에서 동작하는 애플리케이션(http 등)을 중개하는 역할을 함

  TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
서비스 타입 연결 지향적 프로토콜 데이타그램 지향적 프로토콜
신뢰성 데이터 전송 표적 기기까지의 전송을 보장 표적 기기까지의 전송이 보장되지 않음
순서 보장 전송하는 패킷들의 순서가 보장됨 패킨순서의 보장이 안됨
애플리케이션 레이어에서 관리해야 순서가 보장됨
속도 UDP보다 느림 TCP보다 빠름
단순하며 효율적인 속도를 가짐
특징 가상의 회선 설정
▪ 애플리케이션의 정교한 제어 가능
▪ receiver가 전송받을 준비가 될 때 까지 segment를 반복 전송
▪ 실시간 전송에 대한 요구가 큰 애플리케이션 들은 높은 latency를 지양하므로 약간의 데이터 손실 감수 (개발자가 보완을 위한 추가기능 구현)

▪ 연결 설정에 무관
▪ UDP는 예비과정 없이 바로 전송 시작
▪ 설정단계에서 발생하는 지연이 없고, 반응속도가 빠름
▪ 어떠한 파라미터도 기록하지 않기 때문에 TCP보다 더 많은 클라이언트 수용이 가능
▪ 어떠한 파라미터도 기록하지 않기 때문에 TCP보다 더 많은 클라이언트 수용이 가능

 

 

 

- TCP 3 -way handshake

 : 양 끝단의 (end to end) 기기의 신뢰성 있는 데이터 통신을 위해, TCP 방식의 연결을 설정하는 방식

 

▪ 연결 설정 순서

  1. SYN (Synchronize Sequence Number) : sender는 receiver와 연결 설정을 위해, segment와 랜덤설정된 SYN을 함께 보냄 → receiver에게 sender가 통신을 시작하고 싶다는 알림
  2. SYN / ACK : receiver는 받은 요청을 바탕으로 SYN/ACK 신호세트를 응답 → ACK응답으로 보내는 segment가 유효한 SYN요청을 받았는지를 의미
  3. ACK (Acknowledgement) : sender는 받은 ACK를 reseiver에게 전송 → 신뢰성 있는 연결 성립을 sender와 receiver 모두 알 수 있고, 실제 데이터 전송이 시작됨

 

* 비디오 스트리밍 상황에서는 →  TCP? UDP?

* DNS 서버가 TCP 방식에서 동작할 때 생길 수 있는 문제점

 

 

 

 

4. PORT

- PORT 번호
 : 해당 IP 기기를 특정하는 번호
 → 이미 사용중인 포트는 중복사용이 불가능

 → 포트번호는 0~65,535까지 있는데, 그 중 0 ~ 1023번까지는 이미 정해져 있음

  Port number range description
Well-known port 0 ~ 1023 시스템 사용 번호 (슈퍼 유저 권한 필요)
사용 권장 X
Registered port 1024 ~ 49151 특정 프로토콜이나 어플리케이션에서 사용하는 번호 (슈퍼유저 권한 필요 X)
Dynamic port 49152 ~ 65535 어플리케이션에서 혹은 임시 사용 번호

 

- 자주 사용되는 Well-known port

port no Protocol name Transport protocol description
80 HTTP TCP 웹 서버 접속
443 HTTPS 웹 서버 접속 (SSL)
110 POP3 메일 읽기
25 SMTP 메일 서버간 메일 전송
22 SSH 컴퓨터 원격 로그인
53 DNS UDP DNS 질의
123 NTP TCP 시간 동기화

 → 이미 정해진 포트라도 필요에 따라 자유롭게 사용 가능

 → 잘 알려진 포트는 URI에 명시하지 않지만, 잘 알려지지 않은 포트(:8080 과 같은 임시포트)는 반드시 명시해야함

 

 

 

5. URL, DNS

- URL (Uniform Resource Locator)
 : 어떤 자원을 찾기 위한 브라우저에서 사용되는 매커니즘
 → HTML이나 이미지 등의 리소스 위치를 특정하기 위한 서식

 

▪ 브라0우저 주소창의 URL

 → 서버가 제공되는 환경에 존대하는 파일의 위치를 나타냄

 

 

- URI
 : 
 →  

 

 

- DNS
 : 
 →  

 

 

 

 

# 웹을 구성하는 기술

 

 

# HTTP

 

 

 

 

*****

1. Read, Write, Execute 권한

- 처음 보는 개념이라 이해하기가 힘들었다. 한번봐서는 어려워서 읽고 쉬고 읽고 쉬고 세번쯤 반복했더니 그래도 머리에 들어왔다. 물론 완벽히 알진 못하지만 다음에 또 보면 더 잘 알 수 있을 듯 하다.

 

2. 인자 : 프로그래밍 언어에서 함수 호출 시 함수에 전달되는 값. 인수나 전달인자라고도 부른다.
함수 값? 호출값?

 

3. CLI 명령어 더 알아보기

 

 

 

 

Tomorrow Chapter

# Database & SQL

# SQL

# 과제 / Learn SQL

 

 

 


 

 

↓ 이전 글 ↓

 

[코드스테이츠] 04_12_TIL : 프론트엔드 이해하기

Today I Lean 프론트엔드 이해하기 아침에 일어나서 바로 공부를 시작하는게 습과이 안돼있어서 그런지 쉽지 않았다. 그래도 최대한 준비시간을 줄여보고자 커피도 미리 타놓고 긴장하고 잠들었던

theflower01.tistory.com

 

↓ 코트스테이츠 부트캠프 관련 글 한번에 보기 ↓

 

'IT/코드스테이츠 부트캠프' 카테고리의 글 목록

Flower, Plant, Study

theflower01.tistory.com

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading