개발/DB (3) 썸네일형 리스트형 트랜잭션 격리수준(Isolation Level) (MySQL) 배경지난 글에서 Lock에 대해 알아보았습니다. 그 글에서 Lock은 트랜잭션 격리수준을 구현하는 방법중 하나라고 했습니다. 그럼 트랜잭션 격리수준은 뭘까요? 이에 대해 알아봅시다 내용[ Transaction ]먼저 Transaction에 대해 알아보죠. 왜 트랜잭션을 쓸까요? 우리는 DB 데이터를 수정하고 조회하는 일을 빈번하게 하고 있습니다. 도중에 예외가 발생하게 되면 이전이 상태로 되돌아가야 하는데 이렇게 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션입니다. 또한 트랜잭션은 더이상 쪼갤 수 없는 최소 작업단위를 의미합니다. 보통 commit과 rollback으로 관리가 되어지죠. 이런 트랜잭션을 쓰는 가장 큰 이유 중 하나는 돈과 관련된 문제가 크기 때문입.. Lock 배경모놀리식으로 개발을 해왔었고, 혼자 테스트를 할 때도 postman을 통해 간단히만 했었습니다. 하지만 앞으로 다닐 회사에서는 서비스에 크든 여러 요청이 들어올 것이고 수정, 삭제가 빈번하게 일어난다면 대체 어떻게 client에게 신뢰성있고 일된 data를 넘겨주게 될까? 의문이 들었습니다. 예를 들어서 DB에 특정 data를 수정하는 API가 들어가서 수정하는 도중에 있는데 또다시 같은 data를 수정하는 API가 들어오게 된다면? 수정하는 도중에 조회 API가 들어오게 된다면? 등등에 관해 의문점이 들어서 이러한 것들은 개발자들이 어떻게 해결할까 구글링을 해보았습니다. 이러한 문제의 보편적인 해결방법이 Lock이라는 사실을 알게 되었습니다. 내용Lock이란? 앞서 말씀드렸듯이, 특정 resourc.. DB 인덱싱 배경Spring boot에서 eneity를 db에 table로 저장하려면 Id가 필수로 포함되어야합니다. 이 Id를 통해 검색을 하게 되면, 다른 속성들에 비해 성능이 잘 나온다는 것은 알고 있었죠. 그런데 꼭 Id로만 검색을 해야 성능이 나오려나? 다른 방법은 없을까? 라는 생각을 하며 구글링과 GPT를 이용해보니 DB인덱싱이라는 것을 알게 되었습니다. 내용DB Index?index 뭘까요? 사전 정의로 보면 목록입니다. 목차를 보지 않고 두꺼운 책에서 특정 내용을 찾으려면 어떻게 해야될까요? 첫 페이지부터 하나하나 보면서 모든 내용을 보고 찾아야 할 것입니다. 너무 비효율적이죠. 하지만 목차를 이용하면 우리는 빠르게 어디에 내용이 있는지 알고 해당 내용을 볼 수 있습니다. 이러한 개념을 DB에도 적용.. 이전 1 다음