NOTE: 이 포스트는 알고리즘의 성능을 평가할 수 있는 척도인 시간 복잡도와 공간 복잡도에 대한 내용을 정리합니다. 1. 시간 복잡도알고리즘의 수행 시간 분석최악의 경우를 계산하는 방식을 빅-오(Big-O) 표기법이라고 함 종류 (1) O(1) (Constant)입력 데이터의 크기에 상관없이 언제나 일정한 시간이 걸리는 알고리즘데이터의 증가는 성능에 영향을 거의 미치지 않음stack의 push, popdef constant_time(n): print("cool") (2) O(log2 n) (Logarithmic)입력 데이터의 크기가 커질수록 처리 시간이 로그만큼 짧아지는 알고리즘ex. 데이터가 10배가 되면 처리시간은 2배가 되는 경우이진탐색, 재귀가 순기능으로 이루어 지는 경우def lo..
전체 글
가늘고 얇은 데이터 엔지니어의 삶을 위해 오늘도 기록 중
T-test를 이해하기 위한 포스트 입니다. 스튜던트의 t-test두 집단의 평균이 다르다고 볼 수 있는지 알아보는 테스트‘t’라는 것은 그룹 간 평균 차이에 비례하는 변수‘x’가 방정식에서 미지수로 불리는 것과 같음두 집단 간의 차이가 크면 큰 값이 세팅되게 되어있음t는 (표본 평균 차이)/(불확실도)로 계산불확실도(불확실성)가 분모인 이유는 표본으로부터 얻는 평균값은 항상 일정하지 않고 오차를 내포하고 있기 때문 t-value그룹 간 평균 차가 클 수록 t-value는 큼t-value는 평균 차이를 불확실도로 나눈 것즉, 평균차가 클 수록 t-value는 커짐또, 불확실도가 적을 수록 t-value는 커짐 t-test의 종류독립 표본 t-test두 그룹의 들어 있는 사람들이 전혀 다른 사람들임을 전..

p-value주어진 데이터에서 특정 검정 통계량(t-값 또는 z-값)을 얻을 확률귀무가설을 구체화한 모델이 있을 때 관측된 결과가 특이하거나 극단적인 결과를 얻을 확률을 말함작은 p값은 귀무 가설이 거부될 가능성이 크다는 것을 의미p값이 0.05라는 것은 우연히 얻은 결과의 5%가 관찰한 것만큼 극단적이거나 그 이상 극단적인 결과를 얻을 것으로 기대함따라서 p값이 낮을수록 좋다는 의미로 쓰며 이는 결과가 우연에서 비롯될 확률이 낮은 것을 뜻함즉, 랜덤 모델이 주어졌을 때, 그 결과가 관찰된 결과보다 더 극단적인 확률을 뜻함하지만, 이 값이 유의미 하다고 해서 바로 증거로 사용하면 안되며 의사결정을 좌우하는 도구로 생각하면 안됨p값은 데이터가 특정 통계 모델과 얼마나 상반되는지 나타낼 수 있음p 값은 연구..

A/B테스트를 이해하기 위한 기초 통계 지식을 정리합니다. 기본적인 간단한 용어 설명이나 개념 설명정도의 포스트입니다. 표본크기(Sample Size)AB테스트는 통계적으로 의미있는 차이를 확인하는 테스트이기 때문에 충분한 표본 크기가 필요표본 크기는 실험의 통계적 강도에 영향Baseline Conversion Rate, Minimum Detectable Effect, Statistical Significance 를 기반으로 계산표본이 얼마나 필요하냐라는 질문은 두 방안의 결과가 몇 % 정도 차이가 날 것이라고 기대하는가와 같음표본이 많으면 많을수록 A안과 B안의 결과 차이가 작더라도 실험 결과가 통계적으로는 유의미할 수 있음표본이 작더라도 A안과 B안의 결과 차이가 크다면 마찬가지로 통계적으로 유의미 ..
A/B테스트가 무엇이고 설계는 어떻게 해야하는지를 정리합니다. A/B 테스트란?두 개의 변형 A와 B를 사용하는 종합 대조 실험(controlled experiment)이다. 마케팅과 웹 분석에서, 버킷 테스트 또는 분할-실행 테스트라고 불린다. A/B 테스트가 필요한 이유서비스를 만드는 과정에서 자유롭게 가설을 세우고 사용자로부터 피드백을 받아 서비스에 적용하는 과정에서 실제 반응을 테스트 해보는 방법세운 가설이 기존 데이터를 토대로 추측했기 때문에 적용 결과가 좋을 거란 기대는 있지만 실제 반응은 그렇지 않을 수도 있다! → 우리는 새로운 기능을 출시하지 않음으로 인해 많은 비용을 줄일 수도 있다 A/B 테스트의 단계 예시 1. 실험 계획실험 목표 및 가설 생성실험의 목표가 명확하지 않으면 가설을 ..

NOTE: 이 포스트는 클린코드 - 좋은 코드에 대한 ‘클린코드’ 역자의 생각들 을 보고 정리한 포스트 입니다. Q & A 위주의 중요한 점 정리 Q. 코드 리뷰 문화 정착을 위한 방법 A. 애드혹 리뷰부터! 코드리뷰의 단계 코드 리뷰 요청자가 ‘어떤 관점’에서 봐달라는 요청이 존재하는 일반 리뷰 방법들과는 달리 애드혹 리뷰는 가볍게 이야기하면서 리뷰하는 방식 시니어 개발자 또는 조직장님과 함께하는 애드혹 리뷰가 도움이 많이 됨 Q. 다른 사람의 리뷰를 받을 수 없는 상황일 때, 스스로 좋은 코드를 개발하는 방법 A. 코드를 타인에게 설명한다는 느낌으로 접근하기 타인의 코드를 많이 보기 Q. 리팩토링의 핵심은? A. 리팩터링은 밖으로 드러나는 동작은 그대로 유지한 채 내부 구조를 변경함으로써 이미 존재하..
NOTE: 이 포스트는 클린코드 - 좋은 코드에 대한 ‘클린코드’ 역자의 생각들 을 보고 정리한 포스트 입니다. Section 1: 1부 코드 리뷰 코드를 잘 작성하는 방법 !) 코드를 돌게 만든다 > 코드를 제대로 돌게 만든다 > 코드를 빠르게 돌게 만든다 1. commit 개발자가 신경을 써야하는 것 commit은 하나의 작업 단위 해당 작업을 왜 했는지 명시하여 기록하기 위해 commit을 잘 써야함 commit을 작성할 때에는 commit 메세지 맨 처음에는 동사 원형이 와야 한다. commit에 묶인 작업이 독립적이라면 commit도 모두 분리를 해야한다. 구현, 리팩터링, 단위 테스트, 설계 개선사항, document 등의 주요 일련의 행위들은 모두 개별 commit으로 작성해야한다. comm..

jekyll 테마를 활용하는 github 블로그에서 포스트에 수식을 넣기 위해 MathJax를 사용하는 방법을 정리합니다. 기본 테마는 Chirpy Jekyll Theme를 사용하고 있습니다. 1. 마크다운 엔진 변경 _config.yml 파일의 내용에 다음을 추가 또는 수정 # Conversion markdown: kramdown highlighter: rouge lsi: false excerpt_separator: "\n\n" incremental: false 2. mathjax_support.html 파일 생성 _includes 디렉토리에 mathjax_support.html 파일 생성 후 아래 내용 입력 _layouts/default.html 파일의 head 부분에 아래 내용 삽입 {% if p..

본 포스트는 mac 환경에서 작업한 내용들을 담았습니다. 선행 작업 포스트 2024.02.20 - [분류 전체보기] - [Blog] 1. github 블로그 만들기 - 준비 및 환경세팅 [Blog] 1. github 블로그 만들기 - 준비 및 환경세팅 지금은 git blog 에서 포스트 이전 중이지만 열심히 작성했던 글이므로 일단은! 이전해 오도록 한다. git blog 세팅 시 진행했던 과정을 정리했다. 1. 환경 PC: MacBook Pro (M1/Intel) IDE: VSCode 2. gitblog reposito dekyoong.tistory.com 1. rbenv & jekyll 설치 jekyll은 gem을 사용해서 설치할 수 있다. jekyll과 bundler를 통해 앞으로 로컬에서 포스팅 결..

지금은 git blog 에서 포스트 이전 중이지만 열심히 작성했던 글이므로 일단은! 이전해 오도록 한다. git blog 세팅 시 진행했던 과정을 정리했다. 1. 환경 PC: MacBook Pro (M1/Intel) IDE: VSCode 2. gitblog repository 생성 github blog를 만들기 위해서는 github에 레파지토리부터 생성해야한다. 생성하는 방법은 다음과 같고 아래 이미지를 참고해서 생성하면 된다! Repositories 선택 >> New 클릭 >> Repository name 입력 >> Add a README file 체크 >> Create repository 클릭 >> repository 생성 완료! !) Repository name 입력 시 {사용자이름}.github...