All Categories

algorithms (2)
architectures (9)
development (11)
system-operations (10)

코딩 테스트 준비 전 모르면 큰일나는 알고리즘 문제 유형 파악 및 꿀팁 정리

코딩 테스트를 준비할 시간이 부족하거나, 어디서부터 공부를 시작해야 할지 막막한가? 일단 무작정 알고리즘 문제풀이 사이트에 접속하여 문제를 풀고 있지만 잘하고 있는 것이 맞는지 의문이 드는가? 그렇다면 잠시 모든 것을 내려두고 어떤 것들이 중요한지 살펴볼 때다.

Binary search로 삽입 위치 찾기 - 그림으로 쉽게 이해하기

정렬된 배열에서 특정 숫자를 찾는 "찾기 문제" 또는 특정 숫자가 들어갈 위치를 찾는 "삽입 문제"가 주어진다면, 일단 binary search부터 생각해보는 것이 좋다. 찾기 문제는 원하는 숫자가 나올 때까지 찾으면 되기 때문에 직관적으로 이해하기 쉽다. 반면, 삽입 문제는 배열에 없는 숫자의 위치를 찾아야 할 수도 있기 때문에 헷갈리는 편이다. 시각적으로 원리를 쉽게 이해해보자.

Validation 코드는 어디에 작성해야 할까? - The 3 types of validation logics

개발자들은 다양한 validation 코드들을 작성하는데 많은 시간을 소비한다. 이곳저곳에 덕지덕지 붙어있는 validation 코드들을 바라보면, 과연 이 코드들이 여기에 있어도 되는 것인지 의문이 생긴다. 다양한 종류의 validation 코드들을 어디에 작성해야 하는지 정리해보자.

Domain model에서 repository를 직접 사용해도 될까? - 도메인 모델의 영속성 무지

Repository는 인프라적인 요소에 가깝다고 할 수 있다. 그런데, 이 repository를 도메인 모델에서 직접 사용해도 괜찮을까? DDD와 관련된 여러 참고 문서들에서는 이에 대해 통일되지 않은 견해를 보이고 있다. 이 글을 통해 여러 견해들을 한꺼번에 모아서 생각해보자.

Aggregate의 문제점과 바람직한 설계 방법 - DDD aggregate diet

DDD의 aggregate는 일관성 관리를 위해 매우 중요한 개념이지만, 덩치가 커질수록 성능과 확장성 측면에서 문제가 발생하게 된다. Composition 기반 aggregate의 문제점에 대해 자세히 살펴보고, 효율적인 aggregate를 설계하기 위한 방법들을 알아보자.

... and 6 more posts

Python으로 kubernetes 노드 선택 기능을 개발하는 방법

클러스터를 구성하면 목적에 따라 노드의 역할을 구분하는 경우가 많다. 따라서, kubernetes에서 pod를 특정 노드에만 배포해야 한다는 제약사항은 당연히 나올 수 밖에 없다. Python을 통해 이를 구현하는 방법과 고려해야 할 점들에 대해 알아보자.

Python FastAPI로 파일 업로드 및 다운로드 가능한 web server 개발하기

FastAPI를 활용하면 파일을 업로드하거나 다운로드할 수 있는 web server를 매우 간단하게 구현할 수 있다. 예제 코드와 함께 최대한 간단하게 파일 업로드 및 다운로드 API를 구현하고 테스트하는 방법을 알아보자.

안전하게 무한 루프 탈출하기 - Handling SIGTERM in kubernetes with python

프로그램의 유형에 따라 명확한 종료 시점 없이 반복적인 작업을 수행해야 하는 경우가 있다. 그런데, 영원한 것은 없지 않나! 언젠가는 종료를 시켜야 한다면, 어떻게 해야 안전하게 무한 루프를 빠져나올 수 있는지 알아보자.

... and 8 more posts

Cache invalidation 전략

Cache는 일종의 임시 data이다. DB의 내용이 변경된다면 cache도 따라서 최신화되어야 한다. Cache에 오래된 data가 남아있으면 사용자에게 잘못된 정보를 제공할 수도 있다. 따라서, 유효하지 않은 cache data를 무효화하는 것이 중요하다. 다양한 캐시 무효화 전략을 살펴보자.

Next.js 정적 사이트 효율적으로 배포하기 - Deploying Next.js static exports with bash

콘텐츠가 많다면 정적 사이트를 웹 서버에 배포할 때 지나치게 오랜 시간이 걸릴 수도 있다. 배포 과정이 길어지면 여러가지 문제가 발생할 수 있다. 제한된 환경에서 추가적인 도구없이 딱 필요한 파일들만 파악하여 웹 서버에 전송해주는 bash script를 작성해보자.

Argo workflow에 kubernetes resource request와 limit을 설정하는 방법

Kubernetes 환경에서 argo workflow를 통해 파이프라인을 실행할 때는 자원 할당에 대한 고민이 필요하다. 그런데, 일반적인 방식으로는 의도대로 자원 할당이 되지 않는다. Kubernetes 환경의 안정적인 운영을 위해 argo workflow에 자원 설정을 하는 방법을 알아보자.

... and 7 more posts