CS

    스프링 트랜잭션과 트랜잭션 전파

    스프링 트랜잭션 Isolation SQL 의 Isolation level 과 동일하게 동작 (SQL 격리수준 속성에 대한 자세한 내용은 이곳을 참고) READ_UNCOMMITED : commit 되지 않은 데이터를 읽는다 READ_COMMITED : commit 된 데이터만 읽는다 REPEATABLE_READ : 자신의 트랜잭션이 생성되기 이전의 트랜잭션(낮은 번호의 트랜잭션)의 커밋된 데이터만 읽는다 SERIALIZABLE : LOCK 을 걸고 사용 DEFAULT : 사용하는 DB 기본 설정을 따른다. (Oracle 은 READ_COMMITED, Mysql InnoDB 는 REPEATABLE_READ 가 Default) 스프링 트랜잭션 전파 타입 Propagation 트랜잭션이 시작하거나 참여하는 방법..

    트랜잭션 격리수준

    트랜잭션 격리 수준 개발을 하다 보면 여러 스레드에서 동시에 하나의 자원에 접근하는 경우가 있다. 접근을 적절하게 제한하지 않는다면 생각지 못한 버그가 발생할 수 있다. 게다가 이런 경우는 디버깅하기도 굉장히 어렵다. 데이터베이스도 N개의 트랜잭션을 동시에 처리하다 보면 같은 데이터에 접근할 수 있다. 트랜잭션의 목적은 로직의 흐름 속에서 데이터를 일관되게 처리하기 위한 것이나, 동시에 같은 데이터에 write 접근을 하는 경우엔 문제가 될 수 있다. 동시성 문제를 해결하기 위해 데이터베이스는 격리 수준이라는 기능을 제공한다. 격리 수준의 종류 격리 수준은 4개로 구분된다. READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 4에 가까울 수록 동시..

    관계형 데이터베이스

    관계형 데이터베이스 목차 관계형 데이터 베이스 관계의 종류 관계형 데이터베이스 관계형 데이터베이스란 관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다. 관계형 데이터베이스란 테이블(table)로 이루어져 있으며, 이 테이블은 키(key)와 값(value)의 관계를 나타낸다. 이처럼 데이터의 종속성을 관계(relationship)로 표현하는 것이 관계형 데이터베이스의 특징이다. 현재 많이 사용되는 관계 데이터 모델 DBMS는 Oracle, MySQL, SQL Server 등이 있다. 관계형 데이터베이스 특징 데이터의 분류, 정렬, 탐색 속도가 빠르다. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 준다. 기존에 작성된 스키마를 수정하기가 어렵다...

    TCP와 UDP의 비교

    TCP와 UDP의 비교 목차 TCP UDP 그림으로 비교하는 TCP vs UDP HTTP3 와 UDP TCP와 UDP는 TCP/IP의 전송계층에서 사용되는 프로토콜이다. 전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층이다. ++ https://www.youtube.com/watch?v=1pfTxp25MA8 TCP (Transmission Control Protocol, 전송제어 프로토콜) 대부분의 인터넷 응용 분야들은 신뢰성과 순차적인 전달을 필요로 한다. TCP는 신뢰성이 없는 인터넷을 통해 종단간에 신뢰성 있는 바이트 스트림을 전송 하도록 특별히 설계되었다. TCP 서비스는 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어진다. 모든 ..

    TCP 3-way handshake

    TCP 3-way Handshake 목차 TCP 3-way Handshake 정의와 역할 TCP 3-way Handshake 과정 TCP 4-way Handshake 과정 TCP 3-way Handshake 의 정의와 역할 정의 TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. 역할 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 전달이 시작되기 전에 한쪽이 다른 쪽이 준비되었다는 것을 알수 있도록 한다. 양쪽 모두 상대편에 대한 초기 순차 일련번호를 얻을 수 있도록 한다. TCP 3-way Handshake 과정 (SYN 은 synchronize sequence ..

    SSL

    SSL SSL(Secure Sockets Layer)는 데이터를 암호화하거나 통신 상대를 인증함으로써 웹사이트와 브라우저 사이에 전송된 데이터를 보호하는 인터넷 암호화 통신 프로토콜입니다. 보통 HTTP 통신을 할 때, ‘https://’로 시작하는 URL들이 대표적인 예시이며 HTTPS(HTTP over SSL)는 HTTP를 SSL로 암호화한 프로토콜입니다. SSL은 표현계층의 프로토콜로 응용 계층 아래에 있기 때문에, 어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다. HTTP는 기본적으로 평문 데이터 전송을 원칙으로 하기 때문에 개인의 프라이버시가 오가는 서비스들(전자상거래, 전자메일, 사내문서)에 사용하기 힘들다. 따라서 HTTPS를 이용하게 되고 HTTPS는 SSL 레이어위에 HTTP를 통과..