상세 컨텐츠

본문 제목

230109 다중db 구현 / 트랜잭션(원자성의 오류)

카테고리 없음

by hunss 2023. 1. 9. 15:07

본문

다중db의 필요성

서비스의 데이터를 분산하는 작업을 할 때 선택사항

1. MSA(Micro Soft Arhitecture)

하나의 거대한 서비스를 일정한 기준으로 쪼갠 여러 stand-alone 서비스로 구동하여 각 애플리케이션의 복잡도와 이들간의 결합도를 낮춤으로써 전체 시스템을 좀 더 생산적으로 개발하고 운영하기 위함.

--> 할 일이 많아지고 고민해야 할 부분이 많아진다. 단순히 개발 및 운영 생산성이 향상되는 건 아님.

문제점 : 트랜잭션, 쿼리, 테스트 등 쿼리의 경우 모놀리식 애플리케이션에서는 보통 모든 데이터가 하나의 DB에 저장되기 때문에 여러 데이터를 조인해야하는 경우 조인 쿼리로 쉽게 할 수 있는데 MSA의 경우 데이터가 서로 다른 DB에 저장되므로 조인쿼리를 못함. 

2. DB분산 작업

아 근데 시도해보려고 하는데 아직 이해가 잘 안된다.

DB를 분산한다는게(나는 sqlite를 쓰니까) sqlite가 2개 생성된다는건가?

1번 db에 a,b 테이블 넣고 2번 db에 c테이블 넣고 이런건가?

아니면

1번 db에 a,b,c테이블 2번 db에 a,b,c테이블 이건가?

으.... 좀 더 고민해봐야겠다....


트랜잭션에서 원자성의 오류에 대해서 생각해봤는데

예시로 보면 회원가입을 할 때, 실제로는 회원가입은 안됐는데 db에는 들어가는 경우?

최종프로젝트에 대입해보면 이메일전송이 실패해서 회원가입이 안되야하는데 db에 이메일,닉네임이 들어가는 경우가 있었음. 이런게 원자성의 오류인 것 같다.


실친들이랑 토이프로젝트 진행을 본격적으로 시작했다.

프로젝트 기획은 내가 최종프로젝트 하는동안 진행됐는데, 나는 도저히 투자할 시간이 없었어서 이제 시작을 함.

퀴즈푸는 사이트만드는 프로젝트인데

지금까지는 내가 기획에도 참여해서 어떤 프로젝트이고 어떻게 만들어야할지 구상하면서 기획했기 때문에 모델링이나 api만들기 편했는데

다른사람이 만든걸로 api만들려니까 뭔가 잘 안그려진다.

이것도 나름 새로운 경험이라고 시행착오중인갑다