자바스크립트 이벤트 루프에 대해서 단순히 개념만 알고 있었는데, 최근에 마이크로 태스크 큐와 매크로 테스크 큐의 차이점을 알게되었다. ✏️ 이벤트 루프란? 자바스크립트에 대해서 공부한다면 흔하디 흔하지만 그만큼 중요한 개념인 이벤트 루프다. 자바스크립트는 기본적으로 실행 흐름은 기본적으로 이벤트 루프에 기반한다. 싱글 스레드임에도 멀티 처리가 가...
Process and Thread
✏️ 프로세스란? 운영체제에서 자원을 할당하여 프로그램을 실행시키는 상태를 프로세스라 한다. 즉 프로그램이 실행중인 동적인 상태의 프로그램을 의미한다. 프로세스가 할당받는 자원은 CPU, 주소 공간이고, Code, Stack, Data, Heap의 구조로 이루어진 독립된 메모리 영역을 할당 받는다. 각 프로세스는 별도의 주소 공간에서 실행되며, 다...
완전 탐색
✏️ 완전 탐색이란? 주어진 수를 통해 가능한 경우의 수를 모두 나열하여 원하는 답을 찾아내는 기법. Brute-Force 기법 순열 재귀함수 비트마스크 DFS, BFS 순열 재귀 방식 순열은 서로 다른 N개의 원소를 가지는 어떠한 집합에서 중복없이 순서에 상관있게 R개의 원소를 선택하거나 나열하는 것 functi...
JavaScript Memory
JavaScript Memory 자바스크립트에서 메모리 관리는 자바스크립트 엔진에서 자동적으로 관리해준다. 하지만 자바스크립트를 사용하는 개발자라면 어느 정도 이해는 해놔야 될 것 같아 정리하였다. 🔹자바스크립트 메모리 생명 주기 자바스크립트 엔진은 변수나 함수 등을 생성할 때, 메모리를 할당하고 필요하지 않으면 해제한다. 메모리 할당은 말 그대로...
Webpack -> Vite Migration
AD Platform Webpack → Vite Migration 회사에서 기존 AD Platform에서 새로운 Feature를 개발하는 도중, 프로젝트 규모 자체가 커서 그런지 HMR과 서버를 재시작하거나 빌드할 때 시간이 상당히 오래 걸렸다. 그 전에 다른 프로젝트에서 Vite를 도입했던 기억이 떠올라 이번엔 Webpack에서 Vite로 마이그레...
IAB OpenDirect
해당 포스트는 IAB OpenDirect 공식 문서를 나름 번역하며 공부하고 정리한 글이며 빠진 내용 혹은 오역, 잘못된 내용이 있을 수 있음 🖥️ Open Direct Open Direct를 통해 퍼블리셔가 구매자에게 Open Direct의 표준에 맞춰 구축한 프로그래매틱한 인터페이스를 통해 광고 인벤토리를 제공할 수 있다. 인벤토리란? ...
Vite 알아보기
Vite ✏️ Vite란? 빠르다, 날쌔다, 신속하다. Vite는 프랑스어로 빠르다라는 뜻이 있다. 웹 어플리케이션의 빌드를 도와주는 도구인데, 말 그대로 빠른 속도로 빌드를 도와준다. 공식 문서에서는 두 가지의 컨셉을 잡고 있다고 한다. 개발 시 네이티브 ES Module을 넘어 더욱 다양한 기능을 제공합니다. 가령...
옵저버 패턴을 리액트에서 사용해보기
🔗 옵저버 패턴 알아보기 https://oyhun00.github.io/posts/design-pattern-behavioral-observer/ 상태가 변하는 특정 객체를 관찰자(옵저버)들이 관찰(구독)하고, 특정 객체에서 상태의 변화가 나타날 때 자신을 구독하고 있는 옵저버들에게 상태가 변화 됐음을 알려주는(발행) 발행/구독 패턴이다. 저번에 ...
Factory
✏️ Factory (팩토리) 란? 인스턴스 생성을 처리하는 클래스를 팩토리(Factory)라 한다. 인스턴스의 생성을 서브 클래스에게 결정하도록 위임하는 방식이다. 팩토리를 사용하게 되면 객체 생성 작업을 팩토리로 캡슐화하여 변경이 필요할 시점에 여기저기 수정할 필요 없이, 팩토리 클래스 하나만 수정하여 유지보수가 용이하도록 도와준다. 🍕 피자집...
Decorator Pattern
✏️ Decorator Pattern (데코레이터 패턴) 이란? 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우, 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계하는 방식 - 위키백과 객체에 추가적인 기능을 서브 클래스를 생성하는 방식보다 훨씬 유연하게 동적으로...