본문 바로가기

2022/128

Maven Standard Directory Layout과 plain jar, executable jar 이번 글에서는 간략하게 Maven Standard Directory Layout와 plain jar, executable jar에 대해 소개하려 합니다. Maven Standard Directory Layout 흔히 spring boot 프로젝트를 생성하면 아래와 같은 패키지 구조를 가지게 됩니다. > tree src src ├── main │ ├── java │ │ └── com │ │ └── kukim │ │ └── recipe │ │ └── RecipeApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── com └── kukim └── recipe └─.. 2022. 12. 28.
[간단 장애 회고] Redis + @Transactional (트랜잭션에서 Redis Get은 항상 null을 리턴한다. 트랜잭션 없는 상위 메서드에서 트랜잭션 있는 하위 메서드 호출은 에러다.) 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 사건의 개요 Spring Boot에서 @Transactional 어노테이션을 사용하여 Redis에 대해 트랜잭션을 사용했습니다. 하지만 문제가 발생했습니다. 하나의 트랜잭션에서 Redis Get와 Redis Set을 사용할 때 Redis Get가 조회되지 않고 항상 null을 발생시켰습니다. +a 배경지식 : Spring Data Redis + @Transactional Spring Boot에서 Redis 저장소를 사용합니다. 연결하기 위해서는 spring-boot-starter-data-redis 의존성을 사용합니다. 해당 의존성은 Redis Client인 lettuce 라이브러리를 사용합니다. JDBC나 JPA에서 사용하는 @Transactiona.. 2022. 12. 18.
RDB 동시성 문제를 해결하는 RDB Lock, Redis 활용방법과 의사결정 이 글은 최상용님의 '재고시스템으로 알아보는 동시성 이슈 해결방법' 인프런 강의 토대로 개인 생각을 덧붙여 작성되었습니다. (공유 허락 o) 원본 저장소는 이곳과 실습한 저장소는 이곳에서 확인하실 수 있습니다. 🙇‍♂️ 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 동시성 문제(이슈)란 여러 스레드/프로세스/서버가 동시에 같은(공유) 데이터를 변경하면서 발생하는 문제라고 볼 수 있습니다. 예를 들어 하나의 자바 프로세스가 있습니다. 여러 스레드가 동시에 하나의 필드를 수정할 때 동시성 문제가 발생할 수 있습니다. 또 다른 예로 선착순 100명에게 전달해주는 티켓이 있습니다. 이를 구현하는 Spring 서버 여러 대가 존재합니다. 100명 티켓 데이터가 DB에 저장되어 있을 때, 여러 서버가 동시에.. 2022. 12. 14.
레디스를 5가지 방법으로 설치/구축하기 : Terraform + AWS ElastiCache 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다. (1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform) 운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다. 글 목록 [Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers [Redis] 레디스를 5가지 방법으로 설치/구축하기 : .. 2022. 12. 10.
레디스를 5가지 방법으로 설치/구축하기 : AWS ElastiCache 잘못된 내용이나 의견 있다면 편하게 말씀해주세요.🙏🏻 개발/테스트 목적의 단일 노드 Redis(Remote Dictionary Server)를 구축하는 5가지 방법을 소개합니다. (1. 로컬, 2. docker-compose, 3. Embedded Redis, 4. Testcontainers, 5. AWS ElastiCache, Terraform) 운영 목적의 아키텍처(Replication, Sentinel, Cluster)는 아닙니다. 글 목록 [Redis] 레디스를 5가지 방법으로 설치/구축하기 : 로컬, docker-compose [Redis] 레디스를 5가지 방법으로 설치/구축하기 : Embedded Redis, Testcontainers 현재글 : [Redis] 레디스를 5가지 방법으로 설치/구.. 2022. 12. 9.