본문 바로가기
알아두면쓸데있는신기한잡학사전/고군분투흔적들

[Web] 서버 - 클라이언트 통신

by 대범하게 2022. 8. 22.
반응형

Web API

Web API는 Web Application Programming Interface의 줄임말로,

서버에 요청을 보내고 응답을 받기 위해 정의된 명세를 뜻한다.

보통 API라고 하면 Web API를 의미한다.

 

서버/클라이언트/웹의 동작 개념 설명 [https://bo5mi.tistory.com/73]

* 즉, 브라우저가 하는 일은 1) 요청을 보내고, 2) 받은 HTML 파일을 그려주는 일뿐이다.

 

- 브라우저에 주소를 치고 엔터를 누르면 HTML 정보를 보내줬다!

=> 바로 이 주소가 API이다.

엔터를 치면 '요청'이 가고, 서버는 '응답'으로 HTML을 보내주는 것이다.

 

- API에서 응답으로 HTML 전체가 아니라 데이터만 따로 정리해서 보내줄 수도 있다.

=> 바로 JSON 형식이다.

 


JSON

- JSON은 JavaScript Object Notation의 줄임말로,

브라우저-서버 간 통신에서 데이터를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이다.

- 본래는 자바스크립트에서 파생되었지만 편의성 덕분에 모든 언어/플랫폼에서 사용하게 되었다.

 

JSON 형식 직접 보기

 

JSON => 자료형 리스트와 딕셔너리를 섞어놓은 것처럼 생김.

RealtimeCityAir라는 키 값 딕셔너리 형 value가 들어가있고,

그 안에 row라는 키 값에는 리스트형 value가 들어가있습니다.

 

쩐다...


GET 요청

API는 은행 창구와 같은 것!

 

같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 가져와야 하는 것 / 처리해주는 것이 다른 것처럼, 

(회장님한테는 은행이 직접 가는 것처럼)

 

클라이언트가 요청 할 때에도, "타입"이라는 것이 존재한다.

 

GET, POST 방식

GET

  • 통상적으로! 데이터 조회(Read)를 요청할 때
    • 예) 영화 목록 조회
  • 데이터 전달: URL 뒤에 물음표를 붙여 key=value로 전달
    • 예) google.com?q=북극곰

POST

  • 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete)
    • 예) 회원가입, 회원탈퇴, 비밀번호 수정
  • 데이터 전달: 바로 보이지 않는 HTML body에 key:value 형태로 전달

아래는 네이버 영화의 <기생충> 영화 정보 페이지이다.

=> https://movie.naver.com/movie/bi/mi/basic.naver?code=161967

 

주소를 잘 보면 ?를 기준으로 크게 두 부분으로 쪼갤 수 있는데, 

앞 부분이 [서버 주소], 뒷 부분이 [영화 번호]이다.

이 영화 번호를 다른 것으로 바꿔보면 다른 영화 정보가 나오는 것을 볼 수 있다.

예를 들어, code=62328 는 <설국열차> 정보가 나온다.

이렇게 서버에 '62328번 영화 정보를 보여줘!'하고 요청을 보내면, 서버에서 알아듣고 해당 정보를 보내준다.


GET 방식으로 데이터를 전달하는 방법

? : 여기서부터 전달할 데이터가 작성된다는 의미이다.

& : 전달할 데이터가 더 있다는 의미이다.

 

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

 

위 주소는 google.com의 search 창구에 다음 정보를 전달한다.

q=아이폰 검색어
sourceid=chrome 브라우저 정보
ie=UTF-8 인코딩 정보

다시 네이버 영화의 <기생충> 영화 정보 페이지로 돌아가서 ..

 

그럼 code라는 이름으로 영화번호를 주자!는 것은 누가 정하는 걸까?

=> 프론트엔드 개발자와 백엔드 개발자가 미리 정해둔 약속이다.

 

프론트엔드: "code라는 이름으로 영화번호를 주면 될까요?"

백엔드: "네 그렇게 하시죠. 그럼 code로 영화번호가 들어온다고 생각하고 코딩하고 있을게요"

 

=> ...... 맞다... 프로젝트 잠시 참여했을 때 이랬던 경험이 있다... 역시 뭐라도 보고 듣고 해야 언젠가 이해가 되는 법!

반응형