본문 바로가기

공부이야기/CS공부5

[DB] Transaction (트랜잭션)이란? Transaction이란? 데이터베이스 관리 시스템 또는 유사한 시스템에서의 상호작용 단위. (유사한 시스템: 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미) 전부 성공하거나 전부 실패되거나 둘 중 하나의 작업을 수행하며 모든 연산은 반드시 한꺼번에 완료가 되어야 하고 그렇지 않은 경우에는 한꺼번에 취소되어야 한다. (원자성) 한꺼번에 완료가 된 경우에는 COMMIT을 호출해 작업 결과를 DataBase에 반영한다. 취소가 되거나 문제가 발생한 경우에는 ROLLBACK을 호출하고 작업결과를 모두 취소하여 DataBase에 영향을 미치지 않게 한다. Transaction의 성질 Atomicity (원자성) 분리할 수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소되어야.. 2021. 5. 13.
[DB] Isolation Level (트랜잭션 격리 수준) 트랜잭션 격리 수준 (Isolation Level) 동시에 여러 트랜잭션이 처리 될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것. Read Uncommitted Read Committed Repeatable Read Serializable READ UNCOMMITTED 어떤 트랜잭션의 변경 내용이 COMMIT이나 ROLLBAK과 상관없이 다른 트랜잭션에서 보여진다. Dirty Read 발생 가능 A 트랜잭션에서 10번 사원의 나이를 27살에서 28살로 변경 커밋하지 않음 B 트랜잭션에서 10번 사원의 나이를 조회 28살이 조회됨 (Dirty Read) A 트랜잭션에서 문제가 발생해 ROLLBACK 함 B 트랜잭션은 10번 사원이 여전히 28살이라고 생각하고 로직을 수행 READ COMMI.. 2021. 5. 13.
[Network] TCP 3-way Handshake, 그리고 4-way Handshake 알아보기 전에... 포트 상태 정보 포트 상태 정보 CLOSED 포트가 닫힌 상태 LISTEN 포트가 열린 상태로 연결 요청 대기 SYN_RCV SYNC 요청을 받고 상대방의 응답을 기다리는 중 SYN_SENT SYNC 요청을 한 상태 ESTABLISHED 포트 연결 상태 TCP Header 안의 플래그 정보 TCP Header에는 CONTROL BIT(플래그 비트, 6bit)가 존재하며, 각각의 bit는 "URG-ACK-PSH-RST-SYN-FIN"의 의미를 가진다. TCP Header 연결 설정 설명 SYN 000010 Sequence Number를 랜덤으로 설정하여 세션을 연결하는 데 사용하며, 초기에 Sequence Number를 전송한다. ACK 010000 패킷을 받음을 의미. Acknowle.. 2021. 5. 2.
[OS] Process vs Thread 프로세스 (Process)란? 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램. 실제 실행 중인 프로그램을 일컫기 때문에 동적이라고 표현하기도 한다. 프로세스는 커널에 의해 직접 관리되는데 커널 메모리 안에는 각 프로세스마다 관리하고 있는 프로세스에 대한 데이터들이 있다. 이 정보는 Process Control Block(PCB)이라고 하는 자료구조 안에 있는 커널 스케줄러가 프로세스를 제어하는데 필요한 정보들이 담겨 있다. 운영체제는 각각의 프로세스를 독립적으로 관리하기 때문에 서로 다른 프로세스가 겹칠 일이 없고, 또 사용 자원 영역 등이 겹치는 일이 발생해서도 안 된다. (예외적으로 같은 프로그램의 프로세스들은 Code 영역은 공유한다.) 프로세스 간 통신은 필요할 경우 최소한의 인터페이스를 제.. 2021. 5. 2.