Free Lines Arrow
본문 바로가기
728x90

전체 글380

[Algorithm] Shortest Path 1: 개념 Shortest Path 최단거리 알고리즘에 대해서 알아보고 공부해 본다. 최단경로의 특징 가중치 그래프가 주어진다. 경로의 길이는 모든 에지의 가중치 합이다. 최단 경로의 부분경로도 최단경로다. 최단 경로 안에있는 모든 경로는 최단 경로이다. 최단경로는 싸이클을 포함하지 않는다. N 개의 노드가 있으면 순환이 없어야 하므로 엣지의 개수는 N-1 이다. 최단경로의 문제종류 single-source 하나의 출발 노드 s로부터 다른 모든 노드까지의 최단 경로를 찾는것 가장 유용한 방식이다. ex) dijkstra 알고리즘이 있다. single-destination 목적지가 주어지고 모든 노드로부터 목적지 까지의 최단거리 single-source 와 동일하다. single-pair 주어진 하나의 출발 노드 s.. 2021. 9. 28.
[프로그래머스] 없어진 기록 찾기 문제 분석 A(AINMAL_INS) 이고 B(ANIMAL_OUTS) 일때 단순하게 A 테이블에는 없는데 B 테이블에 있는 데이터를 조회 하는 것이다. LEFT OUTER JOIN 을 써야 된다. 이유는 LEFT JOIN 을 쓰면 매칭되는 데이터만 나오기 때문에 없는걸 구할수가 없다. LEFT OUTER JOIN을 쓰게 되면 매칭이 안되는것도 나오기 때문에 조건을 걸어서 원하는 데이터를 뽑으면된다. 아래 그림에서 ANIMAL_INS 의 데이터가 NULL 인걸 뽑으면 된다. 구현 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID WHERE INS.. 2021. 9. 28.
[프로그래머스] 입양 시각 구하기(2) 문제 분석 시간순으로 해당되는 시간을 count 하여 출력하는 문제라고 생각을 했다. 1. 시간순으로 출력하는 코드를 구현을 해야 된다. - 검색을 해보니 CONNECT BY 를 쓰면 된다. 2. group by 로 DB에 시간으로 그룹을 만든다. 3. 시간과 DB 에 있는 시간을 join 하여 count 를 한다. 구현 1. 0~24 까지 출력해본다. SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL 2021. 9. 28.
[JPA] JPQL Fetch Join Fetch Join 실무에서 너무 중요한 개념이기 때문에 반드시 잘 알아둬야 한다. SQL 조인과는 다른개념이다. JPQL 에서 성능 최적화를 위해 제공해 주는 기능이다. join fetch 를 써준다. 어떻게 성능최적화가 될까? JPQL 에서는 N+1 문제가 발생하는 경우가 있다. N+1 문제는 1나의 쿼리를 수행했는데 그외에 또 쿼리가 나가는 문제이다. 언제 N + 1 문제가 발생하는가? 연관관계 에서 회원이 팀 객체를 가지고 있다고 생각해보자. 1. 회원을 조회 하는 쿼리를 수행한다.(1) 2. 회원이 가지고있는 팀을 조회한다(N 회원수 만큼) 이렇게 N+1 문제가 발생한다. 예제 Member 는 Lazy fetch 를 사용한다. 지연로딩 그렇기 때문에 List 에 들어 있는 team은 proxy .. 2021. 9. 26.
728x90
반응형