본문 바로가기
728x90

SQL20

[PYTHON] SQL on Python (DuckDB)을 활용한 로컬 대용량 데이터 분석 가속 방법 및 Pandas와 3가지 성능 차이 해결 데이터 사이언티스트와 엔지니어들이 로컬 환경에서 수십 기가바이트(GB)에 달하는 CSV나 Parquet 파일을 처리할 때 가장 먼저 마주하는 난관은 메모리 부족(OOM) 현상입니다. 전통적인 Pandas 방식은 데이터를 메모리에 모두 적재해야 하므로 대용량 데이터 처리에서 한계가 명확합니다. 이러한 문제를 혁신적으로 해결해주는 도구가 바로 '데이터베이스계의 SQLite'라 불리는 DuckDB입니다. 본 포스팅에서는 DuckDB를 활용하여 로컬 대용량 데이터 분석 속도를 10배 이상 가속하는 구체적인 방법과 Pandas와의 구조적 차이점을 심도 있게 분석합니다.1. 왜 DuckDB인가? 대용량 데이터 분석의 패러다임 변화DuckDB는 OLAP(Online Analytical Processing) 전용 인메.. 2026. 4. 21.
[PYTHON] SQL과 Pandas 간의 효율적인 데이터 로딩 전략 7가지 방법과 성능 차이 해결 빅데이터 시대에 데이터 사이언티스트와 백엔드 개발자에게 가장 큰 고민 중 하나는 바로 "어떻게 하면 대용량 데이터를 데이터베이스(DB)와 파이썬(Pandas) 사이에서 가장 빠르게 주고받을 것인가?"입니다. 단순히 to_sql이나 read_sql을 사용하는 것만으로는 수백만 건의 데이터를 처리할 때 발생하는 끔찍한 병목 현상을 해결할 수 없습니다. 본 포스팅에서는 실무 환경에서 발생하는 성능 저하 문제를 근본적으로 해결하기 위한 Bulk Insert 전략과 고급 로딩 기법 7가지를 심층 분석합니다. 이를 통해 인프라 비용을 절감하고 데이터 파이프라인의 효율을 극대화하는 전문 지식을 공유합니다.1. 데이터 전송 방식에 따른 메커니즘 차이 분석일반적인 로직과 대규모 처리를 위한 로직은 설계부터 달라야 합니다.. 2026. 4. 19.
[PYTHON] 트랜잭션 격리 수준(Isolation Level)의 4가지 단계와 파이썬 제어 방법 금융 시스템이나 이커머스 플랫폼처럼 데이터의 원자성(Atomicity)과 일관성(Consistency)이 생명인 서비스를 개발할 때, 개발자가 마주하는 가장 까다로운 적은 바로 '동시성(Concurrency)'입니다. 여러 사용자가 동시에 같은 데이터를 수정하려 할 때, 데이터베이스(DB)는 어떤 기준으로 이를 허용하고 차단할까요? 이 메커니즘을 결정하는 것이 바로 트랜잭션 격리 수준(Isolation Level)입니다. 오늘 이 글에서는 ANSI/ISO SQL 표준이 정의하는 4가지 격리 수준의 차이를 분석하고, 파이썬의 대표적인 ORM과 드라이버에서 이를 실무적으로 제어하는 해결 방법을 심층적으로 다룹니다.1. 트랜잭션 격리 수준의 4단계 정의와 발생 현상 차이격리 수준이 높을수록 데이터 정합성은 강.. 2026. 3. 20.
[ORACLE] SESSION_ROLES 완벽 가이드: 현재 세션에 활성화된 역할을 정확히 읽고, 점검하고, 통제하는 방법 SESSION_ROLES는 “지금 이 세션에서 실제로 쓰이고 있는 역할(role)”을 정확히 보여주는 가장 단순하면서도 강력한 뷰입니다. 권한 감사, 최소 권한 원칙(Least Privilege) 점검, 애플리케이션 세션 검증, 운영 이슈 재현 등에서 첫 번째로 확인해야 할 객체죠. 이 글은 오늘 바로 적용할 수 있는 점검 절차와 예제, 그리고 관련 뷰와의 정확한 비교표까지 담았습니다.핵심 요약: SESSION_ROLES는 “활성화된 역할 목록”을 한 줄에 한 개씩 반환합니다(열: ROLE). 부여는 되었지만 현재 세션에서 꺼져 있는 역할은 보이지 않습니다.1) 왜 SESSION_ROLES부터 봐야 할까?현재 영향 범위: 지금 실행되는 SQL/PLSQL이 어떤 역할의 시스템/객체 권한에 의해 허용되는지 .. 2025. 10. 9.
[ORACLE] ROLE_ROLE_PRIVS : 롤 간 권한 상속을 한눈에 ROLE_ROLE_PRIVS는 롤(ROLE)과 롤 사이의 권한 상속 관계를 보여주는 Oracle 데이터 사전 뷰입니다. 사용자에게 직접 부여된 권한은 DBA_ROLE_PRIVS에서 확인할 수 있지만, 어떤 롤이 다른 롤을 포함하고 있는지를 정확히 파악하려면 ROLE_ROLE_PRIVS가 핵심입니다. 대규모 시스템이나 다단계 롤 체계를 운영할수록 “권한이 어디서 흘러들어왔는가?”를 추적하는 데 이 뷰가 가장 빠릅니다.1) 한눈에 이해하는 핵심 요약주제핵심 내용현업 활용 포인트역할롤 간 포함 관계(상속)를 조회“이 롤이 왜 강한가?”를 구조적으로 설명대표 컬럼ROLE, GRANTED_ROLE, ADMIN_OPTION, COMMON, INHERITED (버전에 따라 상이 가능)관리 권한 여부(ADMIN_OPT.. 2025. 9. 10.
[ORACLE] ALTER() 예제 중심 설명 : 개발자가 꼭 알아야 할 핵심 내용 이 글에서는 Oracle Database에서 자주 사용되는 ALTER 문에 대해 심도 있게 설명합니다. 다양한 실무 예제를 통해 개발자가 실제 업무에 적용할 수 있도록 구성하였습니다.1. ALTER 문이란?ALTER 문은 데이터베이스 오브젝트의 구조를 변경할 때 사용됩니다. 주로 테이블, 컬럼, 제약조건 등을 수정할 때 활용되며, CREATE와 DROP 사이의 유연한 구조 변경을 위한 필수 문법입니다.2. 컬럼 추가 (ADD)기존 테이블에 새로운 컬럼을 추가하는 기본 구문입니다.ALTER TABLE employees ADD (email VARCHAR2(100));컬럼 여러 개를 동시에 추가하려면 괄호 안에 쉼표로 구분하여 작성합니다.ALTER TABLE employees ADD ( phone_numbe.. 2025. 6. 10.
728x90