컴퓨터 23

패리티 비트 parity bit

패리티 비트(parity bit)는 데이터 전송 시 오류 발생 여부를 검사하기 위해 추가되는 비트입니다. 즉, 데이터의 정확성을 확인하는 간단한 오류 검출 코드입니다. 패리티 비트의 작동 원리:패리티 비트는 전송되는 데이터 비트의 개수를 짝수 또는 홀수로 맞춰줍니다.수신 측에서는 수신된 데이터의 비트 개수를 다시 계산하여 패리티 비트와 비교합니다.만약 패리티 비트가 예상과 다르면 데이터 전송 중 오류가 발생했음을 알 수 있습니다.패리티 비트의 종류:짝수 패리티 (Even Parity): 전체 비트(데이터 비트 + 패리티 비트)에서 1의 개수가 짝수가 되도록 패리티 비트를 설정합니다.홀수 패리티 (Odd Parity): 전체 비트에서 1의 개수가 홀수가 되도록 패리티 비트를 설정합니다.패리티 비트의 예시:..

힙 정렬 알고리즘 Heap Sorting Algorithm

힙 정렬에서 '힙(Heap)'은 자료구조의 한 종류를 의미합니다. 힙은 '무언가를 쌓아 올린 더미'라는 뜻처럼, 마치 더미처럼 쌓아 올린 완전 이진 트리의 형태를 가지고 있습니다. 힙의 특징완전 이진 트리: 힙은 모든 레벨이 완전히 채워져 있고, 마지막 레벨은 왼쪽부터 채워진 완전 이진 트리입니다.힙 속성: 힙은 특정한 순서 속성을 만족합니다. 최대 힙의 경우 부모 노드의 값이 항상 자식 노드의 값보다 크거나 같고, 최소 힙의 경우 부모 노드의 값이 항상 자식 노드의 값보다 작거나 같습니다. 힙이라고 부르는 이유힙은 데이터를 특정 순서대로 '쌓아 올린' 형태를 가지고 있습니다. 이러한 형태가 마치 물건을 쌓아 놓은 더미와 유사하여 '힙'이라고 불리게 되었습니다.힙은 최대값 또는 최소값을 효율적으로 찾을 ..

간단한 DP - 피보나치에 대하여

문제 : 백준 1003번https://www.acmicpc.net/problem/1003 첫 접근 : dp_list를 0부터 40까지 미리 채워두면 되는 것 아닌가?문제에 나온 예시처럼 재귀함수를 열라게 돌려서 dp_list를 채우도록 해 봤다.dp_list = [[] for _ in range(41)]count_0 = 0count_1 = 0def fibonacci(n): global count_0, count_1 if (n == 0) : count_0 += 1 return 0 elif (n == 1): count_1 += 1 return 1 else: return fibonacci(n-1) + fibonacci(n-2)..

NoSQL의 장단점

장점:유연한 스키마 - 데이터 구조를 쉽게 변경할 수 있음수평적 확장성 - 대용량 데이터 처리에 용이높은 성능 - 특정 유형의 쿼리에 대해 빠른 응답 시간더보기NoSQL이 RDBMS보다 빠른 이유는 몇 가지 핵심적인 설계 차이에 있습니다:단순한 데이터 모델: NoSQL은 보통 복잡한 관계와 조인을 피하고, 단순한 키-값 또는 문서 기반 모델을 사용합니다. 이로 인해 데이터 검색과 저장이 더 빨라집니다.스키마리스 설계: 미리 정의된 스키마가 없어 데이터 삽입 시 스키마 검증 과정을 거치지 않습니다. 이는 쓰기 작업 속도를 높입니다.분산 아키텍처: 많은 NoSQL 데이터베이스는 처음부터 분산 시스템으로 설계되어 있어, 대규모 병렬 처리가 가능합니다.캐싱 메커니즘: 많은 NoSQL 시스템은 인메모리 캐싱을 기..

HTTP://history.and.concepts/http1.1~http3

HTTP란HTTP는 Hypertext Transfer Protocol의 약자로, 웹에서 정보를 전송하기 위한 프로토콜입니다. 더보기프로토콜이 뭐임? 프로토콜은 컴퓨터나 전자 기기들이 서로 통신하기 위한 규칙이나 표준을 말합니다. 쉽게 말해, 프로토콜은 기기들이 "대화"하는 방법을 정의합니다. 프로토콜의 주요 특징:규칙 정의: 데이터를 어떻게 주고받을지, 어떤 형식으로 보낼지 등을 정합니다.표준화: 모든 참여자가 같은 "언어"를 사용하도록 합니다.에러 처리: 통신 중 발생할 수 있는 문제를 어떻게 다룰지 정합니다.보안: 데이터를 안전하게 전송하는 방법을 포함할 수 있습니다.예시:HTTP: 웹 브라우저와 서버 간의 통신SMTP: 이메일 전송TCP/IP: 인터넷 기반 통신의 기본Bluetooth: 근거리 무선..

[DP] Dynamic Programming 동적 프로그래밍

1. 동적 프로그래밍이란 무엇인가복잡한 문제를 Breaking them down into simpler subproblems 해서 해결하는 방법이것은 효율적으로 문제를 풀기 위한 전략문제는 분할할 수 있어야 하고, each subproblem은 한 번만 해결하고 어딘가에 저장이것은 최적화 문제에서 유용, 많은 가능한 해결책 중에서 최적의 해결책을 찾고자 할 때 사용 2. DP는 4가지 단계를 거친다.큰 문제를 → 작은 문제로 분할예를 들어, 피보나치 수열에서 n번째 수를 구하는 문제는 (n-1)번째와 (n-2)번째 수를 구하는 작은 문제로 나눌 수 있다.큰 문제의 해 = 작은 문제의 해로 이루어진 점화식피보나치 수열의 경우: F(n) = F(n-1) + F(n-2)DP테이블(배열, 리스트) 순서대로 계산..

Database Index 추가의 장단점

인덱스가 뭐임데이터를 BTree로 정렬해서 반씩/3분의 2씩 소거하면서 조회 가능 데이터베이스에서 인덱스를 추가하는 것은 쿼리 성능을 향상시키는 데 중요한 역할을 합니다.그러나 인덱스를 사용하는 데는 장단점이 모두 존재합니다.장점쿼리 성능 향상:인덱스를 사용하면 데이터베이스가 테이블에서 데이터를 더 빨리 검색할 수 있습니다. 이는 특히 대규모 데이터셋에서 유용합니다.더보기인덱스를 사용하면 왜 검색 속도가 빨라지는가?데이터베이스 인덱스를 사용하면 검색 속도가 빨라지는 이유는 인덱스가 데이터 검색 과정을 효율적으로 최적화하기 때문입니다. 이를 이해하기 위해서는 인덱스가 어떻게 작동하는지와 데이터베이스에서 데이터를 검색하는 과정에서 인덱스가 어떤 역할을 하는지 살펴보는 것이 중요합니다.인덱스의 작동 원리데이터..

Cache Memory in Computer Organization - 캐시

캐시 메모리는 매우 고속의 특수한 메모리입니다. 캐시는 자주 사용되는 메인 메모리 위치의 데이터를 복사하여 저장하는 더 작고 빠른 메모리입니다. CPU에는 명령어와 데이터를 저장하는 다양한 독립적인 캐시가 있습니다. 캐시 메모리의 가장 중요한 용도는 메인 메모리에서 데이터를 접근하는 평균 시간을 줄이는 것입니다.캐시 메모리의 특징캐시 메모리는 RAM과 CPU 사이의 버퍼 역할을 하는 매우 빠른 메모리 유형입니다.What is buffer? 컴퓨터에서 버퍼는 장치 간 또는 장치와 애플리케이션 간과 같이 서로 다른 위치 사이에서 이동 중인 데이터를 임시로 저장하는 영역입니다. 버퍼는 일반적으로 RAM에 위치하며, 다양한 장치, 프로그램 및 프로세스가 서로 다른 속도로 작동할 때 모든 것이 원활하게 작동하도록..

Virtual Memory 가상메모리, 메모리 가상화

What is virtual memory보조 기억 장치를 마치 주 기억 장치의 일부인 것처럼 주소 지정할 수 있는 저장소 할당 방식가상 주소(프로그램)와 물리 주소(메모리)는 서로 다르며, 프로그램에서 생성된 주소는 mmu가 물리 주소로 변환가상 메모리는 컴퓨터 시스템의 메모리와 디스크로 구성된 메모리 계층 구조로, 프로세스가 메모리에서 주소 공간의 일부만으로 작동할 수 있도록 함. 가상 메모리는 그 이름 그대로 실제 메모리보다 큰 메모리의 환상프로세스 내의 모든 메모리 참조는 논리 주소이며 실행 시 동적으로 물리 주소로 변환 - 이는 프로세스가 주 기억 장치에서 여러 번 교체되어 실행 과정 동안 서로 다른 위치에 있을 수 있음을 의미How does virtual memory work?가상 메모리는 프로..