Spring 강의/DB 4

[스프링 DB 1편] - (3) 트랜잭션

[트랜잭션] - 두개가 모두 성공해야 성공, 한번에 커밋& 롤백 원자성: 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패 일관성: 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지 격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준 (Isolation level)을 선택 지속성: 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구 [DB연결 구조와 세션] [트랜잭션 사용] 데이터 변경 쿼리를 실행하고 데이터베이스에..

Spring 강의/DB 2022.04.20

[스프링 DB 1편] - (2) 커넥션풀과 데이터소스

[커넥션 풀] 1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회(getConnection() ) 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결. 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달. 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성. 5. DB는 커넥션 생성이 완료되었다는 응답을 보냄. 6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환. 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 많이 소모. DB는 물론이고 애플리케이션 서버에서도 TCP/IP 커넥션을 새로 생성하기 위한 리소스를 ..

Spring 강의/DB 2022.04.20

[스프링 DB 1편] - (1) JDBC 이해

1. 커넥션 연결: 애플리케이션 서버가 db에 주로 TCP/IP를 사용해서 커넥션을 연결 2. SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달 3. 결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답하고 애플리케이션 서버는 응답 결과를 활용 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 그리고 결과를 응답 받는 방법이 모두 다름!! 1. db를 다른 종류의 db로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야됨 2. 개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달과 그 결과를 응답 받는 방법을 새로 학습해야됨 그래서 JDBC라는 자바 표준이 등장!! [JDBC 표준 인터페..

Spring 강의/DB 2022.04.18
1