웹 개발/웹개발종합

웹 개발의 기초 3

개발자명백 2023. 2. 28. 16:34

0. 서버와 클라이언트의 통신, 네트워크와 데이터 통신

통신 : 데이터 통신, OSI모델, 인터넷 프로토콜, 데이터 링크 계층, 네트워크 계층과 라우팅, 데이터 압축과 암호화 등의 내용은 다음 링크를 남깁니다. (https://soniacomp.medium.com/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-%EC%95%8C%EC%95%84%EC%95%BC%ED%95%A0-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%B4%88-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%86%B5%EC%8B%A0-5945919415f5)

 

개발자라면 알아야할 네트워크 기초+ 데이터 통신

이제 네트워크 공부를 시작한다면! [컴퓨터 네트워크(1/3)]

soniacomp.medium.com

 

1. 데이터 포맷

통신에는 여러 데이터 포맷이 사용됩니다. 정보를 주고 받는 목적에 따라 TEXT, CSV, XML, JSON, YAML 등이 있습니다. 각각의 포맷에 대한 비교는 차후에 다루어 보도록 하고 지금은 JSON에대해 집중해서 살펴보도록 하겠습니다. 

JSON(JavaScript Object Notation) : 자바스크립트의 구조화된 데이터를 표현하기위한 문자기반의 표준 포맷
JSON 파일 확장자 : .json
JSON 인터넷 미디어 타입 : application/json
타입코드 : TEXT
특징 : 비동기 브라우저/ 서버 통신(AJAX)와 XML를 대체하는 대표적 데이터 포맷이다. 특히 인터넷에서 자료를 주고받을 때 사용된다.  
JSON은 C, C++, C#, 자바, 자바스크립트, 펄, 파이썬 등 수많은 프로그래밍 언어에서 쉽게 이용할 수 있다.

 

2. 통신의 중계  - API 

통신의 주체는 클라이언트와 서버 입니다. 클라이언트는 서버에 필요한 정보를 요청하고 서버는 클라이언트에 해당 데이터를 응답합니다. 먼저 '요청'에대해 이해해 보도록 하겠습니다.

 

요청과 응답은 API를 통해 이루어 집니다. API란 Application Programming Interface의 약자로 어떤 프로그램 간에 기능을 제어하고 상호작용 할 수 있도록 약속된 인터페이스입니다. 먼 거리에 있는 프로그램 간의 상호작용은 Web Application 간의 상호작용이며 이 때 사용 되는 API를 REST API, SOAP API가 있습니다. 모두 HTTP 프로토콜을 통해 통신합니다. HTTP 프로토콜은 즉 HTTP Message이며 Request, Response 가 있습니다. 두 메세지 모두 동일한 구조로 startLine, Headers, emptyLine, body로 이루어져 있습니다. 

 

멀리 있는 소프트웨어 간의 통신인 Web Application의 통신은 REST API, SOAP API를 통해 이루어진다.
HTTP 프로토콜로 규정된 통신 규약을 따르며 HTTP Message에는 Request와 Response가 있다.
Request, Response는 4개로 구성되어 있으며 각각은 startLine, headers, emptyLine, body이다.

- startLine : 요청과 응답 상태를 나타낸다. 요청의 경우 method, Path, Query, http version을 응답의 경우 http version, status로 나뉜다. 
- headers : 요청을 지정하거나 본문을 설명한다.
- emptyLine : header와 body를 구분한다. 
- body : 요청과 응답 시 전송하는 데이터를 포함한다. 

클라이언트의 OIS 7계층 중 최상위 계층인 응용 계층에서부터 작성된 HTTP Message는 표현계층을 지나 점점 하위 계층을 타고 내려가 인터넷을 타고 서버에 요청을 보내게 된다. 반대로 서버는 수신 받은 HTTP Message를 분석해 응답을 보내준다. (https://velog.io/@vpdls1511/API-%EC%9A%94%EC%B2%AD%EA%B3%BC-%EC%9D%91%EB%8B%B5%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%9D%98%EB%9F%AC%EA%B0%88%EA%B9%8C)

 

 

3. REST API

클라이언트-서버 통신은 가장 대표적으로 REST API가 사용됩니다. Representational State Transfer의 약자로 HTTP의 우수성을 기반으로 필요한 자원에 쉽게 접근하게 도와줍니다. REST 방식을 따르는 시스템을 RESTful이라고 부르기도 합니다. 

REST 아키텍처는 HTTP URI를 통해 자원을 고유하게 명시하고 HTTP 메서드를 통해 해당 자원에 CRUD Operational을 적용합니다. Operational 방식을 활용해 REST 아키텍처 만의 POST, GET, PUT, DELETE 메서드를 사용합니다. 또한 네 방식은 각각 데이터 생성, 읽기, 업데이터, 삭제 기능(CRUD)을 수행합니다. 

POST : 리소스 생성
GET : 리소스 가져오기
PUT : 리소스 업데이트
DELETE : 리소스 삭제 

 

 

4. URI, URL, URN

https://www.elancer.co.kr/blog/view?seq=74

URI는 리소스의 고유한 이름입니다. URI를 설계할 때에는 4가지 규칙을 반드시 지켜야 합니다.

슬래스 구분자(/)는 계층 관계를 나타낸다.
URI 마지막 문자 뒤 슬래시 구분자(/)를 포함시키지 않는다.
URI 경로는 소문자를 사용해 나타낸다.
파일 확장자 구호를 포함시키지 않는다. 
URI 리소스 명을 작성할 때는 영어 명사로 작성한다. 

 

URI는 Uniform Resource Identifier, 통합 자원 식별자로 인터넷 자원을 식별하는 문자열이다. URI의 하위 개념에는 URL과 URN이 있다. 

URI의 구조 예시 "https://movie.naver.com/movie/bi/mi/basic.nhn?code=161967"
- Scheme : https:// 
- hosts : movie.naver.com, 웹 서버의 이름, DNS주소, IP 주소, 호스트 네임
- 리소스 경로, url-path : /moie/bi/mi/basic/nhn
- query : ?code=161967

URL은 Uniform Resource Locator의 줄임말로서 네트워크 상 웹 페이지, 이미지, 동영상 등의 파일 위치 정보를 나타낸다.  URL은 FTP, SMTP 등 다른 프로토콜에서도 사용될 수 있습니다.

 

GET 방식 요청으로 하나만 더 살펴 보겠습니다. 

google.com/search?q=아이폰&sourceid=chrome&ie=UTF-8

google.com 호스트로부터 /search?q=아이폰&sourceid=chrome&ie=UTF-8 이라고 하는 URN을 통해 검색 결과를 ㅇ응답 받습니다. URN은 query를 포함해 리소스를 검색합니다. 쿼리는 ?뒤에 있으며 각각의 검색할 정보들은 &로 연결 되어 있습니다.