전체 글 14

Rocky9 기본 명령어

① ls List의 약자로 Windows 명령 프롬프트의 dir 명령과 같은 역할. 즉 해당 디렉터리(폴더) 에 있는 파일의 목록을 나열하는 명령 # ls → 현재 디렉터리의 파일 목록을 표시# ls /etc/sysconfig → 디렉터리의 목록을 표시# ls -a → 현재 디렉터리의 목록(숨김 파일 포함)을 표시# ls -l → 현재 디렉터리의 목록을 자세히 표시# ls *.cfg → 확장자가 cfg인 목록을 표시# ls -l /etc/sysconfig/a* ..

카테고리 없음 2025.04.23

[DW] 데이터웨어하우스의 특성과 개념

OLTP(Online Transaction Processing)와 OLAP(Online Analytical Processing)는 대용량 데이터를 저장하고 분석하는 데 사용되는 데이터베이스 관리 시스템이다. 대부분의 회사는 OLTP 및 OLAP 시스템을 함께 사용해 비즈니스 인텔리전스 요구사항을 충족한다. 그러나 OLTP와 OLAP에서 데이터 관리의 접근 방식과 목적은 크게 다르다. OLTP의 목적은 복수의 사용자 PC에서 발생되는 트랜잭션(Transaction)을 처리하는 것이다. 처리 결과를 요청한 사용자 PC에 되돌려 준다. 반면 OLAP의 목적은 DB에 저장돼 있는 데이터를 분석하는 데 있다. 데이터 분석(인사이트)을 통해 사용자에게 유의미한 정보를 제공한다.  구분OLTPOLAP목적비즈니스 활동..

데이터베이스 2025.04.07

이종 데이터베이스 간 데이터 이관하기

데이터베이스 관리 시스템(DBMS)에는 여러 종류가 있다. 대표적으로 ORACLE과 MySQL, MS-SQL, PostrgreSQL 등이다. 각 DBMS 마다 사용하는 SQL 형식이 다르기 때문에 서로 연동하기 위해선 각자의 체계를 이해할 필요가 있다. 대표적으로 데이터 이관을 예시로 보자. MySQL에 있는 데이터를 ORCL로 이관하고자 한다. 이관 도중 오류가 발생했다. 메시지를 보면 ADDRESS란 컬럼에 대해 값이 너무 크다고 나온다. 이는 데이터 길이 문제로 이관하려는 데이터의 길이는 116인데 오라클이 받을 수 있는 길이의 최대값이 100으로 돼 있어 이관이 불가능하다는 의미다. 이 같은 경우 오라클의 최대값을 수정해야 한다.    이관 옵션에서 Configure을 통해 Source(MySQL..

데이터베이스 2025.04.07

[MYSQL] 옵티마이저와 실행 계획

컴퓨터의 두뇌가 CPU이듯 DBMS의 두뇌는 옵티마이저(Optimizer)다. 개발자가 SQL을 작성하고 실행하면 즉시 실행되는 게 아니라 옵티마이저가 "이 쿼리문을 어떻게 실행시키겠다"라는 다수의 실행계획을 먼저 세운다. 그리고 시스템 통계정보를 활용해 각 실행계획의 예상 비용을 산정한 뒤 최고의 효율을 가지고 있는 실행계획에 따라 쿼리를 수행한다.   옵티마이저는 실행 계획을 세우는 방식에 따라 규칙 기반과 비용 기반으로 나뉜다. 먼저 규칙 기반은 사전에 정의된 규칙을 기반으로 우선순위가 높은 규칙에 해당하는 실행계획을 생성한다. 반면 비용 기반은 각 실행 계획에 사용되는 비용(Cost)을 계산하고 최소비용에 해당하는 실행계획을 수립하는 방식이다. 요즘엔 비용 기반이 더욱 효율적으로 여겨져 대부분은 ..

데이터베이스 2025.04.04

인덱스(index)의 종류와 활용

인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬해 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 인덱스는 크게 B-tree와 B+tree 등 2가지 구현방식으로 나뉜다.  [B-tree] 우선 B-tree는 데이터를 정렬된 상태로 유지하면서 빠른 탐색이 가능한 트리다 그림에 표시된 사각형 한 개 한 개의 데이터를 노드라고 한다. 한 노드가 여러 개의 자식을 가질 수 있고, 가장 하단의 리프 노드는 항상 같은 깊이에 있다. 특히 키를 정렬된 상태로 저장하기 때문에 어떤 데이터를 탐색하는 동일한 시간이 걸린다. 그러나 B-tree는 처음 생성 당시 균형 트리로 형성되지만, 테이블 갱신(Insert, Upd..

데이터베이스 2025.03.31

버터와 달걀의 유화 (feat. 분리를 막는 방법)

대부분의 베이킹에선 버터와 달걀을 섞는 '유화' 과정이 수반된다. 유화란 수분이 많은 달걀과 유지인 버터가 분리되지 않도록 섞는 작업을 말한다. 이 두 재료는 서로 상반된 성질을 지닌 탓에 잘 섞이지 않고 분리되기 쉽다. 따라서 원활한 유화를 위해선 지켜야 할 절차가 있다. 우선 유화 과정에서는 달걀을 여러 차례에 나누어 조금씩 넣고, 한 번 넣을 때마다 완전히 섞이도록 젓는 게 중요하다. 달걀이 버터에 섞이기 시작한 순간부터 계속 젓다 보면 점점 젓는 데에 더 많은 힘이 필요해지고 어느 순간 반죽은 흐르는 크림 상태가 된다. 이때까지 끊임없이 저어야만 유화가 안정된다. 만약 달걀을 한꺼번에 넣거나 섞는 힘이 부족하면 달걀 속 수분과 버터의 지방이 섞이지 않고 분리된다.  또 달걀의 온도 역시 간과하기 ..

베이킹 2025.03.26

[ORCL] 데이터베이스 아키텍쳐(프로세스)

데이터베이스 아키텍쳐는 크게 프로세스 + 공유 메모리 + 디스크(물리적 파일) 등으로 이뤄져 있다.  우선 컴퓨터 시스템 관점에서 프로세스란 실행 중인 프로그램을 의미한다. 쉽게 말해 디스크에 저장된 정적인 프로그램 코드가 CPU에서 실행되면서 동적으로 동작하는 개체인 셈이다. 물론 프로세스는 단순히 실행 코드만 포함하고 있는 건 아니고, 실행에 필요한 다양한 정보와 리소르를 함께 포함한다. 주요 구성 요소는 다음과 같다. 코드 - 실행될 프로그램의 명령어데이터 - 실행 중인 프로그램이 사용하는 변수, 상수, 메모리 등스택 - 함수 호출 및 지역 변수 관리에 사용하는 메모리 영역레지스터 - CPU가 프로세스 실행 중 관리하는 상태 정보(프로그램 카운터, 명령어 등)프로세스 제어 블록 - 운영체제가 프로세..

데이터베이스 2025.03.26

[ORCL] 데이터베이스 아키텍쳐

데이터베이스 아키텍쳐는 크게 프로세스 + 공유메모리 + 디스크 등으로 이뤄져 있다. 일단 프로세스를 제외하고 공유 메모리 영역과 디스크(물리적 파일) 영역만 보면 다음과 같은 구조로 이뤄져 있다. ▶ 메모리(인스턴스): 컴퓨터 저장 공간에 할당된 실체로 메모리에 적재되는 오라클 시스템의 논리적 구조▶ 디스크(데이터베이스): 하드 드라이브 안에 만들어지는 오라클 시스템의 물리적인 구조     InstanceSGA(System Global Area)Database Buffer Cache데이터베이스의 데이터 파일로부터 읽어들인 데이터 블록(테이블, 인덱스)을 담는 캐시 영역. 사용자가 데이터를 조회하거나 변경하려고 할 때, 데이터는 먼저 Database Buffer Cache에 로드된다. SELECT 포함 모..

데이터베이스 2025.03.26

인덱스(index)의 활용

인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료구조다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬해 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다.    원하는 정보를 조회하고 싶을 때 책의 모든 내용을 뒤지는 건 시간도 오래 걸리고 필요되는 자원도 많아 비효율적이다. 이때 데이터의 자료 정보를 따로 생성하면 더욱 빠른 조회가 가능하다. [인덱스를 활용한 조회 과정] 1. Company라는 가상의 테이블 안에 company_id란 컬럼이 인덱스로 설정됐다고 가정하자. 사용자가 Where 조건으로 company_id = 18이란 쿼리를 실행하면 데이터베이스는 별도의 인덱스로 만들어진 company_id를 먼저 검색한다. 2. company_id란 인덱스(..

데이터베이스 2025.03.26

진저브레드 쿠키 만들기

크리스마스 맞이 진저브레드 쿠키 만들기    우선 실온의 버터를 준비한다. 버터가 과하게 차가우면 반죽이 단단해져 재료를 섞기 어렵고, 반대로 너무 녹으면 오븐에 구울 때 반죽이 양옆으로 퍼져 모양 유지가 안된다. 따라서 버터는 주걱으로 눌렀을 때 부드럽게 들어가는 수준까지 실온에 둔다(아마 23도 정도).  실온의 버터를 거품기로 가볍게 풀어준 뒤 설탕을 섞어 크림화한다. 이 작업을 '크레메'라고 하는데, 버터에 설탕을 넣고 강하게 휘어저 공기를 포집하는 작업이다. 이때 포집된 공기가 오븐 안에서 열팽창해 부피를 늘려가고 반죽 전체가 부풀어 오른다. 이 레시피에서는 황설탕(중백당)을 사용한다. 황설탕은 백설탕보다 회분(무기질)이 많아 감칠맛이 돌고 풍미가 깊다.     크림화한 버터 반죽에 달걀을 3~..

베이킹 2025.03.21