본문 바로가기
반응형

분류 전체보기714

TIL_211006 1. Facts(사실, 객관) - MERGE INTO 쿼리문 작성 및 정리 2. Feelings(느낌, 주관) 회사 마케팅 팀에서 가끔 회원들에 관한 조회쿼리나, 수정을 요청합니다. 이번에는 홈페이지에서 광고수신을 동의하고 있는 사람들의 정보를 기간 시스템에서도 수신동의로 업데이트 할 수 있냐는 요청이었습니다. 쿼리를 작성하는 문법을 잘 알아야 하는것도 중요합니다. 그런데, 현업을 하다보니 내부 시스템이 어떻게 구현되어 있는지, 테이블이 어떤 연관관계를 가지고 있는지 파악하고 적절히 조인하는 것도 중요하다는 것을 배웠습니다. 그래서 내가 수정이 필요한 테이블과 그 테이블을 수정하기 위해 조인해야 할 테이블의 정보를 빠르게 파악하기 위해 노력했습니다. 단순한 update를 통해서 수정이 가능했지만, 오라클.. 2021. 10. 7.
서브쿼리 서브쿼리란, SQL 쿼리 안에 있는 또다른 SQL 쿼리를 뜻한다. 또한 검색할 데이터를 추가로 제한하는 조건으로 main 쿼리에서 사용할 데이터를 반환할 때 사용한다. 서브쿼리는 SELECT, INSERT, UPDATE, DELETE문을 사용할 수 있다. 또한 대표적으로 SELECT의 경우, SELECT, WHERE, FROM 3군데에서 사용한다. *서브쿼리 특징 - 만약 main 쿼리에서 여러개의 칼럼이 필요하지 않다면, SELECT 에서는 1개의 칼럼값만 가질 수 있다. - main 쿼리에서 ORDER BY를 사용할 수 있더라도, 서브쿼리에서는 ORDER BY를 사용할 수 없다. - main 쿼리에서 GROUP BY를 사용하듯이, 서브쿼리에서 GROUP BY를 사용할 수 있다. - 1개 이상의 데이터.. 2021. 10. 6.
조인 *목차 1. 내부조인 2. 외부조인 3. 세타조인 4. JPA 조인 - ON 절 - 1.조인 대상 필터링 - 2.연관관계 없는 조인 내부조인 SELECT m FROM Member m [INNER] JOIN m.team t Member는 있고 Team이 없으면 포함안된다 List resultList = em.createQuery("select m from Member m INNER JOIN m.team") .getResultList(); Member result = resultList.get(0); System.out.println(result.getName()); System.out.println(result.getAge()); Hibernate: /* select m from Member m INNER.. 2021. 10. 6.
프로젝션(엔티티, 임베디드, 스칼라타입) SELECT 절에 조회할 대상을 지정한다. 일반 SQL 조회는 단순히 원하는 칼럼을 조회하지만, JPA는 엔티티, 임베디드, 스칼라타입등 다양한 리턴타입이 조회대상에 올 수 있다. *목차 1. 프로젝션 종류 2. 연관 컬렉션 조회와 한계 - 명시적 내부 조인 권장 3. 프로젝션 여러 값 조회 프로젝션 대상 : 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자 등 기본 데이터 타입) 1. 프로젝션 종류 //엔티티 프로젝션 SELECT m FROM Member m //엔티티 프로젝션(내부조인 발생) SELECT m.team FROM Member m //임베디드 타입 프로젝션 SELECT m.address FROM Member m //스칼라 타입 프로젝션 SELECT m.username, m.age FROM .. 2021. 10. 6.
TIL_211005 1. Facts(사실, 객관) - JPA 페치조인 강의 및 정리 2. Feelings(느낌, 주관) - JPA 페치 조인 강의를 들었습니다. 잠시 앞에서 배웠던 묵시적, 명시적 조인에 좀 더 심화되어 성능까지 잡을 수 있는 기술입니다. 열심히 듣다보니 페치조인도 즉시로딩인데 EAGER 전략과 무슨 차이일까? 일반 조인과는 무슨 차이일까? 비교하면서 들었더니 좀 더 이해가 쉽고 차이점을 알 수 있었습니다. 페치조인을 통해 간단하게 쿼리할 수 있지만, 그 상황에 맞게 써야하니 토이프로젝트를 쭉 점검하면서 돌아볼 예정입니다. 3. Findings (배운 점) 페치조인과 일반조인의 차이는 페치조인은 연관 엔티티를 즉시로딩으로 함께 조회하고 일반조인은 연관 엔티티를 함께 조회하지 않는다. 따라서 LEFT OUTE.. 2021. 10. 6.
페치 조인 ( fetch join ) - 2 *목차 페치 조인 특징 3가지와 한계 1. 페치조인에 별칭을 줄 수 없다. 2. 둘 이상의 컬렉션을 페치조인 할 수 없다. 3. 컬렉션 페치조인은 페이징 API를 사용할 수 없다 - 페이징 API 한계 해결하기 1. 엔티티 페치조인 API로 뒤집기 2. LAZY 조회하기 3. @BatchSize 이용하기 * 페치 조인의 특징과 한계 1. 페치 조인 대상에는 별칭을 줄 수 없습니다. (하이버네이트는 가능하지만, 가급적 사용하지 않는다.) 페치 조인의 컨셉은 "나랑 연관되어 있는 애들을 모두 가져오겠다" 입니다. Team의 연관 컬렉션 Member가 5명인데 특정 3명만 조회하고 싶다면, 페치 조인을 가급적 사용하면 안됩니다. 무의식적으로 5명을 기대하고 Member 리스트를 사용할 가능성이 있습니다. //.. 2021. 10. 6.
페치 조인 ( fetch join ) -1 *목차 fetch join 특징 설명 DB SQL, JPA fetch join 쿼리 비교 연관 엔티티 LAZY 조회 확인 한계 극복 fetch join을 이용한 연관 엔티티 조회 fetch join을 이용한 연관 컬렉션 조회 한계 극복 fetch join & 일반 조인 차이 * 페치 조인 특징 1. SQL 조인 종류가 아니다. 2 JPQL에서 성능 최적화를 위해 제공한다. 3. 연관된 엔티티나 컬렉션을 SQL 한번에 함께 조회한다. 페치 조인은, 일반적으로 SQL 문법을 사용했다면 낯선 용어입니다. 왜냐하면 전통 SQL의 방식이 아니기 때문입니다. 페치 조인은 JPQL에서 제공하는 쿼리 방식으로, 연관된 엔티티나 컬렉션을 한번에 조회하고 싶을 때 사용합니다. 일반적인 DB SQL과 JPA fetch jo.. 2021. 10. 5.
경로 표현식 * 경로표현식이란? .(점)을 찍어 객체 그래프를 탐색하는 것 상태필드, 단일 값, 컬렉션 값 3가지의 경로 표현식이 있다. select m.username //상태필드 from Member m join m.team t //단일 값 연관필드 join m.orders o //컬렉션 값 연관필드 where t.name = '팀A'; 상태필드 연관 엔티티 연관 컬렉션 SELECT 문법 m.username m.team t.members 리턴타입 String Team Collection 추가 경로조회 불가능 가능 불가능 특징 단순한 값 엔티티 1개 엔티티 여러개 * 쿼리 비교 1. 상태 필드 경로 검색 //JPQL SELECT m.username, m.age FROM Member m //SQL SELECT m.u.. 2021. 10. 5.
AWS/Docker 클라우드 패스트캠퍼스 챌린지 30일차 [API gateaway와 Lambda 싱크 (GET, POST)] Amazon API Gateway에서 GET API를 만들어야 한다. 따라서 프로토콜은 REST, 새 API와 이름 및 엔드포인트는 지역으로 생성한다. RESTFUL하게 만들어야 하기 때문에 URL 자체에서 리소스를 알 수 있도록 작성한다. 메서드 생성, 리소스 생성이 있는데 작업을 통해서 가능하다 리소스 생성을 먼저 한다. 리소스 이름은 conference로 하고 CORS 활성화는 나중에 한다. 리소스 생성이 끝나면, 다시한번 /conference 아래에 /users를 생성한다. 리소스 경로에 다시한번 /{user_id}로 만든다. 사용자의 id가 입력되면 된다. 메서드생성으로 최종적으로 GET을 한다. 통합유형은 람다함수, 리전도 그.. 2021. 10. 5.
반응형