-
4월 3일 월요일 TIL 회고록카테고리 없음 2023. 4. 3. 21:47
트랜잭션이란?
트랜잭션은 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다.
- 데이터베이스의 상태를 변경시킨다는 것은 SELECT, UPDATE, INSERT, DELETE 와 같은 행동을 뜻한다.
트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다. 하나의 트랜잭션은 Commit (저장)되거나 Rollback(철회)될 수 있다.
트랜잭션의 특징
원자성
- 원자성은 트랜잭션이 DB에 모두 반영되거나 전혀 반영되지 않아야한다.
- All OR Nothing을 생각하면 된다.
일관성
- 트랜잭션의 작업 처리 결과가 항상 일관되어야 한다.
- 데이터 타입의 반환 후와 반환 전이 항상 동일해야한다.
독립성
- 하나의 트랜잭션은 다른 트랜잭션의 끼어들 수 없고 마찬가지로 독립적임을 의미한다.
- 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어들 수 없다.
- 즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다.
지속성
- 트랜잭션이 성공적으로 완료되면 영구적으로 결과가 반영되어야 한다.
- 보통 Commit이 된다면 지속성은 만족할 수 있다.
트랜잭션의 Commit과 Rollback
Commit
- 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태에 있음을 의미한다.
Rollback
- 트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료되었을때 상태를 뜻한다.
- Rollback이 이뤄진다면 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있다.
웹 서버 (WEB Server)
HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다.
정적 컨텐츠란 단순 HTML 문서, CSS 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.
이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청 받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다.
이러한 웹 서버에는 Apache, NginX 등이 있다.
웹 어플리케이션 서버(Web Application Server, WAS)
WAS란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버이다.
HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로써 주로 데이터베이스 서버와 같이 수행된다.
WAS는 JSP,Servlet 구동환경을 제공해주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너로 불린다.
웹 서버와 WAS의 차이점
- 웹 서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이고,
- WAS는 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버이다.
출처
https://www.youtube.com/watch?v=taAp_u83MwA
4월 3일 월요일 TIL 회고록