코루틴 이해하기
코루틴은 Co + Routines의 합성어로 “여러개의 루틴이 함께 협력한다”라는 의미를 가진다. 지연과 재개를 할 수 있다는 특징과 비선점 멀티태스킹의 서브루틴 형태로 협력형 태스크와 비슷하게 동작한다.
코루틴은 Co + Routines의 합성어로 “여러개의 루틴이 함께 협력한다”라는 의미를 가진다. 지연과 재개를 할 수 있다는 특징과 비선점 멀티태스킹의 서브루틴 형태로 협력형 태스크와 비슷하게 동작한다.
Junit 4.4부터 assertThat
메서드가 추가됐다. 이 메서드는 hamcrest 라이브러리의 사용을 통합하며 assertions을 작성하는데 있어 더 나은 방법을 제공한다. hamcrest가 static 메서드로 제공하는 여러 matcher를 사용할 수 있고 이러한 static 메서드는 체이닝할 수 있어서 기존 assertXXX 메서드보다 더 많은 유연성을 제공한다. 그 외에도 assertThat을 사용했을 때 어떤 이점이 있는지 알아보자.
이전에 <Hash - MD5와 SHA256>에서 해시(Hash)에 대해 설명하며 암호화(Encryption)와 다른점에 대해 간략히 알아보았다.
이번에는 암호화에 대해서 조금 더 자세히 알아보자.
벌써 LINE에 입사한지 2년이 다 되어간다. 올해는 정말 시간이 어떻게 지나갔는지 모르겠다. 정신 차리고 보니 2020년이 코앞이다. 올해는 작년에 하지 못했던 회고를 해보려한다.
지난번에 Hash에 대한 내용을 살펴보았다. 이번에는 Hash의 개념을 이용한 HMAC에 대해서 알아보자.
지난번에 (Gradle dependency) api와 implementation 차이에 대해서 알아보았다.
애플리케이션에서 사용하는 라이브러리의 버전을 업데이트하거나 혹은 새로운 라이브러리를 추가하는 과정에서 종종 NoSuchMethodError을 마주하게 된다.
이번에는 NoSuchMethodErrors 대한 내용과 해결하는 방법에 대해서 알아보자.
Spring Boot를 사용하고 있는 애플리케이션에서 이전에 살펴본 Micrometer를 이용해서 metric을 생성하고 Prometheus를 이용해 수집, 그리고 Grafana로 시각화하는 시스템을 만들어보자.
micrometer.io에서는 Micrometer
에 대해서 다음과 같이 소개하고 있다.
Micrometer provides a simple
facade
over the instrumentationclients
for the most popularmonitoring systems
, allowing you to instrument yourJVM-based application
code without vendor lock-in. ThinkSLF4J
, but for metrics
Micrometer는 JVM 기반의 애플리케이션에서 다양한 모니터링 도구가 제공하는 클라이언트 라이브러리에 대한 facade를 제공한다. 로깅 관련된 시스템에서는 SLF4J가 있다면 모니터링(metric) 시스템에서는 Micrometer가 있는 것이다.
즉, 모니터링 시스템을 만드는 vendor들은 Micrometer 인터페이스를 따르기 때문에 Micrometer를 사용하면 애플리케이션 내의 코드 상에서는 모니터링 시스템 클라이언트로 어떤 것을 사용할지에 대한 고민에서 벗어나 Micrometer를 이용해 애플리케이션 metric을 수집하기만 하면 된다.
(모니터링 시스템을 선택하는 것은 런타임 시점에 정해진다고 생각하면 된다.)