목차 NoSQL 개요 NoSQL은 비관계형 데이터베이스를 지칭합니다. 즉 관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는 특화되어 있으며 스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소를 의미합니다. NoSQL은 기존 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태입니다. NoSQL 특징 1. RDBMS와 달리 데이터 간의 관계를 정의하지 않습니다. RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN 연산을 수행할 수 있지만, NoSQL은 JOIN 연산이 불가능합니다. 2. RDBMS에 비해 대용량 데이터를 저장할 수 있습니다. 페타바이트 급의 대용량 ..
목차 경로표현식 개요 경로표현식이란 점을 찍어 객체 그래프를 탐색하는 것 입니다. 경로표현식은 3가지 방법이 있습니다. 경로표현식은 내부적으로 동작하는 방식이 달라집니다. select m.username -> 상태 필드로 객체 그래프를 탐색 from Member m join m.team t -> 단일 괎 연관 필드 (엔티티 연관) join m.orders o -> 컬렉션 값 연관 필드(양방향 연관) where t.name = 'teamA' 경로표현식의 3가지 방법과 특징 경로표현식은 상태 필드, 단일 값 연관필드, 컬렉션 값 연관 필드가 있습니다. 상태 필드(state field) 단순히 값을 저장하기 위한 필드 경로 탐색의 끝입니다. m.username 일 경우 username에서 점을 찍고 탐색할 것..
목차 JPA 개요 JPA는 Java Persistence API의 줄임말입니다. JPA는 자바 진영에 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음 입니다. 인터페이스의 모음이라 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크입니다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있습니다. ORM 개요 ORM은 Object Relational Mapping의 줄임말입니다. 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻으로 기술적으로는 애플리케이션의 객체를 RDB 테이블에 자동으로 영속화를 해줍니다. 장점 SQL문이 아닌 Method를 통해 DB를 조작할..
목차 트랜잭션 개요 트랜잭션이란, 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻 합니다. 데이터베이스의 상태를 변화시킨다는 것은 아래의 질의어(SQL)을 통해 데이터베이스로 접근 하는 것을 의미합니다. SELECT INSERT DELETE UPDATE 작업의 단위는 질의어 한문장이 아니라는 것을 명심해야 합니다. 작업단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미합니다. (예를 들어, 게시판 글을 작성하면 게시판으로 가는 기능은 INSERT와 SELECT가 합친 SQL입니다. 이러한 작업단위를 하나의 트랜잭션이라 합니다.) 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점을 줍니다. 트랜잭션 특징 트랜잭션의 특징은 크게 4가지가 있습니다. 원자성(A..
목차 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻 입니다. 에플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 합니다. 엔티티 메니저를 통해 엔티티를 저장하거나 조회하면 엔티티 메니저는 영속성 컨텍스트에 엔티티를 보관하고 관리합니다. // 엔티티 메니저를 사용해 회원 엔티티를 영속성 컨텍스트에 저장 em.persist(member); 영속성 컨텍스트의 특징 엔티티 매니저를 생성할 때 하나 만들어 집니다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있습니다. 엔티티의 생명주기 비영속(new / transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed) : 영속성 컨텍스트에 저장된 상태 준영속(detach..