네트워크 라우팅 테이블
·
Interview/Network
네트워크 라우팅 테이블네트워크 라우팅 테이블(Network Routing Table)은 컴퓨터 네트워크에서 데이터를 목적지까지 전달하는 과정에서 어떤 경로를 선택할지 결정하는 중요한 데이터 구조입니다.라우터나 호스트 시스템에서 유지 관리되며, 네트워크 패킷을 올바른 목적지로 전송하기 위해 사용됩니다. 라우팅 테이블은 주로 라우터와 같은 네트워크 장비에서 운영되지만, 컴퓨터와 같은 호스트에서도 존재할 수 있습니다.라우팅 테이블의 기본 구성 요소라우팅 테이블은 여러 항목(entry)으로 구성되며, 각 항목은 다음과 같은 필드로 구성됩니다:네트워크 대상(Network Destination): 패킷이 전달될 네트워크의 주소입니다. 일반적으로 IP 주소로 표현되며, 특정 네트워크나 호스트를 가리킵니다.서브넷 마스..
네트워크 인터페이스
·
Interview/Network
네트워크 인터페이스네트워크 인터페이스(Network Interface)는 컴퓨터 또는 네트워크 장치가 네트워크에 연결되고 통신할 수 있도록 하는 하드웨어와 소프트웨어의 조합을 의미합니다. 네트워크 인터페이스는 여러 종류가 있으며, 각기 다른 기술과 프로토콜을 사용합니다. 여기서 주요 개념을 살펴보겠습니다.1. 네트워크 인터페이스의 종류이더넷 카드 (NIC): 가장 일반적인 네트워크 인터페이스로, 유선 LAN에서 사용됩니다. 컴퓨터의 메인보드에 내장되어 있거나 별도로 추가할 수 있습니다.무선 LAN 카드 (Wi-Fi): 무선 네트워크에 연결하기 위한 카드로, 무선 신호를 수신하고 송신합니다.모뎀: 인터넷 서비스 제공업체(ISP)와 연결하기 위한 장치로, 아날로그 신호를 디지털 신호로 변환하는 역할을 합니다..
DB에서 B-Tree, B+ Tree
·
Interview/DB
DB에서 B-Tree, B+ TreeB-Tree는 컴퓨터 과학에서 데이터베이스 및 파일 시스템과 같은 대용량 데이터를 효율적으로 관리하기 위한 완전한 균형을 맞춘 트리 self-balancing search tree입니다. B-Tree는 트리의 높이를 작게 유지함으로써 검색, 삽입, 삭제 연산을 빠르게 수행할 수 있도록 설계되었습니다. 이를 통해 데이터를 디스크에 저장할 때 발생하는 입출력(I/O) 비용을 줄이는 데 효과적입니다.B-TreeB-Tree가 데이터베이스에 적합한 이유는 다음과 같습니다:균형 트리 구조: B-Tree는 모든 리프 노드가 같은 깊이에 위치하는 균형 트리 구조를 유지합니다. 이는 데이터가 삽입, 삭제되더라도 항상 일정한 높이를 유지하게 되어 검색, 삽입, 삭제 등의 연산이 일정한 ..
Database Explain을 통한 최적화 분석
·
Interview/DB
Database Explain을 통한 최적화MySQL 쿼리 최적화는 데이터베이스 성능을 향상시키기 위해 매우 중요한 작업입니다. 쿼리 최적화의 주요 기법 중 일부는 다음과 같습니다:인덱스 사용 최적화: 자주 사용하는 열에 인덱스를 추가하여 검색 속도를 높이는 방법.조인(JOIN) 최적화: 적절한 조인 방식을 선택하거나, 불필요한 조인을 피함으로써 성능을 개선.쿼리 재작성: 복잡한 서브쿼리를 단순화하거나, 더 효율적인 구조로 변경.쿼리 캐싱: 동일한 쿼리의 반복 실행을 캐싱하여 성능 향상.실행 계획(Execution Plan) 분석: EXPLAIN 명령어를 통해 쿼리 실행 계획을 분석하고, 비효율적인 부분을 찾아 최적화.EXPLAIN 사용법EXPLAIN 명령어는 MySQL에서 쿼리의 실행 계획을 분석하는 ..
int128_t 64 bit에서 표현을 못하는 정수형 데이터 처리 방식
·
Interview/Algorithm
int128_t 64 bit에서 표현을 못하는 정수형 데이터 처리 방식C언어에서 int64_t로 표현할 수 없는 엄청 큰 정수를 다루기 위해서는 아래와 같은 방법을 사용할 수 있습니다.다중 정밀도 정수 라이브러리 사용 (Multiple Precision Arithmetic Library)C언어에서 기본적으로 제공하는 정수 타입으로는 큰 정수를 표현하기 어렵기 때문에, 외부 라이브러리인 GMP (GNU Multiple Precision Arithmetic Library)와 같은 다중 정밀도 수학 라이브러리를 사용하는 것이 좋습니다.GMP는 매우 큰 정수, 유리수, 부동 소수점 수를 효율적으로 다룰 수 있는 기능을 제공합니다.이 라이브러리를 사용하면 임의의 정밀도로 큰 정수를 계산하고 저장할 수 있습니다.m..
VARCHAR vs TEXT
·
Interview/DB
VARCHAR vs TEXTVARCHAR와 TEXT는 MySQL에서 문자열 데이터를 저장할 때 사용하는 주요 데이터 유형이지만, 그들의 용도와 내부적인 동작 방식에는 중요한 차이점이 있습니다. 특히 TEXT는 LOB(대형 객체, Large Object) 유형의 일부로서, 다르게 처리되며 특정 상황에서 비효율적인 동작을 할 수 있습니다.1. VARCHAR와 TEXT의 개요VARCHAR:길이가 가변적인 문자열을 저장하는 데 사용됩니다.최대 길이는 MySQL 5.7에서는 65,535 바이트까지 저장할 수 있으며, 이 최대 길이는 테이블의 행 크기 및 문자 세트에 따라 제한됩니다.데이터는 인라인(inline)으로 테이블의 데이터 페이지에 저장되므로, 빠르게 접근할 수 있습니다.VARCHAR는 문자열의 실제 길이..
MySQL DISTINCT
·
Interview/DB
MySQL DISTINCTDISTINCT를 자주 사용하는 것은 성능 측면에서 문제가 될 수 있습니다. 그 이유는 DISTINCT가 컴퓨팅 작업을 많이 필요로 하기 때문입니다. 좀 더 구체적으로 이유를 살펴보면 다음과 같습니다.1. 추가적인 정렬과 필터링 작업DISTINCT는 결과 집합에서 중복된 행을 제거하기 위해 사용되며, 이는 내부적으로 많은 연산을 수반합니다. 일반적으로 DISTINCT를 사용하면 데이터베이스 엔진은 결과를 정렬한 후 중복을 제거하는 과정을 거치게 됩니다.이 과정에서 데이터의 양이 많아질수록 정렬과 중복 제거 작업의 복잡성이 증가합니다. 특히, 수백만 건 이상의 데이터에서 DISTINCT를 사용할 경우 CPU와 메모리 리소스를 많이 소모하게 되어 성능 저하로 이어질 수 있습니다.2...
MySQL Group by와 Having
·
Interview/DB
MySQL Group by와 HavingGROUP BY와 HAVING은 MySQL에서 집계 쿼리를 작성할 때 주로 사용되는 절입니다. 이를 통해 데이터 그룹화 및 그룹에 대한 조건을 적용할 수 있습니다.GROUP BY: 동일한 값을 갖는 행들을 그룹으로 묶어줍니다. 예를 들어, 특정 컬럼의 값을 기준으로 데이터를 묶어 해당 그룹에 대해 합계, 평균 등의 집계 함수를 사용할 수 있습니다.HAVING: 그룹화된 데이터에 조건을 적용할 때 사용합니다. WHERE 절과 비슷하지만, HAVING은 집계 함수 (SUM, AVG, COUNT 등)를 사용할 수 있다는 점이 특징입니다. WHERE는 그룹화되기 전에 행 필터링에 사용되고, HAVING은 그룹화된 후 필터링에 사용됩니다.다음 예제 쿼리를 통해 이를 설명해 ..
김 정출
'Interview' 카테고리의 글 목록 (4 Page)