UI
GUI
CLI
API
REST
Representational State Transfer
네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일
자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
CRUD Operation
Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT)
Delete : 데이터 삭제(DELETE)
REST의 구성 요소
REST API
REST API 설계 예시
- URI는 동사보다는 명사를, 대문자보다는 소문자 사용
- 마지막에 슬래시(/) 포함 x
- 언더바 대신 하이폰 사용
- 파일확장자는 URI에 포함 x
- 행위를 포함 x
Simple Object Access Protocol
그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있어 조금 더 복잡하다.
보안 수준이 엄격하므로 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식 선호
트랜잭션(Transaction)
- 여러 개의 작업을 하나로 묶은 실행 유닛
- 데이터베이스의 상태를 변환시키는 기능을 수행하기 위한 하나 이상의 쿼리를 모아 놓은 하나의 작업 단위
ACID
- Atomicity(원자성) : 시스템에서 한 트랜잭션의 연산들이 모두 성공하거나, 반대로 전부 실패되는 성질을 말한다.
- Consistency(일관성) : 하나의 트랜잭션 이전과 이후, 데이터베이스의 상태는 이전과 같이 유효해야 한다.
- Isolation(격리성, 고립성) : 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다.
- Durability(지속성) : 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야하는 성질을 말한다.