티스토리 뷰
- 지수 백오프 알고리즘은 TCP/IP에서 사용되는 혼잡 제어 알고리즘 중 하나로, 네트워크 혼잡을 감지하고 네트워크 트래픽을 줄이기 위해 전송 속도를 감소시키는 알고리즘입니다
- 이진 트리는 모든 노드가 최대 두 개의 자식 노드를 가지는 트리 구조이며, 이진 탐색 트리(BST)는 이진 트리 중 하나로서 왼쪽 자식 노드는 부모 노드보다 작고 오른쪽 자식 노드는 부모 노드보다 큰 값을 가지는 조건을 만족합니다.
- 데이터베이스의 인덱스는 특정 열에 대한 검색 및 정렬을 빠르게 수행하기 위한 데이터 구조입니다. 인덱스는 데이터베이스 성능을 향상시키고 쿼리의 실행 속도를 높일 수 있습니다. 인덱스는 자주 검색되는 열에 대해 설정되며, 모든 열에 대해 인덱스를 설정할 수는 없습니다.
- SQL 데이터베이스는 관계형 데이터베이스이며, 스키마를 따르는 구조를 가지고 있습니다. NoSQL 데이터베이스는 스키마가 없거나 유연한 스키마를 가지고 있습니다. SQL은 복잡한 쿼리 및 트랜잭션 처리에 적합하고, NoSQL은 대량의 데이터를 실시간으로 처리하거나 확장성이 중요한 경우에 적합합니다.
- 제가 가장 좋아하는 정렬 알고리즘은 퀵 소트입니다. 이 알고리즘은 평균적으로 빠르고, 구현이 간단하며, 공간 복잡도가 작습니다. 퀵 소트는 분할 정복 알고리즘을 기반으로 하며, 주어진 배열을 분할하고 각 부분을 정렬하여 전체 배열을 정렬합니다.
- 도서 정보를 저장하는 웹사이트에서는 주로 해시 테이블이나 트리 구조를 사용할 것입니다. 해시 테이블은 빠른 검색 속도를 제공하며, 키-값 쌍을 저장하기에 적합합니다. 트리 구조는 정렬된 데이터를 저장하고 효율적인 검색을 제공하는 데 유용합니다.
- 가장 빠른 정렬 알고리즘은 병합 정렬과 퀵 소트 중에서 선택될 수 있습니다. 그러나 최악의 경우에도 일반적으로 빠른 것은 퀵 소트입니다.
- 논리적 설계는 데이터베이스의 구조와 관계를 설계하는 단계이며, 물리적 설계는 실제 데이터베이스 시스템에서 이러한 구조를 구현하는 단계입니다.
- SQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 결합하는 데 사용됩니다. INNER JOIN, LEFT JOIN, RIGHT JOIN 등의 다양한 JOIN 유형이 있으며, 이를 사용하여 관련된 데이터를 검색하거나 결합할 수 있습니다.
- 퀵 소트의 최악의 시간 복잡도를 방지하기 위한 방법으로는 무작위로 선택된 Pivot을 사용하거나 중앙값을 Pivot으로 선택하는 방법 등이 있습니다. 이러한 방법을 사용하면 Pivot을 최대한 중심에 위치시켜 분할을 균등하게 할 수 있으므로 최악의 경우에도 좋은 성능을 유지할 수 있습니다.
TCP/IP는 네트워크 통신에 사용되는 프로토콜 스택의 한 종류이며, 인터넷을 비롯한 다양한 네트워크에서 데이터 통신을 가능하게 합니다. TCP/IP는 Transmission Control Protocol(TCP)와 Internet Protocol(IP)의 조합으로 이루어져 있습니다. TCP는 신뢰성 있는 연결 지향적인 통신을 제공하고, IP는 패킷 교환 네트워크에서 데이터의 전달을 담당합니다. TCP/IP는 현재 인터넷에서 주로 사용되는 통신 프로토콜로, 다양한 네트워크 장치 및 시스템 간의 통신을 지원합니다.
스키마(Schema)는 데이터베이스에서 데이터 구조, 데이터베이스 개체 간의 관계, 데이터베이스에서 허용되는 제약 조건 등을 정의하는 구조입니다. 다시 말해, 스키마는 데이터베이스에 저장될 데이터의 구조와 형식을 정의합니다. 이는 테이블의 열과 데이터 유형, 키 및 외래 키, 제약 조건 등을 포함할 수 있습니다. 스키마는 데이터베이스 설계 및 구축 단계에서 중요한 부분이며, 데이터의 구조와 유형을 명확히 정의함으로써 데이터의 일관성과 정확성을 유지할 수 있습니다.
- 언제 사용하며 어떻게 구현할 수 있나요?
- 인덱스는 데이터베이스의 성능을 향상시키기 위해 사용됩니다. 특히 데이터 검색 및 정렬 작업에서 성능 향상을 기대할 수 있습니다. 인덱스를 사용하면 데이터베이스 엔진은 인덱스를 참조하여 테이블의 특정 데이터를 더 빠르게 검색할 수 있습니다. 일반적으로 데이터 검색이 빈번하거나 대량의 데이터가 있는 테이블에서 인덱스를 사용합니다.
- 인덱스는 대개 CREATE INDEX 문을 사용하여 생성됩니다. 데이터베이스 관리 시스템(DBMS)마다 문법이 다를 수 있지만, 대부분의 경우 CREATE INDEX 문을 사용하여 인덱스를 특정 열에 생성할 수 있습니다.
- 모든 컬럼에 대해 Index를 설정할 수 있을까요?
- 모든 컬럼에 대해 인덱스를 설정하는 것은 항상 최적의 선택은 아닙니다. 인덱스를 사용하면 검색 성능이 향상되지만, 인덱스 자체도 저장 공간을 차지하고 쓰기 작업에 영향을 미칠 수 있습니다. 또한, 인덱스를 생성하면 데이터베이스의 쿼리 실행 속도는 향상되지만 삽입, 수정, 삭제 작업은 느려질 수 있습니다.
- 그러므로 어떤 컬럼에 대해 인덱스를 생성할지 결정할 때는 해당 컬럼이 자주 검색되는지 여부, 검색 작업의 성능 향상이 필요한 정도, 데이터베이스의 크기와 특성 등을 고려해야 합니다. 일반적으로 자주 검색되는 컬럼이나 정렬이나 조인에 사용되는 컬럼에 인덱스를 생성하는 것이 일반적입니다.
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 유지하기 위한 중요한 개념입니다. 트랜잭션은 하나 이상의 데이터베이스 작업(예: 데이터 삽입, 수정, 삭제)의 논리적인 단위를 나타냅니다. 이러한 작업은 데이터베이스의 상태를 변화시키는 것이며, 트랜잭션은 이러한 작업들을 한꺼번에 수행하거나 모두 취소하는 데 사용
'내일배움캠프 개발자과정 > TIL' 카테고리의 다른 글
내일배움캠프 35일차 TIL (0) | 2024.04.03 |
---|---|
내일배움캠프 34일차 TIL (1) | 2024.04.01 |
내일배움캠프 32일차 TIL (0) | 2024.03.28 |
내일배움캠프 31일차 TIL (1) | 2024.03.27 |
내일배움캠프 30일차 TIL (0) | 2024.03.26 |