Application architectures
<aside>
<img src="/icons/slideshow-play_yellow.svg" alt="/icons/slideshow-play_yellow.svg" width="40px" />
종류
- client-server
- peer-to-peer(P2P)
</aside>
architecture
<aside>
<img src="/icons/potted-plant_purple.svg" alt="/icons/potted-plant_purple.svg" width="40px" />
Client-Server
- Server
- 항상 켜져 있는 호스트
- 영구적인 고정 IP 주소를 갖는다.
- 사이즈를 키울려면 데이터 센터를 키워야함
- Client
- Server와 통신하며, 간헐적으로 연결 가능
- 통산적으로 동적 IP 주소를 갖는다
- client들끼리 서로 직접 소통하지 않는다.
P2P acrhitecture
- Peer-to-Peer의 약자, 임의의 end system들끼리 직접 통신
- 중앙 서버를 거치지 않고 클라이언트 컴퓨터끼리 직접 통신하는 방식
- 항상 켜져있는 서버가 존재하지 않는다
- self-scalability 특징 존재
</aside>
Sockets
<aside>
<img src="/icons/paste_gray.svg" alt="/icons/paste_gray.svg" width="40px" />
- 프로세스 간 메세지를 주고받는 인터페이스
- Port, IP, Protocol로 정의
</aside>
What transport service does an app need?
<aside>
<img src="/icons/sticker_gray.svg" alt="/icons/sticker_gray.svg" width="40px" />
- TCP or UDP 중 무엇을 사용할 지 정해는 기준
- data intergrity
- timing
- throughput
- security
</aside>
Web and HTTP