Java(70)
-
[Page 처리 #1] OFFSET 기반 페이징 처리 이해하기
페이징(Paging) 이란?페이징은 데이터가 많을 때, 한 번에 모든 정보를 가져와서 사용자에게 보여주는 대신 일정 개수를 여러 페이지로 나누어 조회하고 화면에 표시하는 기법장점성능 향상 : DB나 서버로부터 모든 데이터를 한 번에 불러오는 부담을 줄임빠른 응답 : 필요한 데이터만 가져오기 때문에 응답시간 단축UI/UX 개선 : 화면에 한꺼번에 많은 정보를 보여주지 않기에 가독성 향상 페이징(Paging) 처리 시 고려해야할 점전체 데이터 개수 (totalCnt)전체 페이지 수 계산에 사용검색 조건에 따라 전체 데이터 개수가 달라질 수 있음현재 페이지 (currentPage)사용자가 보고자하는 페이지 번호한 페이지당 데이터 개수 (perPageCnt)한 페이지에 보여줄 데이터 양* 시작 위치 : (현재 ..
2025.02.11 -
[Page 처리 #2] JPA 페이징 처리 이해하기 (+ OFFSET, Cursor 기반)
JPA 페이징 처리JPA의 페이징 처리 또한, OFFSET 기반 쿼리를 기본으로 한다.다만, ORM 기법으로 인한 쿼리 생성 구조로 인해서 애플리케이션 층에서 객체를 이용하여 페이징을 관리하게 된다. JPA 페이징 객체[ Pageable ]- 페이징을 위한 정보 (페이지 번호, 페이지 크기, 정렬 정보..)을 담고 있는 인터페이스- 구현체로는 PageRequest가 사용ex) PageRequest.of( int page, int size, Sort sort)[ Page ]- 페이징된 데이터 + 페이징 정보를 담고 있는 객체( 데이터 + 전체페이지수 + 전체 데이터 수 + 현재 페이지 번호 + 다음 페이지 여부 등 ...)- DB 쿼리 시, COUNT 쿼리를 진행하여 전체건수를 조회하므로 전체 페이지 계..
2025.02.11 -
[자료구조] 우선순위 큐 (+JAVA)
우선순위 큐일반적인 큐는 FIFO(First In First Out) 구조로 먼저 삽입된 값이 먼저 나오게 되는 구조이다.하지만, 우선순위 큐의 경우 FIFO구조가 아닌 우선순위가 높은 순으로 먼저 나오게 되는 구조를 일컫는다.일반적으로 숫자의 경우 오름차순 및 내림차순을 이용하여 우선순위가 높은 순으로 구현을 하게 되고,객체의 경우 비교할 값을 설정하여 우선순위를 지정하게 된다. 우선순위 큐 선언방법import java.util.PriortyQueue;PriortyQueue pq = new PriorityQueue();객체Wrapper 클래스를 이용하여 기본형들을 사용또는, Custom 객체를 이용하여 사용기본 타입Wrapper 클래스byteByteshortShortintIntegerlongLongfl..
2024.12.02 -
[그리디 알고리즘] 백준 1715번
문제정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을 합친 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50 + 20) =..
2024.12.02 -
[그리디알고리즘] 백준 11047번
문제준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 문제분석동전개수의 최솟값을 묻는 질문이므로, 가격이 큰 동전 부터 거슬러서 개수를 구하면 최소 조건이 된다.그리디 탐색 방법으로 , 각각의 시행 시점의 최솟값이 전체 최솟값이 되기에 그리디 탐색방법으로 사용해도 무방하다- 거스름 돈의 입력은 오름차순..
2024.11.27 -
그리디 알고리즘
그리디 알고리즘이란?그리디 알고리즘 (욕심쟁이 알고리즘)이란?"매 선택에서 지금 이순간 당장 최적의 답을 선택하여, 적합한 결과를 도출하자"라는 모토를 가지는 알고리즘이다.그리디 알고리즘을 선택하면, 매 선택이 그 순간에 대해서는 최적의답이지만 그걸 종합적으로 확인해보면 최적이라는 보장이 있지 않다.즉, 한번의 선택이 다음 선택에는 전혀 무관한 값이어야 하며 매 순간의 최적해가 문제에 대한 최적해일 때 사용해야하는 알고리즘 그리디 알고리즘 핵심 이론그리디 알고리즘 수행과정1. 해 선택 : 현재 상태에서 가장 최선이라고 생각되는 해를 선택2. 적절성 검사 : 현재 선택한 해가 전체 문제의 제약조건에 벗어나지 않는지 검사3. 해 검사 : 현재까지 선택한 해 집합이 전체 문제를 해결할 수 있는지 검사한다.(전..
2024.11.26