
DB의 테이블들은 외래키를 사용해 테이블끼리 관계를 맺게 된다. 이를 JPA에서는 @OneToMany, @ManyToOne 등의 애노테이션을 사용해 엔티티 클래스 간의 연관관계로 매핑시키고, 매핑된 엔티티(객체)를 대상으로 쿼리를 날릴 수 있다. 이 때문에 기존의 SQL로 조회하는 것보다 객체 지향적으로 개발할 수 있다.하지만 지연 로딩 설정, N+1 문제, 페치 조인 최적화 등 고려해야 할 부분이 많다. 특히 @__ToOne 관계를 가지는 엔티티를 함께 조회해야 할 때, 생각한 것과 다른 결과가 도출돼 장애가 나거나 성능도 안 나오게 된다.본 포스팅에서는 조회하고 싶은 엔티티(루트 엔티티)가 1:N 관계를 가지는 컬렉션 객체를 필드로 가지고 있을 때 어떤 부분들을 주의해야 하고, 어떻게 최적화할 수 있..

가비지 컬렉션(Garbage Collection)이란?가비지 컬렉션이란 말 그대로 ’쓰레기 수집’이다. 여기서 쓰레기란 사용하지 않는 메모리 영역이고, 이들을 수집해서 제거하는 것이 가비지 컬렉션이다.사실 자바에서만 국한된 기능이 아니라 예전부터 컴퓨터 과학 분야에서 사용되던 방식이다. 가비지 컬렉션은 메모리 관리 기법 중 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중 필요없게 된 영역을 해제하는 기능이다.이를 자바에서는 JVM(Java Virtual Machine)이 대신 수행한다. 때문에 개발자가 메모리 누수(Memory Leak)을 크게 신경쓰지 않아도 된다.GC(Garbage Collection)의 대상자바에서는 런타임 시 힙(Heap) 영역에 동적으로 메모리를 할당하게 된다. 힙에는 최상..

본문에 앞서 예시를 하나 들겠다. 다음과 같이 멤버 엔티티와 팀 엔티티가 N:1 연관관계를 맺고 있다고 해 보자.이를 위한 엔티티 클래스는 아래와 같이 간단하게 작성했다.@Entity@Getter @Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @ManyToOne @JoinColumn(name = "team_id") private Team team;}@Entity@Getter @Setterpublic class Team { @Id @GeneratedValue @Column(name = "team_id"..

CORS ?CORS란 Cross-Origin Resource Sharing의 준말로, 우리나라말로 직역하면 교차 출처 자원 공유다. 여기서 교차 출처라는 의미가 가장 헷갈릴 것이다. 교차된다는 것은 서로 다르다는 의미로 생각하면 된다. 다시 말해, 다른 출처에서 온 자원을 공유한다는 의미다. 그럼 출처는 무엇일까?Origin(출처)출처를 이루는 요소는 URL에서 프로토콜 + 호스트 + 포트다.출처 : 인파님 블로그위 그림에서 Origin을 뽑아보면, HTTPS://www.domain.com:3000 이 된다.아래 표는 URL http://store.company.com/dir/page.html의 출처를 비교한 예시다.URL결과이유http://store.company.com/dir2/other.html동일..
- Total
- Today
- Yesterday
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 파이썬 for Beginner 연습문제
- 생활코딩 javascript
- 지옥에서 온 git
- 파이썬 for Beginner 솔루션
- 스프링 테스트
- Python Cookbook
- 패킷 스위칭
- 스프링
- 김영환
- Thymeleaf
- git branch
- Spring Boot
- 쉽게 배우는 운영체제
- 쉘 코드
- 스프링 컨테이너
- Computer_Networking_A_Top-Down_Approach
- 스프링 mvc
- fetch join
- Spring Data JPA
- jsp
- Gradle
- git merge
- 프로그래머스
- Spring
- JPA
- git
- 선형 회귀
- 운영체제 반효경
- 방명록 프로젝트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |