전체 글
-
동시성이 터졌다.스파르타 심화/MSA 개인프로젝트 2024. 12. 14. 16:10
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.sparta.msa_exam.order.entity.Order#2] 아주 멋진 에러가 터졌다.another transaction 바로 동시성 문제 바로 낙관적 락을 걸어주었다.jpa: properties: hibernate: use_version_always: true 엔티티엔@Version 추가 Detached entity with generated id '2' has an uninitialized version value 'null': com.sparta.msa_exam.orde..
-
프로젝트 시작 - 대략적인 구상스파르타 심화/MSA 개인프로젝트 2024. 11. 30. 18:17
문서로 제공된 요구사항 외에 내가 어떻게 구현해야할지에 대해 며칠을 고민했다. 거의 3일을 어떻게 해야할지에 대해 고민만 한 것 같다. 먼저 DB에 대한 고민 DB 분리 스키마 vs 테이블MSA 환경에서 데이터베이스를 어떻게 할 지 고민 도커컴포즈로 mysql과 레디스를 묶어 사용하려 했다. 이 경우 레디스는 key-space를 도메인 별로 나누면 된다. 하지만 mysql은 각 도메인마다 독립적like-it-too.tistory.com어떻게 해야할지에 대해 고민했던 것 같다. 깃허브 레포 관리에 대한 고민 마이크로서비스 깃허브 관리방식MSA 프로젝트를 하며 깃허브 레포지토리를 어떻게 관리해야할지많은 고민이 생겨 이것저것 알아보았다. 깃허브 관리 방식에는 3가지를 찾을 수 있었다. 1. 모노레포 (M..
-
매우 화나는 깃 - 하위 모듈 push rejected 해결?오늘/Error 2024. 11. 29. 20:39
결과 스포 프로젝트 전체 삭제 후 다시 만듦 하면 안되는 행동 목록 1. 모듈 remote 금지처음엔 main -> 이곳이 비어있어서 remote해줬는데 절대 이러면 안된다. 루트디렉토리만 push가 되고 하위 모듈들은 푸시를 거절당하게 된다. 나처럼 이런 실수를 저질렀다면 위와 같이 해당 디렉토리로 이동해 명령어를 실행하면된다.인텔리제이 파워쉘 명령어이기 때문에 본인의 설정에 맞춰 진행하면 된다.아무것도 안뜨면 성공한 것이다. Get 하기 귀찮으면 폴더에서 .git 파일을 찾아보면 된다. 그 다음으로 진행한 해결방식들 대체 왜..rebase로 양쪽을 맞춰보기도 했지만 결과는 같았다.여전히 커밋만 되고 깃허브에 푸시는 안되는 상태 git status로 상태를 보니 order와..
-
DB 분리 스키마 vs 테이블프로그래밍/MSA 2024. 11. 28. 16:53
MSA 환경에서 데이터베이스를 어떻게 할 지 고민 도커컴포즈로 mysql과 레디스를 묶어 사용하려 했다. 이 경우 레디스는 key-space를 도메인 별로 나누면 된다. 하지만 mysql은 각 도메인마다 독립적인 데이터베이스를 가져야하는데 어떻게 구현해야하나 고민이 되었다. 방식은 두가지가 있다. 1. 각 도메인이 다른 스키마를 사용2. 같은 스키마를 공유하되, 도메인 별로 테이블을 분리 1. 각 도메인이 다른 스키마를 사용Order는 order_db, Product는 product_db, Auth는 auth_db 로 스키마를 분리할 수 있다. 이 경우 각 도메인은 url이 분리되어 각자 독립적인 db를 보유한 것처럼 사용할 수 있다.jdbc:mysql://mysql:3306/product_db..
-
마이크로서비스 깃허브 관리방식프로그래밍/MSA 2024. 11. 28. 02:18
MSA 프로젝트를 하며 깃허브 레포지토리를 어떻게 관리해야할지많은 고민이 생겨 이것저것 알아보았다. 깃허브 관리 방식에는 3가지를 찾을 수 있었다. 1. 모노레포 (Monorepo)2. 서브모듈 (Submodule)3. 다중 레포지토리 (Multi-repo) 각 방식에 대해 간략히 설명해보자면 1. 모노레포 (Monorepo)모노레포란 하나의 깃 레포지토리에서 여러 프로젝트 또는 서비스를 통합 관리하는 방식모든 서비스와 코드를 하나의 레포지토리에서 관리하는 것이 특징 장점1. CICD 파이프라인 설정과 코드 공유가 쉽다.2. 서비스 간 의존성 문제를 해결하기 쉽다.3. 같은 레포지토리에서 작업하므로 변경사항 추적이 쉬우며, 협업이 쉽다.4. 관련된 모든 변경사항을 한번의 커밋으로 관리할 수 있기 때문에 ..