본문 바로가기

전체 글

(73)
Key Key란? 데이터베이스에서 일을 수행할 때 튜플들을 구별할 수 있는 유일한 속성 1. 후보키(Candidate Key) 릴레이션을 구성하는 속성들 중에서 유일하게 튜플을 식별할 수 있는 속성들의 부분집합 모든 릴레이션은 반드시 하나 이상의 후보키 보유 모든 튜플에 대해서 유일성과 최소성을 만족 2. 기본키(Primary Key) 후보키에서 선택한 키 튜플을 구별할 수 있는 속성 null값을 가질 수 없음 중복 허용하지 않음 3. 대체키(Alternate Key) 후보키에서 기본키를 제외한 나머지 키 4. 슈퍼키(Super Key) 릴레이션 내에 있는 속성들의 집합으로 구성된 키 유일성은 만족하지만, 최소성은 만족시키지 못함 ex) '이름+주민번호' 는 튜플을 구별할 수 있지만(유일성 만족) '이름' 단독..
로드밸런싱 1. 로드 밸런싱이란? 트래픽이 대량으로 발생했을 때, 여러 대의 서버가 분산 처리하여 트래픽을 분산시키는 기법이다. 2. 로드 밸런싱의 주요 기능 NAT(Network Address Translation) 사설 IP주소를 공인 IP주소로 바꾸는 변조기 Tunneling 눈에 보이지 않는 통로를 만들어 통신할 수 있도록 하는 개념 데이터를 캡슐화하여 연결된 상호 간의 패킷만을 구별하여 캡슐화 해제 가능 DSR 서버에서 클라이언트로 응답 시 스위치를 거치지 않고 곧바로 클라이언트로 응답 Health Check 주기적인 Health Check를 통해 서버 장애 여부 판단 몇 대에 이상이 생기더라도 정상 작동중인 다른 서버로 트래픽을 보내주는 Fail-over 가능 L3 체크, L4 체크, L7체크 등 3. ..
Authentification과 Authorization의 차이 Authentification(인증) 사용자 자신이 누구인지를 증명하는 프로세스이다. Authorization(승인, 인가) 말 그대로 '허락 권한'이다. 예를 들어보면, 권한을 가진 사람이 부엌에서 그릇을 꺼낼 수 있을 것이다. 이 사람은 방에 들어갈 권한이 없을 수도 있다. 즉, 특정한 장소에서 승인을 가진 사람만이 특정 task를 수행할 수 있다. 인증 후 인가 과정을 거친다고 생각하면 된다. 쿠키, 세션, 토큰 더 나아가서 OAuth까지 연결되는 개념인데 추후 따로 포스팅할 예정이다.
HTTP 헤더 공통헤더 request, response에 모두 사용되는 헤더이다. Date HTTP 메시지가 만들어진 시각. 자동생성된다. ex) Date: Thu, 12 Jul 2018 03:12:27 GMT Connection HTTP 1.1을 사용한다면 default로 keep-alive로 설정되어 있다. 사실상 아무 의미가 없다. HTTP 2에서는 해당 형식이 제외되었다. ex) Connection: keep-alive Cache-Control 중요한 부분이다. 이 부분과 관련해서는 추후 포스팅할 예정이다. 304를 받았다면 이 부분을 의심해보자. Cache-Control 속성은 누가 응답을 어떤 조건에서, 얼마나 캐시할 수 있는지 정의한다. Content-Length request, response 메시지의 ..
GET과 POST HTTP 프로토콜의 종류이다. GET 메서드 정보를 조회하기 위한 메서드 가져와서 보여준다(select) url 끝에 ?가 붙고, 정보가 key=value 형태의 쌍을 이루어 서버로 전송된다. 요청정보가 여러개일 경우 &로 구분한다. ex) www.aa.com?name=value url에 요청 정보가 붙기 때문에 길이 제한이 있다.→대용량 데이터 전송 불가능 url에 정보가 담겨 전송되기 때문에 보안에 취약하다. body는 비어 있는 상태로 전송된다.→body의 데이터 타입 표현하는 Content-Type도 비어 있는 상태 post 방식보다 빠르다. 캐싱 사용이 가능하다. POST 메서드 서버의 값이나 상태 바꾸기 위한 메서드 요청을 수행한다(Insert, Update, Delete) 요청 정보를 HTT..
TCP의 3 way handshake와 4 way handshake 3 way handshake(연결 설정) 두 프로세스 모두 전송할 준비가 되어있다는 것을 보장한다. 1) Client(Process A)에서 Server(Process B)에 연결을 요청하는 패킷 SYN(a)를 보낸다. 2) Server가 정상적으로 요청을 받았다면, 그를 수락하는 ACK(a+1)패킷과 함께 SYN(b)를 보낸다. cf) ACK(a+1)의 의미는 a번 패킷까지 안전하게 받았으니 a+1번째 패킷을 달라는 의미가 된다. 이를 통해 클라이언트는 자신이 보낸 패킷이 안전하게 도달했는지 알 수 있다. 3) Client는 두 패킷을 받고 ACK(b+1)로 패킷을 보내면 연결이 완료된다. 4 way handshake(연결 해제) 1) Client에서 연결을 끊겠다는 FIN플래그를 전송한다. 2) Se..
TCP/UDP의 Header TCP Header Source Port, Destination Port: 송신, 수신 포트 주소 Sequence Number: 송신자가 보내는 데이터의 순서 번호(MSS단위로 증가): k번째를 보냈다 MSS(Max Sequence Size): TCP가 한 번에 보낼 수 있는 데이터의 최댓값 즉, 5000 bytes 데이터가 있고 MSS가 100bytes라면 50개의 세그먼트가 생성된다. 첫 번째 세그먼트의 sequence number는 0, 두 번째 세그먼트의 sequence number는 (0+100)으로 설정된다. Acknowledge Number: 수신자가 받은 바이트 수에 대한 응답: (k-1)번째까지 받았다→k번째를 기다리고 있음 위의 상황에서 0번째 데이터를 정상적으로 모두 받았다면, 0~9..
TCP와 UDP Transport layer 신뢰성 있는 데이터를 전송하는 계층이다. 신뢰성이란, 데이터를 순차적이고 안정적으로 전달하는 것을 말한다. 전송이란, 포트 번호에 해당하는 프로세스에 데이터를 전달하는 것을 말한다. 왜 중요할까? Transport layer가 없다면... Flow Problem: 송수신자 간의 데이터 처리 속도에 차이가 있을 수 있다. Congestion Problem: 네트워크의 데이터 처리 속도에 문제가 있을 수 있다.(네트워크 혼잡) TCP(Transmission Control Protocol) 신뢰성 있는 데이터 통신을 가능하게 해주는 프로토콜이다. 데이터의 순차 전송을 보장한다. Flow control, Congestion control, Error detection 수행 full-..