alt
Home
hungryjayy
Cancel

Lazy Loading과 N + 1

: JOIN 쿼리를 통해 두 엔티티를 조회할 때, 엔티티 로딩 시점이 달라, DB에 쿼리가 한번 더 나가게 된다. JPA에서는 글로벌 페치 전략을 지연 로딩에서 즉시 로딩으로 변경해 해결할 수 있다. JPQL (queryDSL)을 사용한다면 글로벌 페치 전략을 참고하지 않고 그냥 쿼리를 생성하기 때문에 여전히 문제이다. JPQL에서의...

B-Tree

: Self-balancing tree 중 하나. 데이터베이스나 파일 시스템에서 사용되는 것으로 유명. 한 블럭에 많은 데이터를 저장한다는 것이 큰 장점. 한 블럭이 1024 Byte라고 한다면 2Byte를 읽으나 1024Byte를 읽으나 입출력 1회 발생하는 비용은 같기 때문 규칙 정렬된 상태이다. 자식 노드 수가 ...

Node.js 디자인 패턴 2장 - 1. Callback Pattern(콜백 패턴)

연속 전달방식 : 연산의 결과를 콜백으로 전달하는 방식 동기식 연속 전달 방식(Continuation-Passing Style) : 일반적으로 아는 전달방식. 직접 스타일 function add(a, b) { return a + b; } 비동기 연속 전달 방식 function add(a, b, callback) { ...

객체지향 설계 원칙 - SOLID 원칙

1. SRP(단일 책임 원칙) S 모든 클래스는 하나의 책임만 갖고, 하나의 책임만을 갖기 때문에 그 책임을 완전히 캡슐화 캡슐화: 외부로부터 자세한 구현을 숨김 응집성 원칙에 근거 어떠한 클래스나 모듈은 변경되려는 단 하나의 이유만을 가져야 한다. e. g...

Sequelize에서 DB Migration하기

Query Interface Sequlize: ORM Query interface DB와의 communication을 위함.(low level) 대부분의 Sequlize method들은 query interface의 도움을 받아 구현된다. Sequelize mig...

가상 메모리

프로세스에 필요한 메모리 전체가 물리 메모리에 적재되지 않고도 실행할 수 있도록, 물리 메모리를 가상의 엄청나게 큰 메모리(가상 메모리) 로 추상화해서 사용하는 기법 원래는 물리 메모리에 필요한 모든 것을 적재했었음 -> 실행할 프로그램에 필요한 메모리가 실제 물리 메모리보다 크다면 실행이 불가하다는 문제 ...

Sync, Async, blocking, non-blocking

동기: 두개 이상의 작업이 시작 종료시간이 같거나 시작과 동시에 종료 (선후 관계가 확실) 비동기: 다른 작업과 시작, 종료 시점이 관계가 없다. blocking: 다른 작업 진행되는 동안 기다린다. (코드상 Return 하지않음) non blocking: 다른 작업 진행 동안 기다리지 않는다. (코드상 일단 Return) ...

Node.js 디자인 패턴 1장 - 3. Reactor 패턴을 통한 Non-blocking 처리

: 리소스(기다리고 있던 DB의 목적 리소스)에서 새 이벤트를 사용할 수 있을때까지 디멀티플렉서가 차단되다가, 처리된 다음 이벤트 큐로 전해지고, 이벤트 루프에 의해 핸들러가 호출되어 반응하는 것 이벤트 디멀티플렉싱 : Non-blocking 리소스를 처리하기 위한 기본적인 메커니즘 Disk I/O작업은 기본적으로 블로킹 I/O인데, 이...

스케줄링과 스케줄러

: 프로세스에게 CPU 등의 자원을 적절히 배정하는 것 Queue: 프로세스 스케줄링에 사용되는 큐 Job Queue: 현재 시스템 내의 모든 프로세스 집합 Ready Queue: 현재 메모리 내에 있고, CPU 할당을 기다리고 있는 프로세스 집합 Device Queue: Device I/O 작업을 대기하고 있는 프로세스 집합 ...

Node.js 디자인 패턴 1장 - 2. ES2015(ES6 이후)에서 달라진 점

var, let, const var 변수 재선언, 재할당 가능 Function scope if문에서 선언하면 block이기 때문에 전역변수 함수 내부라면 블록 밖이라도 참조 가능 함수 내부에서 var로 선언한 것은 함수 내부까지만 hoisting ...