network (1)

 

 

❑ Client-Server Architecture

 

 

➤ 클라이언트-서버 아키텍쳐(2-Tier Architecture)

 

서버는 말 그대로 제공(serve)하는 주체

리소스를 사용하는 곳이 ‘클라이언트

리소스를 제공하는 곳이 ‘서버

 

client가 데이터 전송하면서 요청  server가 응답

client의 요청 없이 server가 응답오는 경우는 없음

 

 

 

➤ 3-Tier Architecture

 

Client - Server - Database

2-Tier 아키텍처에 데이터베이스 추가된 형태

데이터베이스: 리소스를 저장하는 공간 (창고와 같은 역할)

 

프론트엔드는 사용자의 눈에 보이는 UI를 디자인하여 상호작용 할 수 있는 앱을 개발하는 일을 한다.

백엔드는 눈에 보이지 않는 로그인, 로그아웃, 상품정보를 API 노출하는 등의 사용자 인증을 주로 다루는 개발자이다.

백엔드 개발자가 데이터베이스 등의 시스템 설계까지 도맡아서 하는 경우도 많다.

 

 

 

➤ 클라이언트와 서버의 종류

 

▶️ 클라이언트

 

주로 플랫폼에 의해 구분됨

크롬같은 웹 브라우저가 대표적인 클라이언트임

 

 

▶️ 서버

 

서버는 하는 일에 따라 종류가 다름

파일 서버(파일을 제공)

웹 서버(웹 사이트에서 필요로 하는 정보 제공)

메일 서버(메일을 주고받을 수 있게 해줌)

데이터베이스(데이터 제공)

 

 

 

❑ HTTP

 

➤ Protocol(프로토콜)

 

서버와 클라이언트가 정보를 주고받는 프로토콜이 존재해야 한다.

정해진 프로토콜 -> http

HTTP를 이용해 주고받는 메시지를 HTTP 메시지 라고함

HTTP만의 규칙이 있고 그 규칙을 지켜야지만 한다

 

 

➤ 참고) OSI 7계층

 

OSI 7계층은 네트워크 데이터 통신을 설명할 때 반드시 있어야 하는 중요한 개념입니다.

과거에는 통신용 규약이 표준화 되지 않아서 호환되지 않는 시스템이나 애플리케이션이 많았고 통신이 불가능 했습니다.

이를 하나의 규약으로 통합하려는 노력이 현재의 OSI 7계층에 남아있습니다.

OSI 7계층이 네트워크 동작을 나누어 이해하고 개발하는데 많은 도움이 되므로 네트워크의 주요 레퍼런스 모델로 활용되고 있습니다.

하지만 현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어 있습니다.

-IT엔지니어를 위한 네트워크 입문-

 

➤ OSI 모델과 TCP/IP 모델

OSI 7계층과 TCP/IP 모델 비교

 

 

❑ API(Application Programming Interface)

 

서버에 클라이언트가 어떤식으로 요청을 보내야 하는지 모르기 때문에

카페의 메뉴판 처럼 리소스를 잘 활용할 수 있도록 제공하는 것이다.

Interface : 의사소통이 가능하도록 만들어진 접점

카페에서 메뉴판에 아이스 아메리카노, 카페라떼 등 가능한 요청을 명시해서 고객에게 보여줘야

고객이 엉뚱한 주문(예를 들어 국밥)을 하지 않고 올바른 주문을 넣을 수 있다.

이처럼 서버가 리소스를 받을 메뉴판인 API를 구축해놓아야 클라이언트가 이를 활용해서 요청을 할 수 있는 것이다.

보통 인터넷에서는 HTTP라는 프로토콜을 사용하고 주소(URL, URI)를 통해 접근 가능 하다.

 

 

➤ HTTP 작성하기

 

CRUD

Create Read Update Delete : 컴퓨터 소프트웨어에서 기본적으로 데이터를 처리하는 기능

 

▶️ HTTP 대표적 메소드

  • GET : 조회 (Read)
  • POST : 추가 (Create)
  • PUT(PATCH) : 갱신 (Upload)
  • DELETE : 삭제 (Delete)

 

 

 

❑ URL과 URI

 

 

➤ URL

 

브라우저의 주소창에 입력한 URL은 서버가 제공하는 환경에 존재하는 파일의 위치를 나타냄

Uniform Resource Locator의 줄임말

네트워크 상의 웹페이지, 동영상, 이미지 등의 파일이 위치한 정보를 나타냄

 

scheme, hosts, url-path로 구분

scheme: 통신방식(프로토콜) ex) http://  file://

hosts : 웹 서버의 이름이나 도메인, IP 주소

url-path : 해당 웹 서버의 루트로부터 웹페이지, 이미지, 동영상 등이 위치한 경로와 파일명

 

127.0.0.1 은 로컬 PC를 나타냄

 

 

➤ URI

 

Uniform Resource Identifier의 줄임말

URL의 기본 요소(scheme, hosts, url-path) + query(쿼리), bookmark

query : 웹 서버에 보내는 추가적인 질문

브라우저의 검색창을 클릭하면 나타나는 주소가 URI이다.

URI는 URL을 포함하는 상위 개념이다.

 

 

 

❑ IP와 포트

 

➤ IP

 

네트워크에 연결되어 있는 특정 PC의 주소를 나타내는 체계를 IP address(Internet Protocol address)라고 함

172.31.0.1 -> 총 4부분의 숫자가 3개의 . 으로 나누어진 형태

한부분을 옥텟(Octet)이라고 부름

옥텟은 모두 .으로 구분 되어 있음

인터넷에 연결된 모든 PC는 IP주소 체계에 따라 4부분의 숫자로 구분됨

이런 주소체계를 IPv4라고 함 (version4)

IP주소의 각 부분은 0~255까지 표현 가능-> 1옥텟에 1byte 차지

이 체계를 따르면 32bit(8x4)를 이용해서 2^(32)인 약 43억 개의 IP 주소 표현 가능

 

localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭

0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소, 서버에서 접근 가능 IP주소를 broadcast address로 지정하면 모든 기기에서 서버에 접근 가능함

 

 

▶️ IPv4 vs IPv6 비교

 

인터넷 보급률이 낮았던 때에는 IPv4로 네트워크에 연결된 모든 PC에 주소를 할당하는 것이 가능했다.

그러나 개인 PC가 보급되면서 전 세계의 수많은 PC가 인터넷에 연결되면서 각각의 IP가 필요해졌고

IPv4로 할당할 수 있는 PC 수를 넘어버렸다.

이런 문제를 해결하기 위해 IPv6가 생겼다.

IPv62^(128)개의 주소 표현이 가능하다.

 

 

➤ PORT

 

포트는 IP주소가 가리키는 PC에 접속할 수 있는 통로(채널)을 의미함

이미 사용중인 포트는 중복해서 사용할 수 없다.

IP가 집 주소라면  PORT는 호수라고 보면 된다.

포트 번호는 0~65,535까지 사용 가능하다.

0~1024번 까지는 통신을 위한 규악에 따라 정해져 있는 포트다.

▶️ 반드시 알아야 하는 포트 번호

  • 22 : SSH
  • 80 : HTTP
  • 443 : HTTPS

 

정해진 포트라도 필요에 따라 자유롭게 사용 가능하다.

URI에도 PORT를 명시한다.

잘 알려진 포트는 명시하지 않지만 잘 알려지지 않은 포트는 반드시 포함해야 한다.

 

 

 

❑ 도메인과 DNS

 

➤ Domain name

 

웹 사이트에 진입할 때 IP주소를 대신하여 사용하는 주소

IP = 도로명 주소, 지번 주소

Domain name = 상호, 아파트 이름

IP는 특성상 한눈에 파악하기 힘들고 길지만 도메인 이름은 바로 파악 가능하다.

 

 

➤ DNS

 

모든 PC는 IP주소를 가지고 있지만 모든 로컬 PC가 도메인 이름을 가지는 것은 아니다.

127.0.0.1은 localhost로 사용할 수 있지만 그 외의 모든 도메인 이름은 일정 기간 동안 대여해야 사용 가능하다.

그렇다면 도메인 이름과 해당 IP를 어떻게 연결할까?

네트워크에는 도메인 이름으로 IP를 찾아주는 서버가 따로 존재한다.

DNS(Domain Name System)은 호스트의 도메인 이름을 IP주소로 변환하거나

반대의 경우를 수행할 수 있도록 개발된 데이터베이스 시스템이다.

만약 주소창에 daum.net 입력하면 요청이 DNS에서 IP주소(211.249.220.24) 찾는다.

 

 

 

읽어주셔서 감사합니다.

오개념에 대한 지적은 언제나 환영입니다 🙂

1