Spring AOP로 분산락을 정의해놓고 분산락이 필요한 곳에 어노테이션으로 가져다 쓰면 매우 편리하다. 분산 락(Distributed Lock)은 여러 서비스나 여러 인스턴스가 동시에 같은 리소스(예: 데이터베이스)에 접근하려 할 때 동시성 문제를 해결하기 위해 사
Redis 는 인메모리 데이터 저장소로, 데이터를 메모리에 저장하여 빠른 읽기 및 쓰기 작업을 지원한다. 이는 디스크 기반의 데이터베이스 시스템과는 달리, 데이터를 메모리에 유지함으로써 빠른 응답 시간과 높은 처리량을 제공한다.성능 : Redis는 메모리 기반의 데이터
관련 글을 먼저 읽어서 예외를 이해하고 진행하자자바 예외 이해API 예외 처리전역 예외 처리 : @RestControllerAdvice는 애플리케이션에서 발생하는 모든 예외를 전역적으로 처리할 수 있다. 즉, 모든 컨트롤러에서 발생하는 예외를 일괄적으로 처리할 수 있으
Spring Boot에서 MVC 패턴을 사용한 백엔드 프로젝트 테스트 1. 단위 테스트 Controller 단위 테스트 @WebMvcTest 애노테이션을 사용하여 컨트롤러를 격리된 환경에서 테스트합니다. 이 경우, @WebMvcTest는 웹 계층에 관련된 빈들만
우선 RestTemplate 와 WebClient 에 대해 알기 전에 동기와 비동기, 그리고 블러과 넌블럭에 대해 간략하게 알아보자. 동기와 비동기, 그리고 블럭과 넌블럭 위의 블로그에서 들었던 간단한 예시가 이해하기에 가장 쉬웠던 것 같다. Blocking &
현재 아키텍처에서는 쿠버네티스에 ArgoCD를 통해 Spring 프로젝트와 Redis가 같은 컨테이너 상에 위치하도록 배포하고 있다.이를 위해서는 배포하는 .yaml 파일에 같은 컨테이너 상에 위치하도록 하여 배포하면 된다.위의 survey-back 서비스의 repli
현재 모든 엔티티 연관 관계 매핑에서 fetch = FetchType.LAZY 로 설정해 놓았다.survey_document(OneToOne) Design(OneToOne) DateManagement(OneToMany) question_document(OneToMany
객체 지향 프로그래밍(OOP) 원칙을 적용하여 Repository 에서 가져온 Entity를 Dto 변환하여 반환하는 방법에 대해 소개하고자 한다.다음은 Service 코드 중 Choice라는 선택지를 ChoiceDto로 변환하는 코드이다.위의 데이터 변환 로직(Cho
\[Spring] 객체 지향적으로 DTO 변환하기 (1) 글에서 이어지는 내용입니다.그 전의 글에서는 DTO 에 변환 로직을 추가해 서비스 코드에서 변환 로직을 제거할 수 있었다. 하지만 이는 DTO 가 Entity 를 의존하는 문제가 발생한다. 객체 지향 프로그래밍의
김영한님의 자바 강의 중 다형성과 설계 부분을 듣고 옛날에 진행했던 프로젝트의 OAuthService 코드가 떠올랐다. OAuthService 에 현재 kakao google git 에 대한 코드가 작성되어 있는데, 나중에 네이버나 다른 OAuth 서비스가 추가될 수
인터셉터가 개발자가 사용하기 더 편하고 제공하는 기능이 더 많으며 인터셉터를 사용하면 Spring AOP 를 사용해서 JWT 인증을 어노테이션으로 관심사 분리를 할 수 있기 때문에 인터셉터를 활용하여 JWT 인증을 하는게 좋다고 생각할 수 있다. 하지만 여기에는 함정이
깃허브 프로필을 꾸미다가 백준 티어는 뱃지가 있는데 프로그래머스는 없어서 아쉬웠다. 그러던 중 https://github.com/libtv/github-programmers-rank 의 레포를 발견하고 코드 분석 후 자바로 언어를 변경하여 뱃지 생성 프로젝트를
Spring MVC와 Spring Boot 프레임워크에서 데이터와 뷰를 관리하는 방법에는 여러 가지가 있습니다. 그 중에서도 ModelAndView와 Model은 가장 많이 사용되는 두 가지 방법입니다. 하지만 많은 개발자들이 ModelAndView를 사용하면서 의도치