![[인프런 알고리즘] Chapter 6, 7번 문제(좌표 정렬)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcI2xMn%2FbtsI9OPVzqo%2FAAAAAAAAAAAAAAAAAAAAADSYX-uGIE4UZYIR1jK119AmYzM3NjRBurRXJUhHV-p5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DPnx9tn98z99dEfCexeqPrKo9rVM%253D)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.StringTokenizer;public class sec06_07 { public static class Point{ private int x; private int y; public Point(int x, int y) { ..
![[DB 성능 최적화] 인덱스(Index)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FnA2td%2FbtsI9RE76dJ%2FAAAAAAAAAAAAAAAAAAAAABQG-YPYCIIIDAz5B6QqLHhp9EQsuRYdvrYb7clSEsvN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D24t8axk9Bo6UqsFqF2zwysF96tQ%253D)
이 글은 인프런의 MySQL 성능 최적화 입문/실전 (SQL 튜닝편) (박재성) 강의를 듣고 개인적으로 정리하는 글임을 알립니다.MySQL 아키텍쳐MySQL의 아키텍처를 간단하게 표현하자면 위와 같다.클라이언트가 DB에 SQL 요청을 보낸다. MySQL 엔진에서 옵티마이저가 SQL문을 분석한 뒤 빠르고 효율적으로 데이터를 가져올 수 있는 계획을 세운다.어떤 순서로 테이블에 접근할 지, 인덱스를 사용할 지, 어떤 인덱스를 사용할 지 등을 결정한다.(옵티마이저가 세운 계획은 완벽하지 않다. 따라서 SQL 튜닝이 필요하다.)옵티마이저가 세운 계획을 바탕으로 스토리지 엔진에서 데이터를 가져온다. (DB 성능에 문제가 생기는 대부분의 원인은 스토리지 엔진으로부터 데이터를 가져올 때 발생한다. 데이터를 찾기가 어려..
![[인프런 알고리즘] Chapter 6, 6번 문제(장난꾸러기)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fzcnj4%2FbtsI9sZuqby%2FAAAAAAAAAAAAAAAAAAAAAOC2SrVCqPrUnMAPFMLZxZZz3Gx8N0eA_wo_kDGrQb5i%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DOxABvOMHGFDm6CpWEyxkK2va6jQ%253D)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.StringTokenizer;public class sec06_06 { public static ArrayList solution(int[] arr) { int[] copy = arr.clone(); ArrayList answer = new ArrayList(); ..
![[Query DSL] Spring Data JPA와 Query DSL 통합(+ Query DSL 페이징 최적화)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbxp7fz%2FbtsI6ff44JB%2FAAAAAAAAAAAAAAAAAAAAALp4dFtx_aCMGgImxVN6IpNnWbdXTXtnR8QNsouMNxgw%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DMRgRAzOWP1zDPqM5ssagaTXWhC8%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.Query DSL을 Spring Data JPA에서 사용하려면 사용자 정의 리포지토리를 만들어야 한다. MemberTeamDto@Datapublic class MemberTeamDto { private Long memberId; private String username; private int age; private Long teamId; private String teamName; @QueryProjection public MemberTeamDto(Long memberId, String username, int age, Long teamId, String teamName) ..
![[Query DSL] 중급 문법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FtZqCM%2FbtsI4SkE4Vc%2FAAAAAAAAAAAAAAAAAAAAAKS6geh9R97gdg0MVW6Hgdi9oPOESUwtCM9_xhbbq6lB%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D73AXJI1q3ExgaMURH9fzy5hBQhk%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.테스트 기본 코드@Entity@Getter @Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToString(of = {"id", "username", "age"})public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") privat..
![[인프런 알고리즘] Chapter 6, 5번 문제(중복 확인)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fclsk16%2FbtsI8aRQaJw%2FAAAAAAAAAAAAAAAAAAAAAM1-zmbi0oU0YLMm_Hztz8YLbF6dXLwt9E67eOOtxz7-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DCaAdxqTpQU9qGY9g%252BOJfWeMGDws%253D)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashSet;import java.util.StringTokenizer;public class sec06_05 { public static char solution(int[] arr) { HashSet set = new HashSet(); for (int i : arr) set.add(i); return (arr.length == set.size())..
![[Query DSL] 기본 문법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb7q6fr%2FbtsI4pP7MHB%2FAAAAAAAAAAAAAAAAAAAAAAMPWsen0MLkJ_L79D7ADurLnLo_hsho6OW2ueNSwXb4%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DZ5T%252BY5R9ZnLJXLIMWGqfbhoE%252FXQ%253D)
이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다.EntityManager 로 JPAQueryFactory 생성Querydsl은 JPQL 빌더JPQL: 문자(실행 시점 오류), Querydsl: 코드(컴파일 시점 오류)JPQL: 파라미터 바인딩 직접, Querydsl: 파라미터 바인딩 자동 처리JPAQueryFactory를 필드로 제공하면 동시성 문제는 JPAQueryFactory를 생성 할 때 제공하는 EntityManager(em)에 달려있다. 스프링 프레임워크는 여러 쓰레드에서 동시에 같은 EntityManager에 접근해도, 트랜잭션 마다 별도의 영속성 컨텍스트를 제공하기 때문에, 동시성 문제는 걱정하지 않아도 된다. 테스트 기본 코드@Entity@Get..
![[인프런 알고리즘] Chapter 06, 4번 문제(Least Recently Used)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F1IX75%2FbtsI76PeYJP%2FAAAAAAAAAAAAAAAAAAAAAP__h9sBW9SbDm6hG1bKRNduzFWFynsBfWioJWPn4E_n%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D4MP%252BqnExwOo1XN2Fly%252BuW1r%252BHzE%253D)
이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.문제 설명 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class sec06_04 { public static int[] solution(int S, int[] arr) { int[] cache = new int[S]; for (int i : arr) { int pos = -1; for(int j = 0; j 0; --j) c..