최근 포스트

검색 기능을 위한 Elasticsearch 개념 및 data modeling 기법 소개

Elasticsearch는 분산형 RESTful 검색 및 분석 엔진이다. 빠르고 효율적인 분산처리를 통해 얻은 검색 및 분석 결과를 REST API 형태로 제공하는 기술이라고 이해할 수 있다. Apache Lucene 기반의 Java 오픈소스이며, 사용이 간단하면서도 파워풀한 검색...

Event Loop: JavaScript의 비동기 처리 방식

javascript의 핵심 특징들을 탐구해보면, 싱글 스레드 기반의 동시성 (single-threaded concurrency) 제어와 관련된 내용이 자주 등장한다. javascript는 단일 스레드 기반의 언어로 한 번에 하나의 작업만을 처리할 수 있다. 그런데, javascri...

퍼실리테이션 (Facilitation): 의미있는 회의하기

보통 직장에서 회의를 한다고 하면 벌써부터 하품이 나온다. 일 얘기를 하는 것도 싫은데, 다들 자기가 할 말만 하고 남이 얘기할 때는 다른 생각을 하고 있는 등 소통이 제대로 이루어지지 않는다. 회의 시간이 점점 길어질수록 하품의 간격은 줄어들고, 애초에 왜 이 회의가 시작되었는지...

Substring Search Algorithm 1: Brute-force

LeetCode 사이트의 Implement strStr() 문제를 풀다가, 문자열 검색 (substring search) 알고리즘들을 이참에 쭉 정리해두면 좋을 것 같아서 글을 작성하게 되었다. 예전 군복무 시절에 Coursera에서 Robert Sedgewick의 알고리즘 온라인...

Testing Python 3: fixture and mock

지난 글에서는 Github Actions와 Coveralls를 활용하여 자동 테스트를 구현해보았다. 이를 통해 배포 전 동일한 환경에서 테스트를 진행할 수 있게 되었다. 하지만, 이 상태로 실제 개발을 진행해보면 여전히 불편함이 존재한다. 작성된 코드 중 외부와 통신을 해야 하는 ...