바이트 저장 순서 컴퓨터는 데이터를 메모리에 저장할 때 Byte 단위로 나눠서 저장한다. 따라서 연속되는 바이트를 순서대로 저장해야 하는데, 이것을 바이트 저장 순서(Byte Order)라고 한다. 이때 바이트가 저장된 순서에 따라 빅 엔디안, 리틀 엔디안 두 가지 방식으로 나눌 수 있다. 빅 엔디안(Big-endian) 빅 엔디안 방식은 낮은 주소에 데이터의 높은 바이트(MSB : Most Significant Byte)부터 저장하는 방식이다. 이 방식은 평소 사람이 사용하는 선형 방식과 같아 메모리에 저장된 순서 그대로 읽을 수 있으며, 이해하기 쉽다. 예를 들어, 아래와 같이 저장할 32bit 크기의 정수가 있다고 가정하자. 0x12345678 그럼 이 정수는 아래와 같이 4개의 byte (4byt..
CISC (Complex Instruction Set Computer) CISC란 연산에 처리되는 복잡한 명령어 집합을 수백 개 이상 탑재하고 있는 프로세서이다. 인텔 계열의 모든 프로세서는 CISC 프로세서이다. CISC는 다음과 같은 특징을 갖는다. 1. 복잡하고 기능이 많은 명령어로 구성된 프로세서 2. 복합 명령을 가짐으로써 하위 호환성을 확보 3. 트랜지스터 집적에 있어 효율성이 떨어짐 4. 전력 소모가 큼 5. 속도가 느리고 가격이 비쌈 6. 호환성이 절대적으로 필요한 PC 환경에 사용 7. 명령어 해석에 필요한 회로가 복잡해 병렬 처리가 쉽지 않음 RISC (Reduced Instruction Set Computer) RISC란 적은 수의 명령어를 수행하도록 설계된 마이크로프로세서이다. 복잡..
CPU(Central Processing Unit)란? CPU는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 컴퓨터의 제어 장치 혹은 그 기능을 내장한 칩이다. CPU는 외부에서 정보를 입력받아 기억하고 컴퓨터 프로그램의 명령어를 해석하여 연산하고 외부로 출력하는 역할을 한다. 쉽게 말해 컴퓨터의 두뇌와 같은 역할을 한다. CPU는 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다. CPU의 기본 구성은 명령어를 저장하는 역할을 하는 프로세서 레지스터, 연산을 담당하는 ALU, 명령어의 해석과 올바른 실행을 위하여 CPU를 내부적으로 제어하는 제어부와 내부 버스 등이 있다. CPU의 성능은 프로그램 로드 속도와 프로그램이 얼마나 원활하게 실행되는지에 큰 영향을 미친다..
형변환(Type Conversion)이란? int a = 10; float b = 1.2; printf("%d", a+b); 형변환이란 데이터의 타입을 변경하는 것이다. 예를 들어 위와 같이 데이터 타입이 다른 두 변수를 더하는 연산을 하려고 하면 어떻게 될까? 오류가 발생하지는 않고 묵시적 형변환이 일어나게 된다. 묵시적 형변환(Implicit Type Conversion)이란? 묵시적 형변환이란 컴파일러에 의해 자동으로 형변환이 이루어지는 것을 말한다. 예를 들어 int a 와 float b를 더할 때 int a는 자동으로 float형으로 형변환이 이루어진다. 묵시적 형변환은 위 그림처럼 표현 범위가 좁은 데이터 타입에서 -> 넓은 데이터 타입으로의 변환만 허용된다. 예를 들어 int 형은 doubl..
웹사이트 접속 과정 한 대학생이 캠퍼스에서 노트북으로 구글에 접속한다고 하자. 어떤 과정을 통해 사용자는 구글에 접속할 수 있을까? 이 게시글은 그동안 공부한 내용들을 총 정리한다고 볼 수 있다. 자세한 내용이 궁금하다면 참고 링크를 참고하자. 1. 목적지 IP 주소 확인 사용자가 웹 브라우저의 주소창에 www.google.com을 입력하면, 해당 목적지의 IP주소를 알아야 한다. 브라우저는 캐싱된 DNS 기록이 있는지 체크하고, 만약 캐시가 있다면 캐시의 정보를 이용하고 없다면 DNS 서버에 정보를 요청해야 한다. 참고 : [네트워크] 도메인(Domain)과 DNS(Domain Name System)란? 도메인(Domain)이란? 도메인은 웹 브라우저를 통해 특정 사이트에 진입할 때, IP 주소를 대신..
MAC 주소란? IP 주소는 네트워크 계층(Network Layer)에서 사용되는 주소다. 반면 MAC 주소는 데이터 링크 계층(Data Link Layer)에서 사용되는 주소로, LAN(Local Address Network)에서 목적지와 통신하기 위한 실질적인 주소이다. MAC 주소 예시 : 1A-2F-BB-76-09-AD MAC 주소는 위 예시처럼 48bit의 16진수를 사용한다. MAC 주소는 유일성을 위해 IEEE(전기 전자 기술자 협회)에서 관리하고 할당한다. 따라서 모든 네트워크 장비 혹은 컴퓨터는 NIC(Network Interface Card)에 고유한 MAC 주소를 가지고 있다. MAC 주소의 필요성 그런데 IP 주소가 있는데 MAC 주소가 따로 필요한 이유는 무엇일까? IP 주소는 논..
도메인(Domain)이란? 도메인은 웹 브라우저를 통해 특정 사이트에 진입할 때, IP 주소를 대신하여 사용하는 주소이다. 도메인을 이용하면 한눈에 파악하기 힘든 IP주소를 보다 분명하게 나타낼 수 있다. 예를 들어 구글의 IP 주소가 11.32.23.232 이라고 하자. 이것 보단 도메인인 www.google.com 훨씬 확인이 쉽다. DNS(Domain Name System)란? DNS는 도메인 이름을 IP주소로 변환하거나 IP주소를 도메인 이름으로 변환하는 일을 수행할 수 있도록 개발된 데이터베이스 시스템이다. DNS는 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 한다. DNS 서버에서 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에..
DHCP(Dynamic Host Configuration Protocol)란? DHCP는 Host IP 구성 관리를 단순화하는 IP 표준이다. 동적 호스트 구성 프로토콜 표준에서는 DHCP 서버를 사용하여 IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 DHCP 사용 클라이언트에게 동적으로 할당하는 방법을 제공한다. 쉽게 말해서 DHCP 서버가 클라이언트의 IP주소, 서브넷 마스크, DNS 서버 IP주소, 임대 기간 등 다양한 네트워크 정보를 자동으로 할당해주는 프로토콜이라고 생각하면 된다. DHCP를 사용하면 이용자가 네트워크 정보를 직접 설정할 필요 없이 자동으로 그 설정이 가능하기 때문에 네트워크 관리가 용이해진다. 하지만 단점으로는 이용자가 DHCP 서버에 의존하게 되므로 DHCP 서버가 ..
네이글 알고리즘이란? 네이글 알고리즘은 네트워크를 통해 전송해야 하는 패킷 수를 줄임으로써 TCP/IP 네트워크의 효율성을 향상하는 수단이다. John Nagle이라는 사람이 정의하여 Nagle 알고리즘이라고 불린다. RFC896에 정확한 내용이 기술되어 있는데, 이를 정리 요약하면 다음과 같다. RFC에는 응용 프로그램이 종종 크기가 1바이트에 불과한 작은 덩어리로 반복적으로 데이터를 내보내는 이른바 '스몰 패킷 문제'가 기술되고 있다. TCP 패킷은 40바이트 헤더를 가지므로, 1바이트의 정보를 보내기 위해 41바이트 패킷을 보내야 하는, 매우 비효율적인 오버헤드를 초래하게 된다. 이러한 비효율성은 수많은 패킷들이 동시에 전송되어 잠재적으로 Congestion Collapse(정체 붕괴)로 이어질 수..
시스템 카탈로그란? 1. DBA의 도구로서 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보를 수록한 시스템 테이블이다. 2. 하나의 작은 데이터베이스 데이터 사전(Data dictionary)라고도 한다. 3. DDL의 결과로 생성되는 기본 테이블, 뷰, 인덱스, 데이터베이스, 접근 권한 등의 데이터베이스 구조 및 성능 평가를 위한 통계정보도 저장한다. 4. 데이터베이스의 스키마 정보, 스키마들 간의 사상 정보, DBMS의 특정 모듈을 필요로 하는 정보를 저장한다. 5. 시스템 카탈로그에 저장된 내용을 메타 데이터(Meta Data)라고 한다. + 스키마가 무엇인지 모른다면 다음을 참고하자. [DB] 스키마(Schema)란? 외부스키마, 개념스키마, 내부스키마 스키마(Sc..