[JPA] insert 시 DB Default 값 적용 (@ DynamicInsert, @ ColumnDefault)
·
Tech/Worklog
1. @DynamicInsert, @DynamicUpdate 역할 @DynamicInsert는 insert시 null인 필드를 제외 @DynamicUpdate는 update시 null인 필드를 제외 null인 필드를 제외하면 DB에서 DDL 실행 시에 지정했던 default값이 들어간다. @DynamicInsert @Entity @Getter @ToString(exclude = "ecoEventList") public class Category extends BaseTimeInfo { ... 2. @ColumnDefault 역할 이 때 @ColumnDefault는 create문이 자동 실행 될 때 default 값을 지정해주는 역할을 한다. @DynamicInsert @Entity @Getter @ToS..
Spring boot h2 연동
·
Tech/Worklog
1. H2 Database 설치 https://www.h2database.com/html/download.html Last Stable 버전의 Platform-Independent.Zip을 받아 원하는 디렉토리에 압축 해제 2. h2.sh 파일 실행 - 터미널을 열어 /bin/h2.sh 실행 ( ./h2.sh 입력) - 만약 권한이 없으면 chmod 755 ./bin/h2.sh 로 권한 부여 후 실행 3. 웹 콘솔 설정 JDBC URL 수정 4. 프로그램 종료 후 루트 경로에 cardMap.mv.db 생성 확인 5. boot 프로젝트의 yml 설정 확인 6. 연결 성공. 실행 시 테이블 생성 확인
ORM / Spring Data JPA
·
Tech/Worklog
1. ORM (Object Relational Mapping) 객체와 관계형 DB 간의 불일치 문제를 해결하기 위한 도구 코드의 반복을 줄이고 객체 중심의 설계에 집중해서 개발할 수 있다. 2. Spring Data JPA JPA - 관계형 DB 매핑이 대상으로 NoSQL 지원하지 않는다. Spring Data - Spring Data의 추상화된 인터페이스를 통해 NoSQL, RDBMS 등 다양한 저장소를 활용 가능하다. Spring Data JPA - Spring Data 프로젝트의 하위 프로젝트로 Spring 환경에 적용이 쉽고 추상화가 잘 되어있다. 3. Spirng Data JPA Repository 구조 ORM 사용 시에는 EntityManager로 영속성 콘텍스트를 제어 한다. Reposito..
SQL/NoSQL
·
Tech/Worklog
SQL 장점/특징 명확하게 정의된 스키마 (필드 이름과 데이터 유형. 구조에 맞는 레코드만 추가) 데이터 무결성 보장 (정확성, 일관성) 데이터 중복 피하기 위해 관계 이용 대체로 수직적 확장 지원 수평적 확장(데이터베이스 서버 성능 향상 (ex.CPU 업그레이드) 수직적 확장(더 많은 서버 추가. 데이터베이스가 전체적으로 분산(하나의 데이터베이스에서 작동하나 여러 호스트에서 동작 단점 덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함 관계를 맺고 있어 조인문이 많은 복잡한 쿼리가 만들어질 수 있음 사용하면 좋은 경우 관계 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우 (nosql의 경우 해당 데이터가 있는 모든 컬렉션 수정해야해 비효율적) 변경될 여지가 없고, 명확한 스키마가 사용자와 데이..