본문 바로가기

전체 글193

데이터베이스 인덱스 설계: 쿼리 속도를 높이는 방법 저는 쿼리를 작성할 때 인덱스가 있는지 먼저 확인하는데요. 그만큼 인덱스는 쿼리 속도에 큰 영향을 줍니다. "이거 인덱스 설계가 잘 못된 거 아냐?"라는 말을 현장에서 많이 하게 되죠. 인덱스가 잘 설계되지 않으면 없는니만 못합니다. 그렇다면 인덱스 설계는 어떤 방법으로 진행하는 걸까요? 이 글은 인덱스 설계 전략에 대해 심도 있게 이야기해 보겠습니다. 인덱스 설계 오너쉽 필요성시스템별로 수천개부터 수백 개까지 많은 테이블을 기업들은 관리합니다. 보통 인덱스는 테이블의 몇 배로 관리되어야 하는데요. 소수의 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.
인덱스가 왜 필요했을까? 데이터베이스를 공부할 때 인데스를 빼놓고는 이야기할 수 없습니다. 데이터베이스에서 성능 최적화라고 할 때에도 인덱스 어떻게 사용할지가 중요합니다. 인덱스 전략이라고 하죠. 이 글에서는 인덱스가  왜 필요했고 어떻게 발전해 왔는지 알아보도록 하겠습니다.    인덱스(Index)의 발전 과정테이블에서 필요한 데이터만 빠르고 효율적으로 액세스하기 위해 사용하는 오브젝트가 필요했습니다. 이 인덱스(Index) 기술은 점점 방대해지는 데이터 속에서 빠른 검색이 가능하도록 발전해 갔습니다.  만약 데이터베이스의 발전 과정이 궁금하시면 링크를 확인하시기 바랍니다.   1. Sam FileSam(sequential access method) 파일은 순차적으로 액세스 할 수 있는 파일을 말합니다. 이 때는 k bytes.. 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.
머신러닝 공부 로드맵, 무엇부터 시작할까? 머신러닝 스터디를 위해서 해당 블로그를 이용하기 위한 로드맵입니다. 각각의 영역별로 정리해 보았습니다.  머신러닝 공부하다 부족한 부분을 영역별로 check하셔서 따라가는 것을 추천합니다.   피처 엔지니어링  데이터 전처리차원 축소 Data Imputation언더 샘플링(Under Sampling)오버 샘플링(Over Sampling)모델 조정 방법(Novelty Detection) 통계 분석지도 학습비지도 학습상관관계(Correlation Analysis)가설검정(T-test, ANOVA)정규분포 사용 이유P-value의 의미왜도와 첨도커널함수카이제곱분포박스플롯(Boxplox)박스콕스 vs 여존슨 변환최대평균 불일치모수 vs 비모수 모델선형 회귀(Linear Regression)로지스틱 회귀(Logi.. 2024. 5. 7.
가중치 공유를 하는 이유 가중치 공유(Weight sharing)는 딥러닝에서 유용한 기술 중 하나인데요. 가중치 공유가 어떤 이점이 있어서 하는 것이지 하는 생각이 듭니다. 또 가중치 공유는 하고 싶을 때 언제나 가능한가? 물론 몇 가지 조건이 있습니다. 이 글에서는 동일한 가중치를 공유하여 모델 성능에 어떻게 도움이 되는지 알아보도록 하겠습니다.    가중치 공유란언어 모델을 개선하는 아주 간단한 개선 방법으로 두 계층이 가중치를 공유하는 방법이 있습니다. 학습하는 매개변수 수가 크게 줄이고, 정확도도 향상할 수 있습니다. 가중치 공유를 LSTM 언어모델 구현 관점에서 이야기 해보겠습니다. V : 어휘 수H : LSTM의 은닉 상태의 차원 수V×H : Embedding 계층의 가중치 형상H×V : Affine 계층의 가중치 .. 2024. 5. 7.