클라이언트-서버 통신

데이터 전달 방식

HTTP에서 클라이언트-서버간의 데이터 전달 방식으로는 크게 2가지가 있는데, 쿼리 파라미터를 통한 데이터 전송메세지 바디를 통한 데이터 전송이 있다.
쿼리 파라미터의 경우 GET에서 정렬이나, 필터링을 위한 검색어를 전달할 때 사용된다. 메세지 바디의 경우 POST, PUT, PATCH 등에서 리소스에 대한 정보를 전달할 때 사용된다.

데이터 전달 상황

데이터를 전달하는 상황엔 4가지가 있는데,

  • 정적 데이터 조회
  • 동적 데이터 조회
  • HTML Form을 통한 데이터 전송
  • HTTP API를 통한 데이터 전송
    이 있다.

정적 데이터 조회

정적 데이터 조회는 쿼리 파라미터를 사용하지 않는 데이터 조회를 뜻한다. 정적 데이터는 이미지, 텍스트 문서 등 쿼리 없이 조회가 가능한 간단한 데이터이다. 조회에는 GET을 사용하고 경로를 통해 조회가 가능하다.

동적 데이터 조회

반면에 동적 데이터 조회는 쿼리 파라미터를 사용한 데이터의 조회를 뜻한다. 동적 데이터는 검색어를 통해 검색, 혹은 정렬된 데이터이다. 동적 데이터 조회에는 GET을 사용하고 쿼리 파라미터를 기반으로 결과를 동적 생성하는 것이 특징이다.

HTML Form을 통한 데이터 전송

HTML Form을 통한 데이터 전송은 메서드에 따라 다른데, 먼저 post 메서드로 된 Form 태그의 submit 버튼을 누르면, 웹 브라우저에서 HTML을 해석하여 HTTP 요청 메세지로 변환해준다.
메세지 바디에 key-value 형식으로 Form을 저장하여 서버에 전송하고 서버는 해당 데이터를 서버에 저장한다.
get 메서드로 된 Form 태그의 submit 버튼을 누르면, 똑같이 웹브라우저에서 HTTP 요청 메세지를 생성해준다. 해당 메세지는 쿼리 파라미터에 Form의 내용을 key-value 형태로 넣어 데이터를 조회한다.
multipart/form-data는 파일을 전송할 때 쓰이는 데이터 타입으로 다른 종류의 여러 파일과 함께 Form의 내용을 전송 가능하다.

HTTP API를 통한 데이터 전송

HTTP API를 사용하면 서버와 서버간의 통신, 앱 클라이언트와의 통신이 가능하다. 또한 React와 같은 웹 클라이언트와도 자바스크립트를 통해 통신이 가능하다. 이전에 배웠듯 GET으로 쿼리 파라미터를 전달하여 조회하고, PUT PATCH POST 등으로는 메시지 바디를 통해 데이터를 전송한다. Content-Type은 JSON을 표준으로 사용한다.

슬슬 봐도 잘 모르겠는 부분까지 도착했다. 이제부터는 진짜로 커리큘럼을 따라가며 김영한 강사님의 스프링 강의를 들으면서 JAVA로 코딩테스트 대비용 알고리즘 풀이를 하는 것을 병행해야겠다. 일단 강의를 들어보고 정리해서 포스팅으로 올리던가 해보겠다.