728x90
반응형

0+ 스프링/0+스프링 DB 5

[스프링 DB] MySQL의 트랜잭션 격리 수준(Transaction Isolation Level) 파헤치기

[DB] MySQL의 트랜잭션 격리 수준(Transaction Isolation Level) 파헤치기 모든 내용은 InnoDB를 기준으로 설명합니다.^^ 트랜잭션 격리 수준이란? 백엔드 개발자라면 트랜잭션 격리 수준(isolation level)이란 용어를 들어본 적이 있을 것 입니다. 그런데 트랜잭션 격리 수준 정확히 뭔가요? 🤔 트랜잭션 격리 수준이란 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수있게 허용할지 말지를 결정하는 것 입니다. 즉, 하나의 트랜잭션 내에서 또는 여러 트랜잭션 간의 작업 내용을 어떻게 공유하고 차단할 것인지 결정하는 것을 의미 합니다. 트랜잭션 격리 수준은 크게 4가지로 구분 됩니다. READ UNCOMMITTED RE..

[스프링 DB] 트랜잭션 전파(propagation)

[스프링 DB] 트랜잭션 전파(propagation) 트랜잭션 전파에 대해서 알기 전에, 먼저 트랜잭션에 대해서 간단하게 설명 하겠습니다.^^ 트랜잭션? 🤷‍♀️ 트랜잭션(Transaction)을 번역하면 “거래” 라는 의미 입니다. 데이터베이스에서 트랜잭션은 하나의 “거래”를 안전하게 처리하도록 보장해주는 것을 의미합니다. 다시 말하면 작업의 완전성을 보장해주는 것 입니다. 👍 참고 트랜잭션은 하나의 Connection을 가져와 사용하다가 닫는 사이에 발생합니다. 트랜잭션의 시작과 종료는 Connection객체를 통해 이뤄지기 때문입니다. 2023.07.06 - [0+ 스프링/0+스프링 DB] - [스프링 DB] 트랜잭션의 이해 [스프링 DB] 트랜잭션의 이해 [스프링 DB] 트랜잭션의 이해 개발을 하..

[스프링 DB] 데이터를 저장할 때 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유?

[스프링 DB] 데이터를 저장할 때 파일에 저장해도 되는데, 데이터베이스에 저장하는 이유? 개발을 하면 자연스럽게 데이터베이스와 연동하여 데이터를 저장, 수정, 삭제, 조회 합니다. 데이터를 저장할 때 파일에 저장해도 되는데, 데이터 베이스에 저장하는 이유가 무엇일까요? 🤔 가장 큰 이유는 바로 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문입니다.!!!!! 트랜잭션? 트랜잭션(Transaction)을 번역하면 “거래” 라는 의미 입니다. 데이터베이스에서 트랜잭션은 하나의 “거래”를 안전하게 처리하도록 보장해주는 것을 의미합니다. 다시 말하면 작업의 완전성을 보장해주는 것 입니다. 참고 트랜잭션은 하나의 Connection을 가져와 사용하다가 닫는 사이에 발생합니다. 트랜잭션의 시작과 종료는 Conne..

[스프링 DB] 커넥션 풀과 DataSource의 개념

[스프링 DB] 커넥션 풀과 DataSource의 개념 커넥션 요청 문제 우리가 개발한 애플리케이션이 DB와 통신하기 위해서는 커넥션이 필요합니다. JDBC를 사용하면 아래와 같은 흐름으로 커넥션을 획득합니다. JDBC가 제공하는 DriverManager는 라이브러리에 등록된 DB 드라이버들을 관리하고, 커넥션을 획득합니다. 문제 그런데 이와 같은 과정은 문제가 있습니다. 바로 커넥션을 매번 새롭게 만들어야하기 때문입니다. 커넥션을 새로 생성하는 과정은 생각보다 많은 리소스를 사용합니다. 커넥션 풀 이러한 문제를 해결하기 위해 나온 방법이 바로 커넥션 풀이라는 방법 입니다. 커넥션 풀 방법은 커넥션을 미리 생성해두고 필요할 때 꺼내서 사용하고 사용을 마친후 다시 커넥션 풀에 반납하는 방법 입니다. 커넥션..

[스프링 DB] JDBC의 개념

[스프링 DB] JDBC의 개념 JDBC 등장 이전 문제 인식 애플리케이션을 개발할 때 중요한 데이터는 대부분 데이터베이스에 보관합니다. 왜 데이터베이스에 보관할까요? 🤔 그 이유는 데이터베이스는 트랜잭션이라는 개념을 지원하기 때문입니다. App Server와 DB의 흐름 1. 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결 2. SQL 전달: App Server는 DB가 이해할 수 있는 SQL을 커넥션을 통해 DB에 전달 3. 결과 응답: DB는 전달받은 SQL을 실행하고 그 결과에 응답 고객사의 요청으로 DB를 MySQL에서 Oracle로 변경하게 된다면 어떻게 될까요?🤔 MySQL과 Oracle는 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답 받는 방법이 모두 다릅니다. 다..

728x90
반응형