no image
CAP 이론
CAP CAP은 Consistency, Availability, Partition tolerance의 약자로 , 분산 시스템의 데이터베이스 시스템의 성능과 안정성을 설명하는 세 가지 중요한 속성을 나타냅니다. 이 용어는 컴퓨터 과학자인 Eric Brewer에 의해 제안되었으며, 이를 통해 분산 시스템을 설계하고 이해하는 데 도움이 됩니다. 분산 데이터베이스는 방대한 데이터를 다루기에 유용한 시스템입니다. 분산 데이터베이스는 수평 확장할 수 있기 때문에 트래픽이 증가하더라도 낮은 지연 시간을 유지할 수 있고, 일부 노드 장애에 적절히 대응할 수 있습니다. CA : 일관성과 가용성을 모두 보장하려면 분할 내구성을 희생해야 합니다. 이는 데이터 일관성을 유지하는 것을 우선시하고, 네트워크 분할로 인한 가용성 ..
2023.09.05
no image
샤딩 전략
샤딩 전략 데이터베이스 관리에서 대량의 데이터를 분할하여 여러 샤드로 나누는 방법을 정하는 방식을 의미하며 각 샤드는 독립적으로 운영되며 데이터 일부를 저장하고 처리합니다. 다양한 샤딩 전략이 있으며, 선택한 전략은 데이터의 특정, 시스템의 요구 사항 및 확장성에 따라 다를 수 있습니다. 레인지 샤딩 데이터베이스 관리에서 사용되는 샤딩 전략 중 하나로, 데이터를 연속적인 값의 범위네 따라 분할하는 방식을 의미합니다. 이 전략은 데이터를 샤드로 분할할 때 데이터의 값 범위를 기준으로 샤드를 나누는 방식으로 동작합니다. 예를 들어보면 사용자의 나이를 기준으로 레인지 샤딩을 적용한다고 가정해 보면 각 샤드는 나이 범위를 가지며, 해당 범위 내의 사용자 데이터를 저장합니다. 첫 번째 샤드는 0세에서 20세까지의..
2023.08.31
no image
데이터 레플리케이션
데이터 레플리케이션 데이터베이스나 시스템의 데이터를 한 곳에서 다른 곳으로 복사하여 유지하는 프로세스를 말합니다. 이를 통해 데이터의 가용성, 안정성 및 성능을 향상할 수 있습니다. 데이터 레플리케이션 사용 목적 종류 1. 고가용성 및 장애 허용 시스템 장애 시에도 서비스 지속성을 확보하기 위해 데이터의 백업 또는 레플리카 생성 원본 데이터배이스의 고장 시 다른 레플리카로 전환하여 서비스 중단 최소화 2. 읽기 성능 향상 읽기 작업이 많은 시스템에서 읽기 부하를 분산시켜 성능을 향상시키기 위해 레플리카 생성 3. 지리적 분산 및 지역화 지역적으로 떨어진 사용자에게도 빠른 응답시간 제공을 위해 데이터를 지역에 레플리케이션 지역별 요구 사항에 맞춰 데이터를 지역에 배치하여 지역화된 서비스 제공 4. 분석 및..
2023.08.27
no image
JAVA (Variable Naming)
변수 이름(Variable Naming) 변수를 선언할 때 사용하는 이름을 지정하는 것을 말합니다. 변수 이름은 코드의 가독성과 이해도를 높이는 데 큰 영향을 미치므로 명확하고 의미 있는 이름을 선택하는 것이 중요합니다. 변수 이름 규칙 1. 식별자 사용 규칙 : 변수 이름은 자바에서 사용되는 식별자 규칙을 따라야 합니다. 변수 이름은 문자로 시작해야 하며, 문자나 밑줄 ('_')로 시작해야 합니다. 변수 이름은 대소문자를 구분합니다. myVariable 과 MyVariable 은 다른 변수로 간주됩니다. 변수 이름에는 문자, 숫자, 밑줄, $ 가 포함될 수 있습니다. 예약어 (if, for, class등)는 식별자로 사용할 수 없습니다. 일반적으로 자바에서 변수 이름은 카멜케이스 표기법을 따릅니다. 카..
2023.08.25
no image
variables (변수)
변수 데이터를 저장하고 관리하는 데 사용되는 기본적인 개념입니다. 변수는 이름을 가지며, 해당 이름을 사용하여 값을 저장하고 검색할 수 있습니다. 변수는 프로그램 내에서 데이터를 임시로 보관하거나 처리하는 데 사용됩니다. 변수 규칙 자바에서 변수의 이름을 지을 때는 몇 가지 규칙을 따라야 합니다. 이 규칙들을 준수하여 변수 이름을 작성하면 코드의 가독성을 높일 수 있고, 충돌이나 혼동을 방지할 수 있습니다. 유효한 문자 : 변수 이름은 문자, 숫자, '_', $,로 구성될 수 있습니다. 하지만 변수 이름은 문자로 시작해야 하며, 숫자로 시작해서는 안 됩니다. 대소문자 구분 : 변수 이름은 대소문자로 구분합니다. 'myVariable'과 'myvariable'은 다른 변수 이름으로 간주됩니다. 예약어 사용..
2023.08.24
no image
인덱스와 그 작동원리
Index 데이터베이스에서 검색 속도를 향상하기 위해 사용되는 자료구조입니다. 데이터베이스 테이블에 대한 인덱스는 특정 칼럼의 값을 미리 정렬하여 검색 및 정렬 작업을 빠르게 수행할 수 있도록 도와줍니다. 인덱스를 사용하면 데이터베이스 관리 시스템은 전체 테이블을 스캔하지 않고도 원하는 데이터를 빠르게 찾을 수 있습니다. 장점 데이터 검색 속도 향상 : 인덱스를 사용하면 특정 칼럼의 값을 미리 정렬하여 검색 작업을 빠르게 수행할 수 있습니다. 인덱스를 통해 검색 조건에 부합하는 데이터를 빠르게 찾아낼 수 있습니다. 정렬 작업 개선 : 인덱스를 사용하면 데이터베이스 엔진은 정렬 작업을 더 효율적으로 수행할 수 있습니다. ORDER BY절과 같은 정렬 연산에서도 성능 향상을 가져올 수 있습니다. 중복 데이터..
2023.08.23
no image
데이터베이스 정규화
데이터베이스 정규화 데이터를 효율적으로 저장하고 관리하기 위해 데이터를 구조화하는 과정을 말합니다. 정규화를 통해 중복 데이터를 최소화하고 데이터의 일관성과 무결성을 유지할 수 있습니다. 데이터베이스 정규화는 주로 관계형 데이터베이스에서 사용되며, 주로 "제1정규화"부터 "제5정규화"까지 여러 단계로 나뉘어 집니다. 각 정규화 단계는 특정 종류의 데이터 중복을 제거하고 데이터를 분리함으로써 데이터의 논리적 일관성을 보장합니다. 제1정규화(1NF) 데이터베이스 설계에서 첫 번째 단계로서, 데이터베이스 테이블의 열들이 원자적인 값을 가지도록 만드는 과정을 말합니다. 즉, 각 칼럼의 값은 더 이상 분해되거나 나뉘어질 수 없어야 합니다. 조건 모든 컬럼의 도메인은 원자값만을 포함해야합니다. 즉 각 칼럼의 값은 ..
2023.08.22
no image
트랜잭션
트랜잭션 데이터베이스 관리 시스템에서 데이터베이스의 상태를 변경하는 작업의 단위를 말합니다. 이 작업은 데이터의 삽입, 갱신, 삭제와 같은 데이터 조작 작업을 포함할 수 있습니다. 트랜잭션은 데이터베이스의 일관성, 무결성, 동시성, 지속성 등을 보장하기 위해 사용됩니다. 트랜잭션의 중요한 특성 원자성 : 트랜잭션 하나의 원자적 작업 단위로 처리되어야 합니다. 즉 작업들은 모두 성공하거나 모두 실패해야 합니다. 어느 하나라도 실패할 경우 이전의 상태로 롤백됩니다. 일관성 : 트랜잭션이 수행되기 전과 후에 데이터베이스는 일관된 상태를 유지해야 합니다. 독립성 : 여러 트랜잭션이 동시에 실행될 때, 한 트랜잭션이 다른 트랜잭션의 중간 상태를 볼 수 없어야 합니다. 이를 통해 데이터의 격리성을 보장합니다. 지속..
2023.08.19
no image
ACID
ACID 데이터베이스 시스템이 신뢰성 있고 일관된 방식으로 데이터를 관리하기 위한 기본 원칙을 나타냅니다. ACID 특성 원자성 : 트랜잭션은 원자적이어야 합니다. 이는 트랜잭션 내의 모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 함을 의미합니다. 만약 트랜잭션 중 하나의 단계라도 실패하면, 이전 단계까지의 모든 변경 사항이 롤백되어 데이터 베이스가 일관된 상태를 유지할 수 있게 됩니다. 일관성 : 트랜잭션이 완료된 후에도 데이터베이스는 일관된 상태를 유지해야 합니다. 이는 트랜잭션이 데이터베이스에 정의된 규칙과 제약 조건을 준수하여 작업을 수행하며, 데이터의 무결성이 유지되어야 함을 의미합니다. 고립성 : 동시에 여러 트랜잭션이 실행될 때, 하나의 트랜잭션이 다른 트랜잭션의 작업에 영향을 미치지 ..
2023.08.18