[데이터베이스] Key
·
CS 지식/[데이터베이스]
검색, 정렬 시 Tuple을 구분할 수 있는 기준이 되는 Attribute 1. Cndidate Key (후보키) Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분 집합(기본키로 사용할 수 있는 속성들) 2가지 조건 만족 유일성 : Key로 하나의 튜플만을 유일하게 식별할 수 있음 최소성 : 꼭 필요한 속성으로만 구성 2. Primary Key (기본키) 후보키 중 선택한 Main Key 특징 - Null 값을 가질 수 없음 - 동일한 값이 중복될 수 없음 3. Alternate Key (대체키) 후보키 중 기본키를 제외한 나머지 키 = 보조키 4. Super Key (슈퍼키) 유일성은 만족하지만, 최소성은 만족하지 못하는 키 5. Foreign Key (외래키) 다른 릴레이션의 기본키를 그대로..
[네트워크] JWT 토큰
·
CS 지식/[네트워크]
Claim : key-value 형식으로 이루어진 한 쌍의 정보 JWT 토큰 JSON 포맷을 이용하는 Claim 기반의 웹 토큰 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달함 1) 헤더(Header) 토큰의 타입과 해시 암호화 알고리즘(방식지정)으로 이루어져 있음 alg : 서명 암호화 알고리즘(ex: HMAC SHA256, RSA) typ : 토큰 유형 2) 내용(Payload) 토큰에 사용자가 담고자 하는 정보를 담음 내용에는 Claim이 담겨있고, JSON(Key/Value) 형태의 한 쌍으로 이루어져 있음 클레임 단위 등록된 클레임 (Registered Claim), 공개 클레임 (Public Claim), 비공개 클레임 (Private Claim) 1) ..
[네트워크] Connection Timeout과 Read Timeout
·
CS 지식/[네트워크]
Connection Timeout 서버 자체에 클라이언트가 어떤 사유로 접근을 실패했을 시 적용되는 것 즉, 접근을 시도하는 시간 제한이 Connection Timeout 되는 것 Read Timeout 클라이언트가 서버에 접속을 성공했으나 서버가 로직을 수행하는 시간이 너무 길어 제대로 응답을 못 준 상태에서 클라이언트가 연결을 해제하는 것 이 경우는 클라이언트는 해당 상황을 오류로 인지하고, 서버는 계속 로직을 수행하고 있어 성공으로 인지해 양 사이드간 싱크가 맞지 않아 문제가 발생할 확률이 높음
[네트워크] DNS
·
CS 지식/[네트워크]
인터넷은 서버를 유일하게 구분할 수 있는 IP 주소를 사용하게 되는데 이를 일일이 외우지 않아도 DNS를 사용하여 호스트의 도메인 이름을 호스트의 IP 주소로 바꾸거나 그 반대의 변환을 용이하게 하기 때문에 사용 도메인(Domain) 웹 브라우저를 통해 특정 사이트에 진입할 때, IP주소를 대신하여 사용하는 주소 도메인을 이용하면 한눈에 파악하기 힘든 IP주소를 보다 분명하게 나타낼 수 있음 ex) 예를 들어 구글의 IP 주소가 11.32.23.232 이라고 하자. 이것 보단 도메인인 www.google.com 훨씬 확인이 쉽다. DNS(Domain Name System) 도메인 이름을 IP 주소로 변환하거나 IP 주소를 도메인 이름으로 변환하는 일을 수행할 수 있도록 개발된 데이터베이스 시스템 DNS ..
[네트워크] 공인(public) IP와 사설(private) IP
·
CS 지식/[네트워크]
공인 IP ISP(인터넷 서비스 공급자)가 제공하는 IP주소 외부에 공개되어 있는 IP 주소 사설 IP 일반 가정이나 회사 내 등에 할당된 네트워크 IP 주소이며, IPv4의 주소부족으로 인해 서브넷팅된 IP이기 때문에 라우터(공유기)에 의해 로컬 네트워크상의 PC나 장치에 할당됨 사설 IP 주소만으로 인터넷에 직접 연결할 수 없고, 라우터를 통해 1개의 공인 IP를 할당하고, 라우터에 연결된 개인 PC는 사설 IP를 통해 각각 할당 받아 인터넷에 접속할 수 있음
[네트워크] 세션 기반 인증 & 토큰 기반 인증
·
CS 지식/[네트워크]
세션 기반 인증 클라이언트로부터 요청을 받으면 클라이언트의 상태 정보를 저장하므로 Stateful(상태 유지)한 구조를 가짐 서버에 세션을 저장해야하므로 서버에 부담이 상대적으로 더 가며 확장성이 낮음 또한, 해커가 훔친 쿠키를 이용해 요청을 보내면 서버는 올바른 사용자가 보낸 요청인지 알 수 없음(세션 하이재킹 공격) 단일 도메인인 경우 사용 → 세션을 관리할 때 사용되는 쿠키는 단일 도메인 및 서브 도메인에서만 작동하도록 설계되어 있기 때문에 여러 도메인에서 관리하는 것은 어렵습니다. (CORS 문제) 토큰 기반 인증 상태 정보를 서버에 저장하므로 Stateless(무상태)한 구조를 가짐 단일 도메인이 아닌 경우 사용