백엔드

Java Study [2022-08-20] - 스프링부트 이론(소켓 통신, HTTP 통신, Rest API 일부)

머훈 2022. 8. 21. 21:33

📌 Java Study

🔸 2022-08-20 토요일

[스프링 부트 프로젝트]

1. 통신이란

  • Socket 통신
    • 접속을 계속 유지하여, 데이터를 전달
    • 서버의 자원에 따라서 연결될 수 있는 클라이언트의 숫자가 한정됨
    • 실시간 정보 교환에 사용하며 HTTP보다 속도가 빠름

 

  • HTTP 통신
    • 클라이언트의 요청이 있을 때만 데이터 응답을 전달
    • 불필요한 자원의 점유를 없애 다른 접속을 원활하게 하여 많은 데이터를 처리
    • 데이터 요청 후 응답이 오면 연결이 끊어짐

 

  • 원리 : 사용자 혹은 또 다른 서버에서 소켓, Http 방식으로 서버에 요청하면, 해당 서버는 데이터를 잘 가공하여 이에 대한 응답을 전송해야 됨
  • 이 때, HTML, CSS, JSON, XML 등의 포맷을 통신 시 요청할 때 어떠한 데이터를 달라고 반드시 명시하여 서버는 해당 포맷으로 전달하는 것이 핵심

 

  • 목표 : Admin 사이트 만들기
    • Admin 사용자는 웹 브라우저를 통해서 웹 서버에 데이터를 요청
    • Http 방식을 채택해 서버에 요청하면, 서버는 HTML, CSS, JSON 포맷 등으로 Http에 대한 응답을 전송할 것임
    • 총 7개의 테이블이 있는 Admin 사이트 개발 예정
    • 해당 사이트에서 사용자가 물품을 구매하거나 관리자가 외부 업체를 관리하는 사이트

 

2. Rest API

  • HTTP - GET Method
    • 주소창에 파라미터가 노출
    • 브라우저에서 주소에 대한 캐시가 이루어지므로, 정보를 얻을 때 사용
    • REST API 에서 REST는 Representational State Transfer의 약자로 소프트웨어 프로그램 아키텍처의 한 형식
    • 즉, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
    • 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식
    • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일