전체 글
-
[DB] SQLD_1Computer Science 2023. 5. 21. 23:27
# 카테시안 곱 From 절에 2개 이상의 Table이 있을 때 두 테이블 사이의 유효 Join 조건을 적지 않았을 시에 해당 테이블에 대한 모든 데이터를 결합하여 테이블에 존재하는 행 갯수를 곱한 만큼의 결과값이 반환되는 것 # 파티션 기법 데이터베이스에서 파티션을 사용하여 테이블을 분할 하는 것. 파티션을 사용하면 논리적으로는 하나의 테이블이지만 여러 개의 데이터 파일에 분산되어 저장한다. PARTITION EXPLANATION Range Partition 데이터 값의 범위를 기준으로 파티션 수행 List Partition 특정한 값을 지정하여 파티션을 수행 Hash Partition 해시 함수를 적용하여 파티션을 수행 Composite Partition 범위와 해시를 복합적으로 사용하여 파티션을 수..
-
[Kafka] 카프카의 내부 동작원리Data Engineer 2023. 5. 20. 14:38
Kafka의 내부 동작 원리와 구현에서 가장 중요한 부분 중 하나는 리플리케이션 동작이다. 이러한 리플리케이션 동작의 구현은 매우 어려운 부분일 뿐만 아니라 애플리케이션의 성능 저하도 불러오게 된다. 이를 위해 카프카는 안정성을 높임과 동시에 최대한 성능에 영향을 주지 않도록 설계되었다. Kafka 리플리케이션 고가용성 분산 스트리밍 플랫폼인 카프카는 무수히 많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할을 담당한다. 중앙에서 메인 허브 역할을 하는 카프카 클러스터가 만약 하드웨어의 문제나 점검 등으로 인해 정상적으로 동작하지 못한다거나, 카프카에 연결된 전체 데이터 파이프라인에 영향을 미친다면 이는 매우 심각한 문제가 될 수 있다. 이러한 이슈를 해결하기 위해 카프카는 초기 설계 단계에서부터..
-
[Kafka] Producer와 ConsumerData Engineer 2023. 5. 16. 19:11
Producer - 카프카의 토픽으로 메시지를 전송하는 역할 - 원하는 형태에 따라 옵션을 변경하면서 다양한 방법으로 카프카에 메시지를 전송 Producer 디자인 *ProducerRecord : 카프카로 전송하기 위한 실제 데이터 - Topic(필수, 메시지 전송 주소) / Partition(특정 파티션을 지정) / Key(특정 파티션에 레코드들을 정렬) / Value(필수, 메시지 전송) - Kafka의 특정 토픽으로 메시지를 전송 각 레코드들은 프로듀서의 send() 메서드를 통해 시리얼라이저, 파티셔너를 거치게 된다. 이때 프로듀서 레코드의 선택사항인 파티션 지정 시, 파티셔너는 아무 동작도 하지 않고 지정된 파티션으로 레코드를 전달한다. 파티션을 지정하지 않은 경우 키를 가지고 파티션을 선택해 ..
-
[Kafka] 정리_01Data Engineer 2023. 5. 14. 23:06
Kafka 주요 명령어 kafka-topics.sh = 토픽을 생성하거나 토픽의 설정 등을 변경하기 위해 사용 kafka-console-producer.sh = 토픽으로 메시지를 전송하기 위해 사용함. 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 프로듀서 옵션 적용 가능 kafka-console-consumer.sh = 토픽에서 메시지를 가져오기 위해 사용하며, 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 컨슈머 옵션 적용 가능 kafka-reassign-partitions.sh = 토픽의 파티션과 위치 변경 등을 위해 사용함 kafka-dump-log.sh = 파티션에 저장된 로그 파일의 내용을 확인하기 위해 사용함 Kafka 주요 요소 Zookeeper Apache..
-
[OS] vi 편집기Computer Science 2023. 5. 9. 11:40
Boaz 활동을 하다보면 linux 환경에서 파일을 편집하여 구동하는 경우가 잦다. 여러 활동을 하면서 Linux에 대한 이해가 부족하다고 생각해서 일단 가볍게 리눅스마스터 2급 취득을 목표로 틈틈이 공부중인데, 오늘 vi 편집기에 대해 알아보자. 리눅스에서 지원하는 편집기로는 pico, emacs,vi, gedit, xedit 등이 있다. vi 편집기는 유닉스 환경에서 가장 많이 쓰이는 문서 편집기이다. 다른 편집기들과 다르게 모드형 편집기이며, 명령모드 / 입력모드 / 편집모드로 구성되어 있다. 한 줄씩 편집하는 줄 단위 편집기가 아닌 한 화면을 편집하는 비주얼 에디터이며, 기종별 다양한 vi 클론들이 존재한다. vim 편집기도 있는데, vi 편집기와 호환되며 독자적으로 다양한 기능을 추가하여 만든 ..
-
3진법 뒤집기Programmers 2023. 5. 8. 23:06
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 n result 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 125 11122 22111 229 따라서 229를 return 해야 합니다. 나의 풀이..
-
[Data Engineer] Kafka란 무엇인가Data Engineer 2023. 5. 7. 23:33
Apache Kafka는 빠르고 확장 가능한 작업을 위해 데이터 피드의 분산 스트리밍, 파이프 라이닝 및 재생을 위한 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 게시 - 구독 메시징 플랫폼이다. 당연한 얘기지만 Hadoop Ecosystem의 일부로 Kafka 공식 문서에도 설명하고 있다. Kafka는 서버 클러스터 내에서 데이터 스트림을 레코드로 유지하는 방식으로 작동하는 브로커 기반 솔루션이다. Kafka 서버는 여러 데이터 센터에 분산되어 있을 수 있으며 여러 서버 인스턴스에 걸쳐 레코드 스트림을 토픽으로 저장하여 데이터 지속성을 제공할 수 있다. 이 때 토픽은 레코드 혹은 메시지를 key , value 및 timestamp로 구성된 일련의 튜플, 즉 변경 불가능한 P..
-
[Algorithm] 여러 정렬 알고리즘Programmers 2023. 5. 2. 00:12
정렬 데이터를 특정한 기준에 따라 순서대로 나열하는 것 Selection Sort 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # Python Swap Code print(array) 이 예제 코드에서 Swap 코드를 주목하자. Pytho..