There are 10 posts.

Custom RenderObject Widget 만들기

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)는 소수를 찾기 위한 고대 그리스 수학자 에라토스테네스가 고안한 알고리즘입니다. 이 알고리즘은 일정 범위 내의 모든 소수를 효율적으로 구하는 방법으로, 단순한 반복적인 방식보다 훨씬 빠르게 소수를 걸러낼 수 있습니다.


Nest.js 세마포어로 요청 동시성 제어하기

August 12, 2024

Completer를 이용한 Lock 구현부터 시작해서 이를 JavaScript의 Promise로 확장하고 최종적으로 세마포어를 이용하여 Nest.js에서의 요청 동시성 제어까지 다뤄봅니다.


Nest.js 카프카로 이벤트 발행 모듈 만들기

May 20, 2024

기존 Nest.js의 EventEmitter 기반 이벤트 아키텍처를 Kafka로 마이그레이션하며 고민한 지점을 이야기합니다. 데코레이터를 이용해 선언적으로 이벤트를 수신하는 방식을 구현합니다. Kafka 소비자 그룹 연결을 최적화하여 리밸런싱 시간을 단축합니다.


Dagoba. in-memory Graph DB

April 28, 2024

그래프 데이터베이스의 기본 원리와 쿼리 방법을 알아보고 소셜 네트워크와 같은 관계 중심 데이터에 대한 효율적인 탐색을 다룹니다. Lazy loading과 인터프리터 개념을 활용한 쿼리 실행 방식을 알아봅니다. 그래프 쿼리 언어인 그렘린을 사용하여 다양한 관계 예제를 확인합니다


Nest.js EventEmitter에서 Error 발생 시 서버 종료 현상

June 16, 2023

nestjs/event-emitter를 사용해 이벤트를 처리할 때 발생하는 런타임 에러로 인한 서버 중단 문제를 해결하는 방법을 알아봅니다.


Nest.js Passport 없이 로그인 인증정보 받아오기

February 19, 2022

nest.js에서 passport를 이용한 인증 방법을 알아보고 로그인 여부에 따라 같은 API에서 다른 처리를 해야 할 때 발생하는 문제를 커스텀 미들웨어로 해결합니다.


Nest.js TypeORM 리팩터링 (QueryBuilder)

July 18, 2021

TypeORM의 QueryBuilder 재사용성을 높이기 위한 고민을 담습니다. 코드 반복을 줄이기 위해 조회 로직을 통합하고 OR 연산 및 FindOperator를 적용할 수 있는 구조로 리팩터링합니다.