본문 바로가기
728x90

분류 전체보기159

[JPA] 엔티티 매핑 객체와 테이블 매핑 객체와 DB의 테이블을 어떻게 매핑하는지부터 정리해 보자. 매핑을 하는 방법 자체는 매우 간단하다. 객체와 테이블 매핑: @Entity, @Table 필드와 컬럼 매핑: @Column 기본 키 매핑: @Id 연관관계 매핑: @ManyToOne, @JoinColumn 먼저 객체와 테이블을 매핑하는 방법부터 알아보자. @Entity @Entity가 붙은 클래스는 JPA가 관리하며, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수로 붙어야 한다. 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected type의 생성자) final 클래스, enum, interface, inner 클래스에는 사용할 수 없다. 저장할 필드에 final key.. 2023. 1. 27.
[JPA] 영속성 컨텍스트에 대한 정리 JPA가 내부에서 어떻게 돌아가는지에 대한 이론적 배경을 공부하기 위해 영속성 컨텍스트라는 개념을 공부해 보자. JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스를 매핑하기 (Object Relational Mapping) 영속성 컨텍스트 (JPA의 내부 동작과 연관된 개념) 이번에는 영속성 컨텍스트에 대한 개념을 정리해 보자. 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어로 "엔티티를 영구 저장하는 환경"이라는 뜻이다. EntityManager.persist(entity object); 영속성 컨텍스트를 이용해 entity를 영속화함을 의미한다. EntityManger와 영속성 컨텍스트를 정리하자면, 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다. EntityManger를 통해 .. 2023. 1. 21.
JPA 구동 방식과 애플리케이션 만들어보기 JPA 공부를 위한 프로젝트 생성 정보 DB: h2 database build tool: Maven Java: version 11 pom.xml을 이용해 라이브러리를 추가하고, persistence.xml는 JPA 설정 파일에 해당한다. /META-INF/persistence.xml 위치에 설정 파일을 저장한다. persistence-unit name으로 이름을 지정 javax-persistence: JPA 표준 속성을 의미 hibernate: 하이버네이트 전용 속성을 의미(하이버네이트는 JPA 구현체중 하나) property 태그를 이용해 속성 정보를 하나하나 지정하는 것 같다. user: sa password: 없음 url: jdbc:h2:tcp://localhost/~/test dialect는 방언.. 2023. 1. 20.
[JPA] Java 표준 ORM인 JPA란? SQL 중심적인 개발의 문제점 무한 반복, 지루한 코드.. 기획 단계에서 잘못되어 새로운 필드를 테이블에 추가하려 하는 경우, 관련된 모든 쿼리를 전부 변경해야 한다. 하지만, 관계형 데이터베이스를 대부분의 케이스에서 사용하기 때문에, SQL에 의존한 개발을 할 수밖에 없다..!! 개발을 하면서 객체라는 개념을 다양한 저장소에 저장하게 되는데, 이 중 현실적인 대안은 관계형 데이터베이스이다. 개발자는 사실상 객체를 관계형 데이터베이스에 저장하기 위한 mapping 과정을 도맡아 한다고 볼 수 있음 객체와 관계형 데이터베이스의 차이 상속 연관관계 데이터 타입 데이터 식별 방법 상속 부모 테이블을 만들고, 자식 테이블을 만들어 관리하는 방식으로 흉내 낼 수 있고, 이를 슈퍼타입 서브타입으로 만들어 관리한다고.. 2023. 1. 19.
김영한 님의 [스프링 핵심 원리 - 기본편] 강의 후기 강의 후기 이번에는 한 3주가량?에 걸쳐서 스프링핵심원리 - 기본편 강의를 들은 후기를 짧게나마 남겨보려고 합니다. Node.js로 백엔드 개발에 입문하고, 아무래도 대다수의 국내 기업의 백 엔드 개발자들이 사용하는 Spring 프레임워크에 대한 관심이 커져가서 관련 서적이나 강의들을 찾아보던 찰나에 인프런 강의 중에서 김영한 님의 스프링 강의 시리즈가 아주 좋다는 추천을 많이 보게 되어서 커리큘럼을 처음 접하게 되었습니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 대세를 따르세요! 자바 스프링 베스트셀러 우형 최연소 기술이사에게 배우는 스프링 완전 정복 🚩 [사진] 오픈 3개월 만에 수강생 7000+.. 2023. 1. 19.
BOJ - 10868번, 최솟값 문제 Segment Tree를 이용한 풀이 이번 문제는 주어진 N개의 정수들에 대해 M번의 구간 최솟값을 묻는 질의에 올바른 답을 반환하는 알고리즘을 구현하는 것이 목표입니다. 물론, 구간의 최솟값을 확인하기 위해 linear한 탐색 방식을 취할 수 있겠지만, 이렇게 하는 경우 - worst case 100,000(N의 최댓값) x 100,000(M의 최댓값) = 10^12번의 연산 위와 같이 연산의 횟수가 너무 커서 시간 초과를 결과로 받게 될 것입니다. 따라서 지난번에 정리한 세그먼트 트리의 개념을 구간 합을 구하는 대신 최솟값을 구할 수 있도록 변형해서 이번 문제를 풀이하는 방식을 채택해 봤습니다. https://kkkdh.tistory.com/entry/%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%ED%8A%B8%E.. 2023. 1. 18.
728x90