[23/06/07] Day6 과제 제출

김보아·2023년 6월 7일
0

[오늘의 과제]

트랜잭션이 무엇인지 설명해 주세요.

트랜잭션(Transaction)은 데이터베이스의 상태를 변경하는 작업의 단위를 말합니다.

하나의 작업을 수행하기 위해 데이터베이스에 여러 개의 쿼리문을 실행하는 과정에서, 이 쿼리문들이 모두 성공적으로 수행되어야만 해당 작업이 완료되도록 보장하는 것입니다.

따라서, 트랜잭션은 데이터의 무결성(Integrity)을 보장하는 중요한 역할을 합니다.

트랜잭션은 다음과 같은 특징을 가집니다.

원자성(Atomicity) : 트랜잭션의 작업이 모두 성공적으로 수행되거나, 모두 롤백되어야만 합니다. 즉, 트랜잭션은 일종의 "전부 또는 전무" 원칙을 따릅니다.

일관성(Consistency) : 트랜잭션 전후에 데이터베이스가 일관된 상태를 유지해야 합니다. 즉, 트랜잭션이 수행되기 전과 수행된 후의 데이터 상태가 일치해야 합니다.

격리성(Isolation) : 동시에 여러 개의 트랜잭션이 수행되더라도, 각 트랜잭션은 서로 간섭하지 않는 격리된 상태에서 수행되어야 합니다.

지속성(Durability) : 트랜잭션이 완료된 후에는, 해당 트랜잭션에서 수행된 모든 변경 내용이 데이터베이스에 영구적으로 저장되어야 합니다.

이러한 트랜잭션을 보장하기 위해, 데이터베이스는 트랜잭션을 관리하기 위한 다양한 기능들을 제공하고 있으며, 대표적으로는 COMMIT, ROLLBACK, SAVEPOINT 등이 있습니다. 또한, 애플리케이션 레벨에서도 트랜잭션을 관리할 수 있도록 다양한 프레임워크들이 제공되고 있습니다.

예를 들어, Spring Framework에서는 @Transactional 어노테이션을 사용하여 트랜잭션을 관리할 수 있습니다.

TCP와 UDP의 공통점과 차이점을 설명해보세요.

TCP와 UDP는 모두 인터넷 프로토콜 스택의 전송 계층에서 사용되는 프로토콜입니다. 그렇지만 두 프로토콜은 목적과 특징이 다르기 때문에 서로 다른 상황에서 사용됩니다.

**공통점:

데이터를 전송하기 위해 IP 프로토콜을 사용합니다.

데이터를 패킷(Packet) 단위로 전송합니다.

네트워크 계층에서의 IP 주소를 사용하여 통신합니다.**

차이점:

연결 지향성(Connectivity):

TCP는 연결 지향적인 프로토콜입니다. 클라이언트가 서버와 연결된 후 데이터를 주고 받습니다. 3-way handshake를 통해 연결을 설정하고, 4-way handshake를 통해 연결을 해제합니다.

UDP는 비연결성 프로토콜입니다. 클라이언트가 서버와 연결 없이 데이터를 주고 받습니다.

신뢰성(Reliability):

TCP는 신뢰성이 높은 프로토콜입니다. 데이터의 전송 및 수신 여부를 확인하며, 데이터가 유실되거나 손상된 경우 재전송을 요청합니다.

UDP는 신뢰성이 낮은 프로토콜입니다. 데이터의 전송 여부를 확인하지 않으며, 데이터가 유실되거나 손상된 경우 재전송을 요청하지 않습니다.

속도(Speed):

TCP는 전송 과정에서 데이터의 신뢰성을 보장하기 위해 많은 오버헤드가 발생하며, UDP에 비해 느릴 수 있습니다.

UDP는 데이터의 전송을 위한 최소한의 오버헤드만 발생하기 때문에 TCP에 비해 빠를 수 있습니다.

전송 크기(Transmission size):

TCP는 전송 크기에 제한이 없습니다.

UDP는 한번에 전송할 수 있는 데이터의 크기에 제한이 있습니다.

따라서, TCP는 데이터의 신뢰성과 안정성이 중요한 상황에서 사용되며, 예를 들어 파일 전송, 이메일 전송 등에 적합합니다. 반면에 UDP는 실시간성이 중요한 상황에서 사용되며, 예를 들어 온라인 게임, 음성 및 영상 전송 등에 적합합니다.

[출처] 트랜잭션|작성자 우엉
[출처] TCP와 UDP|작성자 우엉

profile
개발하는 개발자

0개의 댓글