RxJava의 subscribeOn와 observeOn (1)

현재 약 2년동안 실무에 RxJava를 사용하고 있지만, 아직까지(부끄럽게도) 항상 동작이 헷갈리는 함수 2개가 있다. 바로 subscribeOn() 과 observeOn()이다. 이미 많은 블로그들의 글을 읽어봤지만, 여전히 »

Redis Sorted Set

나는 과일 장수이다. 그리고 나는 판매하는 과일의 가격을 아래와 같이 손님들에게 보여주고 있다. 이 때, 아래와 같은 조건들을 만족해야 한다. 각 과일의 가격은 자주 업데이트된다. 각 »

Armeria의 Circuit breaker 사용해보기

Circuit Breaker란? 만약 예상치 못한 장애(ex. 네크워크 이슈, 서버가 내려감)가 발생하여, 어떤 한 원격 서버가 요청에 대한 응답을 내리지 못하는 상태라고 가정해보자. 이러한 상황에서 »

로그를 볼 때 유용한 shell 명령어들

서버 개발을 하다보면, 로그를 밥먹듯이 보게 된다. 로그는 디버깅을 하는데 이용되기도 하지만, 때로는 원하는 통계와 데이터를 얻기 위해 사용되기도 한다. 이 글은 후자의 경우, 내가 자주 »

ghost 로그인 시 SQLITE_FULL 에러

최근 블로그에 글을 안 쓴지 오래되었다. 마지막 글이 4달 전에 작성된 걸 보면, 그동안 내가 얼마나 글쓰는 것을 미루었는가를 다시금 반성하게 된다. 그래서 큰 맘먹고 오랜만에 »

Java Heap Dump 분석하기

Spring으로 개발한 웹어플리케이션을 운영하다보면, 많은 트래픽으로 인해 또는 구현상의 버그로 인해(보통은 이 경우겠지만) Heap의 사용량이 순간적으로 증가할 수 있다. 이 경우 GC(Garbage Collection)가 »

원격 저장소에 올라간 커밋 되돌리기

Git으로 버젼 관리를 하며 개발하다보면, 작성한 커밋들을 되돌려서 다시 이전 상태로 원상복구하고 싶은 경우가 한번쯤 있을 것이다. 만약 로컬까지만 저장된 커밋인 경우는 $ git reset 명령어를 이용해 »