본문 바로가기

전체 글

(104)
2022.12.15 JPA 심화(4) 프록시 엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아닙니다. 연관관계의 엔티티는 비즈니스 로직에 따라 사용될 때도 있지만 그렇지 않을 때도 있죠. 실제 사용하다보면 유저의 선택이나, 특정 상황에 따라 연관관계로 맺어진 정보들이 전혀 필요 없을때가 많습니다. JPA는 굳이 필요없는 DB 조회를 줄이면서 성능을 최적화한다고 말씀드렸죠? 이런 문제를 해결하려고 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연하는 방법을 제공하는데 이것을 지연 로딩이라 합니다. 그런데 지연 로딩 기능을 사용하려면 실제 엔티티 객체 대상에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데 이것을 프록시 객체라고 합니다. 즉시로딩과 지연로딩? 프록시가 막아주니까 가능한 기술이라고 보시면 될 것 같습니다! ..
2022.12.14 JPA심화 (3) 연관관계 관련 심화 단방향 연관관계 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 @Entity @Getter @Setter public class Member { @Id @Column(name = "member_id") private String id; private String username; @ManyToOne @JoinColumn(name="team_id") private Team team; public void setTeam(Team team) { this.team = team; } } @Entity @Getter @Setter public class Team { @Id @Column (name = "..
2022.12.13 JPA 심화 (2) 02. 영속성 컨텍스트 설계 이유 1차 캐시 출처 자바 ORM 표준 JPA - https://product.kyobobook.co.kr/detail/S000000935744 자바 ORM 표준 JPA 프로그래밍 | 김영한 - 교보문고 자바 ORM 표준 JPA 프로그래밍 | 자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA product.kyobobook.co.kr DB역시 저장공간, 연산능력과 같은 컴퓨팅 리소스를 가진 프로그램 같은 것이라고 말씀드렸죠? 그리고 보통은 서버가 떠있는 컴퓨터(AWS라고 치면 여러분의 ec2 인스턴스)가 아닌 다른 곳에 떠있는 경우가 많습니다. 그리고 다른..
2022.12.12 입문 주차 복습, 영속성 JPA 내부동작, 구현 원리 라이브러리, 프레임워크등을 잘 배우려면 “이게 왜 우리를 편하게 해주는지”에 대해서 고민해보면 좋고, 잘 사용하려면”어떻게 우리를 편하게 해주는지” 고민해보면 좋습니다. 그래서 많은 좋은 수업들이, 해당하는 기술이 없음을 가정하고 프로젝트를 진행한 후에, 해당 기술을 적용해서 얼마나 편해지는지 체감시키는 방향으로 구성되어 있습니다. 하지만 그렇게 특정 기술을 학습하고 더이상 공부하지 않는다면 해당 기술을 사용하다가 다양한 부작용을 마주하게 됩니다. 이러한 상황은 주로 내부 동작 원리나 한계등을 잘 이해하지 않고 사용하다보면 마주치게 됩니다. “나중에는 다 알고 사용할 수 있어야 합니다.” 여기서 가장 중요한 포인트는 “나중에”입니다. 상대적으로 심오한 내용이기도 하고, 처음 ..
[WIL] 2022.12.05 ~ 12.09 스프링 입문 웹의 구조와 동작 방식에 대해 이해하면서 Spring 개발을 위한 기본지식을 쌓는 한 주가 되었다. 인텔리제이 커뮤니티 버전은 강의를 따라가는데에 어려움이 있어서 한참을 헤매다가 결국 얼티메이트 버전을 다운 받아서 강의를 진행하느라 시간이 상당히 지체되었다. 또한 얼티메이트 버전은 평가판으로 한달의 라이센스 제한이 있어서 한달뒤에는 어떤 방법으로 이를 해결할 지 고민해봐야겠다. Spring Boot의 사용방법에 대해서 계층별로 나누어서 이해하는 것이 처음에는 복잡해 보였지만 강의를 반복하여 돌려보니 이해가 갔고, JPA를 사용하여 데이터베이스 관리의 어려운 점을 해결하는 방법을 알 수 있었다.
2022.12.09 DB 개요 DB란? 데이터의 집합. 데이터베이스에는 일상생활 대부분의 정보가 저장되고 관리됩니다. 오늘 보내거나 받은 카카오톡 메시지, 인스타그램에 등록한 사진, 버스/지하철에서 찍은 교통카드, 카페에서 구매한 아이스 아메리카노 등의 정보가 모두 데이터베이스에 기록 DBMS 데이터베이스를 관리하고 운영하는 소프트웨어 DBMS(Database Management System) 다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 함. 예를 들어 여러 명의 예금 계좌 정보를 모아 놓은 것이 데이터베이스입니다. 은행이 가지고있는 예금 계좌 데이터베이스에는 여러 명이 동시에 접근할 수 있습니다. 이러한 것이 가능한 이유가 DBMS때문이다. 출처 - https://..
2022.12.08 JPA 2 JPA샘플 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 @Entity // DB 테이블 역할을 합니다. public class User { // ID가 자동으로 생성 및 증가합니다. @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // nullable: null 허용 여부 // unique: 중복 허용 여부 (false 일때 중복 허용) @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; @Column(..
2022.12.07 JPA 기초 ...ing 0. 어플리케이션에서 직접 데이터베이스를 다루면 번거롭다 테이블 생성, 쿼리 작성, jdbc 실행, 객체 생성 등등 직접 해줘야할 일이 많아진다 또한 SQL 의존적이라 변경에 취약하다. 쿼리문 수정, 객체에 값 삽입 등 일일히 추가 해줘야한다. 객체지향 모델과 관계형 데이터베이스의 패러다임의 불일치가 발생한다. 출처 : https://knoc-story.tistory.com/m/90 객체 리렐이션 밀도 문제 다양한 크기의 객체를 만들 수 있음, 커스텀한 타입 만들기 쉬움 테이블, 기본 데이터 타입 서브타입 문제 상속, 다형성 구현 쉬움 상속 없음, 다형적인 관계 표현 불가 식별성 문제 레퍼런스 동일성, 인스턴스 동일성 오직 pk 관계 문제 서로간의 객체 참조를 통해 표현, 다대다 가능, 방향이 있다 다대..