Key의 종류 슈퍼 키 (Spuer Key) : 유일성을 만족하는 키. 예를 들면, {학번 + 이름}, {주민등록번호 + 학번} 복합 키 (Composite Key) : 2개 이상의 속성(attribute)를 사용한 키. 후보 키 (Candidate Key) : 유일성과 최소성을 만족하는 키. 기본키가 될 수 있는 후보이기 때문에 후보키라고 불린다. 예를 들면, 주민등록번호, 학번 등 기본 키 (Primary Key) : 후보 키에서 선택된 키. NULL값이 들어갈 수 없으며, 기본키로 선택된 속성(Attribute)은 동일한 값이 들어갈 수가 없다. 대체 키 (Surrogate Key) : 후보 키 중에 기본 키로 선택되지 않은 키. 외래 키 (Foreign Key) : 어떤 테이블(Relation) ..
Key의 종류 슈퍼키 외래키 기본키 후보키 대체키 복합키 슈퍼키
정규화 (Normalization) 테이블 간에 중복된 데이터를 허용하지 않는다는 것이 정규화(Normalization)의 기본 목표이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 이러한 테이블을 분해하는 정규화 단계가 정의되어 있는데, 여기서 테이블을 어떻게 분해되는지에 따라 정규화 단계가 달라지는데, 각각의 정규화 단계에 대해 자세히 알아보도록 하자. 제1 정규화 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해하는 것이다. 예를 들어 아래와 같은 고객 취미 테이블이 존재한다고 하자. 위의 테이블에서 추신수와 박세리는 여러 개의 취미를 가지고 있기 때문에 제1 정규형을 만족하지 못하고 ..
다익스트라 (Dijkstra) 알고리즘이란? 다익스트라 (Dijkstra) 알고리즘은 최단 경로 알고리즘으로 그래프에서 특정한 노드에서 다른 모든 노드까지의 최단 경로를 구하는 알고리즘이다. 그리드 알고리즘 기반에 동적 계획법(DP)을 활용한 알고리즘이며 그래프에서 양수 가중치만 있을 때 사용할 수 있다. 왜 그리디 기반? 계속해서 거리 값이 가장 작은 노드를 선택하기 때문 왜 동적 계획법(DP)? 최단 거리는 여러 개의 최단 거리로 구성되어 있다. 이전까지의 최단 경로들이 최단 경로를 구하기 위해서 재사용 된다. 다익스트라 알고리즘의 동작 동작 설명 거리, 방문 테이블 준비 (거리 테이블은 INF, 방문 테이블은 False로 모두 초기화) 시작 노드 선택 (방문 처리) 연결되어 있는 노드와의 최단 거리..
프록시(Proxy) 란? 프록시 서버는 클라이언트가 자신(프록시 서버)을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 말한다. 프록시(Proxy)란 '대리' 라는 의미를 갖고 있으며, 서버와 서버 사이의 중계기 역할을 한다고 보면 된다. 프록시를 쓰는 이유는 보안상의 이유로 직접 통신할 수 없는 두 네트워크 사이에서 대리로 통신을 수행하여 보안성, 성능, 안정성을 향상 시키기 위해서이다. 보통 웹은 클라이언트에서 서버로, 서버에서 클라이언트로 통신하며 테이터를 전달한다. 이때 중복되는 데이터를 반복하여 전달하는 상황이 발생하는데, 이렇게 동일한 요청을 매번 처리하는 것은 곧 리소스 낭비와 서버 부하로 이어지게 된다. 때문에 본 서버에 도달하기 전에 새로..
Web Sever 웹 브라우저에서의 하이퍼텍스트 전송 프로토콜(HTTP) 요청에 응답하여 정적 웹 컨텐츠(예: HTML 페이지, 파일, 이미지, 비디오)를 제공한다. Web Sever의 기능 HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서버스 하는 기능을 담당한다. 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다. WAS를 거치지 않고 바로 정적인 컨텐츠 제공 클라이언트로부터 동적인 컨텐츠 제공을 위한 요청(Request)을 받아 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다. Web Sever의 예 Apache Sever, Nginx, Window IIS WAS(Web Application Server) ..
CIDR(Classless Inter-Domain Routing) CIDR의 full name은 (Classless Inter-Domain Routing) 으로 클래스 없는 도메인간 라우팅 기법이라는 뜻을 내포한다. 즉, 도메인간의 라우팅에 사용되는 인터넷 주소를 원래 IP주소 클래스 체계를 쓰는 것보다 더욱 능동적의로 할수 잇도록 할당하여 지정하는 방식중 하나 이다. 언뜻 보면, IP주소 클래스를 배우면서 같이 배우는는 서브네팅과 차이가 무엇인지 애매할 때가 있다. 서브네팅 자체가 IP클래스에 국한되지 않고 더욱더 IP 주소를 쪼개는 방식을 말한다. 즉, 이게 바로 클래스 없는 도메인간 라우팅 기법이기 때문이다. 결론적으로 말하면, 서브네팅 ⊂ CIDR 이런 집합 관계가 형성된다. 서브네팅 뿐만아니라 ..
라우팅 테이블(Routing Table) 라우팅 테이블이란, IP 네트워크를 통해 이동하는 데이터 패킷이 어디로 향하게 될지 결정하는데 사용되는 일련의 규칙이다. 보통은 Table 형식으로 표시된다. 라우터 및 스위치를 포함한 모든 IP 지원 장비는 라우팅 테이블을 사용한다. 라우팅 테이블에는 패킷이 대상을 향한 최상의 경로를 따라 전달하는데 필요한 정보가 포함되어 있다. 각 패킷에는 출발지와 목적지에 대한 정보가 들어 있다. 라우팅 테이블의 구성 요소 IPv4의 라우팅 테이블은 아래 그림과 같이 이루어져 있다. 네트워크 대상(Network Destination) 패킷의 최종 대상 IP 주소이다. 넷마스크(Netmask) 내가 원하는 목적지의 IP 주소와 넷마스크를 AND 연산하여 그 계산값이 네트워크 ..
라우팅(Routing) 라우팅이란, 패킷에 포함된 주소(ip 등) 등의 상세 정보를 이용하여 목적지까지 데이터를 체계적으로 다른 네트워크에 전달하는 경로 선택(Path Determination)과 스위칭(Switching)하는 과정이다. 쉽게 말해, 데이터가 전달되는 과정에서 여러 네트워크들을 통과해야하는 경우가 생길 수 있는데, 여러 네트워크들의 연결을 담당하고 있는 라우터(Router)가 데이터의 목적지가 어디인지 확인하여 빠르고, 정확한 길을 찾아 전달해주는 것이다. 현실과 비교한 라우팅 예를 들어 자신이 새로 생긴 맛집에 찾아가려고 한다고 가정해보자. 우리가 가장 먼저 하는 것은 아마 목적지에 어디에 있는 지 주소를 확인하는 것일 것이다. 그런 뒤에 목적지로 가기 위한 다양한 방법 중에서 가장 편..
해당 게시물은 IP에 대한 이론이 바탕이 된다. IP에 대한 참고는 아래 포스팅에서 확인할 수 있다. [네트워크] IP란? IPv4와 IPv6의 차이점 IP IP는 Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜을 의미한다. IP에서 IP 기기의 주소를 나타내는 것이 바로 IP주소이다. 흔히 우리가 사용하는 IP는 이 IP주소를 의미한 sangcheon02.tistory.com IP Tunnerling이란? 물리적인 시각에서 Tunnerling은 일반적으로 가로지를 수 없는 지형이나 경계를 가로지르는 방법이다. 마찬가지로 TCP/IP 네트워크 안에서 IP Tunnerling은 해당 네트워크에서 지원하지 않는 프로토콜을 사용하여 네트워크를 통해 데이터를 전송하는 방법이..