트랜잭션(Transaction) 데이터베이스의 상태 변화를 위한 하나의 논리적 기능을 수행하는 작업 단위 데이터베이스의 상태를 변화시킨다는 의미는 SQL을 이용하여 데이터베이스에 접근하는 것을 의미 작업 단위는 사람이 정하는 기준에 따라 한꺼번에 모두 수행되어야 할 일련의 연산 트랜잭션의 Commit과 Rollback 1) Commit 연산 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성 있는 상태에 있음을 의미 2) Rollback 연산 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 상태를 의미. 트랜잭션의 원자성을 지키기 위해 해당 트랜잭션이 행한 모든 연산을 재시작하거나 취소(Undo)함 트랜잭션 성질(ACID) 데이터의 무결성(Interity)을 보장하기 위해 DB..
영속성 ? 데이터를 생성한 프로그램이 종료 시 데이터가 사라지지 않는 데이터의 특성을 말하며, 영속성을 갖지 않는 데이터는 메모리 상에 존재하더라도 프로그램 종료와 함께 모두 사라진다. 그러므로 데이터를 파일이나 DB에 영구 저장함으로써 데이터에 영속성을 부여한다. JPA에서의 영속성 ? ORM 기술인 JPA에서 핵심적인 부분 중 하나는 영속성 컨텍스트와 영속 상태를 이해하는 것이다. JPA의 Entity Manager가 활성화된 상태로 하나의 트랜잭션(@Transactional) 안에서 DB로부터 데이터를 조회하면 트랜젝션이 끝나는 시점까지 영속성 컨텍스트라는 1차 캐시에 저장되고 관리된다. 정리하면 하나의 트랜젝션이 발생하는 시점에서 DB로부터 조회 된 데이터(=Entity)는 영속성 컨텍스트라는 곳..
다음과 같이 N : 1로 연관관계 매핑된 2개의 엔티티가 있다고 할 때, @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany(mappedBy = "team") private List members = new ArrayList(); } @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; @ManyToOne(fetch = FetchTy..
@Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany(mappedBy = "team") private List members = new ArrayList(); } @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") pr..
가입하기 1. 구글로 로그인하고 → Accept Privacy ... Service 에 체크 → Submit 합니다. (sign up으로 가입해도 된다.) 2. 다음 화면 체크하고 넘어가기 (이 부분도 다를 수 있기에 회원가입하면서 나오는 부분들과 비교) 3. Shared를 클릭하고 넘어가기 4. 지역 체크하고, create Cluster 클릭 / Cluster명을 지정해 줄 수 있다. 5. 아래와 같은 화면이 잠시 동안 나온 뒤에 6. 새로고침 후 최종 아래와 같은 화면을 만나면 끝! 7. 연결 준비하기 connect 클릭 Allow Access from Anywhere 클릭 → Add IP address 클릭 Username, Password를 아래와 같이 입력 → Create Database Use..