2025/01/20 3

[DB] Optimizer

SQL 쿼리 성능 개선을 위한 방법이 여럿 있는데, 이 중 핵심적인 역할을 담당하는 구성 요소 중 하나인 Optimizer 에 대해 정리하고자 한다.  1. 역할- SQL 쿼리 분석- 다양한 실행 경로를 비교하여 가장 효율적인 실행 계획 선택- 리소스 최적화- 결과 반환 속도 개선 2. 종류1) 규칙 기반 옵티마이저- 단순한 구조를 가지며, 우선순위 명확 2) 비용 기반 옵티마이저- 데이터베이스의 통계 정보를 활용하여 실행 계획의 비용(ex. I/O, CPU 사용량 등) 계산- 최신 데이터베이스 시스템에서 주로 사용 3) 힙 옵티마이저- 특정한 경험적 규칙을 활용하여 실행 계획 생성- 주로 간단한 쿼리에서 사용 3. 주요 요소- 통계 정보  > 테이블 크기, 인덱스 존재 여부, 컬럼 분포, 데이터 밀도 ..

IT/DB 2025.01.20

[DB] SQL vs. NoSQL

개발할 때 사용하는 데이터베이스의 종류는 크게 SQL 과 No-SQL 로 나눌 수 있다. 차후 오픈할 서비스의 특징에 더 적합한 데이터베이스를 선택한다고 할 때 각각의 장점을 잘 알고 있어야 하기 때문에 정리 글을 쓰게 되었다. 1. 개념1) SQL (Structured Query Language)- 관계형 데이터베이스(RDBMS) 에서 데이터를 관리하기 위해 설계된 언어- 데이터는 테이블 형식으로 저장되며, 고정된 스키마를 기반으로 구조화 됨2) NoSQL (Not only SQL)- 비관계형 데이터베이스로, 다양한 데이터 저장 모델 지원 (ex. 키-값, 문서, 그래프 등)- 유연한 스키마를 제공하며, 비정형 데이터를 처리하는데 적합 2. 사용 목적1) SQL- 구조화된 데이터를 효율적으로 관리하고,..

IT/DB 2025.01.20

[Kafka] Apache Kafka 도입기

회사에서 개발 중 수시로 호출하는 API 가 있는데 이를 호출하여 처리하는 수단으로 Kafka 를 고려하게 되었다.그리고 회사 서비스의 성장을 기대하며 대규모 트래픽에 대비한 목적 역시 갖고 있다.그래서 이를 도입할 때의 내용을 정리하고자 한다. 1. 환경 설정 & 실행- build.gradle 에 의존성(dependency) 추가 implementation 'org.springframework.kafka:spring-kafka' - application.properties 에 추가spring.kafka.bootstrap-servers=localhost:9092spring.kafka.template.default-topic=my-topicspring.kafka.consumer.group-id=XXXXX ..

IT/Kafka 2025.01.20