상세 컨텐츠

본문 제목

자바강의 - [8주차] Web 개론

Programming/Java

by leediz 2022. 3. 13. 11:00

본문

자바강의 - [8주차] Web 개론


Web 이란 무엇인가?

  • W3 == WWW == World Wide Web 이란 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 정보 공간

Web의 기반

HTTP

  • Hypertext Transfer Protocol
  • 어플리케이션 컨트롤

URI

  • Uniform Resoure Identifier
  • 리소스 식별자

HTML

  • Hyper Text Markup Language
  • 하이퍼미디어 포맷
  • 웹 브라우저에서 사용자가 알아보기 쉬운 형태로 표현됨

REST (Representational State Transfer)

  • 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식
  • 네트워크 아키텍처 원리의 모음 - 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반

REST 아키텍처에 적용되는 6가지 제한 조건

  • 인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 함
  • 무상태(Stateless) : 각 요청간 클라이언트의 콘텍스트가 서버에 저장되어서는 안됨
  • 캐시 처리 가능(Cacheable) : WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 함
  • 계층화(Layered System) : 서버와 클라이언트 사이에 방화벽, 게이트웨이, Proxy 등 다양한 계층 형태로 구성이 가능해야 하며 이를 확장 할 수 있어야 함
  • 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 함
  • Code on Demand(Optional) : 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있음

REST 인터페이스의 원칙에 대한 가이드

  • 자원의 식별
    • URI의 사용등을 통해 요청 내에 기술된 개별 자원을 식별할 수 있으여 함
  • 메시지를 통한 리소스의 조작
    • 클라이언트가 어떤 자원을 지칭하는 메시지와 특정 메타데이터만 가지고 있다면 이것으로 서버 상의 해당 자원을 변경·삭제할 수 있는 충분한 정보를 가지고 있음
  • 자기서술적 메시지
    • HTTP 기반의 REST에서는 HTTP Method와 Header 정보, URI의 포함되는 정보로 표현할 수 있음
  • 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
    • REST API를 개발할 때 단순히 Client 요청에 대한 데이터만 응답 해주는 것이 아닌 관련된 리소스에 대한 Link 정보까지 같이 포함되어져야 함

URI 설계 패턴

  • URI(Uniform Resource Identifier)
    • 인터넷에서 특정 자원을 나타내는 주소 값
    • 해당 값은 유일함 (응답은 달라질 수 있음)
  • URL(Uniform Resource Locator)
    • 인터넷 상에서의 자원, 특정 파일이 어디에 위치하는지 식별하는 주소
  • URL은 URI의 하위 개념

URI 설계 원칙 (RFC-3986)

  • 슬래시 구분자 (/)는 계층 관계를 나타내는 데 사용
  • URI 마지막 문자로 (/)는 포함하지 않음
  • 하이픈(-)은 URI 가독성을 높이는데 사용
  • 밑줄(_)은 사용하지 않음
  • URI 경로에는 소문자가 적합
  • 파일 확장자는 URI에 포함하지 않음
  • 프로그래밍 언어에 의존적인 확장자를 사용하지 않음
  • 구현에 의존적인 경로를 사용하지 않음
  • 세션 ID를 포함하지 않음
  • 프로그래밍 언어의 Method명을 이용하지 않음
  • 명사에 단수형 보다는 복수형을 사용해야 함
  • 컨트롤러 이름으로는 동사나 동사구를 사용
  • 경로 부분 중 변하는 부분은 유일한 값으로 대체
  • CRUD 기능을 나타내는 것은 URI에 사용하지 않음
  • URI Query Parameter 디자인
  • URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용
  • API에 있어서 서브 도메인은 일관성 있게 사용해야 함
  • 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만들어야 함

HTTP Protocol

  • HTTP(HyperText Transfer Protocol)로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜
  • HTML, XML, JSON, Image, Voice, Video, Javascript, PDF 등 컴퓨터에서 다룰 수 있는 포맷을 모두 전송할 수 있음
  • HTTP는 TCP를 기반으로 한 REST의 특징을 모두 구현하고 있는 Web기반의 프로토콜
  • 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜

HTTP Status Code

  • 응답의 상태를 나타내는 코드
  • 1XX - 처리중 - 처리가 계속 되고 있는 상태, 클라이언트는 요청을 계속하거나 서버의 지시에 따라 재요청
  • 2XX - 성공 - 요청의 성공
  • 3XX - 리다이렉트 - 다른 리소스로 리다이렉트, 해당 코드를 받았을 때는 Response의 새로운 주소로 다시 요청
  • 4XX - 클라이언트 에러 - 클라이언트의 요청에 에러가 있는 상태, 재전송 하여도 에러가 해결되지 않음
  • 5XX - 서버 에러 - 서버 처리 중 에러가 발생한 상태, 재 전송시 에러가 해결되었을 수도 있음

참고자료


Java & SpringBoot로 시작하는 웹 프로그래밍 강의 : #패스트캠퍼스 #내일배움카드 #K디지털크레딧 #바이트디그리 #자바인강

관련글 더보기

댓글 영역