![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4cRw5%2FbtrIXAw8ugK%2FK5w2LSpaykc7giw5hNhZI0%2Fimg.png)
[JPA] Fetch 전략과 @EntityGraph로 n+1 해결하기(2)
2022. 8. 4. 21:03
데이터베이스/JPA
지난 번에는 Fetch전략인 LAZY와 EAGER에 대해 알아봤다. 하지만 조회된 테이블의 연관관계 된 테이블까지 써야한다면 @EntityGraph를 사용하는게 좋다. 이 글에서는 @EntityGraph에 대해서 다뤄볼 예정입니다. n+1이 뭔지 Fetch전략에 대해서 잘 모르신다면 아래 링크를 먼저 읽어보는 것도 좋을 것 같습니다. 2022.08.03 - [데이터베이스/JPA] - [JPA] Fetch 전략과 @EntityGraph로 n+1 해결하기(1) [JPA] Fetch 전략과 @EntityGraph로 1+n 해결하기(1) JPA를 사용하기전 Mybatis를 사용할 때는 xml로 객체를 SQL에 매핑하는데 시간을 썼지만 JPA는 자동으로 쿼리를 만들어줘서 편하게 사용하고 있었다. 하지만 편한 만큼..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnRkrV%2FbtrISA5Z6iz%2FAGHuYwSlJyZOOhsefsGP10%2Fimg.png)
[JPA] Fetch 전략과 @EntityGraph로 n+1 해결하기(1)
2022. 8. 3. 22:12
데이터베이스/JPA
JPA를 사용하기전 Mybatis를 사용할 때는 xml로 객체를 SQL에 매핑하는데 시간을 썼지만 JPA는 자동으로 쿼리를 만들어줘서 편하게 사용하고 있었다. 하지만 편한 만큼이나 나도 모르게 1 + n 쿼리가 실행되고 있었다. 이것만 잘 컨트롤 해줘도 성능이 좋아지고 JPA이해도가 높아지는 것 같다. 이번 글에는 Fetch Join과 Fetch 전략을 사용해서 n+1을 개선할 것이다. n+1 이란? Car 라는 클래스와 그 차의 주인인 Master라는 클래스가 있습니다. 아시다시피 차 주인은 여러 대의 차를 가질 수 있으니 차와 주인의 관계는 N : 1 관계입니다. @Entity public class Master { @Id @GeneratedValue(strategy = GenerationType.I..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR4EtI%2FbtrIx0KGU5g%2FrmFoL7GIKVCg3hLWwSV0t1%2Fimg.png)
레디스(redis)란?
2022. 7. 30. 23:21
데이터베이스/Redis
레디스란? 레디스는 REmote DIctionary Server 의 약자이고, Key Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)입니다. 데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소이며, 인메모리 상태에서 데이터를 처리함으로써 흔이 사용하는 관계형 데이터베이스(RDS) 그리고 몽고DB로 대표되는 문서형 데이터베이스 보다도 빠르고 가볍게 동작합니다. 레디스는 오픈소스이고, 다양한 서비스에서 레디스를 자유롭게 사용하고 있습니다. 위의 사진에서 볼 수 있듯이 Airbnb, Uber, Instagram도 레디스를 사용하고 있네요. 핑크다이어리, 토스트파일, 두레이 등 사내에서도 많은 팀들이 레디스..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdR8ce0%2FbtrHDi5FfLC%2FW07iu8TE3K1qGpqH2K9bFK%2Fimg.png)
[Java/Spring] Spring Boot 메일 발송하기(Google SMTP With thymeleaf)
2022. 7. 18. 20:19
몰아 넣기
구글 보안 및 Gamil 설정하기 구글 설정 계정관리에 들어간다. 보안에서 2단계 인증을 on 해준다. 이 후 바로 아래의 앱 비밀번호를 생성해주면 된다. 기기용 앱 비밀번호를 기억해 둔다. gradle 추가 spring-start-mail //mail implementation group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '2.6.3' Thymeleaf5 //타임리프 implementation group: 'org.thymeleaf', name: 'thymeleaf-spring5', version: '3.0.11.RELEASE' properties 추가 spring.mail.password=[복사한 비밀번호]..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FltjCt%2FbtrHpdEAvlV%2FLFr3ORRB9OMOjYVHy6SNHK%2Fimg.png)
[aws] AWS S3란?
2022. 7. 16. 23:55
AWS
S3에 대한 내용들 Amazon S3란 무엇인가요? - Amazon Simple Storage Service Amazon S3란 무엇인가요? Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하 docs.aws.amazon.com https://s3.console.aws.amazon.com/s3/get-started?region=ap-northeast-2®ion=ap-northeast-2 s3.console.aws.amazon.com Amazon Simple Storage Service(Amazon S3)란? Amazon Simple Sto..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpCYdP%2FbtrHewY6rBV%2Fvdzgv1fGZvym1kD3nW1Cxk%2Fimg.png)
[java8] 자바 Stream의 foreach 와 for-loop에 대해서
2022. 7. 14. 18:20
몰아 넣기
Stream (Java Platform SE 8 ) A sequence of elements supporting sequential and parallel aggregate operations. The following example illustrates an aggregate operation using Stream and IntStream: int sum = widgets.stream() .filter(w -> w.getColor() == RED) .mapToInt(w -> w.getWeight()) docs.oracle.com 들어가는 말 나는 전 프로젝트에서 사수가 stream을 너무 좋아했다. 그래서 단순 for-loop도 stream의 foreach로 프로그래밍을 했다. 나도 stream이 적..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2kzy0%2FbtrG6X3eOzI%2FxK020ygw4Kz3cP5YMkPEuK%2Fimg.png)
[Spring/AWS] S3 저장소와 스프링부트(Spring Boot) 연동하기 및 사용법
2022. 7. 12. 19:42
몰아 넣기
# S3 만드는 방법 및 IAM 설정 방법 예제를 쓰기 전 밑 설정들이 다 되어있어야 가능합니다. [AWS] AWS S3 저장소 사용해보기 # AWS 로그인 하기 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services 개발자, 데이터 사이언티스트, 솔루션스 아키텍트 또는 AWS에서 구축하는 방법을 배우는 데 관심이 있는 모든 사용자 whitewise95.tistory.com [AWS] AWS S3, IAM 설정하기 # IAM 메뉴 찾기 # IAM이란? 👉 IAM 메인에 보이듯이 Identity and Access Management의 약자인 거 아시겠죠!! IAM은 간단히 사용자, 역할을 관리하는 서비스라고 보시면 됩니다. # 프로그램 연동을 위한 계정.. whitewise95...
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFmIXm%2FbtrG9luXPm3%2FQZkdfILQShrvc8Gokg7Ms0%2Fimg.png)
[AWS] AWS S3, IAM 설정하기
2022. 7. 12. 19:27
AWS
# IAM 메뉴 찾기 # IAM이란? 👉 IAM 메인에 보이듯이 Identity and Access Management의 약자인 거 아시겠죠!! IAM은 간단히 사용자, 역할을 관리하는 서비스라고 보시면 됩니다. # 프로그램 연동을 위한 계정 만들기 👉 왼쪽 메뉴 중에 사용자 메뉴를 클릭하여 화면으로 이동합니다. # 사용자 추가 - 사용자 세부정보, 엑세스 유형 선택 👉 사용자 이름, 엑세스 유형 중 프로그래밍 방식 엑세스를 체크하고 다음 단계로 넘어갑니다. 프로그래밍 방식 엑세스는 개발 언어와 연계해서 사용하는 방식이고, AWS Management Console 엑세스는 해당계정을 AWS 콘솔에서 로그인해서 사용하게 하는 방식입니다. 우리는 개발 언어와 연계해서 사용하는 것이 목적이기 때문에 프로그래밍..