Processing math: 100%
왜 Top-K 문제는 중요할까?
·
Why?
Top-K 문제는 다음과 같은 질문들로 요약됩니다:"가장 많이 등장한 요소 K개를 뽑으려면 어떻게 해야 할까?""주어진 수열에서 가장 큰 값 K개를 빠르게 추출하고 싶다""검색어 중 가장 자주 나온 것 5개는 무엇인가?" 위와 같은 문제들은 실무적으로 매우 자주 등장합니다.실시간 인기 검색어 시스템가장 많이 팔린 상품 TOP 10로그에서 자주 발생한 에러 TOP N추천 알고리즘에서 유저가 가장 선호한 태그 K개 추출이 문제를 해결하는 알고리즘 전략은 크게 3가지가 있습니다.전략활용 자료구조시간복잡도전체 정렬 후 상위 K개 추출리스트 + 정렬Onlogn최소 힙 유지heapq MinHeapOnlogk빈도수 기반 카운트 + 정렬Counter + 정렬Onlogn 방법 1 – 전체 정렬..
왜 '데이터 모델링'에서 '정규화Normalization'를 과도하게 적용하면 성능이 저하될 수 있는가?
·
Why?
실무 데이터베이스에서 "정규화는 무조건 좋은 것"일까? 오늘은 정규화를 과도하게 적용했을 때 발생할 수 있는 성능 저하 문제를 실제 쿼리, ERD예시, 성능 비교 결과를 통해 적어보도록하겠습니다.정규화란 무엇인가?정규화Normalization는 중복 데이터를 제거하고, 데이터의 일관성과 무결성을 유지하기 위해 테이블을 나누는 작업입니다.일반적으로 다음과 같은 단계로 이루어집니다:1NF: 컬럼은 원자값만 갖도록2NF: 부분 함수 종속 제거3NF: 이행적 함수 종속 제거BCNF ~ 5NF: 고급 정규형 정규화는 이론적으로 매우 강력한 도구이며, 대부분의 데이터베이스 입문 교재는 이를 적극적으로 추천합니다.하지만 실무에서는 반드시 성능과 함께 고려되어야 합니다.정규화 vs 반정규화 ER..
왜 에러 로그를 잘 설계하고 분석해야 하는가?
·
Why?
1. 에러 로그, 단순한 출력 이상이어야 한다.에러 로그는 단순한 콘솔 출력이 아니다.복잡한 데이터 파이프라인 환경에서는, 작은 에러 하나가 수십 개의 다운스트림 작업에 영향을 줄 수 있다.로그는 곧 진단 도구이자, 미래의 나 또는 동료를 위한 트러블슈팅 가이드다.2. 로그 레벨 LogLevel 에 대한 이해로그는 발생한 이벤트의 심각도에 따라 레벨을 구분한다.이래는 일반적인 로그 레벨이다레벨설명DEBUG개발 및 디버깅 용도. 상세한 내부 상태를 출력INFO정상적인 실행 흐름에 대한 정보WARNING문제가 될 수 있는 상황. 시스템은 계속 동작함ERROR오류 발생. 기능 일부가 실패했으나 서비스는 유지CRITICAL 시슽엠 전체에 영향을 줄 수 있는 치명적인 오류 정확한 로그 레벨 구분은 추후 분석..
A/B TEST 진행 시 대조군과 실험군의 비율을 비슷하게 맞추는 이유는?
·
Why?
A/B Test의 목적은 더 가치 있는 변수를 식별하여 최적의 시안을 선정하는 것입니다. A/B Test의 결과가 표본 자체보다는 전체 모집단을 나타내기를 원하기 때문에 편향을 제거하는 것이 중요합니다. 대조군과 실험군의 비율의 차이가 많이 발생하면 실험군과 대조군의 차이가 실제 실험군 내에 발생하는 효과를 과소평가하게 됩니다. 그렇게 되면 테스트보다 더 큰 효과가 발생할 수 있습니다. 또는 반대로 진행하게 되면 테스트보다 더 작은 효과가 발생할 수 있게 되는 셈입니다. 그래서 테스트에 영향을 준다고 생각한 부분을 가설에 접속 했기 때문에 그 부분을 제외하고는 테스트에 영향을 줄만한 변수들을 제외 시키기 위함입니다. - A집단과 B집단이 균일하게 나누어져야 한다. - A집단과 B집단이 서로에게 영향을 미..
seed는 왜 지정할까?
·
Why?
컴퓨터 프로그램에서 발생하는 난수는 엄밀한 의미에서 난수가 아닙니다. 특정 시작 숫자를 정해주면 컴퓨터의 정해진 알고리즘에 의해서 마치 난수처럼 보이는 수열을 생성하게 됩니다. 이때 시작하는 숫자가 seed인 셈이죠. 따라서 동일한 시작 숫자를 설정하면, 동일한 난수 생성 패턴이 나타나게 됩니다. 우리가 작성한 코드에 대해 동일한 결과 재현에 활용할 수 있습니다. 여기서 가장 중요한 것은 알고리즘의 미묘한 성능 차이를 확인해야하는 경우에 데이터의 특성에 따른 차이를 제어할 수 있도록 해야하는 점 입니다. 아래에 있는 예시코드를 보겠습니다. import numpy as np import random np.random.seed42 # 대한민국 외국인 비율이 33%인 5000명의 인구 데이터 생성 stud..
왜 제너레이터는 메모리 사용을 효과적으로 사용할까?
·
Why?
리스트 VS 제너레이터 먼저 바로 결과 값을 보자 # 숫자 1 ~ 10000 3배로 만든 결과를 리스트 VS 제너레이터 import sys list_data = [i * 3 for i in range1,10000+1] generator_data = i3foriinrange(1,10000+1) printsys.getsizeof(listdata) # sys.getsizeof = Return the size of object in bytes. printsys.getsizeof(generatordata) # 87616 # 112 위의 코드를 보기만 하더라도 제너레이터가 확연히 메모리 사용량이 줄어든 것을 볼 수 있다. 왜 그럴까?? 리스트는 데이터 저장에 필요한 메모리를..
머신러닝과 비교했을 때, 딥러닝이 가지고 있는 장단점은?
·
Why?
딥러닝은 머신러닝보다 데이터에 더 의존 —> 딥러닝은 데이터 양에 비례한 성능을 갖기 때문에 머신러닝보다 훨씬 많은 양과 크기의 데이터가 필요하다. 머신러닝 : 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 인공지능의 한 분야 딥러닝은 인공 신경망을 기반으로 한 방법 머신러닝의 한 분야 딥러닝의 deep은 머신러닝보다 데이터의 양이 많아지고 중간 처리과정이 깊어져서 딥러닝이라고 함 머신러닝 : 사람을 학습시키는 과정에서 착안한 방법을 사용해서 어떤 데이터의 입력 값과 이에 대응한 출력 값을 알려주면 출력방법에 대해 스스로 학습함 —> 특성공학이 중요 사람이 개입함 딥러닝 : 머신러닝과 같이 스스로 학습한다는 점에서는 동일하나, 출력 값에 대한 정보를 학습..
왜 Cloud 방식으로 데이터를 저장할까?
·
Why?
클라우드의 장점 신속한 인프라 도입 : 온프레미스방법의 경우 인프라를 구축하기위해 물리적인 기계, 공간, 가용인력이 필요하나, 클라우드서비스는 빠르게 인프라를 도입할 수 있다. 초기비용이 온프레미스보다 적게 듬 인터넷만 있으면 서버관리 가능 온프레미스 장점 보안이 아주 좋다 인프라를 직접 구축하다 보니 어마어마한 데이터 처리가 가능 인터넷 없이 엑세스 가능, 데이터 백업에 좋음 클라우드 단점 보안에 약함 인터넷 필수 온프레미스 단점 구축이 오래 걸림 돈이 많이 들어감 서버 관리자 구하기도 힘든데 3교대 근무이다 보니 많이 나가려고함 재택하려면 VPN으로 회사에서 맞춰줘야함 다만 느려짐.. 기업 73%가 온프레미스로 애플리케이션 다시 이전…“하이브리드 클라우드 미래 밝다”..
PDP의 해석 시 유의할 점
·
Why?
몇몇 PDP는 특성 분포를 나타내지 않음 분포를 생략하는 것은 데이터가 거의 없는 부분을 과대해석할 수 있다. x축의 데이터 포인터나 히스토그램을 보여주면 이 문제가 해결 할 수 있다. 이질적 효과Heterogeneouseffect가 드러나지 않음 이질적 효과? 겉보기에는 비슷하지만 사실상 다른 영향을 끼치는 서로 이질적인 요소를 가리킨다. 예를 들어, 하나의 특성이 커지면 커질수록 예측치가 커지고, 동시에 작으면 작을수록 예측치가 커진다고 합시다. 이 경우 PDP는 수평선으로 그려져 특성의 영향도는 없는 것으로 보여질 것이다. => 개별 조건부 기대치IndividualConditionalExpectation를 그려 이종효과를 찾아낼 수 있다. 현실적으로 변수가 두 개를 초과할 경우 그래프로..
ICE Plot과 PDP Plot의 특징에 대해 논의하고 언제 어떤 방법을 쓸 수 있을지 구체적인 예시
·
Why?
ICE Plot PDP Plot 특징 세세한 조건에서의 모델의 예측변화 확인 Local 특정 관측치에 대해, 특정 특성의 값을 변화시킬 때 모델의 예측 양상이 어떻게 변하는지 파악 모델의 해당 특성에 대한 전반적인 이해 방식 확인 Global 특정 관측치에 포커스를 두지 않음, 전체 평균에 집중 PDP Plot = ICE plot의 평균 장점 - 상호작용 관점에서 PDP보다 많은 인사이트를 발견할 수 있음 - 직관적으로 이해하기 쉬움 - 전반적인 모델 특성 확인에 용이함 - 직관적으로 이해하기 쉬움 단점 - 오직 하나의 특성만 의미있게 나타낼 수 있음 2 + 샘플이 너무 많..