분류 전체보기
-
[Real MySQL] 인덱스 (2) - B-Tree 인덱스✍️ 개인 스터디 기록 2022. 12. 12.
B-Tree 인덱스 제일 상단에 루트노드 부터 시작해서 제일 하단 리프노드 까지 인덱스 페이지별로 나뉘어져 있다. 인덱스로 정한 키값이 정렬된 상태로 되어있다는 점이 중요하다. 실제 데이터파일의 경우 정렬이 되어있지 않고 임의의 순서로 저장된다. 인덱스테이블에는 키값만 저장되어있기 때문에 나머지 컬럼 정보를 가져오기 위해서는 실제 데이터 파일에서 해당 레코드를 찾아와야한다. InnoDB 엔진에서는 세컨더리 인덱스에서 B-Tree 탐색이 2번 일어난다. InnoDB 엔진에서는 아래 그림처럼 리프노드에서 프라이머리 키가 실제 데이터의 주소값 역할을 하는데, 그렇기 때문에 리프노드에서 프라이머리 키를 찾았으면, 찾은 프라이머리 키로 실제 데이터를 찾기 위해 프라이머리 키 인덱스 B-Tree를 또 탐색하는 과정..
-
[Real MySQL] 인덱스 (1) - 인덱스란? 인덱스의 구분✍️ 개인 스터디 기록 2022. 12. 12.
1. 디스크 읽기방식을 고려하자 랜덤 I/O와 순차I/O 디스크 헤더를 많이 움직이는 랜덤 I/O는 비용이 순차I/O보다 비용이 크다. SSD를 사용하면 랜덤 I/O의 비용을 줄일 수 있지만, 그래도 순차 I/O에 비해서는 성능이 떨어진다. 데이터베이스의 대부분의 작업은 작은 데이터를 빈번히 읽고 쓰는 작업이 대부분이기 때문에 랜덤 I/O가 일어나는데 쿼리 튜닝이란 이러한 랜덤 I/O 자체를 줄여주는것에 목적이 있다고 볼수 있다.(꼭 필요한 데이터만 읽도록 하는것!) 2. 인덱스란? DBMS의 인덱스도 SortedList와 같이 항상 정렬된 상태를 유지한다. 즉 항상 정렬된 상태를 유지하기 위해 데이터가 저장될 때마다 항상 값을 정렬해야한다. 그렇기 때문에 인덱스란 데이터의 저장 성능을 희생하고 읽기 속..
-
디자인 패턴 스터디 기록 (7) - 복합 패턴과 MVC✏️ 스터디 모음집/디자인 패턴 스터디 2022. 12. 12.
복합 패턴의 필요성(feat. 오리 시뮬레이션 게임 만들기) 🐥 작고 귀여운 오리 시뮬레이터 public interface Quackable{ public void quack(); } void simulate(){ Quackable mallardDuck = new MallardDuck(); Quackable duckCall = new DuckCall(); Quackable rubberDuck = new rubberDuck(); simulate(mallardDuck); simulate(duckCall); simulate(rubberDuck); } void simulate(Quackable duck){ duck.quack(); //어떤 오리든 quack()을 호출해서 테스트 가능(다형성) } 📢 거위용 시뮬..
-
2022년 11월 - 인프런 퇴근길 Node.js 밋업 회고🤔 개인 회고 2022. 12. 5.
인프런에서 첫번째 퇴근길 밋업으로 Node.js를 주제로 다룬다고하여 바로 신청을 했다. 다른 회사에서는 어떻게 Node.js를 사용하고 있을까? Node.js 개발자들은 어떤 고민들을 하면서 프로젝트를 진행했을까? 이런 궁금증과 기대를 품고 29일 저녁 퇴근하자마자 판교로 달려가 밋업을 듣고 온 후기를 남기려고 한다. https://www.youtube.com/watch?v=pMo8M5cqxfQ 주니어 개발자의 Node.js 코드 변천사(feat.랠릿) 개인적으로 가장 인상깊었던 주제는 인프랩에서 랠릿이라는 서비스를 개발하면서 겪었던 코드 구조에 관한 내용이였다. express로 개발을 하면서 고민했던 점이 구조가 너무 자유로워서 어떤 것이 클린아키텍쳐 일까 찾아보면 찾는 레포마다 다 다르고, 개발하는..
-
2022년 11월 회고🤔 개인 회고 2022. 12. 3.
이번 11월은 진짜 너무 바쁘게 지나간것 같다. 블로그 포스팅을 다시 본격적으로 시작해야겠다는 생각을 갖게 된 달이기도 하고 이전에 함께 인턴을 했던 후배, 동기들도 만나고, 퇴사한 직장 동기분이 회사에 놀러와 그동안의 서로의 근황에 대해 이야기를 나누었다. 아! 그리고 코딩 부트캠프를 준비하던 동생은 결국 부트캠프에 2번의 도전끝에 합격하게 되었다. 개인적으로는 그동안 회사에서 3년이 되어가는 시간 동안 근무하면서 내가 진행했던 프로젝트들을 되돌아보고 정리해볼 수 있는 기회가 생겨, 프로젝트 별로 내가 어떤 부분을 했었고, 어떤 것들을 고민했었는지 한번 정리해보았다. 그리고 이전에 인턴으로 근무하면서 만난 지인과 연락이 닿아 개인적으로 나의 커리어에 대해 피드백을 받기도 했다. 일 VS 공부 피드백을 ..
-
모던 자바스크립트 Deep Dive 퀴즈 리스트✍️ 개인 스터디 기록 2022. 12. 2.
모던 자바스크립트 책을 읽고나서 개인적으로 각 챕터의 내용을 기억(🧠 )하기 위해 만들어본 퀴즈 리스트 입니다. 4장 변수 변수 호이스팅이란? var 키워드와 let 키워드의 차이점 let 키워드와 const 키워드의 차이 예약어란? 매니지드 언어와 언매니지드 언어의 차이 자바스크립트의 기본적인 네이밍 컨벤션에 대해 말해보세요 5장 표현식과 문 값과 리터럴이란? 표현식과 문의 차이점은? 표현식인지 문인지 확인하는 방법은? 6장 데이터 타입 자바스크립트 원시 타입 : 자바스크립트 객체 타입 : 자바스크립트 숫자타입은 형식으로 작동하고 그러므로 어떤걸 주의 해야 할까? “” VS ‘’ 어느게 더 일반적인 표기법일까? 탬플릿리터럴 문법에 대해 설명하세요 이스케이프 시퀀스란? null과 undefined의 차이..
-
[BigQuery] Streaming Insert VS Insert Into DML Query (1)🏢 업무 리서치 기록 2022. 12. 1.
현재 회사에서 BigQuery 테이블에 앱에서 발생된 사용자 로그를 BigQuery Streaming Insert 기능을 통해 로딩 하고있는 상황 인데, 쿼리 비용을 조사하던 중 Insert Into Query에서는 비용이 발생되지 않는 것을 발견 했다! 그렇다면 구지 돈을 써가면서 Streaming Inserts기능을 사용할 필요가 있을까? Streaming Insert 방식과 Insert Into Query로 데이터를 테이블에 넣는 방식은 서로 어떤 차이점이 있는지 궁금해 졌고, 각 방법의 차이에 대해 조사 한 내용을 정리했다. 💰 먼저 돈에 대한 부분에 대해 알아보자 Streaming Insert price VS Insert Into DML Query price 1. Streaming Insert ..
-
YouTube 데이터와 친해지기 (2) - Channel Reports VS Content Owner Reports🏢 업무 리서치 기록 2022. 12. 1.
이전 글 참고: YouTube 데이터와 친해지기 (1) 회사에서 YouTube 데이터 관련 이슈가 들어왔다. YouTube 채널들의 구독자수, 조회수 등 지표를 YouTube 스튜디오를 통해 관리하고 있는데 이 YouTube 스튜디오에서 제공하는 분석기능에 불편한 점이 많 neverfadeaway.tistory.com 지난 포스트 : YouTube Studio의 한계 지난 포스트에서는 유튜브 채널들의 통계데이터를 제공하는 유튜브 스튜디오의 불편한 점 그리고 유튜브에서 제공하는 API의 종류에 대해 살펴 보았다. 1년 보다 더 이전 기간 부터 발생된 데이터가져오기, 쿼리 방식 -> YouTube Analytics API 방식 앞으로 발생할 데이터가 안없어지고 살아남아 있도록 하기, 대량 다운로드 방식 ->..