일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dirty check
- JDK
- mybatis
- Entity
- ManyToMany
- 다중 데이타소스
- openjdk
- exit code
- Multi Transaction
- docker
- SpringBoot
- MaxRAMPercentage
- ManyToOne
- JPA
- SpringBoot 2.0
- 변경 감지
- OneToOne
- 트랜잭션 쓰기 지연
- OneToMany
- 다중 트랜잭션
- 활성프로브
- Design Pattern
- 영속화
- 종료코드
- OracleJDK
- K8s
- 디자인 패턴
- Multi Datasource
- Java
- chroot exit code
- Today
- Total
목록개발 (21)
조금 평범한 개발 이야기
@Entity @Entity 어노테이션은 데이타베이스의 테이블과 일대일로 매칭되는 객체 단위이며 Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미합니다. 그래서 객체의 인스턴스를 구분하기 위한 유일한 키값을 가지는데 이것은 테이블 상의 Primary Key 와 같은 의미를 가지며 @Id 어노테이션으로 표기 됩니다. 먼저 Spring Boot 를 설정할때 spring.jpa.hibernate.ddl-auto 설정이 create 혹은 update 로 되어 있을 경우 Spring 프로젝트가 시작될때 EntityManager 가 자동으로 DDL 을 수행해 테이블을 생성해 줍니다.이때 명시적으로 @Entity 의 name 속성을 이용해 데이타베이스상의 실제 테이블 명칭을 지정하지 않는다면 E..
사용기술 Spring boot 2.0.5.RELEASE maven JPA MyBatis H2 DBMS Hikari CP java 1.8 개요 JPA 는 java persistence API 의 약자 이며 java 에서 제공하는 JDBC 와 같은 API spec 을 의미 합니다. JDBC 와 JPA 는 둘다 데이타베이스 와 데이타를 주고 받기 위한 방법을 정의 하였으나 JDBC 는 보다 하위 레벨에서 데이타베이스와 직접 SQL 쿼리를 질의 하는 API 스펙 이며 JPA 는 ORM API 스펙 입니다. JPA 이전에는 hibernate 와 MyBatis 가 보편적으로 사용 되고 있었지만 JPA 스펙이 발표가 된 이후 보다 쉽게 데이타를 사용 할 수 있기 때문에 JPA 가 주로 사용 되고 있습니다. 하지만 J..
도메인, 저장소 객체 이제 모든 설정이 완료 되었고 정말로 다중 데이타소스 상에서 트랜잭션이 정상적으로 동작이 되는지를 확인해 보겠습니다.먼저 테스트를 위해 생성해둔 데이타소스에서 사용할 도메인 객체와 저장소 객체를 각각 생성하겠습니다. 데이타소스 1번에서 사용할 도메인과 저장소 객체 입니다. @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter @Entity(name = "test_code") public class TestCode1 { @Id private String code; private String name; @Column(name = "create_date") private Date createDate; public TestCode1(Str..
트랜잭션 데이타를 사용하고 관리할때 가장 중요하게 고려되어야 하는 것은 데이타의 무결성을 어떻게 보장 할 것인가 입니다. 이를 위해 데이타베이스에서는 트랜잭션 이라는 작업 단위를 제공 하는데 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 영속성(Durability) 등의 속성을 통해 데이타의 무결성을 보장해 줍니다. 원자성 : 트랜잭션 작업 단위는 전부 실행이 되던지 아니면 전부 실패되어야 합니다. 일관성 : 특정한 조건(데이타 길이, 데이타 타입, Null 여부 등)이 지정된 데이타는 도중에 데이타가 변조되지 않아야 합니다. 격리성 : 하나의 트랜잭션에서 다루고 있는 데이타는 동시에 다른 트랜잭션에서 사용할 수 없습니다. 영속성 : 트랜잭션이 성공적..
사용 기술 Spring boot 2.0.4.RELEASE maven JPA H2 DBMS Hikari CP java 1.8 개요 Spring Boot 을 사용해 개발을 진행하면 많은 부분의 설정을 자동화해줘서 개발 설정으로 인한 고민을 하지 않아도 되기 때문에 보다 빠르게 개발에 집중할 수 있게 해줍니다. 하지만 정해진 기능이 아닌 조금 다른 방식으로 Spring Boot 을 사용하고자 하면 Spring Boot 이 아닌 Spring에 관련된 설정을 하나씩 일일이 해줘야 하는 불편함이 있는 건 어쩔 수 없는 부분입니다. 이 글에서는 Spring Boot에서 다중 데이타소스를 관리하고 다중 트랜잭션을 설정해 JPA 상에서 동작이 되게 Spring 설정을 추가 하는 내용을 다룹니다. maven 설정 프로젝트..