전체 글 243

[Kafka] 카프카 커넥트의 개념 및 특징

카프카 커넥트(Kafka Connect)란 카프카(Kafka)는 프로듀서(Producer)와 컨슈머(Consumer)를 통해 다양한 외부 시스템 데이터를 주고 받으며 메세지 파이프라인 아키텍쳐를 구성한다. 하지만 이러한 파이프라인을 매번 구성하며 프로듀서와 컨슈머를 개발하는 것은 쉽지 않다. 따라서 카프카 메세지로 파이프라인 아키텍쳐를 보다 적은 비용으로 보다 쉽게 구현하게 도와주는 것이 카프카 커넥트(Kafka Connect)이다. 카프카 커넥트는 아파치 카프카의 오픈소스 프로젝트 중 하나로, 카프카와 외부 시스템(DB 등) 간의 파이프라인 구성을 쉽게 해주는 프레임워크이다. 카프카 커넥트는 카프카 클러스트를 기준으로 커넥터를 양방향으로 배치하여 구성할 수 있다. 즉, 외부시스템 → 소스 커넥터 → 카..

Infrastructure 2022.05.23

[DB] Database의 샤딩(Sharding)

샤딩이란 샤딩(Sharding)을 알기전 우선 샤드의 사전적 의미를 보면 조각 또는 파편을 의미한다. 즉, 데이터베이스에서의 샤딩(Sharding)은 한 테이블의 row들을 여러 개의 서로 다른 테이블, 즉 파티션으로 물리적으로 분리하는 것이다. row들을 여러 개의 서로 다른 테이블로 분해하는 것이기 때문에 한 테이블을 Horizontal Partitioning 했다고 볼 수 있다. 샤딩은 보통 전체 데이터베이스 하나의 테이블에 전부 들어가기 힘든 데이터가 등장하고 DBMS가 테이블을 관리하기 힘들어짐에 따라 적용하게 된다. 데이터베이스를 샤딩하게 되면 기존에 하나로 구성될 스키마를 다수의 복제본으로 구성하고 각각의 샤드에 어떤 데이터가 저장될지를 샤드키를 기준으로 분리하게 된다. 주로 applicat..

Database 2022.02.08

[데이터베이스 개론] 11장. 보안과 권한 관리

보안 데이터베이스에 저장된 데이터는 조직을 운영하는 데 꼭 필요한 것으로, 조직 내 사용자들이 공유하여 사용한다. 만약 사용이 허락되지 않은 외부인이 데이터베이스에 칩입하여 데이터를 유출하거나 손상한다면 조직에 치명적인 손실이 발생할 것이다. 따라서 조직에서 허가한 사용자만 데이터베이스에 접근할 수 있도록 통제하여 유지하는 일이 중요하다. 데이터베이스의 보안은 크게 3가지로 나뉠 수 있다. 물리적 환경에 대한 보안 : 자연 재해 등으로부터 보호 권한 관리를 통한 보안 : 권한이 없는 사용자로부터 보호 운영 관리를 통한 보안 : 권한이 있는 사용자로부터 보호, 허가된 사용자의 실수로 부터 데이터 무결성 유지 및 제약조건 정의 권한 관리 권한 관리의 개념 데이터베이스 관리 시스템은 데이터베이스의 보안을 유지..

Summary 2022.02.07

[데이터베이스 개론] 10장. 트랜잭션

트랜잭션 트랜잭션의 개념 데이터베이스 관리 시스템은 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 트랜잭션이란 기능을 제공한다. 트랜잭션을 관리함으로써 데이터베이스의 회복과 병행 제어가 가능해져, 결과적으로 데이터베이스가 일관된 상태를 유지할 수 있게 된다. 즉, 트랜잭션(transcation)은 하나의 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다. 또한 데이터베이스가 장애가 발생했을 때 데이터를 복구하는 단위도 된다. 일반적으로 SQL문들의 모임으로 이루어져있다. 트랜잭션의 모든 명령문이 완벽하게 처리되거나 하나도 처리되지 않아야 데이터베이스가 모순이 없는 일관된 상태를 유지할 수 있다. 즉, 데이터베이스의 무결성과 일관..

Summary 2022.02.07

[데이터베이스 개론] 09장. 정규화

정규화의 개념과 이상 현상 정규화의 개념 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입∙수정∙삭제 연산을 수행할 때 부작용이 발 생할 수 있다. 이러한 부작용을 이상현상이라 하며 이를 제거하는 하며 설계하는 과정을 정규화라고 한다. 이상 현상의 종류 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 정규화의 필요성 이상 현상은 관련이 없는 데이터, 관련 없는 속성들을 하나의 릴레이션에 가지고 있기에 생기게 된다. 이상 현상이 발생하지 않도록 하려면, 관련 있는 ..

Summary 2022.02.05

[데이터베이스 개론] 08장. 데이터베이스 설계

데이터베이스 설계 단계 데이터베이스를 설계할때는 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터 베이스의 논리적, 무리적 구조를 제대로 설계하는 것이 중요하다. 이러한 관계 데이터 모델을 기반으로 두고 데이터베이스를 설계할 때는 주로 두가지 방법을 사용한다. 첫째는 E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계이고, 둘째는 정규화를 이용한 데이터베이스 설계이다. E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계는 다음 5단계로 이루어진다. 1단계 : 요구 사항 분석 요구 사항 분석 단계어서는 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악한다. 즉, 데이터베이스를 사용해 실제 업무를 처리하는 사용자에게서 필요한 데이터의 종류와 처리 방법 같은 다양한 요구..

Summary 2022.02.04

[데이터베이스 개론] 07장. 데이터베이스 언어 SQL

SQL의 소개 SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 사용되는 언어로써 사용자가 처리하길 원하는 데이터가 무엇인지만 제시하고 데이터를 어떻게 처리해야하지를 언급할 필요가 없는 비절차적 데이터 언어의 특징을 가진다. 즉, SQL은 데이터베이스 관리 시스템에 직접 접근하여 대화식으로 질의를 작성하거나, Java 같은 어로 작성된 응용 프로그램에도 삽입해서 사용할 수 있다. SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눌수 있다. 데이터 정의어는 테이블을 생성하고 변경, 제거하는 기능을 제공하고, 데이터 조작어는 테이블에 데이터를 삽입하거나, 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공한다. ..

Summary 2022.01.25

[데이터베이스 개론] 05장. 관계 데이터 모델

관계 데이터 모델의 개념 관계 데이터 모델의 기본 용어 일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다. 릴레이션과 관련된 용어로는 다음과 같은 것들이 있다. 속성 : 릴레이션의 열을 속성 또는 애트리뷰트라고 한다. 각 속성은 다름 이름을 이용해 구별한다. 릴레이션은 파일 관리 시스템에서의 파일, 속성은 해당 파일의 필드에 대응하는 개념이다. 투플 : 릴레이션의 행을 투플이라고 한다.투플은 파일 관리 시스템 관점에서 해당 파일의 레코드에 대응하는 개념이다. 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인이라 한다. 속성값은 더이상 나눌 수 없는 원자값이기에 도메인을 특정 속성이 가질 수 있는 모든 원자값의 모임이라고도 ..

Summary 2022.01.22

[데이터베이스 개론] 04장. 데이터 모델링

데이터 모델링과 데이터 모델의 개념 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라고 한다. 현실 세계에서 중요 데이터를 추출하여 개념 세계로 추상화하는 작업을 데이터 모델링 과정 중에서 개념적 모델링이라고 한다. 그리고 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업을 논리적 모델링이라고 한다. 데이터 모델은 데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델관 논리적 데이터 모델이 있다. 개념적 데이터 모델은 사람의 머리로 이해할 수 있또록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구다. 논리적 데이터 모델은 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 ..

Summary 2022.01.17

[데이터베이스 개론] 03장. 데이터베이스 시스템

데이터베이스 시스템의 정의 데이터베이스 시스템은 데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다. 다양한 목적의 정보 처리 시스템을 구축하는 데 필요한 핵심요소이다. 데이터의 집합을 데이터베이스라고 하고, 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역학을 하는 것을 데이터베이스 관리 시스템이라고 한다. 그리고 데이터베이스와 테이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템을 데이터베이스 시스템이라고 한다. 데이터베이스의 구조 스키마 (Schema) 스키마는 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다. 그리고 이 스키마에 따라 실제로 데이터베이스에 저장되는 값을 인스턴스라고 ..

Summary 2022.01.16