CS(49)
-
[네트워크] HTTP와 HTTPS
HTTP(Hyper Text Transfer Protocol) 서버/클라이언트 모델에 따라 데이터를 주고받기 위한 프로토콜 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로써, 80번 포트를 사용하고 있다. HTTP 서버와 통신하고자 할 때에는 HTTP 클라이언트가 80번 포트로 요청을 보내야 한다. 암호화되지 않은 평문 데이터를 전송하는 프로토콜 → 보안이 필요한 정보를 주고받기에 적절하지 않다는 단점 → HTTPS의 등장으로 이어짐 TCP/IP 위에서 동작하는 프로토콜이다. Connectionless의 특징을 가지며, 서버가 요청에 응답을 마치면 연결을 끊어버린다. Stateless로 이전 통신에 대한 정보를 기억하지 않는다. HTTPS(Hyepr Text Transfer Protocol over..
2022.08.17 -
[자료구조] 배열(Array)과 리스트(List)
배열과 메모리 배열 배열(array)는 같은 타입의 변수들로 이루어진 유한 집합으로 정의된다. 배열을 구성하는 각각의 값을 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 한다. 배열을 이루는 각 요소에 부여된 인덱스는 0으로 시작한다. 첫 번째 요소의 인덱스가 1이 아니라 0이된 이유는 배열의 인덱스는 첫 번째 요소를 기준으로 얼마만큼 떨어져 있는지 상대적인 값으로 표현하기 때문이다. 위의 그림에서 볼 수 있는 anData는 배열의 이름이며 동시에 인덱스가 0인 첫 번째 요소의 주소가 된다. 배열의 이름도 변수의 이름처럼 식별자이긴 하나 그 실체는 변수가 아니라 메모리의 주소 상수이다. 만약, anData의 실제 값이 0x0012FF60이라고 가정한다면, 두 번..
2022.08.16 -
[데이터베이스] 트랜잭션 격리 수준
격리 레벨(Isolation Level) 이라는 개념이 등장한다. 이것이 무엇이고, 왜 필요한지 알아보기 위하여 트랜잭션 성질 중 하나인 일관성과 관련된 동시성이라는 개념을 알아보자. 동시성과 일관성 트랜잭션의 특성 중 일관성이 완전히 보장될 경우 여러 클라이언트의 요청을 받는 데이터베이스의 특성상 응답의 지연이 발생하는, 동시성이 저해되는 현상이 발생한다. 일관성이 너무 높다면, 한 테이블에 접근 및 작업해야 하는 수많은 트랜잭션 중 단 하나만이 접근 및 작업이 가능해지게 된다. 그렇다고 해서 동시성을 너무 높여버리면 데이터의 일관성을 잃게 될 가능성이 높기 때문에 운영 중인 서비스의 특성에 따라 적절한 균형을 두어야한다. 이러한 조정을 위한 방법 중 하나가 격리 레벨(Isolation Level)이다..
2022.08.13 -
[데이터베이스] 트랜잭션(Transaction)이란
하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합을 트랜잭션이라고 한다. 트랜잭션의 예로 계좌 간의 자금 이체가 많이 언급된다. 한 계좌에서 10만 원을 인출하여 다른 계좌로 10만 원 입금하는 이체 작업은 전체 작업이 정상적으로 완료되거나, 만약 정상적으로 처리될 수 없는 경우에는 아무 것도 실행되지 않은 처음 상태로 되돌려져야 한다. 이러한 트랜잭션은 다양한 데이터 항목들을 액세스하고 갱신하는 프로그램 수행의 단위가 된다. 흔히 트랜잭션은 ACID 성질이라고 하는 다음의 네 가지 성질로 설명된다. Atomicity(원자성): 이체 과정 중에 트랜잭션이 실패하게 되어 예금이 사라지는 경우가 발생해서는 안 되기 때문에 DBMS는 완료되지 않은 트랜잭션의 중간 상태를 데이터베이스에 반영해서는 안 된..
2022.08.13 -
[데이터베이스] 정규화 (1차, 2차, 3차, BCNF)
데이터베이스를 잘못 설계했을 때 불필요한 데이터 중복으로 인한 공간 낭비를 넘어 부작용을 초래할 수 있다. 이러한 부작용을 이상(Anomaly)라고 하는데, 이상 현상의 종류로 삽입이상, 갱신이상, 삭제이상이 있다. 정규화를 설명하기 앞서 이 이상현상에 대해 짚고 넘어가야 할 필요성이 있다. ※ 데이터베이스의 이상 현상(Anomaly) 삽입 이상(Insertion Anomaly) : 불필요한 정보를 함께 저장하지 않고서는 어떤 정보를 저장하는 것이 불가능하다. 갱신 이상(Modification Anomaly) : 반복된 데이터 중에 일부를 갱신할 시 데이터의 불일치가 발생한다. 삭제 이상(Deletion Anomaly) : 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다. ▷ ..
2022.08.13 -
[데이터베이스] 인덱스(Index)
※ 인덱스란? 인덱스(Index) : 추가적인 쓰기 작업과 저장 공간을 활용해 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 데이터베이스에서 테이블의 모든 데이터를 검색하면 시간이 오래 걸릴 수밖에 없기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕는다. 인덱스를 활용하게 되면 데이터를 조회하는 SELECT 외에도 UPDATE나 DELETE의 성능이 같이 향상된다. 그것이 가능한 이유는 해당 연산을 수행하기 위해 해당 대상을 조회해야만 작업이 가능하기 때문이다. 만일, index를 사용하지 않은 컬럼을 조회해야 하는 상황이면 전체를 탐색하는 Full Scan을 수행하게 되는데, 이는 처리 속도가 떨어진다. ※ 인덱스의 관리 DBMS는 index를..
2022.08.13