인터페이스 기능 구현 기술

JIHYUN·2023년 9월 4일
0

정처기

목록 보기
5/13

JSON(Javascript Object Notation)

  • 속성-값 쌍 또는 키-값 쌍
    데이터 오브젝트를 전달하기 위해 텍스트를 사용하는 개방형 표준 포맷

  • AJAX에서 많이 사용됨

  • XML을 대체함

  • 표현 자료형

    • 숫자
    • 문자열: ""
    • 배열: 각 요소는 기본 자료형이거나 배열, 객체
      [10, {"v":20}, [30, "가"]]
    • 객체: 이름/값 쌍의 집합
      {"가":1, "나":"이", "다":true}
  • JSON 문법

    • 이름/값 쌍
    • { 로 시작하고 } 로 끝
    • 배열은 [ ]
    • 도구
      Parser: JSON tex 파일 해석하고 자바 오브젝트로 변환
      Renderer: 자바를 text로 표현
      Serializer: POJO와 JSON 표현으로 직렬화
      (Plain Old Java Object)
      Mapper: POJO와 JSON을 매핑
      Vaildator: JSON 스키마를 이용해서 파일 내용 유효성 체크
  • JSON 장점
    XML은 모두 string, JSON은 string, number, array, boolean 등
    Javascript 코드 안에서 JSON 객체에 접근이 쉬움

  • JSON 단점
    태그가 없어서 가족성이 떨어짐
    DTO같은 것이 없기 때문에 데이터 형식이 틀렸을 경우 체크가 쉽지 않음

XML(Extensible Markup Language)

  • HTML의 단점을 보완한 인터넷 언어
    SGML(Standard Generalized Markup Language)의 복잡한 단점을 개선한 특수목적을 갖는 마크업 언어
  • 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타언어
  • 사용자가 직접 문서의 태그를 정의할 수 있음.

AJAX(Asynchronous Javascript And XML)

  • 자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술
  • 브라우저가 가지고 있는 XMLHttpRequest 객체를 이용해서 필요한 일부 데이터만을 로드하는 기법
  • AJAX의 주요 기술
    https://velog.io/@rosy137/Technology-Stack

REST(Representation State Transfer)

https://velog.io/@rosy137/RESTREpresentational-State-Transfer

  • 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처

  • 리소스(자원), 메서드(처리), 메시지
    자원(URI)
    처리(HTTP Methods-GET, POST, PUT, DELETE)
    콘텐츠 타입(XML, JSON)

  • REST는 행위에 대한 메서드를 HTTP Method 중 CRUD에 해당하는 4가지만 사용
    POST - create
    GET - read
    PUT - update
    DELETE - delete

  • REST Resource
    ex) 사용자 생성

HTTP POST, http://main/users/
{
	"name": "사용자",
    "address": "서울"
}
  • REST resource에 대한 처리 방법
    • 클라이언트/서버 구조: 클라이언트, 서버 독립적으로 구현, 의존성 축소
    • 무 상태성: API 서버는 들어오는 요청만 단순히 처리, 불필요한 정보 관리하지 않음
    • 일관된 인터페이스: HTTP 표준을 따음, URI로 지정한 리소스에 대한 조작
    • 캐시 처리 기능: HTTP가 가진 캐싱 기능 적용, HTTP 프로토콜 표준에서 사용하는 Last-Method 태그, E-Tag를 이용 캐싱 구현
    • 자체 표현 구조: API 메세지를 보고 API 이해할 수 있는 구조
profile
🍋

0개의 댓글