Performance

Database

SQL SELECT 쿼리의 작성/실행 순서

SQL에서 SELECT 쿼리를 할 때 작성순서와 별개로 실행순서를 알고 쿼리를 짜면 퍼포먼스 이슈를 방지할 수 있다.

Read
Java

long vs Long

원시타입(primitive type)과 참조타입(reference type)의 차이를 통해 long과 Long의 차이를 알아본다.

Read

Browser Rendering

HTML을 파싱하여 DOM tree를, CSS를 파싱하여 CSSOM tree를 만들고 이 둘을 조합해 Render tree를 만든다. 이를 배치하고 그리는 과정이 바로 이전 포스트에서 다룬 Reflow와 Repaint이다.

Read

Reflow와 Repaint

수정된 Render tree를 다시 렌더링하는 과정에서 발생한다. Reflow는 위치와 크기를 계산, Repaint는 시각적인 요소를 표현하는 과정이다. 당연히 필요한 과정이지만 효율적으로 컨트롤하지 못하면 웹애플리케이션의 성능을 떨어뜨리는 주된 요인이 된다.

Read
JavaScript

Document Fragment

여러 노드를 하나의 그룹으로 감싸 다른 곳으로 전달하게 해주는 Wrapper 노드이다. 리액트에서의 Fragment와도 의미상 비슷한 개념이라고 볼 수 있겠다.

Read
Concept

가비지 컬렉션(Garbage Collection)

더 이상 사용되지 않을 변수와 함수를 메모리 힙에서 제거함으로써 메모리를 효율적으로 관리하는데 이 과정을 Garbage Collection이라고 한다.

Read
JavaScript

JavaScript의 작동 원리

자바스크립트 런타임은 어떻게 구성되어있고 싱글쓰레드의 장단점, 그리고 자바스크립트에서 왜 그렇게 비동기가 중요한 개념인지 알아보자.

Read
JavaScript

Throttling과 Debouncing

연이어 발생하는 이벤트에 의해 무의미한 리소스 낭비가 일어나지 않게끔 방지하는 기법들이다. 쓰로틀링은 특정 텀을 두고 주기적으로만 콜백함수를 실행하는 방법으로 scroll 이벤트에 많이 쓰이고, 디바운싱은 연이은 호출을 이른바 하나로 퉁치는 방법으로 ajax 통신에 많이 쓰인다.

Read