-
기술 면접 스터디 - 6일차(트랜잭션, 웹서버, WAS)[기술 면접 준비] 2023. 4. 13. 20:36
Q. 트랜잭션이 무엇인지 설명해 주세요.
A. 트랜잭션이란, 데이터 베이스의 상태를 변경시키는 작업의 단위를 의미하며, 논리적으로 더 이상 쪼갤 수 없는 업무 처리의 최소 단위 입니다.
트랜잭션은 4가지의 특징을 가지고 있습니다
- 원자성(Atomicity)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되든가 아니면 전혀 반영되지 않아야 한다.
- 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 어느 하나라도 오류가 발생하면 트랜잭션 내의 명령 전부가 취소되어야 한다.
- => 즉, 작업의 일부만 반영되어서는 안된다!
- 일관성(Consistency)
- 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
- 트랜잭션이 진행되는 동안에 데이터베이스가 변경되더라도, 변경된 데이터베이스로 트랜잭션이 진행되는 것이 아니라 처음 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행된다.
- 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
- 독립성, 격리성(Isolation)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 실행중인 트랜잭션에 다른 트랜잭션의 연산이 끼어들 수 없다.
- 수행중인 트랜잭션은 완전히 완료될 때 까지 다른 트랜잭션에서 수행결과를 참조할 수 없다.
- 지속성, 영속성(Durability)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
Q. 웹 서버와 WAS 의 차이는?
A. 웹서버와 WAS 의 차이는, 웹서버는 정적컨텐츠를 제공하는 서버이고, WAS는 동적컨텐츠를 제공하는 서버입니다.
웹서버는 HTTP를 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청에 대한 응답으로 정적 컨텐츠를 제공하는 서버입니다. 여기서 정적 컨텐츠란, HTML, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠를 말합니다. 대표적인 웹서버로는 Apache와 NginX 등이 있습니다.
WAS 란 Web Application Server 의 약자로써 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버입니다. HTTP를 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행됩니다. WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너로도 불립니다.
'[기술 면접 준비]' 카테고리의 다른 글
기술 면접 스터디 - 5일차(프로세스, 쓰레드, TCP, UDP) (0) 2023.03.31 기술 면접 스터디 - 4일차(List, Set, Map, HashMap, Parameter와Argument) (0) 2023.03.30 기술 면접 스터디 - 3일차(MSA, 제네릭) (0) 2023.03.29 기술 면접 스터디 - 2일차(DI, Index) (0) 2023.03.28 기술 면접 스터디 - 1일차(OOP, Rest API) (0) 2023.03.27 - 원자성(Atomicity)