Skip to main content

Computer Networks

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

네이티브 애플리케이션

장점

  • 상대적으로 빠르다.
  • 기기의 리소스에 접근이 용이하다.
  • 인터넷 없이 사용 가능하다.
  • 상대적으로 안전하다.

단점

  • 개발비가 더 들어간다. (멀티 플랫폼)
  • 빠른 업데이트, 배포가 힘들다.
  • 앱 스토어에 등록하는 비용이 발생한다.

웹 애플리케이션

장점

  • 설치나 다운로드가 필요 없이 브라우저로 실행 가능하다.
  • 업데이트 등의 유지관리가 쉽다. (바로 배포 가능)
  • 상대적으로 개발이 간편하다.
  • 앱 스토어 승인이 필요 없다.

단점

  • 인터넷 연결이 필요하다.
  • 상대적으로 느리다.
  • 앱 스토어의 관리를 받지 않아 사용자 접근성이 떨어진다.
  • 상대적으로 보안상 위험에 노출되기 쉽다.

TCP/IP

TCP/IP 4 LayersOSI 7 LayersProtocol Examples
ApplicationApplicationDNS, HTTP, SSH, TLS/SSL
ApplicationPresentationMIME, ASCII
ApplicationSessionNamed pipe, RTP
TransportTransportTCP, UDP, QUIC
InternetNetworkIP
LinkData LlnkARP, MAC (Ethernet, Wi-Fi)
-PhysicalEthernet PHY, Wi-Fi PHY

패킷

IP

IPv4

IP의 한계

TCP & UDP

TCPUDP
서비스 타입연결 지향데이터그램 지향
신뢰성목적 기기까지 전송을 보장목적 기기까지 전송이 보장되지 않음
순서 보장자체적으로 순서 보장자체적으로 순서 보장되지 않음, 상위 계층에서 순서 관리 필요
속도상대적으로 느림상대적으로 빠름
  • TCP와 UDP 중 비디오 스트리밍 상황에 주로 사용하는 방식
    주로 UDP를 사용한다. 데이터를 빠르게 전송하는 것이 중요하고 약간의 손실은 감수할 수 있기 때문이다.
  • 미 국방부가 TCP/IP가 극심한 전시중 에도 신뢰성을 잃지 않는다고 판단한 이유
    RTO, DupAck 기반 재전송 기술로 신뢰성이 확보되어 있다.
  • DNS 서버가 TCP방식에서 동작하는 경우의 문제점
    서버와 클라이언트의 연결이 유지되어야 하는 TCP의 구조상 자원이 더 많이 들 수 밖에 없다.
    서버와 클라이언트 간의 더 큰 데이터 교환이 필요한 경우에는 TCP를 사용하기도 한다.

포트

포트와 소켓

• 같은 웹 브라우저를 동시에 두개 켜 놓고 같은 사이트에 접속을 해도 문제 없이 통신이 가능합니다. 이러한 경우. 어떠한 방식으로 원활히 통신이 가능할 수 있을까요?

URL & DNS

URL & URI

![URL](<./HTML & CSS/mdn-url-all.png>

DNS

웹 애플리케이션 아키텍처

Multitier Architecture

1-Tier Architecture

  • 메인프레임과 터미널로 이루어진 구조.
  • 개인용 컴퓨터 개념이 없던 시절의 구조로, 메인프레임에서 데이터 저장 및 모든 로직을 실행하고 터미널은 유저와 상호작용하는 역할만 한다.

2-Tier Architecture

  • 클라이언트와 서버로 이루어진 구조.
  • 개인용 컴퓨터의 보급으로 클라이언트 쪽에서도 어느 정도 컴퓨팅이 이루어지게 되면서 생겨났다.
  • 클라이언트는 유저 상호작용과 관련된 로직 실행, 서버는 데이터 저장을 하게 된다.
  • 구성에 따라 비즈니스 로직을 실행하는 주체는 달라질 수 있으나 2-tier 개념은 주로 클라이언트에서 더 많은 컴퓨팅을 하는 쪽부터 나타났다.

3-Tier Architecture

  • 클라이언트, 애플리케이션 서버, 데이터 서버로 이루어진 구조.
  • 2-tier 구조에서 비즈니스 로직을 실행하는 애플리케이션 서버를 따로 둔다.
  • 클라이언트가 더 가벼워지고 서버가 역할에 따라 단계가 나누어졌다.

MVC vs 3-Tier Architecture

  • MVC는 코드 디자인이 model, view, controller 3가지 요소로 나뉘어진 것을 의미하고,
    3-tier 구조는 물리적으로 클라이언트, 애플리케이션 서버, 데이터 서버 3단계로 분리되어 네트워크로 연결된 것을 의미한다.
  • MVC는 클라이언트 혹은 애플리케이션 서버 내부에서 사용될 수 있는 디자인 패턴, 구조인 반면,
    3-tier 구조는 좀 더 거시적인 개념, 물리적인 구조다.

References

계층 외 요소

Cross-Cutting Concerns

Third-party Integrations

  • 제3의 API 서비스와의 결합
  • e.g. OAuth 2.0 소셜 로그인 기능, PG사의 결제 기능

웹 애플리케이션 구현

구현 방식

SPA

  • Single-page application
  • AJAX, Asynchronous JavaScript, XML 등을 사용하여 새로고침 없이 한 페이지에서 작동한다.

MSA (Microservices Architecture)

  • Microservices
  • 특정 기능을 하는 작은 서비스들을 모아 하나의 웹 애플리케이션을 만든다.

Serverless

  • Serverless computing
  • 클라우드 서비스에서 서버와 그 기반 기능들을 담당하여 개발자가 서버를 관리할 필요가 없이 필요한 기능을 구현할 수 있다.

구현 기술

SSR과 CSR

CORS (Cross-Origin Resource Sharing)

HTTP

Further Reading

REST

Richardson Maturity Model (RMM)

Open API

Examples

Further Reading

HTTP API 테스트 툴

CLI

GUI

웹 브라우저

Chrome