CS35 트랜잭션 트랜잭션 트랜잭션이란 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위입니다. 계좌이체로 예시를 들어보겠습니다. 계좌이체라는 논리적 기능을 수행하기 위해서는 내 계좌에서 돈을 빼는 '출금'이라는 과정과 상대방에 계좌에 돈을 넣는 '입금'이라는 과정을 거쳐야 합니다. 데이터베이스에서 계좌이체를 진행한다고 할 때 입금과 출금은 쿼리로 진행됩니다. 트랜잭션이란 여러 개의 쿼리들을 논리적 기능에 맞게 하나로 묶는 단위라고 할 수 있습니다. 무결성 쿼리를 트랜잭션이라는 단위로 묶는 이유는 데이터베이스의 무결성을 보장해 주기 위함입니다. 무결성이란 쉽게 말해 데이터베이스가 정확한가입니다. 내 계좌에 100만 원이 있다면 해당 은행의 데이터베이스에는 어떤 테이블에서도 내 계좌에는 100만 원이 있어야 .. 2023. 2. 8. 컴퓨터의 요소 - 메모리 메모리 프로그램 실행 시 필요한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간입니다. 메모리계층은 레지스터, 캐시, RAM과 같은 주기억장치, 하드디스크와 같은 저장장치로 구성되어 있습니다. 레지스터 CPU 안에 있는 작은 메모리입니다. 속도 가장 빠르고 기억 용량이 가장 적습니다. 휘발성 메모리입니다. 캐시 자주 사용하는 데이터를 미리 복사해 놓는 임시 저장소입니다. CPU안에 있는 L1, L2 캐시는 빠른 장치인 CPU와 상대적으로 느린 장치인 주기억장치(RAM) 사이의 속도 차이에 따른 병목현상을 줄여주기 위해 존재합니다. CPU가 주기억장치에서 저장된 데이터를 읽어올 때, 자주 사용하는 데이터를 캐시 메모리에 저장한 뒤, 다음에 이용할 때 주기억장치가 아닌 캐시 메모리에서 먼저 가져.. 2023. 2. 6. 4-웨이 핸드셰이크(4-way handshake): 연결 해제 과정 4-웨이 핸드셰이크 TCP/IP의 전송계층에서 연결지향인 TCP를 사용할 때 서버와 클라이언트의 연결을 해제하는 과정을 3-웨이 핸드셰이크라고 합니다. 연결을 활성화하는 과정은 아래의 링크를 들어가시면 확인할 수 있습니다. https://kdgdev.tistory.com/13 연결 해제 과정 위 그림과 같이 연결을 해제하기 위한 과정에서 총 네 번의 통신이 이루어지기 때문에 4-웨이 핸드셰이크라고 합니다. 네 번의 절차가 어떻게 되는지 설명하겠습니다. 클라이언트와 서버의 통신이 활성화되어 있는 상태에서 클라이언트가 close()를 통해 연결을 해제하려고 하면 서버에게 연결을 종료한다는 FIN 세그먼트를 보냅니다. 이를 확인한 서버는 FIN 세그먼트를 받았다는 응답으로 ACK를 보내고 CLOSE_WAIT .. 2023. 2. 4. 3-웨이 핸드셰이크(3-way handshake) - 연결 성립 과정 3-웨이 핸드셰이크 TCP/IP의 전송계층에서 연결지향인 TCP를 사용할 때 서버와 클라이언트의 연결을 활성화하는 과정을 3-웨이 핸드셰이크라고 합니다. 연결 성립 과정 위 그림과 같이 연결을 위한 과정에서 총 세 번의 통신이 이루어지기 때문에 3-웨이 핸드셰이크라고 합니다. 세 번의 절차가 어떻게 되는지 설명하겠습니다. 클라이언트가 서버에게 임의의 시퀀스번호가 담긴 세그먼트를 보냅니다. (SYN, seq=x) ※세그먼트란 전송계층 중 TCP에서 다루는 데이터의 명칭입니다. 이를 확인한 서버는 마찬가지로 임의의 시퀀스번호와 Ack number를 받은 x값의 1을 더한 숫자로 설정하고 받았다는 신호인 ACK와 SYN을 보냅니다. (SYN, ACK, ack=x+1, seq=y) 클라이언트는 이 세그먼트를 받.. 2023. 2. 4. 이전 1 ··· 3 4 5 6 7 8 9 다음