전체 글

전체 글

    [Spring] gRPC 사용법

    깃헙에 코드가 있습니다.gRPC란?gRPC는 구글에서 만든 원격 프로시저 호출(RPC) 기술입니다.RPC는 원격 위치에 있는 서버에서 함수를 직접 실행하는 방식으로, 클라이언트가 서버의 함수를 마치 로컬 함수처럼 호출할 수 있게 해줍니다.gRPC는 저지연성을 위해 HTTP/2 위에서 동작하며, 주로 클라이언트 - 서버 간의 요청-응답을 처리하는데 사용됩니다.그러나 여기서 말하는 클라이언트-서버는 React와 Spring Boot처럼 웹 프론트엔드와 백엔드를 의미하는 것이 아니라, 마이크로서비스 아키텍처(MSA) 환경에서 분산된 시스템 간의 통신을 의미합니다.gRPC는 데이터가 바이너리 형식으로 처리되기 때문에, 사람이 읽기 어렵고 개발자가 아닌 일반 사용자와의 상호작용에는 적합하지 않습니다. 요약하자면 ..

    인간 실격 - 다자이 오사무

    작가의 삶다자이 오사무의 인간 실격을 읽었다.다자이 오사무는 39살이라는 짧은 나이를 살면서 자살 시도를 5번을 하고 1948년, 결국에 성공했다.살아있는 동안 모든 것이 고통과 인내의 연속이었다. 행복이라는 감정은 불투명하고 그 행복 또한 대부분은 자신과 처지가 비슷한 누군가를 보며 연민하며 생기는 행복이었던 것 같다.그것을 알 수 있는 이유는 인간 실격에 나오는 주인공은 작가의 삶을 투영한 것이기 때문이다.작가는 일본의 전쟁 패배로 인한 암흑기를 살았던 남자다.그로 인해 겪었던 생애의 지옥과 같은 삶들을 써 내려간 책이 바로 이 책이다.美의 정의인간 실격이라는 제목 그대로 사회적인 인간으로는 볼 수 없을 만큼 최악인 남자가 등장한다.아마 대부분 많은 사람들이 책의 시작부터 불쾌감을 느낄 수도 있다.사..

    [Java] JMH(Java Microbenchmark Harness)를 이용한 성능 테스트

    개요테스트 소스는 깃헙에 있습니다.JMH(Java Microbenchmarking Harness)는 Java 애플리케이션에서 작은 코드 조각, 즉 "마이크로벤치마크"의 성능을 정확하고 신뢰성 있게 측정할 수 있습니다. 예를 들어 문자열을 +로 결합하는 방식과 StringBuilder의 속도 차이 등을 벤치마크 해볼 수 있습니다.그 외에도 synchronized, Lambda와 반복문. hashCode() & equals(), 배열 처리 방식(병렬, 순차), 기본 타입과 객체 타입 간 변환 성능 차이 등 작은 코드 조각에 대한 성능을 확인해볼 수 있습니다.요즘에는 컴퓨터 성능이 다 좋아서 웬만하면 신경을 쓰지 않아도 된다고 주장하는 경우도 있습니다.하지만 클라우드 환경에 대한 성능을 최소한으로 사용해서 비..

    [Kafka] Kafka Streams 사용법

    개요Kafka Streams를 사용하면 특정 시간동안 Kafka에 인입되는 데이터를 집계해서 통계치를 추출할 수 있습니다.토픽에 있는 데이터를 빠른 속도로 실시간으로 변환하여 다른 토픽에 적재할 수 있는 것이 기본 동작 방식입니다.아래 예제 코드는 깃헙에 올려놨습니다.기본 코드아래는 /a라는 메소드 요청에 대해 시간 별로 요청 건 수를 통계화해서 /b로 확인하는 코드입니다.결과만 보면 /a라는 메소드는 14시에 2번, 15시에 4번 이용했다는 의미가 됩니다.@RestController@RequestMapping("/api")@RequiredArgsConstructorpublic class ApiController { private final ApiService apiService; @PostM..