본문 바로가기

Be52

TIL : @CreatedDate, @CreationTimestamp (11) 🌞 Spring 엔티티 클래스에서 시간을 2가지 방법으로 관리한다. 바로 Hibernate에서 제공하는 @CreationTimestamp과 JPA에서 제공하는 @CreatedDate. 둘의 차이를 알아보자!! 1️⃣ @CreatedDate & @LastModifiedDate 사용하기 위해선 2가지 설정이 필요하다! SpringApplication에 @EnableJpaAuditing을 붙인다. 선언한 엔티티에 @EntityListeners(AuditingEntityListener.class)를 붙인다. 설정이 필요한 이유는 다음과 같다. JPA는 JPA 고유 메모리 공간(context)을 이용해서 엔티티 객체들을 관리한다. 관리되는 객체들이 변경되면 데이터에 반영되는 형식이다. 즉, 재사용하는 방식이다. .. 2022. 9. 12.
데이터베이스 개론 : 관계 데이터 연산 (6장) 📌 관계 데이터 연산의 개념 데이터 모델은 데이터 구조, 연산, 제약조건이 3가지로 구성된다. 여기서 연산이란 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것이다. 관계 데이터 연산이라고 불리는 연산은 두 가지로 나뉜다. 관계 대수 : 원하는 결과를 얻기 위해 데이터 처리 과정을 순서대로 기술하는 절차 언어이다. 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어이다. 여기서 데이터에 대한 처리 요구를 Query(질의)라고 한다. 📌 관계 대수 ✔️ 관계 대수의 개념과 연산자 처리 과정을 순서대로 기술하는 언어인 관계 대수는 연산자들의 집합으로도 정의할 수 있다. 여기서 피연산자는 릴레이션이 된다. 따라서 결과물도 릴레이션이 될 것이다. 대.. 2022. 9. 7.
데이터베이스 개론 : 관계 데이터 모델 (5장) 📌 관계 데이터 모델의 개념 ✔️ 관계 데이터 모델의 기본 용어 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다. 릴레이션에 관한 용어를 알아보자. 1️⃣ Attribute 릴레이션의 열을 속성(Attribute)이라고 한다. 각 속성을 서로 다른 이름으로 구분하고 필드에 대응하는 개념이다. 2️⃣ Tuple 릴레이션의 행을 튜플이라고 한다. 개체에 대한 속성들을 모아둔 것이고 레코드에 대응하는 개념이다. 3️⃣ Domain 속성이 가질 수 있는 모든 값의 집합을 말한다. 이 값들은 더 분해될 수 없는 원자 값이다. 보통 데이터 타입을 도메인, 변수를 속성으로 이해하면 된다. 4️⃣ Null 값 속성 값을 모르거나 적합한 값을 모를 때 사용하는 특별한 값이.. 2022. 9. 7.
자바 ORM 표준 JPA 프로그래밍 : JPA 소개 (1장) 📌 SQL을 직접 다룰 때 발생하는 문제점 ✔️ 반복, 반복 그리고 반복 DB는 객체 구조와는 다른 데이터 구조를 가져 객체를 DB에 직접 저장하거나 조회할 수 없다. 따라서 개발자가 직접 애플리케이션과 API 중간에서 변환 작업을 직접 해야 한다. 객체를 DB에 CRUD하려면 너무 많은 코드를 작성해야 한다. 즉, 비슷한 일을 계속 반복해야 한다. ✔️ SQL에 의존적인 개발 기능을 모두 개발하고 나서 추가적인 요청이 들어왔을 때 너무 많은 코드(등록, 수정, 연관 객체 등)를 수정해야 한다. 엔티티를 신뢰하고 사용할 수 없다. 일일이 확인해야 한다. 강한 의존관계를 가져 진정한 의미의 계층 분할이 아니다. ✔️ JPA와 문제 해결 JPA를 사용하면 객체를 데이터베이스에 저장하고 관리할 때 JPA가 제.. 2022. 8. 12.