AtomicReferenceFieldUpdater 사용하기

Armeria 내부 구현을 보면 아래와 같은 코드를 심심찮게 볼 수 있다. public class DefaultStreamMessage<T> extends AbstractStreamMessageAndWriter<T> { private static final AtomicReferenceFieldUpdater& »

RxJava의 subscribeOn와 observeOn (2)

이전 글 에서 RxJava의 subscribeOn(), observeOn()의 내부 구현을 한번 살펴보며 쓰레드의 동작에 대해 정리해보았다. 이번 글에서는 로그를 남겨보며 이 실제 동작을 한번 살펴 볼것이다. Rxjava2 »

RxJava의 subscribeOn와 observeOn (1)

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

Redis Sorted Set

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

Armeria의 Circuit breaker 사용해보기

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

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

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

ghost 로그인 시 SQLITE_FULL 에러

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