Home
Jack's Blog
Cancel

2024 스프링 캠프 후기

2024 스프링캠프를 다녀왔습니다. 만족스러운 세션도 있고 조금은 아쉬운 세션도 있었습니다. 청강했던 세션에서 나온 주제에 대해서 적어봤습니다. [동시성의 미래 - 코루틴의 버츄얼 스레드] [Spring AI - LLM에도 봄이 찾아오다.] 동시성의 미래 - 코루틴의 버츄얼 스레드 코루틴 원리: 코루틴은 함수의 실행을 일시 중단하고 ...

Spring Boot 어플리케이션 부팅 시 K8s 쓰로틀링과 JVM 워밍업의 중요성

Spring Boot 어플리케이션 부팅 시 K8s 쓰로틀링과 JVM 워밍업의 중요성 Spring Boot 어플리케이션을 Kubernetes(K8s) 환경에서 운영할 때, 특히 어플리케이션이 크고 복잡할 경우 초기 부팅 시 CPU 성능 저하 문제를 경험할 수 있습니다. 이는 K8s의 리소스 제한 및 JVM의 워밍업(warm-up) 과정과 관련이 있습니...

HibernateCursorItemReader 사용 시 Out of Memory 발생 이유 및 해결 방법

HibernateCursorItemReader 사용 시 Out of Memory 발생 이유 및 해결 방법 Spring Batch에서 대용량 데이터를 처리할 때, HibernateCursorItemReader는 메모리 효율성을 높이기 위한 강력한 도구입니다. 그러나 올바르게 설정되지 않으면 OutOfMemoryError가 발생할 수 있습니다. 이번 글...

Spring Data JPA 페이징 시 OFFSET으로 인한 성능 저하와 해결법

Spring Data JPA를 사용할 때 페이징은 매우 유용한 기술입니다. 하지만 대규모 데이터셋에서는 쿼리 내 OFFSET으로 인해 성능 저하를 유발할 수 있습니다. OFFSET으로 인한 성능 저하의 원인과 이를 해결하는 방법에 대해 알아보겠습니다. 문제 발생 원인 페이징을 구현하기 위해 Spring Data JPA는 보통 findAll(Pa...

코루틴의 수신객체

코루틴의 수신 객체 이해하기 코루틴을 사용하다 보면 수신 객체라는 개념이 등장합니다. 코틀린에 익숙하지 않은 경우, 수신 객체가 어떻게 동작하는지 헷갈릴 수 있습니다. 특히 코루틴을 공부할 때 람다식과 수신 객체에 대한 이해가 중요합니다. 수신 객체란? 수신 객체(receiver object)는 특정 객체의 컨텍스트에서 함수가 호출되는 것을 ...

80포트 번호는 1개 인데 서버가 여러 요청을 받을 수 있는 이유

HTTP 프로토콜을 이용해 웹 통신을 할 때 포트번호는 80으로 정해져있다. 그렇다면 서버는 여러 개의 웹 요청을 받을텐데 그 때마다 각 클라이언트의 소켓을 어떻게 구분할 수 있을까? 서버는 각 클라이언트와 연결된 소켓을 식별하기 위해서 아래 4가지 정보를 기록한다. 서버 IP 서버 포트 클라이언트 IP 클라이언트 포트 만약 가...

Spring WebClient 사용 시 uri tag가 none으로 나올 때

Spring boot를 3.x.x 버전이고 Spring WebClient을 사용할 때 이슈이다. uri을 람다식 내 uriBuilder에서 셋팅해서 사용할 경우 uri tag가 none으로 찍히는 이슈가 발생한다. 이렇게 변경된 사유는 버전업을 하면서 query param에 따라서 나눠지는 모든 uri이 찍히는 이슈를 해결하기 위함이라고 한다. 버...

API문서의 가독성과 파편화

API 문서는 가독성이 좋아야 하며 파편화는 피하자는 생각이 최근에 들었고 관련해 적어본 글이다. 정보를 제공하는 모든 문서는 독자의 추가적인 의문을 적게 만들어야 한다. 만약 A 서비스를 연동하기 위해 A 서비스의 API 문서를 본다고 하자. 요청 파라미터, 응답 바디, 에러메세지 등이 어떠한지 충분할 설명이 있다면 추가적인 소통없이 연동을 진행...

멱등 API는 왜 필요할까

이번 프로젝트를 진행하면서 멱등 API에 대해서 고민했다. 멱등성이란 동일한 연산이 여러번 수행되도 결과가 항상 같은 것을 의미한다. 예를 들면 절대값 함수가 있다. abs(abs(3))처럼 abs() 연산을 여러번해도 값은 3으로 동일하다. 그렇다면 멱등 API의 의미는 무엇일까. 동일한 request-key를 가진 요청이 여러번 호출되더라도 로...

글을 쓴다는 것

오랜만에 적어본다. 글은 쓰는 맛이 있어야 계속 쓰는 것 같다. 어떤 일이든 그렇겠지만 재미있다면 그보다 강력한 동기는 없다. 안 쓰다보니 계속 안 쓰게 된다. 그래서 한 문장이라도 남겨 보고 싶어 다시 적어본다. 개발자로 일하며 드는 생각이나, 삶을 살아가며 떠오르는 생각들 조금씩 다시 적어보자.

Trending Tags