본문 바로가기
반응형

백앤드35

MSSQL 운영 DB에서 개발 DB로 데이터 이관 - -MSSQL에서 운영 DB에서 개발 DB로 데이터를 이동할 때, "그냥 데이터만 옮기면 되겠지?" 하고 생각할 수 있지만, 실제로는 몇 가지 중요한 점검 사항이 필요합니다.데이터 이동 후 시스템이 정상적으로 작동하고 성능도 최적화될 수 있도록 하는 과정을 살펴볼게요.이 글에서는 데이터 이동 후 반드시 점검해야 할 주요 단계를 쉽고 간단하게 설명할 거예요.1. 데이터 삭제 및 초기화먼저, 데이터를 옮기기 전에 기존 데이터를 삭제해야 합니다.DELETE문을 사용하면 데이터를 삭제할 수 있지만, 외래 키 관계가 있을 때는 외래 키 제약을 먼저 비활성화하는 것이 좋아요.삭제 후에는 외래 키를 다시 활성화하는 걸 잊지 마세요.-- 외래 키 비활성화ALTER TABLE 테이블명 NOCHECK CONSTRAINT.. 2024. 12. 15.
SQL Server에서 SET IDENTITY_INSERT 사용하기 --SET IDENTITY_INSERT는 SQL Server에서 중요한 역할을 하는 명령어입니다. 주로 IDENTITY 컬럼을 가진 테이블에 대해 수동으로 값을 삽입할 수 있도록 도와줍니다. 그럼, IDENTITY_INSERT가 무엇인지, 어떻게 사용되는지 알아볼게요. IDENTITY 컬럼이란?먼저, IDENTITY 컬럼에 대해 간단히 설명하자면, 자동으로 값을 증가시키는 컬럼입니다. 보통 **기본키(primary key)**로 많이 사용되며, 데이터가 삽입될 때마다 자동으로 증가하는 숫자가 부여됩니다. 그런데 가끔은 이 IDENTITY 컬럼에 수동으로 값을 삽입하고 싶을 때가 있습니다. SET IDENTITY_INSERT란?SET IDENTITY_INSERT 명령어는 IDENTITY 컬럼에 명시적으로 .. 2024. 12. 6.
SQL 명령어 DELETE, TRUNCATE, DROP의 차이점 --SQL에서 데이터를 삭제하는 명령어에는 DELETE, TRUNCATE, DROP이 있습니다. 이 명령어들은 모두 데이터를 삭제하는 용도로 사용되지만, 그 방식과 특징에 있어 큰 차이점이 있습니다. 각각의 명령어가 어떻게 다르고, 어떤 상황에 적합한지에 대해 알아보겠습니다.1. DELETEDELETE는 테이블에서 특정 조건에 맞는 데이터를 삭제하는 명령어입니다.이 명령어는 행 단위로 데이터를 삭제하며, 트랜잭션을 지원하기 때문에 삭제한 데이터를 롤백할 수 있습니다.WHERE 절을 사용하여 삭제할 데이터 범위를 지정할 수 있어서, 원하는 조건의 데이터만 선택적으로 삭제할 수 있습니다.하지만, 삭제된 데이터는 로그에 기록되며, 이로 인해 삭제 속도가 비교적 느릴 수 있습니다.또한, **트리거(trigger.. 2024. 12. 5.
자바에서 소수점 버림 처리하는 다양한 방법 --소수점 처리, 특히 "소수점 이하를 버린다"는 작업은 자주 필요한 기능 중 하나입니다. 예를 들어, 계산 결과를 화면에 출력할 때 소수점 이하 자리를 없애고 싶을 때가 있죠. 자바에서는 이런 소수점 버림 작업을 다양한 방법으로 처리할 수 있습니다. 오늘은 그 방법들을 하나씩 알아보겠습니다.1. Math.floor()로 소수점 버리기첫 번째로 소개할 방법은 Math.floor()입니다. Math.floor()는 주어진 숫자보다 작거나 같은 가장 큰 정수로 내림을 해주는 메서드입니다. 즉, 소수점 이하를 버리고, 가장 가까운 정수로 내리는 거죠.public class Main {    public static void main(String[] args) {        double number = 3.1.. 2024. 11. 18.
자바에서 소수점 올림과 반올림 처리하는 다양한 방법 --소수점 처리, 특히 "올림"과 "반올림"은 자주 사용하는 기능 중 하나입니다. 우리가 일상에서 숫자를 다룰 때, 계산 결과를 적절한 형식으로 맞추려면 소수점을 어떻게 처리할지가 중요하죠. 자바에서는 이 작업을 아주 쉽게 할 수 있는데요, 올림과 반올림을 처리하는 다양한 방법을 알려드릴게요!1. 소수점 올림 (Ceiling) – Math.ceil()먼저, 소수점 올림부터 시작해볼까요? 소수점 올림은 말 그대로 숫자의 소수점 이하를 올려서 가장 가까운 정수로 만드는 작업입니다. 예를 들어, 3.1은 4로 올리고, 3.9도 4로 올림하는 거죠. 어떤 숫자든지 올림을 해서 정수로 만드는 기능이 필요할 때 Math.ceil()을 사용합니다.Math.ceil() 사용 예시public class Main {   .. 2024. 11. 16.
Java에서 정규식(Regex) 사용법과 메타문자 소개 --정규식(정규 표현식)은 문자열을 패턴에 맞춰 검색하거나 수정하는 데 매우 유용한 도구입니다. 예를 들어, 이메일 주소가 맞는 형식인지 확인하거나, 특정 단어를 찾아서 다른 텍스트로 교체할 때 활용할 수 있죠. Java에서는 java.util.regex 패키지를 사용하여 정규식을 처리합니다. 이 패키지의 두 핵심 클래스는 Pattern과 Matcher입니다. 이들을 이용하면 문자열을 정규식으로 쉽게 처리할 수 있습니다.이번 포스트에서는 Java에서 정규식을 사용할 때 자주 쓰이는 메타문자(문자 패턴을 정의하는 특수한 문자들)를 표로 정리해 드리겠습니다. 이를 통해 정규식의 기본 개념과 사용법을 한눈에 이해할 수 있도록 도와드릴게요!1. 정규식의 메타문자 (Metacharacters)정규식에서 메타문자는.. 2024. 11. 15.
자바에서 서버의 호스트명을 가져오는 방법 - -자바를 사용하다 보면, 서버의 호스트명(혹은 로컬 머신의 호스트명)을 가져와야 할 때가 있습니다. 그럴 때 사용할 수 있는 두 가지 방법을 소개할게요. 바로 InetAddress 클래스와 System 클래스를 사용하는 방법입니다.1. InetAddress 클래스를 이용한 호스트명 가져오기 가장 많이 사용되는 방법은 InetAddress 클래스를 이용하는 것입니다. InetAddress는 네트워크 관련 정보를 다루는 클래스인데요, 이를 통해 로컬 시스템의 호스트명을 손쉽게 얻을 수 있습니다. import java.net.*;public class HostNameExample { public static void main(String[] args) { try { /.. 2024. 11. 13.
자바에서 경로 다루기: File, Request, Session을 활용한 경로 처리 방법 - -자바로 웹 애플리케이션을 만들다 보면, 파일 경로를 제대로 다루는 것이 정말 중요해요. 예를 들어, 파일 업로드나 다운로드를 구현하거나 웹 애플리케이션 내에서 특정 파일을 참조할 때 경로 처리가 잘못되면 예상치 못한 오류가 발생할 수 있죠. 그래서 오늘은 자바에서 파일 경로를 다루는 방법을 File, Request, Session을 기준으로 알아보려고 해요.File 클래스를 이용한 경로 처리 자바에서는 File 클래스를 이용해서 파일 경로를 다룰 수 있어요. File 클래스를 사용하면 현재 경로를 절대경로나 상대경로로 쉽게 알 수 있습니다.절대경로 (Absolute Path) 절대경로는 파일 시스템의 루트부터 시작하는 완전한 경로에요. 예를 들어, Windows에서는 C:\Users\Username.. 2024. 11. 12.
백앤드 개발의 필수 프로그램 포스트맨 설치 방법 -- Java back-end API programing test program !! 자바 백엔드 API 개발 시, 테스트 용도로 많이들 쓰는 포스트맨입니다. 설치 및 사용법을 간단하게 알려드리도록 하겠습니다. 1. 프로그램 다운로드 경로 진입을 합니다. URL : https://www.postman.com/downloads/ Download Postman | Get Started for FreeTry Postman for free! Join 35 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.www.postman.com2. 회원가입을 해줍니다.(다.. 2024. 11. 4.
자바 롬북 설치 ! java project lombok ! - - 안녕하세요? 오늘은, 자바에서 Getter/Setter를 자동으로 생성 및 설정해주는, lombok의 다운 및 설치와 방법에 대해서 알아보도록 하겠습니다 Lombok 이란, 자바에서 @Getter, @Setter 같은 annotation 기반으로 기존 DTO, VO, Domain Class 등을 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등을 자동으로 생성해주는 라이브러리 입니다. 자, 일단 다운로드를 시작합니다. * Lombok 다운로드 URL : https://projectlombok.org/downloadhttps://projectlombok.org/※ 실행 전, Ecl.. 2024. 10. 28.
자바 AWS SNS ( Amazon Simple Notification Service ) ! 아마존 문자 서비스 구현 ! - -안녕하세요? 오늘은 아마존 문자 서비스인 AWS SNS ( Amazon Simple Notification Service )에 대해서 알아보도록 하겠습니다.AWS SNS 란??: Amazon Simple Notification Service 의 약자로,게시자에서 구독자에게 메시지 전송을 제공하는 관리형 서비스라고 설명하고 있다.https://docs.aws.amazon.com/ko_kr/sns/latest/dg/welcome.html Amazon이란 무엇입니까SNS? - Amazon Simple Notification Service이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.docs... 2024. 10. 25.
자바 AWS SES ( Amazon Simple Email Service ) 아마존 이메일 서비스 구현 ! - -안녕하세요? 오늘은, 아마존 이메일 서비스인 AWS SES ( Amazon Simple Email Service ) 에 대해서 알아보도록 하겠습니다. AWS SES 란??: Amazon Simple Email Service 의 약자로,사용자의 이메일 주소와 도메인을 사용해 이메일을 보내고 받기 위한,경제적이고 손쉬운 방법을 제공하는 이메일 플랫폼 이라고 설명하고 있다.https://docs.aws.amazon.com/ko_kr/ses/latest/DeveloperGuide/Welcome.html Amazon SES 클래식란 무엇입니까? - Amazon Simple Email Service이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를.. 2024. 10. 25.
MySQL too many connections 에러 발생 해결 방법 - -안녕하세요? 오늘은 DB 중에서 MySQL의 에러 중 하나인, too many connections 에러의 이유와 해결방안에 대하여 알아보도록 하겠습니다. too many connections 에러의 경우, MySQL DB에 연결된 클라이언트의 수가 일정수치 이상인 경우에 나타나게 됩니다. 그렇다면, 해결방법을 알아볼까요?일단, 현재 MySQL DB에 접속을 해서, 현재 DB의 최대 커넥션 갯수를 확인합니다. 명령어 입력 : show variables like '%max_connect%'; 커넥션의 지속시간을 확인합니다.명령어 입력 : show variables like 'wait_timeout';현재 DB의 상태를 확인 합니다.명령어 입력 : show status like '%CONNECT%'; .. 2024. 10. 25.
JPA 쿼리 JPQL 벌크 연산 - -안녕하세요? 오늘은 JPA의 JPQL 중 벌크 연산에 대해 알아보도록 하겠습니다.-벌크 연산: 쿼리 한번으로, 여러 테이블 로우 변경: executeUpdate의 결과는 영향받은 엔티티 수를 반환: Update / Delete 지원: 하이버네이트는 Insert ( insert into .. select ) 지원샘플 쿼리)EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");EntityManager em = emf.createEntityManager();EntityTransaction tx = em.getTransaction();tx.begin();// Flush 자동 호출 : commit / [쿼리날라갈때] / 강제호출St.. 2024. 10. 24.
JPA 쿼리 패치 조인 JPQL FETCH JOIN - -안녕하세요? 오늘은 JPA에서 JPQL 패치(FETCH) 조인 에 대해 알아보도록 하겠습니다. -페치 조인 ★★★(FETCH JOIN): SQL 조인 종류가 아니라, JPQL에서 성능최적화를 위해 제공: 연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회JPQLSELECT e FROM 엔티티 e JOIN FETCH e.연관관계객체 sSQLSELECT t1.*, t2.* FROM 테이블1 as t1INNER JOIN 테이블2 as t2ON t1.key = t2.key+예로 들어서, Member 엔티티와, Team 엔티티가 존재하고, Member는 Team과 다대일 [N:1] 연관관계라고 가정했을 때멤버 엔티티 생성)@Entitypublic class Member {    @Id @GeneratedVal.. 2024. 10. 24.
JPA JPQL 경로 표현식 - -안녕하세요? 오늘은 JPA에서 JPQL의 경로 표현식 에 대해 알아보도록 하겠습니다. -경로 표현식: 점(.)을 찍어 객체 그래프를 탐색하는 것: 상태필드 / 연관필드로 나눠진다.상태필드(state field)경로 탐색의 끝, 더이상 탐색 불가연관필드(accociation field)단일 값 연관필드@ManyToOne, @OneToOne, 대상이 엔티티컬렉션 값 연관필드@OneToMany, @ManyToMany, 대상이 컬렉션+상태필드: SELECT e.컬럼 FROM 엔티티 e> 경로 탐색의 끝>> 추가 탐색 불가+단일값 연관필드(@ManyToOne, @OneToOne): SELECT e.단일연관관계객체 FROM 엔티티 e> 묵시적 내부 JOIN 발생> 추가 탐색 가능+컬렉션값 연관필드(@OneTo.. 2024. 10. 23.
JPA JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 - -안녕하세요? 오늘은 JPA의 JPQL 타입 표현식과 기타식 그리고 조건식과 기본 함수 에 대해서 알아보도록 하겠습니다. JPQL 타입 표현: 문자는 싱글쿼테이션 사용: 숫자/불리언 타입은 자바와 동일: enum은 패키지명을 포함해야한다.> 파라메터에 셋팅해서 사용 가능: 엔티티 타입은, 상속관계에서 사용한다.타입 표현예제문자'HELLO', 'She''s'숫자10L(Long), 10D(Double), 10F(Float)BooleanTRUE, FALSEENUMjpabook.MemberType.Admin (패키지명 포함)엔티티타입TYPE(m) = Member (상속 관계에서 사용)샘플코드)String jpql = "SELECT e.컬럼, 'TEST', true FROM 엔티티 e"            +.. 2024. 10. 18.
JPA 쿼리 JPQL 페이징 조인 서브쿼리 - -안녕하세요? 오늘은, JPA의 쿼리 방법 중 하나인, JQPL에 대해 알아보도록 하겠습니다.  JPQL(Java Persistence Query Language) : 객체지향 쿼리 언어: 테이블 대상이 아닌,엔티티를 대상으로 쿼리: SQL을 추상화 > 특정 DB에 의존하지 않음: JPQL은 결국 SQL로 변환샘플 예시)select 문 :: =select_절from_절[where_절][groupby_절][having_절][orderby_절]update_문 :: = update_절 [where_절]delete_문 :: = delete_절 [where_절] 사용법 : 엔티티와 속성은 대소문자 구분이 필수: JPQL 키워드는 대소문자 구분 불필요: 엔티티 이름 사용> 테이블 이름 X: 별칭(Alias)은 .. 2024. 10. 18.
JPA QueryDSL 네이티브SQL JDBC MyBatis - -안녕하세요? 오늘은 JPA의 다양한 쿼리 방법에 대해서 알아보도록 하겠습니다. JPA에서는,JPQL ★★★JPQ CriteriaQueryDSL ★★★네이티브 SQLJDBC 직접 사용(MyBatis, SpringJdbcTemplate ...)등등 다양한 쿼리 방법을 지원합니다.그 중에서, JPQL에 대해서, 다뤄보도록 하겠습니다.JQPL ★★★: JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공: SQL과 문법이 유사 (SELECT / FROM / WHERE / GROUP BY / HAVING / JOIN): JPQL은 엔티티 객체  대상으로 쿼리 (SQL은 데이터 베이스 테이블을 대상으로 쿼리): 가장 단순한 조회 방법: 특정 DB SQL에 의존하지 않음: JPA를 사용하면, 엔티.. 2024. 10. 18.
JPA 지연로딩 즉시로딩 - -안녕하세요? 오늘은 JPA에서 중요한 핵심 기능인 즉시로딩과 지연로딩에 대해서 알아보도록 하겠습니다.※ 지난 시간에서 다뤘던 프록시의 개념을 참고해주세요.https://logger-debug.tistory.com/entry/JPA-%EC%A7%80%EC%97%B0%EB%A1%9C%EB%94%A9-%EC%A6%89%EC%8B%9C%EB%A1%9C%EB%94%A9-%ED%94%84%EB%A1%9D%EC%8B%9C-proxy JPA 지연로딩 즉시로딩 프록시 proxy- -안녕하세요? 오늘은, JPA의 연관관계 관리 중, 프록시( proxy )에 대해서 알아보도록 하겠습니다.  프록시란?: JPA에서는 불필요한 쿼리를 최적화하기 위해서는, 지연로딩과 프록시라는 개념으logger-debug.tistory.c.. 2024. 10. 17.
JPA 지연로딩 즉시로딩 프록시 proxy - -안녕하세요? 오늘은, JPA의 연관관계 관리 중, 프록시( proxy )에 대해서 알아보도록 하겠습니다.  프록시란?: JPA에서는 불필요한 쿼리를 최적화하기 위해서는, 지연로딩과 프록시라는 개념으로 해결※ 지연로딩은, 다음 포스팅에 다뤄보도록 하겠습니다.※ 해당 포스팅은, 즉시로딩과 지연로딩의 매커니즘의 이해를 돕기위한, 개념 지원 포스팅 입니다.* find(): DB를 통해서 실제 엔티티를 바로 조회* getReference(): DB 조회를 미루는 가짜(프록시) 엔티티 객체 조회+getReference() 가 실행 되었을 때, 프록시 객체는 실제 객체의 참조(target)을 보관한다.프록시 객체를 호출 시, 프록시 객체는 실제 객체의 메소드를 호출하게 된다.샘플소스)EntityManagerFa.. 2024. 10. 17.
JPA 영속성 전이 CASCADE 고아 객체 - -안녕하세요? 오늘은 JPA CASCADE 영속성 전이와 고아 객체 에 대해서 알아보도록 하겠습니다. -영속성 전이(CASCADE): 연관관계랑은 전혀 상관이 없다.: 단일 소유자로써 ★★★부모 엔티티의 데이터를 등록할 때,연관관계가 설정된 자식 엔티티의 정보를일괄 등록하는 기능> 부모가 하나일 때에만 사용 가능>> 단일 엔테티에 종속적일때 사용 ★★★>>> 타 엔티티와의 영향도 고려 필수 ★★★부모 엔티티 생성)@Entitypublic class Parent {    @Id @GeneratedValue  @Column(name = "PARENT_ID")  private Long id;    @Column(name = "PARENT_NAME")  private String name;    @OneTo.. 2024. 10. 15.
JPA 영속성 영속상태와 준영속상태 - -안녕하세요? 오늘은, JPA의 특성 중 하나인, 영속 상태와 준영속 상태에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트/이점과 flush 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 .. 2024. 10. 15.
JPA 영속성 Flush - -안녕하세요? 오늘은, 이전 포스팅에서 다뤘던, 영속성 컨텍스트의 이점 중에서, 1차캐시 중, 트랜잭션의 commit 시점에서, 내부적으로 이루어지는 flush에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트/이점 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 .. 2024. 10. 15.
JPA 영속성 컨텍스트의 장점에 대하여! - -안녕하세요? 오늘은, JPA에서 가장 중요한 개념인, 영속성에서 더 나아가서, 영속성 컨텍스트의 이점에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트에 대해서는, 아래 포스팅을 참조하시면 됩니다.https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1%EA%B3%BC-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC JPA 영속성과 영속성 컨텍스트에 대하여!- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요.. 2024. 10. 15.
JPA 영속성과 영속성 컨텍스트에 대하여! - -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요한 점은,1. 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapping)2. 영속성 컨텍스트를 이해하는 것이라고 볼 수 있습니다.JPA에서는, 요청이 올때마다, EntityManagerFactory를 통해서 EntityManager를 생성을 해주게 됩니다.EntityManager에서는 이제, 데이터 커넥션을 사용해서 DB를 사용하게 됩니다.엔티티의 생명주기는 크게 비영속 / 영속 / 준영속 / 삭제 로 나눠집니다.그럼 각각에 대해서 자세히 알아보도록 하겠습니다.-비영속: 영속성 컨텍스트와 전혀 관계가 없는 상태// 객체를 생성만 한 상태(비영속) En.. 2024. 10. 15.
Git ignore 적용 불필요 파일 무시 방법에 대해서! - -안녕하세요? 오늘은 형상관리서버인 Git에서, 불필요한 파일을 커밋목록에서 제외시키는 방법을 알아보도록 하겠습니다.gitignore란?: Project에 원하지 않는 Backup File이나 Log File, 혹은 컴파일 된 파일들을 commit 목록에서 제외시킬수 있는 설정 File※항상 최상위 디렉토리에 존재해야한다.1. .gitignore 파일을 생성해줍니다.아래 사이트에서 ignore 예시가 나와있습니다.https://github.com/github/gitignore GitHub - github/gitignore: A collection of useful .gitignore templatesA collection of useful .gitignore templates. Contribute t.. 2024. 10. 14.
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! - -안녕하세요? 오늘은 JPA에서의 데이터 타입 분류에 대해서 알아보도록 하겠습니다.JPA에서의 데이터 타입은, 엔티티 타입과, 값 타입으로 분류합니다.엔티티 타입: @Entity로 정의하는 객체: 식별자가 존재: 생명주기 관리 가능: 공유 가능: 데이터가 변해도,식별자로 지속해서 추적 가능값 타입: 의미있는 비지니스 메소드 생성 사용 가능: 식별자 미존재: 공유하지 않고, 복사해서 사용: 불변 객체로 만들어서 사용 (getter 생성, setter 미생성): int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체: 복잡한 객체 세상을 단순화하기 위한 개념> 단순하고 안전하게 다룰 수 있어야한다.>> 엔티티를 값 타입으로 만들면 X>>> 식별자가 필요하고, 지속해서 값.. 2024. 10. 14.
JPA 상속관계 매핑 MappedSuperclass --안녕하세요? 오늘은 JPA의 상속관계중에서, MappedSuperclass에 대해서 알아보도록 하겠습니다.※ JPA의 상속관계 매핑에 대해서는 아래 포스팅을 참조 부탁드리겠습니다.https://logger-debug.tistory.com/entry/JPA-%EC%83%81%EC%86%8D%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91 JPA 상속관계 매핑--안녕하세요? 오늘은, JPA의 고급매핑 중에서, 상속관계 매핑에 대해서 알아보도록 하겠습니다. -상속관계 매핑이란?: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑: @Ingeritance 를logger-debug.tistory.com -@MappedSuperclass : 공통 매핑 정보가 필요할 때 사용: 부모 클.. 2024. 10. 11.
JPA 상속관계 매핑 --안녕하세요? 오늘은, JPA의 고급매핑 중에서, 상속관계 매핑에 대해서 알아보도록 하겠습니다.-상속관계 매핑이란?: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑: @Ingeritance 를 사용해서 전략 설정※ 객체는 상속관계가 존재하지만, 관계형 데이터베이스에는 상속관계가 존재하지 않습니다.그나마, 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사합니다.상속관계 매핑은 조인 전략, 단일 테이블 전략, 구현 클래스마다의 테이블 전략 세가지가 존재합니다. -조인 전략 : 각각 테이블로 변환해서, 조인으로 관리하고자하는 전략: 가장 정규화된 전략: 외래 키 참조 무결성 제약조건 활용 가능 (타 테이블에서 데이터 조회 시 설계가 깔끔): 저장공간의 효율화 최대: 조회시 조인을 많이 .. 2024. 10. 11.
반응형