UI, API, REST API, SOAP API

김가람휘·2022년 2월 2일
1

CS

목록 보기
2/15

1. UI

UI

  • user interface, 사용자 인터페이스 또는 유저 인터페이스
  • 사람(사용자)과 사물 또는 시스템, 특히 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체

GUI

  • graphical user interface, 그래픽 사용자 인터페이스
  • 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것이다.

CLI

  • Command-line interface, 커맨드 라인 인터페이스 또는 명령어 인터페이스
  • 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식

2. API

API

  • Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스
  • 컴퓨터나 컴퓨터 프로그램 사이의 연결이다.
  • 컴퓨터와 인간을 연결시키는 UI와 반대로, API는 컴퓨터나 소프트웨어를 서로 연결한다.

3. REST API

REST

  • Representational State Transfer

  • 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.

    1. HTTP URI(Uniform Resource Identifier)을 통해 자원(Resource)을 명시
    2. HTTP Method(POST, GET, PUT, DELETE)를 통해
    3. 해당 자원(URI)에 대한 CRUD Operation을 적용

      CRUD Operation
      Create : 데이터 생성(POST)
      Read : 데이터 조회(GET)
      Update : 데이터 수정(PUT)
      Delete : 데이터 삭제(DELETE)

  • REST의 구성 요소

    1. 자원(Resource) : HTTP URI
    2. 자원에 대한 행위(Verb) : HTTP Method
    3. 자원에 대한 행위의 내용(Representations) : HTTP Message Pay Load

REST API

  • REST의 원리를 따르는 API

    REST API 설계 예시

    1. URI는 동사보다는 명사를, 대문자보다는 소문자 사용
    2. 마지막에 슬래시(/) 포함 x
    3. 언더바 대신 하이폰 사용
    4. 파일확장자는 URI에 포함 x
    5. 행위를 포함 x

RESTful

  • REST의 원리를 따르는 시스템

4. SOAP API

SOAP

  • Simple Object Access Protocol

  • 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있어 조금 더 복잡하다.

  • 보안 수준이 엄격하므로 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식 선호

    트랜잭션(Transaction)

    • 여러 개의 작업을 하나로 묶은 실행 유닛
    • 데이터베이스의 상태를 변환시키는 기능을 수행하기 위한 하나 이상의 쿼리를 모아 놓은 하나의 작업 단위

    ACID

    • Atomicity(원자성) : 시스템에서 한 트랜잭션의 연산들이 모두 성공하거나, 반대로 전부 실패되는 성질을 말한다.
    • Consistency(일관성) : 하나의 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효해야 한다.
    • Isolation(격리성, 고립성) : 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다.
    • Durability(지속성) : 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하는 성질을 말한다.

SOAP와 REST의 차이

0개의 댓글