전체 글
정규화
정규화 목차 정규화란 이상 현상이란 정규화 단계 정규화의 장점 정규화의 단점 반정규화 정규화란 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 정보로 인해 이상 현상이 발생하게 된다. 이러한 문제를 해결하기 위해 정규화 과정을 거치는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 테이블을 분해하는 정규화 단계가 정의되어 있으며, 테이블이 어떻게 분해되는지에 따라 정규화 단계가 달라진다. 이상 현상(Anomaly)이란 이상 현상이란 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하며 이 중복으로 인해 테이블 조작 시 문제가 생기는 현상을 의미 1...
스프링 트랜잭션과 트랜잭션 전파
스프링 트랜잭션 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 ..