Backend/기타
트랜잭션 ACID 특성
- Atomicity
- All or Nothing의 개념
- 트랜잭션 중 Exception이 발생하면 해당 트랜잭션에서 진행한 모든 내용을 rollback 시켜야 한다.
- Consistency
- 트랜잭션의 작업 처리 결과가 항상 일관성있어야 한다는 내용
- 트랜잭션 진행 중 데이터가 변경되더라도 업데이트 된 내용으로 트랜잭션이 진행되는것이 아니라, 처음 트랜잭션을 진행할 때 참조한 데이터로 트랜잭션을 진행한다.
- Isolation
- 둘 이상의 트랜잭션이 동시에 수행될 때, 한 트랜잭션의 수행이 트랜잭션에 영향을 주어서는 안된다.
- Durability
- 트랜잭션이 성공적으로 완료되었을 때, 그 트랜잭션의 결과는 영구적으로 반영되어야 한다.
REST API란?
- REST는 Representational State Transfer의 약자이고, REST AIP는 이러한 REST 형식의 API를 의미한다.
- REST를 만족하기위한 요구조건은 다음과 같다.
- Client-Server : HTTP를 이용함으로써 만족함
- Stateless : HTTP를 이용함으로써 만족함
- Cache : HTTP를 이용함으로써 만족함
- Uniform interface
- Resource는 URI로 식별되어야 한다.
- Resource를 생성, 수정, 추가 시 HTTP 메시지에 표현을 해 전송해야한다.
- 메시지는 Self-Descriptive 해야한다. JSON 메시지가 어디에 전달되는지, 이 메시지의 구성요소가 어떤 의미를 표현해야 Self-Descriptive라 부른다.
- 애플리케이션의 상태는 Hyperlink를 이용해 전이되어야 한다.(HATEOAS)
<a>
태그와 같이 웹 페이지에서 제공하고 있으나 이를 API에서 제공하기는 쉽지않다.
- Layer system : HTTP를 이용함으로써 만족함
- Code on Demand : HTTP를 이용함으로써 만족함
- REST의 요구조건 중 Uniform interface를 지원하는 것이 쉽지 않아 서비스에서 제공하는 API들을 Web API(HTTP API)라고 부르기도 한다.
Web API란?
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method(
GET
, POST
, PUT
, DELETE
)로 표현한다.
- 슬래시(
/
)는 계층을 나타낼 때 사용한다.