목록Tech/Spring (42)
우당탕탕
처음에 Spring WebFlux를 도입했을 때 정말 삽질을 많이 했어요. 문서 읽을 때는 ‘리액티브로 하면 좋다더라’ 정도만 알았는데, 직접 코드를 짜면서 막히고 에러 뜨고, 개념이 헷갈려서 몇 번을 다시 고치고 다시 했거든요. 특히 Flux와 Mono, 그리고 스케줄러 개념이 제대로 머리에 잡히질 않아서 시간을 엄청 썼죠.이 글에서는 제가 실제로 코딩하면서 마주쳤던 헷갈림, 실수 사례들을 중심으로 어떻게 해결했는지 상세히 공유할게요. 그래서 WebFlux 처음 도입하는 분들이 저처럼 삽질하지 않도록 도와드리고 싶었어요.개발 환경 / 버전 정보저는 Java 17에 Spring Boot 3.1.3 버전으로 작업했어요. 리액티브 스택을 완벽히 지원하는 버전이고, Reactor 3.x가 내장되어 있습니다.S..
저도 처음엔 Spring Cloud Gateway라는 용어부터 생소했어요. 사실, API 게이트웨이라는 개념도 뭐가 뭔지 감이 잘 안 왔거든요. 그런데 회사 프로젝트에 이걸 도입하면서 라우팅 관련해서 여러 문제가 생기고, 직접 부딪혀서 해결하는 과정에서 알게 된 내용을 정리해 봤습니다.이 글에서는 초보자 입장에서 Spring Cloud Gateway가 뭔지, 왜 쓰는지부터 시작해서, 제가 개발하면서 겪었던 라우팅 이슈들, 그리고 그 해결법을 사례 위주로 풀어갈게요. 코드 예시도 한 점씩 넣어서 이해하는 데 도움되도록 최대한 쉽게 썼습니다.Spring Cloud Gateway와 API 게이트웨이, 이게 뭔데요?사실 이 부분이 처음 접하는 분들한테 가장 헷갈리는 개념인 것 같아요. 간단히 말하면, API 게..
JPA Auditing 기능을 도입해서 엔티티의 생성 시간과 수정 시간을 자동으로 기록하는 작업을 했는데요, 이걸 구현하다 생각보다 삽질을 많이 했어요. 특히 비용 면에서 어떤 차이가 나는지 파악하는 게 꽤 중요해서 실제로 비슷한 기능을 직접 만들어본 경험과 비교하면서 작성하게 됐습니다.이 글에서는 JPA Auditing 기본 설정부터, 자동화 과정에서 발생한 구체적인 비용 차이 비교, 그리고 제가 직접 겪은 문제와 해결법까지 모두 담았어요. 숫자와 표로도 비교해서 '이게 과연 비용 절감에 얼마나 도움이 될까?' 하는 의문을 확실히 풀어드릴게요.개발 환경 / 버전 정보이번 프로젝트는 Java 17, Spring Boot 3.2 기반이에요. JPA는 Hibernate 6를 사용했고, MySQL 8.x 버전..
JPA로 개발하면서 가장 골치 아팠던 게 바로 N+1 문제이번 글에서는 제가 직접 겪은 JPA N+1 문제의 발생 상황부터, 문제 진단 방법, 그리고 단계별 해결 절차를 아주 상세하게 풀어봤어요. 코드를 중심으로 꼭 따라 할 수 있게 안내할게요.개발 환경 / 버전 정보저는 Java 17 기반으로 개발했고, Spring Boot 3.1 버전을 사용했습니다. JPA는 기본적으로 hibernate-core 6.x 버전을 이용했고요. 데이터베이스는 MySQL 8입니다.N+1 문제 실제 발생 상황과 처음 진단한 방법사실 이 부분이 가장 골치 아팠어요. 간단한 게시판 프로젝트를 만들었는데, 게시글 목록을 띄우는 화면에서 유독 페이지 로딩이 느린 거예요. 원인을 찾아보니 쿼리 로그가 정말 많더라고요.우선 applic..
Spring Boot에서 Validation 커스텀 어노테이션을 직접 만들어야 하는 상황이었는데요. 특히 가격이나 비용, 요금 같은 숫자 데이터를 비교해서 유효성을 검사하는 부분에서 꽤 삽질을 많이 했어요. 처음에는 단순히 @Min, @Max 같은 기본 어노테이션을 쓰려고 했는데 조건이 복잡해지면서 커스텀이 필요하더라고요.이 글에서는 제가 직접 구현한 커스텀 Validation 어노테이션과 그 과정에서 겪은 문제, 그리고 숫자 비교를 위한 전략과 비용 차이를 표로 비교한 내용을 담았어요. 같이 보면서 어떻게 하면 숫자 데이터 검증을 효과적으로 할 수 있을지 감 잡으실 수 있을 거예요.개발 환경 / 버전 정보이번 프로젝트는 Java 17과 Spring Boot 3.2를 사용했어요. Validation 라이..
직장 동료가 Spring Batch를 써서 대용량 데이터를 처리하는 걸 보고 저도 도전해봤는데요. 생각보다 간단할 줄 알았는데 비용 비교 같은 숫자 처리에서 여러 시행착오가 있었어요. 특히 가격이나 요금, 한도 같은 숫자 값을 다룰 때 미묘한 오차나 비교 문제 때문에 코드가 꼬이는 경우가 많더라고요.이 글에서는 제가 직접 Spring Batch를 세팅하고, 숫자 비교에서 발생한 문제와 그 해결법을 상세하게 정리했어요. 덕분에 여러분도 저처럼 헤매지 않고 비용/가격 관련 배치 작업을 빠르게 완성할 수 있을 거예요.개발 환경 / 버전 정보제가 사용한 환경은 다음과 같아요. Spring Batch 5.0.0 버전부터 바뀐 부분도 있었고, Java 17 기반이라 최신 기능도 써봤습니다.Java 17Spring ..
