본문 바로가기

CS39

데이터베이스 키 종류 (슈퍼키, 후보키, 기본키, 대체키) 슈퍼키 (Super Key)- 슈퍼키는 테이블 내의 행을 중복되지 않게 식별해주는 속성으로, 슈퍼키 열의 값으로써 단일 행을 특정할 수 있다.- 예를 들어, 주민등록번호는 사람마다 달라 한 사람을 특정할 수 있으니, 슈퍼키의 예시라 할 수 있다.- 또한 슈퍼키는 단일 속성일 필요가 없어, 주민등록번호 + 이름의 초과 조합으로도 사람을 식별할 수만 있다면 슈퍼키라 할 수 있다. 후보키 (Candidate Key)- 후보키는 슈퍼키 중 더 이상 줄일 수 없는 형태를 가진 키다. 이는 후보키를 구성하는 속성 중 어느 하나라도 제외될 경우 유일성을 만족할 수 없음을 의미한다.- 예를 들어, 상기한 주민등록번호 + 이름의 조합에서 이름을 제외하면 주민등록번호만 남게 되는데, 주민등록번호 만으로도 사람을 특정할 수.. 2024. 12. 6.
컴파일러와 인터프리터 (+ JIT 컴파일러) 컴파일러- 소스 코드를 기계어로 번역해주는 프로그램- 모든 소스 코드의 번역이 완료된 후 실행- 런타임 이전에 번역이 완료되므로 성능 최적화가 용이- C, C++ 등이 컴파일 언어에 속함인터프리터- 소스 코드를 미리 번역하지 않고, 런타임에 순차적으로 실행시키는 프로그램- 소스 코드를 직접 실행할 수도 있고, 중간 언어를 거칠 수도 있음- 컴파일러에 비해 성능이 불리하여, JIT 컴파일러와 혼용하는 경우가 있음- JS, Python이 인터프리터 언어에 속함 * JIT 컴파일러란?런타임에 컴파일을 진행하되, 번역된 기계어를 캐싱하여 재사용하는 디자인.JVM의 경우 인터프리터와 JIT 컴파일러를 동시에 사용한다. 호출 횟수가 임계치를 초과하는 메서드에 대해서만 컴파일을 진행하는 식이다. 모든 메서드에 대하여.. 2024. 12. 5.
데이터베이스의 기본 용어 테이블은 데이터를 행과 열로 구성하여 저장하는 자료 구조이다.행은 테이블의 가로줄이고, 튜플 혹은 레코드라고도 칭한다.열은 테이블의 세로줄이고, 필드 혹은 속성이라고도 칭한다.관계형 데이터베이스는 이러한 테이블 간의 관계를 이용하여 데이터를 효율적으로 관리하는 시스템이다.기본키 열에 속한 값은 본 테이블의 행을 유일하게 식별하는 데에 사용된다.외래키 열에 속한 값은 타 테이블의 기본키를 참조하여 테이블 간의 관계를 맺는 데에 사용된다.이외에도 슈퍼키, 후보키, 대체키 등이 있다.스키마는 데이터베이스의 구조와 제약 조건 등에 대한 명세이다.스키마는 관점에 따라 외부 스키마, 내부 스키마, 개념 스키마로 구분할 수 있다.  사진 출처 : 데이터베이스 기본 (MySQL): RDBMS(Relational Dat.. 2024. 12. 3.
IPv6 유니캐스트 주소에 대하여 IPv6 유니캐스트 주소는 세 종류로 구분할 수 있다. - 글로벌 유니캐스트 - 유니크 로컬 - 링크 로컬 1. 글로벌 유니캐스트 주소는 IPv4의 공인 주소를 생각하면 된다. 각 호스트에 할당되고 인터넷에서 사용할 수 있다. 주소는 2000::/3으로 시작하며 회사와 같은 그룹은 /48, 개인은 /64를 사용하도록 표준화되어 있다. 즉 주소의 절반은 네트워크 부분이고 나머지 절반은 호스트 부분이다. 다만 실질적인 서브넷은 /48과 /64 사이의 16비트로만 구성할 수 있겠다. 그래도 2^16개이므로 충분하다 못해 넘칠 수준이다. 호스트도 물론이고! Cisco 라우터는 기본적으로 유니캐스트 주소를 통한 라우팅이 비활성화되어 있으므로 명령어를 통해 활성화 시켜줘야 한다. 물론 '라우팅'이므로 활성화하지 않.. 2023. 11. 5.
Cisco NAT의 기초 개념 정적 NAT 정적 규칙에 의한 1:1 변환 동적 NAT IP Pool에서의 유동적인 대여 Inside NAT 장비를 기준으로 하는 내부 네트워크 Outside Inside에 대응하는 외부 네트워크 Local (IP) Inside 네트워크에서 사용하는 IP Global (IP) Outside 네트워크에서 사용하는 IP Inside Local Inside 호스트가 Inside에서 사용하는 IP = Inside 호스트의 원래 IP Outside Local Outside 호스트가 Inside에서 사용하는 IP = Outside 호스트의 변환된 IP Inside Global Inside 호스트가 Outside에서 사용하는 IP = Inside 호스트의 변환된 IP Outside Global Outside 호스트가.. 2023. 10. 29.
와일드카드 마스크를 쓰는 이유? 와일드카드 마스크는 단순히 서브넷 마스크를 반전시킨 게 아니다. 그냥 반전만 시킨거라면 서브넷을 쓰나 와일드카드를 쓰나 별 차이가 없지 않겠나? 와일드카드 마스크는 비트의 개념이 서브넷 마스크와 반대되면서, 비트가 연속될 필요가 없다는 특징을 가지고 있다. 그리고 그 특징이 서브넷 마스크와의 차별점이라고 할 수 있다. 이해를 돕기 위해 와일드카드 마스크가 사용되는 ACL을 예로 들어보자. 아래의 토폴로지에서 짝수번 호스트의 트래픽을 막고자 할때, 서브넷 마스크로도 가능할까? 아니면 와일드카드 마스크가 필요할까? 굳이 이진수로 따져볼 필요도 없이 짝수는 맨 오른쪽 비트가 0이므로 와일드카드 마스크를 0.0.0.254로 쓸 수 있다. 하지만 서브넷 마스크는? 연속된 비트로는 짝수를 여럿 걸러낼 수 없어 서브.. 2023. 10. 21.
DHCP, ARP 스푸핑과 그 방지책 DHCP 스푸핑(Spoofing, 속이다)이란 공격자가 DHCP 서버를 가장하여 조작된 DHCP 정보를 보내는 것이다. DHCP 메세지는 중요한 네트워크 속성을 담고 있다. 클라이언트가 사용할 ip와 gw, dns 주소 등... 만약 이러한 정보가 조작될 경우 클라이언트는 DoS(Denial of Service), MITM(Man In The Middle) 공격에 노출된다. 이를 막으려면 DHCP 스누핑(Snooping, 엿듣다)이 필요하다. DHCP 메세지가 전달되는 과정에서 스위치가 이를 엿듣고 신뢰할 수 있는 포트에서 전달된 것인지를 확인하는 것이다. ARP 스푸핑은 공격자가 자신의 ip 주소를 속여 다른 호스트들의 ARP 테이블을 오염(Poisoning)시키는 것이다. 예를 들어, 공격자가 gw를.. 2023. 10. 17.
이더채널(EtherChannel)이란 이더채널은 여러 물리적 링크를 하나의 논리적 링크로 축약시키는 기술이다. 이더채널이 필요한 이유는 스패닝 트리와 엮어서 생각해보면 알기 쉬운데, 만약 두 스위치 사이에 두 개의 링크가 존재한다면 stp에 의해 하나의 링크가 블로킹되어 대역폭을 온전히 사용할 수 없게 된다. 하지만 이더채널을 사용하면 두 링크가 루프가 아닌 하나의 링크로 간주되므로 블로킹될 일이 없다. 따라서 이더채널의 주 목적은 - 대역폭 확장 - 링크 이중화 라고 할 수 있다. 또한 링크가 다수 존재함으로서 로드 밸런싱이 적용된다. 이더채널은 3개로 구분할 수 있다. 1. LACP (Link Aggregation Control Protocol) : ieee 표준(802.3ad)이고 가장 많이 쓰인다. 2. PAgP (Port Aggre.. 2023. 10. 14.