728x90 전체 글86 [JPA] 기본 키 매핑 방법 - @Id, @GeneratedValue 기본 키 매핑 방법1. 직접 할당2. 자동 생성 직접 할당 - @Id기본키를 애플리케이션에서 직접 할당하는 방식직접할당의 경우 휴먼 에러 발생 가능성이 크다. @Id 사용@Idprivate Long id; 자동 생성 - @GeneratedValue기본 키 생성을 데이터베이스에 위임하는 전략(MySQL의 AUTO_INCREMENT 같은 기능으로 생성된 값을 기본키로 사용하는 것이다.) @GeneratedValue 사용@Id @GeneratedValue(strategy = GenerationType.AUTO)private Long id; Id값을 만들어주는 4가지 생성전략1. IDENTITY : 기본 키 생성을 데이터베이스에 위임2. SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용(@SequenceGe.. 2024. 12. 27. [JPA] @Lob LobLOB은 가변 길이를 가지는 큰 데이터를 저장하는데 사용하는 데이터형(가변 길이 데이터 유형) 1. CLOB은 문자기반 데이터를 저장하는데 사용(대량의 텍스트 데이터)ex) String , char[], java.sql.CLOB 2. BLOB은 binary 데이터를 저장하는데 사용(이미지, 오디오, 비디오 등)ex) byte[], java.sql.BLOB @Lob- 일반적인 데이터베이스에서 저장하는 길이인 255개 이상의 문자를 저장하고 싶을 때 지정한다.- 지정할 수 있는 속성이 없다.- 스프링이 추론하여 어떤 타입으로 저장할지 판단한다.문자 타입의 경우 CLOB 매핑, 나머지는 BLOB 매핑 참고https://shiba-holic.tistory.com/65https://kogle.tist.. 2024. 12. 25. [JPA] @Transient @Transient▶ 영속성 대상에서 제외시키기 위해 사용▶ 필드 매핑X▶ 데이터베이스에 저장X, 조회X▶ 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용 참고https://www.inflearn.com/course/ORM-JPA-Basic/dashboardhttps://gmoon92.github.io/jpa/2019/09/29/what-is-the-transient-annotation-used-for-in-jpa.html(두 가지 엘리먼트 타입 지원 이유, 영속 상태 접근 방식 두 가지) 2024. 12. 23. [JPA] @Temporal @Temporal날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용(참고: @Temporal을 생략해도 LocalDate, LocalDateTime은 사용할 수 있다.) 자바의 Date 타입에는 년월일시분초가 있고, DB에는 date(날짜), time(시간), timestamp(날짜와 시간)라는 세 가지 타입이 별도로 존재한다. @Entitypublic class Test { @Id @GeneratedValue private Long id; @Temporal(TemporalType.DATE) private Date createdDate;} 속성속성설명value • TemporalType.DATE: 날짜(년월일) / 데이터베이스 d.. 2024. 12. 20. 객체지향 설계 5대 원칙 SOLID SRP (Single Responsibility Principle) 단일 책임 원칙There should never be more than one reason for a class to changeLow Coupling, High Cohesion(낮은 결합도, 높은 응집력)하나의 객체(클래스)는 하나의 책임(기능)만 가져야 한다. OCP (Open-Closed Principle) 개방-폐쇄 원칙Software Entites (Class, Modules, Functions, Etc.) should be open for extension, But closed for modification소프트웨어의 구성요소(클래스, 모듈, 함수 등)는 확장에는 열려있고, 변경에는 닫혀있어야 한다 (다른 추가 사항이 있더라도.. 2024. 12. 18. Jackson vs GSON vs JSON-SIMPLE Jackson• Spring Framework에 내장되어 있다. (Annotation 지원)• Serialize/Deserialize 커스텀이 용이하다. (상속 지원)• 고용량 데이터에 좋은 성능을 보인다.• XML, YAML을 지원한다.• 소스코드 작성이 간단하다. GSON• 여러 언어에서 사용 가능해서 데이터 교환의 플랫폼 제약이 적다.• 저용량 데이터에서 성능이 무난하다.• 대용량 데이터일수록 성능이 하락한다.• Serialize/Deserialize 커스텀이 용이하다. (상속 지원)• 소스코드 작성이 간단하다.• DeSerialized, 역직렬화의 경우 Java Entity에 접근할 필요가 없다. JSON-SIMPLE• 데이터 용량에 따른 성능 차이가 미세하다. (저용량/대용량 모두 다루는 .. 2024. 12. 16. 이전 1 2 3 4 5 ··· 15 다음 728x90