October 27, 2024
Flutter의 위젯 구조와 렌더링 프로세스를 깊이 탐구하며, SizedBox와 사용자 정의 LabeledDivider 위젯을 통한 RenderObject 사용 예제를 설명합니다.
October 27, 2024
위상 정렬 위상 정렬은 그래프 이론에서 중요한 알고리즘 중 하나로, 방향 그래프의 모든 노드를 순서대로 나열하는 방법입니다. 특히, 사이클이 없는 방향 그래프(DAG, Directed Acyclic Graph)에서 그래프의 각 노드 간의 순서를 결정하는 데 사용됩니다. 위상 정렬은 작업의 우선순위 설정이나 프로젝트의 작업 계획, 강의 순서 정하기 등 다양…
September 23, 2024
문자열학의 기초 공단어 문자가 없는 문자열은 라고 하며, 로 나타냅니다. 켤레류 문자열 알고리즘에서 켤레류는 문자열의 회전을 통해 얻을 수 있는 문자열들의 집합입니다. 예를 들어 문자열 "abcde"의 켤레류는 다음과 같은 문자열로 구성됩니다. "abcde" (원래 문자열) "bcdea" (앞의 문자 'a'를 맨 뒤로 옮김) "cdeab" (앞의 두 문자…
September 12, 2024
에라토스테네스의 체(Sieve of Eratosthenes)는 소수를 찾기 위한 고대 그리스 수학자 에라토스테네스가 고안한 알고리즘입니다. 이 알고리즘은 일정 범위 내의 모든 소수를 효율적으로 구하는 방법으로, 단순한 반복적인 방식보다 훨씬 빠르게 소수를 걸러낼 수 있습니다.
August 12, 2024
Completer를 이용한 Lock 구현부터 시작해서 이를 JavaScript의 Promise로 확장하고 최종적으로 세마포어를 이용하여 Nest.js에서의 요청 동시성 제어까지 다뤄봅니다.
May 20, 2024
기존 Nest.js의 EventEmitter 기반 이벤트 아키텍처를 Kafka로 마이그레이션하며 고민한 지점을 이야기합니다. 데코레이터를 이용해 선언적으로 이벤트를 수신하는 방식을 구현합니다. Kafka 소비자 그룹 연결을 최적화하여 리밸런싱 시간을 단축합니다.
April 28, 2024
그래프 데이터베이스의 기본 원리와 쿼리 방법을 알아보고 소셜 네트워크와 같은 관계 중심 데이터에 대한 효율적인 탐색을 다룹니다. Lazy loading과 인터프리터 개념을 활용한 쿼리 실행 방식을 알아봅니다. 그래프 쿼리 언어인 그렘린을 사용하여 다양한 관계 예제를 확인합니다
June 16, 2023
nestjs/event-emitter를 사용해 이벤트를 처리할 때 발생하는 런타임 에러로 인한 서버 중단 문제를 해결하는 방법을 알아봅니다.
February 19, 2022
nest.js에서 passport를 이용한 인증 방법을 알아보고 로그인 여부에 따라 같은 API에서 다른 처리를 해야 할 때 발생하는 문제를 커스텀 미들웨어로 해결합니다.
July 18, 2021
TypeORM의 QueryBuilder 재사용성을 높이기 위한 고민을 담습니다. 코드 반복을 줄이기 위해 조회 로직을 통합하고 OR 연산 및 FindOperator를 적용할 수 있는 구조로 리팩터링합니다.