본문 바로가기
728x90

대용량데이터4

[PYTHON] 메모리 효율을 결정하는 2가지 파일 읽기 기법 : readline()과 readlines()의 결정적 차이 및 대용량 데이터 해결 방법 파이썬(Python)을 이용한 데이터 처리 과정에서 파일 입출력은 가장 빈번하게 발생하는 작업입니다. 특히 텍스트 파일을 한 줄씩 읽어 처리해야 할 때, 우리는 readline()과 readlines()라는 두 가지 선택지 사이에서 고민하게 됩니다. 겉보기에는 비슷해 보이지만, 내부적인 동작 방식과 메모리 점유율 측면에서는 극명한 차이를 보입니다. 본 글에서는 이 두 메서드의 본질적인 특성을 분석하고, 실무에서 수 기가바이트(GB) 이상의 대용량 파일을 다룰 때 발생하는 성능 병목 현상을 해결하는 전문적인 방법을 제시합니다.1. readline()과 readlines()의 본질적 동작 메커니즘파일 객체는 기본적으로 이터레이터(Iterator)처럼 동작하며, 포인터(Pointer) 위치에 따라 읽기 작업을.. 2026. 3. 11.
[PYTHON] 대용량 CSV/JSON 파싱 시 Generator와 Stream 처리의 성능 및 메모리 효율성 비교 분석 1. 서론: 왜 단순 파싱은 대용량 데이터에서 실패하는가?현대의 데이터 엔지니어링 환경에서 수십 기가바이트(GB)에 달하는 CSV나 JSON 파일을 다루는 것은 일상적인 작업입니다. 초보 개발자들이 흔히 저지르는 실수는 pandas.read_csv()나 json.load()를 사용하여 파일 전체를 한꺼번에 메모리(RAM)에 올리는 것입니다. 하지만 시스템 메모리를 초과하는 데이터를 로드하려 하면 MemoryError가 발생하며 프로세스가 강제 종료됩니다. 이 글에서는 파이썬의 핵심 기능인 Generator(제너레이터)와 Stream(스트림) 처리 기법을 비교 분석하여, 물리적 메모리 한계를 극복하고 처리 속도를 비약적으로 높이는 전문적인 아키텍처 설계 방법을 제안합니다.2. 핵심 기술 개념 비교대용량 데.. 2026. 2. 20.
[ORACLE] USER_IND_SUBPARTITIONS : 하위 파티션 인덱스 설계와 관리의 모든 것 대규모 데이터베이스에서 파티셔닝(Partitioning)은 성능 향상과 관리 효율성 확보의 핵심 전략입니다. 이 중에서도 하위 파티셔닝(Subpartitioning)은 데이터 분포를 더욱 세분화하여 쿼리 성능을 극대화하고, 유지보수를 용이하게 만드는 고급 기능입니다. 이러한 하위 파티션 인덱스를 분석하고 관리할 수 있도록 돕는 뷰가 USER_IND_SUBPARTITIONS입니다. 본 글은 오랜 DBA 경험과 현장 컨설팅 사례를 바탕으로, USER_IND_SUBPARTITIONS의 구조, 실전 활용법, 그리고 성능 혁신 전략을 심층적으로 소개합니다.USER_IND_SUBPARTITIONS란 무엇인가?USER_IND_SUBPARTITIONS는 사용자가 소유한 파티션 인덱스의 각 하위 파티션(Subpartit.. 2025. 7. 15.
[ORACLE] USER_IND_PARTITIONS : 인덱스 파티셔닝 전략의 모든 것 Oracle 데이터베이스는 대용량 데이터 환경에서 성능과 유지보수성을 극대화하기 위해 파티셔닝(Partitioning)을 제공합니다. 특히, 인덱스 파티셔닝은 데이터 접근 속도를 개선하고, 파티션별 관리 유연성을 확보할 수 있는 강력한 도구입니다. 이러한 인덱스 파티션의 상태와 속성을 확인하고 관리할 수 있도록 돕는 뷰가 USER_IND_PARTITIONS입니다. 본 글에서는 USER_IND_PARTITIONS의 구조와 실전 활용법, 그리고 성능 최적화를 위한 고급 전략을 전문가 관점에서 소개합니다.USER_IND_PARTITIONS란 무엇인가?USER_IND_PARTITIONS는 사용자가 소유한 파티션된 인덱스의 각 파티션 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 이 뷰를 통해 인덱스 파.. 2025. 7. 15.
728x90