DB&JPA5 [MySQL] 트랜잭션 격리수준 1. 트랜잭션 격리수준(Isolation Level)트랜잭션은 각각의 세션에서 시작한 트랜잭션끼리 영향을 주지 않고, 영향을 받지 않는 독립성을 보장해야 합니다.이러한 성질을 트랜잭션의 독립성(isolation) 이라고 하며, 그 독립을 제어하는 정도를 트랜잭션 격리수준 이라고 합니다.일반적으로 사용되는 DBMS 들은 기본적으로 4단계의 격리수준을 지원하는데, 오늘은 이 격리수준에 대해 한 번 알아보겠습니다. 2. 4단계의 격리수준MySQL 을 비롯한 많은 DBMS에서 아래와 같은 4가지의 격리수준을 지원합니다.READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE위에서 아래로 내려갈 수 록, 격리수준이 엄격해지며 그에 따른 DBMS 성.. 2024. 3. 7. [MySQL] 계정 생성 및 권한 부여, 그리고 역할 본 포스팅은 MySQL 8.0 기준으로 작성된 글입니다. 출처 : Real MySQL 8.0 (저자. 백은빈, 이성욱) 1. MySQL 이 계정을 다루는 방법 MySQL 에서는 계정을 아래와 같은 형태로 관리합니다. 'blog_user'@'localhost' @를 기준으로 앞에 'blog_user' 는 DB에 접속하기 위한 ID, 뒤에 'localhost' 는 DB에 접속 가능한 IP 혹은 도메인 정보가 들어가게 됩니다. 즉, 위 계정이 의미하는 것은 "blog_user 라는 ID 로 localhost 에서 접속이 가능한 계정" 라고 할 수 있겠습니다. -- 계정 예시 -- 1. localhost 에서 접속 가능한 blog_user 'blog_user'@'localhost' -- 2. 모든 IP 에서 접.. 2024. 2. 6. [JPA] JPA 쿼리 로그 및 파라미터 바인딩 확인하기 (SpringBoot3 버전) JPA 를 공부하면, 아래와 같은 설정을 많이 보게됩니다. 아래 설정은 JPA 에서 실행하는 쿼리를 IDE console 창에 출력해서 쿼리를 확인하기 위해 사용합니다. # application.yml spring: jpa: show-sql: true properties: hibernate: format_sql: true use_sql_comments: true logging: level: org.hibernate.type: trace 위 처럼 application.yml(혹은 application.properties) 를 적용하면, 아래처럼 JPA 에서 발생하는 쿼리와 파라미터를 볼 수 있습니다. 그런데.... 당연히 이렇게 알고... 새로운 프로젝트에 동일하게 세팅했음에도.... 파라미터 바인딩 로그.. 2023. 7. 8. [JPA] @AttributeOverrides 와 @Embedded 로 간결한 도메인 객체 만들기 1. 너무 많은 필드를 보유한 도메인 객체 사이드 프로젝트로 쇼핑몰을 개발하던 중, 사용자 정보를 가지는 도메인 객체에 필드가 아래와 같이 많아졌습니다. @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(length = 20, nullable = false) private String userName; @Column(length = 30, unique = true, nullable = false) private Str.. 2023. 7. 6. [QueryDSL] SpringBoot3 버전 QueryDSL 설정하기 JPA 혹은 Spring Data JPA 를 사용해서 프로젝트를 진행하다 보면, 특정 경우에서 오는 불편함을 지울 수 없습니다. 예를 들면, 검색쿼리 같이 조건문이 여러 조합으로 되는 경우나, Entity 를 조회하는 것이 아닌 DTO를 조회하는 경우 등과 같은 경우가 있습니다. 이런 단점을 보완하기 위해, JPA를 사용하는 곳에선 QueryDSL 을 같이 사용하는 곳이 많다고 합니다. 저 또한, QueryDSL 을 사용하면서 사이드 프로젝트를 진행하는데, 설정방법을 매번 찾아보기 번거로워 블로깅해봅니다. 0. 구성환경 QueryDSL 에서는 maven 에 대한 가이드는 제공하면서... gradle에 대한 가이드는 제공해주지 않습니다... (이유는 모르겠슴돠...ㅠ 아시는 분 댓글 부탁드려용 ㅎ) 그래서.. 2023. 6. 30. 이전 1 다음