본문 바로가기

분류 전체보기271

ROWID와 클리스터링 팩터(CF)의 관계는? 인덱스의 구조를 살펴보다 보면 ROWID와 클러스터링 팩터라는 개념이 나옵니다. 데이터베이스 Index의 흥미로운 주제인 'ROWID'와 클러스터링 팩터 간의 관계를 살펴보겠습니다. 이러한 개념은 약간 기술적으로 들릴 수 있지만 이를 이해하면 데이터베이스 성능 튜닝 한 걸음 다가갈 수 있습니다.   ROWID란?데이터베이스에서 'ROWID'는 테이블의 각 행에 대한 고유 식별자입니다. 데이터베이스 파일 내 행의 정확한 실제 주소라고 생각하면 되는데요. 테이블을 쿼리 할 때 데이터베이스는 'ROWID'를 사용하여 원하는 특정 행을 빠르게 찾을 수 있는 역할을 합니다.  인덱스 입장에서 보면, 테이블 레코드를 찾아가는데 필요한 주소라고 할 수 있는데요. ROWID는 그림처럼 데이터파일번호, 블록번호, 로우번.. 2024. 5. 21.
R과 파이썬, 나에게 맞는 분석 툴은? 여러분은 "R을 사용해야 할까, Python을 사용해야 할까 고민한 적 없나요?“ 데이터 분석 공부를 시작하는 사람이라면 누가나 가지게 되는 생각인데요. 저도 처음엔 R로 시작했다가 파이썬도 배우게 된 case인데요. 과거에는 이 부분에 대해 명확한 생각이 없어 둘다하게 되었던 것 같습니다. R과 파이썬 모두 개발해 본 입장에서 언어는 툴에 불가합니다. 로직을 설계하고 구현할 수 있다면 금방 적응합니다. 그렇다고 두개다 병행해 공부하는 것은 비효율적이라 생각해요. 그 이유는 하나를 자신의 무기로 연마해 놓으면 다른 언어로 빠르게 적응해 나갈 수 있기 때문이죠.   R과 파이썬은 아빠가 좋아? 엄마가 좋아? 에 대한 선택이 아닙니다. 둘 다 훌륭한 툴(tool)이지만 자신의 역할에 따라 어떤 것이 유리한지.. 2024. 5. 20.
데이터베이스 인덱스 설계: 쿼리 속도를 높이는 방법 저는 쿼리를 작성할 때 인덱스가 있는지 먼저 확인하는데요. 그만큼 인덱스는 쿼리 속도에 큰 영향을 줍니다. "이거 인덱스 설계가 잘 못된 거 아냐?"라는 말을 현장에서 많이 하게 되죠. 인덱스가 잘 설계되지 않으면 없는니만 못합니다. 그렇다면 인덱스 설계는 어떤 방법으로 진행하는 걸까요? 이 글은 인덱스 설계 전략에 대해 심도 있게 이야기해 보겠습니다. 인덱스 설계 오너쉽 필요성시스템별로 수천개부터 수백 개까지 많은 테이블을 기업들은 관리합니다. 보통 인덱스는 테이블의 몇 배로 관리되어야 하는데요. 소수의 DBA(데이터베이스 관리자) 혹은 성능 전문가가 모든 인덱스 설계를 책임질 수 없는 현실입니다. 관리해야 할 테이블 및 인덱스 수가 적은 중소기업에서는 DBA라는 전담인력조차 둘 수 없는 현실이죠. 결.. 2024. 5. 17.
결합(복합) 인덱스 어떻게 구성할까? 인덱스를 사용하다 보면 단일 인덱스(Single Index)만 사용하지 않습니다. 복합 인덱스라고도 하는 결합 인덱스는 테이블의 여러 열을 포함하는 인덱스입니다.  즉 단일칼럼이 아닌 2개 이상의 칼럼으로 구성된 인덱스를 결합 인덱스라고 합니다.  사이트에 가보면 결합 인덱스(Concatenated Index)를 잘 못 구성하는 사례가 많은데요. 어떻게 구성해야 할까요?   결합 인덱스 구성 가이드잘 알겠지만 모든 SQL 조건절마다 최적화된 인덱스들을 모두 생성할 수는 없습니다. 대체적으로 조건절에 자주 사용되는 칼럼들이 선정 대상이 됩니다.  되도록이면 선정된 칼럼들 중 ‘=‘ 조건으로 자주 조회되는 칼럼을 앞쪽에 위치하는 것이 유리합니다. 정력(Sort) 작업이 생략되도록 칼럼 추가를 고려하는 것을 .. 2024. 5. 16.
데이터 분석가 vs 데이터 엔지니어 하는 일과 현실 『 이 컨텐츠에 포함된 정보는? 』 데이터 분석가와 데이터 엔지니어 중 어떤 직무를 선택할까 고민하고 계신가요? 많은 취업 준비생들이 이와 같은 고민을 하더군요.   이 글에서 데이터 분석가와 데이터 엔지니어의 역할과 현재 시장 상황에 대해 이야기해 보려고 합니다. 어떤 게 더 자신에게 유리한지를 한번 따져보시는 게 좋을 것 같아요.  데이터 사이언티스트는 슈퍼맨? 처음 빅데이터가 나왔을 때 ‘데이터 사이언티스트‘라는 직업이 화두가 되었죠. 고액 연봉인데 시장에서 수요가 부족하다고 말이 많았습니다. 그도 그럴 듯이 데이터사이언티스트의 역량은 너무 광범위 했죠. 도메인 지식, 수학과 통계, 컴퓨터 사이언스 및 빅데이터 지식까지 보유한 사람이었습니다. 혹자는 “데이터 사이언티스트가 아니라 슈퍼맨“이 되라는 .. 2024. 5. 15.
Seq2Seq의 5가지 활용 방법, 어디에 활용될까? 자연어 처리(NLP) 영역에서 Seq2Seq 모델은 언어 이해와 생성의 강력한 아키텍처로 자리 잡았는데요. 원래 기계 번역 작업을 위해 도입된 Seq2Seq는 초기 애플리케이션을 뛰어넘어 챗봇 및 텍스트 요약부터 질문 답변 및 감정 분석에 이르기까지 다양한 NLP 영역의 기본이 되었습니다. 시계열 데이터 변환 프레임워크이기도 한 Seq2Seq이 어디에 활용되는지 알아보도록 하겠습니다.    1. 기계 번역Seq2seq 모델은 시스템이 한 언어에서 다른 언어로 텍스트를 놀랄 만큼 정확하게 번역할 수 있도록 합니다. 지금의 기계 번역에 근간이 되었습니다. 소스 언어 문장을 고정 길이 벡터 표현으로 인코딩하고 이를 대상 언어로 디코딩함으로써 Seq2Seq 모델은 교차 언어 통신에 더 쉽게 접근하고 효율적으로 .. 2024. 5. 14.
인덱스가 왜 필요했을까? 데이터베이스를 공부할 때 인데스를 빼놓고는 이야기할 수 없습니다. 데이터베이스에서 성능 최적화라고 할 때에도 인덱스 어떻게 사용할지가 중요하기 때문이죠. 우리는 이 task를 '인덱스 전략을 수립한다'라고 합니다. 이 글에서는 인덱스가  왜 필요했고 어떻게 발전해 왔는지 알아보도록 하겠습니다.    인덱스(Index)의 발전 과정테이블에서 필요한 데이터만 빠르고 효율적으로 액세스하기 위해 사용하는 오브젝트가 필요했습니다. 이 인덱스(Index) 기술은 데이터가 점점 빅(big) 해지면서 빠른 검색이 가능하게 발전하고 있습니다. 데이터가 점점 커지면서 데이터베이스의 발전 과정도 달라졌다고 설명했습니다. 이 부분을 같이 읽어 보시면 인덱스가 왜 필요한지 이해하기 쉬워질 것입니다..   1. Sam FileS.. 2024. 5. 13.
어텐션 메커니즘(Attention mechanism) 아이디어와 종류 요즘 등장하는 모델들의 주를 이루고 있는 어텐션 메커니즘에 대해 이야기해보겠습니다. 딥러닝 영역에서 어텐션 모델은 전체 입력 시퀀스를 한꺼번에 처리하는 대신 신경망이 입력 데이터의 특정 부분에 집중하는 메커니즘입니다. 이 메커니즘은 쓸데없는 요소를 무시하고 특정 요소에만 선택적으로 집중하는 인간의 능력을 모방한 것입니다.  기계 번역이나 텍스트 요약과 같은 자연어 처리(NLP) 작업에서 Attention 모델이 특히 유용한 것으로 입증되었습니다. 문장의 각 단어나 토큰을 동일하게 처리하는 대신 어텐션 메커니즘을 통해 모델은 입력 시퀀스의 다양한 부분에 다양한 중요도를 할당할 수 있습니다. 이는 모델이 관련 콘텍스트와 종속성을 보다 효과적으로 학습하는 데 도움이 되므로 긴 시퀀스를 처리할 때 특히 유용합니.. 2024. 5. 9.
Seq2Seq 모델의 원리와 특징이 무엇일까? Seq2Seq(Sequence-to-Sequence) 모델은 기계 번역, 챗봇, 요약 등 시퀀스 데이터를 입력으로 받아 다른 시퀀스 데이터를 출력하는 데 사용되는 인공 신경망 모델입니다. 이 모델은 대표적으로 인코더-디코더(Encoder-Decoder) 구조를 기반으로 하는데요. 이글에서는 원리, 특징, 문제점을 알아보고 RNN과 어떻게 다른지를 살펴보겠습니다.    Seq2Seq 원리Seq2Seq은 sequence to sequence의 줄입말입니다. '싯투싯'이라고 읽기도 합니다. 이름에서 알 수 있듯이 시계열에 또 다른 시계열로 변환한다는 의미입니다. 이미 말했지만 seq2seq를 Encoder-Decoder 구조입니다. Encoder는 입력 데이터를 인코딩하고, Decoder는 인코딩 된 데이터를.. 2024. 5. 8.