일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 운영체제
- Operating System
- codestates
- 자바
- 알고리즘
- 개발공부
- react 기초
- Zerobase
- useState
- 글또
- 자바스크립트
- REACT
- node.js
- 비동기
- context switching
- 자료구조
- Computer Science
- typeScript
- JavaScript
- 컴퓨터공학
- 코드스테이츠
- python algorithm
- 파이썬 알고리즘 인터뷰
- algorithm
- execution context
- 프로그래머스
- 파이썬
- Python
- OS
- java
- Today
- Total
목록분류 전체보기 (108)
Back to the Basics
Page 는 데이터베이스에서 데이터를 읽어오는 하나의 단위이다. SELECT query를 할 때 내가 원하는 행만 disk에서 가져오는 것이 아니라 page라는 단위로 disk에서 캐싱을 한다. 지금까지는 Database를 단순히 사용하기만 했었다. 하지만 느린 쿼리는 결국 문제를 발생시켰고 쿼리 최적화에 대해 고민을 하다보니 Index의 원리에 대해 알아야 했다. 그러다보니 Database에서 파일을 저장하고 관리하는 방법에 대해 알아야 하는 필요성이 생겼다. 그래서 이번 블로그에는 데이터베이스 페이지의 개념, 디스크에 읽기 및 쓰기 방법, 디스크에 저장되는 방법, Postgres에서 페이지 레이아웃에 대하여 정리해보았다. [목차] Page란? Database에서 읽고 쓰기 과정 Page에 들어가는 ..
일요일 오후 저녁 피크 타임에 우리 팀이 관리하고 있던 서버가 죽어버리는 이슈가 있었다. 소 잃고 외양간 고치는 격으로 rate limit을 뒤늦게 구축하게 되었다. 당시 발생했던 상황들과 rate limit을 구축하면서 공부했던 부분에 대해서 기록을 하기 위해 이번 포스팅의 주제로 Rate limit으로 산정하였다. 먼저 이번 포스팅에서 1.Rate limit이 필요한 이유를 경험담을 담아 이야기 해보고 다음 포스팀에서 "Rate limit의 여러 종류들(알고리즘)"에 대해 알아본다. 그리고 그다음 포스팀에서 1. rest api에서의 rate limit과 graphel에서의 rate limit의 차이점에 대해 정리해 보고 2. 직접 구현을 해본 것에 대해 정리해 보려고 한다. 몇 차례에 걸친 꾀나 시..
[NestJS] IoC(Inversion of Control) 제어의 역전과 DI(Dependcency) Injection)에 대해 알아보자 [NestJS] IoC(Inversion of Control) 제어의 역전과 DI(Dependcency) Injection)에 대해 알아보자 Nest.js의 레이어는 기본적으로 [ Controller - Service - Repository ] 레이어로 구성이 된다. Controller Class에서는 Service를 호출하고 Service Class에서는 Repository를 호출한다. 이렇듯 각 Class는 다른 Class에 대한 sora9z.tistory.com 이전 포스팅에서 IoC가 무엇인지 DI가 무엇인지에 대해 알아보았다. 이번 포스팅에서는 Nest.j..
ts 공부를 하던 중 문득 궁금한 것이 생겼다. type 과 Interface는 둘 다 type을 정의할 때 사용될 수 있고 사용한다. 그럼 언제 type을 사용하고 언제 interface를 사용할까? 이를 확인해보기 위해 type과 interface 의 공통적인 부분화 다른 부분을 알아보고 언제 무엇을 사용하는 것이 좋은지 알아보자 type과 interface 공통적인 부분 1. type과 interface 둘 다 객체를 만들 수 있다. type TAnimal = { name: string; age: number; speak?: () => void; }; const dog: IAnimal = { name: '구쟁', age: 1, speak: () => console.log('멍멍'), }; const..
Nest.js의 레이어는 기본적으로 [ Controller - Service - Repository ] 레이어로 구성이 된다. Controller Class에서는 Service를 호출하고 Service Class에서는 Repository를 호출한다. 이렇듯 각 Class는 다른 Class에 대한 의존성이 존재한다. Nest.js는 이런 의존성을 관리하기 위해 "제어의 역전" 이라는 개념과 "의존성 주입"이라는 개념을 사용한다.(사실 이 두 개념은 객체지향과 관련된 주제이기도 하다) Nest.js의 동작은 모두 "의존성 주입"이라는 개념으로부터 시작한다고 한다. 프로그램을 짜다보면 나와있는 매뉴얼대로 빠르게 적용을 하는 것도 중요하지만 기본적인 원리를 알아두면 응용하기에 도움이 많이 되고 어떤 애러가 발생..
이번 장에서는 데이터배이스가 검색 및 저장을 내부적으로 어떻게 처리하는지에 대해 설명한다. 개발자가 이를 알아야 하는 이유는 여러 저장소 앤진 중 애플리케이션에 적합한, 좋은 성능을 내는 엔진을 선택하는 작업이 필요하기 때문이라고 책은 설명한다. 가령 여러 라이브러리 중 하나를 선택해야 할 때 우리의 애플리케이션에 적합한 라이브러리를 찾기 위해 내부를 뜯어보게 되는 일이 있다. 그냥 많이 사용한다고 해서 무거운 라이브러리를 사용하는 것은 오버스팩일 뿐이다. 해당 내용도 이런 맥락이라고 이해하였다. 특정 작업부하 유형에서 좋은 성능을 내는 저장소 엔진을 찾기 위해 엔진이 내부적으로 어떻게 수행되는지 대략적으로 알아야 할 필요가 있다. 데이터베이스를 강력하게 만드는 데이터 구조 많은 데이터베이스에서는 내부적..
NODEJS비동기의_이해와_비동기 처리에 대하여 참고 사이트 참고 사이트2 이번 주에 면접을 봤는데, 나왔던 질문 중 비동가와 관련된 질문이 있었다. 서버에서 Promise가 무엇인지 알고 있는지 Async Await은 어떻게 다른지 Server에서 비동기가 언제 쓰이는지 알고 있는지 첫 번째 질문에서는 CallBack지옥을 피하기 위해 나왔고 비동기 처리를 해주는 것이라고 말하였고 두 번째 질문은 Promise 지옥을 피하기 위해 생겨났으며 async로 비동기 처리가 있음을 알리는 키워드로 사용되고 await은 지금 이 함수가 비동기 함수라는 것을 명기해주는 키워드라고 이야기하였다. 세 번째 질문의 답으로는 상대적으로 오래 걸릴 수 있는 DB 쿼리를 할 때 주로 쓴다라고 이야기를 하였다. 틀린 대답은 ..
JAVASCRIPT-실행컨텍스트 모던 자바스크립트 Deep Dive를 읽고 정리한 포스팅 23장-실행컨텍스트-Execution-Context 언어를 공부한다는 것은 단지 언어의 문법만 공부하는 것이 아니라 자바스크립트가 실행되는 환경에 대한 이해, 이 환경에서 자바스크립트가 어떻게 코드를 관리하는지, 그리고 툭 하면 언급되었던 호이스팅에 한 이해.. 그리고 싱글스레드 기반인 자바스크립트의 Event loope등 그 언어의 동작 원리를 알아야 삽질을 덜 하고 더 효율적인 코드를 작성할 수 있다. 그리고 실행 컨텍스트는 자바스크립트의 동작 원리를 담고있는 아주 핵심적인 개념이다. 이 책에는 실행컨텍스트에 대해 정말 자세히 설명이 되어있어서 그동안 두리뭉실하게 알고 있었던 부분을 해결할 수 있었다. ECMAS..