본문 바로가기
728x90

성능최적화45

[JAVA] Scanner vs BufferedReader : 성능과 효율을 결정짓는 입력 방식의 모든 것 자바(Java)를 처음 접하면 가장 먼저 배우는 것 중 하나가 콘솔 입력입니다. 이때 우리는 보통 Scanner를 사용하곤 합니다. 하지만 알고리즘 문제를 풀거나 대용량 데이터를 처리하는 현업 프로젝트에 투입되면 "왜 BufferedReader를 써야 하는가?"라는 질문을 마주하게 됩니다. 단순히 '빠르다'는 이유를 넘어, 두 클래스가 내부적으로 어떻게 동작하며 어떤 상황에서 진가를 발휘하는지 전문적인 관점에서 심도 있게 분석해 보겠습니다.1. 왜 입력 방식의 선택이 중요한가?컴퓨터 시스템에서 I/O(Input/Output) 작업은 CPU 연산에 비해 압도적으로 느린 작업입니다. 표준 입력(System.in)으로부터 데이터를 읽어올 때, 매번 한 바이트씩 가져오느냐 아니면 한꺼번에 뭉텅이로 가져와 메모리.. 2026. 1. 20.
[ORACLE] DBA_EXTENTS 완벽 가이드 : 테이블스페이스 공간 사용 현황을 정확히 파악하는 방법 Oracle Database에서 DBA_EXTENTS 뷰는 데이터베이스 내에서 실제로 사용 중인 공간(Extent)의 상세 정보를 제공하는 핵심적인 시스템 뷰입니다. 이 뷰는 각 세그먼트(Segment)가 차지하고 있는 Extent의 위치, 크기, 파일 번호, 블록 번호 등을 보여주며, 공간 관리, 성능 최적화, 테이블스페이스 용량 모니터링 등 다양한 DBA 업무에서 필수적으로 활용됩니다.즉, DBA_EXTENTS는 "현재 데이터베이스에서 어떤 객체가 어떤 파일의 어느 영역을 사용 중인가?"를 명확하게 알려주는 저수준(physical-level) 공간 분석 도구입니다.1. DBA_EXTENTS 개요Oracle 데이터베이스의 저장 구조는 테이블스페이스(Tablespace) → 데이터파일(Datafile) .. 2025. 10. 14.
[PYTHON] Cython으로 파이썬 속도 10배 빠르게 만들기 Python은 생산성이 뛰어나지만 계산 집약 작업에서는 속도 면에서 한계를 보인다. 이때 Cython을 이용하면 Python 문법 그대로 코드를 작성하면서도 C 수준의 성능을 끌어낼 수 있다. 본문은 Cython의 개념부터 실무 최적화 기법, 주의사항까지 전문가 시각으로 정리했다.1. Cython이란?Cython은 Python 코드를 C 확장 모듈로 컴파일하여 실행 속도를 대폭 향상시키는 도구다. 기본적으로 Python 코드처럼 작성되지만,.pyx 확장자와 지도된 정적 타이핑으로 내부에서 C 컴파일러가 돌아간다.Python과 C의 중간 형태의 언어.정적 타입 추가 시 수십 배 이상 속도 향상 가능.수치 연산, 루프 수행에 최적화된 구조2. 단계별 속도 개선 전략1단계 – 컴파일만 적용pip install.. 2025. 7. 25.
[ORACLE] USER_MVIEW_AGGREGATES : 집계 성능 혁신을 위한 핵심 전략 대용량 데이터를 분석할 때 집계 쿼리는 성능의 병목을 초래하는 주범 중 하나입니다. Oracle의 물화 뷰(Materialized View)는 집계 결과를 사전에 저장하여 반복 조회 성능을 극적으로 향상시키는 도구로 잘 알려져 있습니다. 하지만 복잡한 집계 구조를 효율적으로 관리하려면 어떤 집계 함수가 사용되었는지 파악하는 것이 중요합니다. 이때 핵심 역할을 하는 뷰가 바로 USER_MVIEW_AGGREGATES입니다. 본 글에서는 USER_MVIEW_AGGREGATES의 구조, 활용법, 그리고 성능 최적화 전략을 전문가 관점에서 심층 분석합니다.USER_MVIEW_AGGREGATES란 무엇인가?USER_MVIEW_AGGREGATES는 현재 사용자가 소유한 물화 뷰에서 사용된 집계 함수 정보를 제공하는 .. 2025. 7. 16.
[ORACLE] USER_MVIEWS : 실시간 성능 혁신을 위한 물화 뷰(Materialized View) 전략 현대 데이터베이스 환경에서 대규모 집계 및 분석 쿼리는 성능에 치명적인 영향을 미칠 수 있습니다. Oracle의 Materialized View(물화 뷰)는 이러한 문제를 해결하는 강력한 솔루션으로, 사전에 결과를 저장해 조회 속도를 극적으로 향상시킵니다. 이러한 물화 뷰의 정의와 상태를 관리할 수 있는 핵심 뷰가 USER_MVIEWS입니다. 본 글에서는 USER_MVIEWS의 구조, 실전 활용법, 그리고 고급 성능 최적화 전략을 전문가 관점에서 심층적으로 분석합니다.USER_MVIEWS란 무엇인가?USER_MVIEWS는 현재 사용자가 소유한 모든 물화 뷰의 정보를 담고 있는 Oracle 데이터 딕셔너리 뷰입니다. 이 뷰를 통해 물화 뷰의 정의, 최신 상태, 리프레시 방식 등을 한눈에 파악할 수 있습니다.. 2025. 7. 16.
[ORACLE] USER_LOBS : 대용량 객체 관리와 성능 최적화의 핵심 Oracle 데이터베이스에서 이미지, 문서, 동영상 등 대용량 데이터를 저장하려면 LOB(Large Object) 타입을 사용합니다. 이러한 LOB는 단순한 데이터 컬럼과 달리, 저장 구조와 관리 방식이 복잡하며 성능과 보안에 큰 영향을 미칩니다. 이러한 LOB 객체의 정의와 속성을 한눈에 파악할 수 있는 핵심 뷰가 바로 USER_LOBS입니다. 본 글에서는 USER_LOBS의 구조, 실전 활용법, 그리고 성능을 극대화하는 고급 전략을 전문가 관점에서 심층적으로 분석합니다.USER_LOBS란 무엇인가?USER_LOBS는 현재 사용자가 소유한 LOB 컬럼의 속성과 저장 구조를 확인할 수 있는 Oracle 데이터 딕셔너리 뷰입니다. 이 뷰를 통해 LOB 데이터가 어떻게 저장되고 관리되고 있는지를 파악할 수 .. 2025. 7. 16.
728x90