![[SpringBoot] 대량의 데이터를 어떻게 다루어야 할까](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3owbf%2FbtsqYo9h25z%2FhZfnHqZGeBcHjxzBqPO8K1%2Fimg.png)
서론 ★혹시 좋은 의견이 있으시다면 댓글로 좀 알려주시면 감사하겠습니다.. 초보 개발자에게 한줄기 빛을.. 토이 프로젝트의 방향이 결국 리그오브레전드 챔피언들의 모의 투자 로 방향성이 잡혔다. https://developer.riotgames.com/docs/lol Riot Developer Portal League of Legends Developer API Policy Before you begin, read through the Terms of Use and Legal Notices. Developers must adhere to policy changes as they arise. When developing using the API, you must abide by the following: P..
![[백준 9465번 / Java] 스티커 - DP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpU4hU%2FbtsqM9ET6v2%2FDKXkNkNIZc5pEfrvdazCG0%2Fimg.png)
문제 링크 Silver 1 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 풀이 문제의 조건은 선택한 스티커의 상하좌우 스티커는 선택할 수 없다. 라고 하였다. 아래 문제 예시를 보자. 50 10 100 20 40 30 50 70 10 60 위의 예시에서, dp를 사용하여 최대값을 어떻게 구할 수 있을까 왼쪽부터 시작해서, 하나씩 선택해보았다. 50 10 30 50 50 10 30 50 첫 번째 idx의 값을 선택할 수 있다. 두 번..
![[Java] 단어 퍼즐 - Lv4 프로그래머스 / DP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEqgYp%2FbtsqJEROcax%2FCiG3GyPsN3tr5vXpoQZCU1%2Fimg.png)
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12983?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DP를 사용하여 Bottom Up으로 풀이했고, 문제 예시에서의 banana로 예를 들어보자. b ba ban bana banan banana dp배열의 각 idx는 위의 값들을 만족하는 최소값들로 채워나갔다. strs의 원소에서, t의 인덱스마다 같은 substring이 있는지 확인하였고, 같다면 dp배열에 입력해나갔다. //strs에서 선택한 문자열과 ..
![QueryDSL 사용하기(SpringBoot 3.0) - QueryDSL 사용하기(4)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNYl7C%2FbtspMJ1aDi2%2FbvCEs2KtDsoegx7CFtnh20%2Fimg.png)
서론 드디어 아래의 쿼리를 QueryDSL로 뽑아내서 View시켜볼 수 있게 되었다. select C.CHAMPION_ID, C.PRICE, ROUND((C.PRICE-CP.PRICE)/CP.PRICE*100) as PERCENT from Champion C, (select CC.CHAMPION_ID, CC.PRICE from ChampionPriceLog CC where (CC.CHAMPION_ID, CC.CREATE_DATE) in(select CCC.CHAMPION_ID, MAX(CCC.CREATE_DATE) AS CREATE_DATE from ChampionPriceLog CCC group by CCC.CHAMPION_ID) order by CC.CHAMPION_ID) as CP where C.C..
![QueryDSL JPA Test (Spring Boot 3.0) - QueryDSL 사용하기(3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR3LAH%2FbtspsFdWFA7%2FcgxsVqlgRTwMezKQRarnKk%2Fimg.png)
셋팅 def queryDslVersion = '5.0.0' dependencies { //QueryDsl // 필수 implementation "com.querydsl:querydsl-jpa:${queryDslVersion}:jakarta" implementation "com.querydsl:querydsl-core:${queryDslVersion}" // QueryDsl 쿼리 타입 생성 (QClass 생성 시 @Entity 탐색) annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}:jakarta" // java.lang.NoClassDefFoundError:javax/persistence/Entity 에러 방지 annotationProc..
![QueryDSL이란? - QueryDSL 사용하기(1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoxfMF%2FbtspFmLgInt%2FWnOegiy0JR1UNMC4cEqir0%2Fimg.png)
서론 토이 프로젝트 진행 중 아래와 같은 쿼리 사용이 필요했고, QueryDSL을 한 번 사용해보기로 했음. select C.CHAMPION_ID, C.PRICE, ROUND((C.PRICE-CP.PRICE)/CP.PRICE*100) as PERCENT from Champion C, (select CC.CHAMPION_ID, CC.PRICE from ChampionPriceLog CC where (CC.CHAMPION_ID, CC.CREATE_DATE) in(select CCC.CHAMPION_ID, MAX(CCC.CREATE_DATE) AS CREATE_DATE from ChampionPriceLog CCC group by CCC.CHAMPION_ID) order by CC.CHAMPION_ID) as..
![JPQL이란? - QueryDSL 사용하기(2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKZeHF%2FbtsppIWpQa6%2FK9Lnp3SnlPJldiJVBKYZW1%2Fimg.webp)
서론 이전 글에 나왔던 키워드 중 JPQL에 대해 조금이라도 알아보기 위해 정리하는 글 JPQL(Java Persitence Query Language)이란? 엔티티 객체를 대상으로 하는 객체지향 쿼리로 SQL을 추상화한 객체지향 쿼리이며, 작성된 JPQL은 SQL로 변환된다. 기존 JPA의 메서드 호출만으로는 섬세한 쿼리 작성이 어렵다는 문제를 해결하기 위해 JPQL이 나타나게 되었으며 SQL을 추상화했기 때문에 특정 데이터베이스 SQL에 의존하지 않는다는 장점이 있다. SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN을 지원한다. 예시 Member 객체를 대상으로 이름에 "bazzi"가 포함된 모든 회원을 검색하는 쿼리 String jpql = "select m From ..
![테스트코드 실습하기 (단위, 통합 테스트) - TestCode(14)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGSROa%2Fbtspxb919mi%2FNPNbNeqWEtYTj52LheOVu1%2Fimg.png)
서론 인강은 끝이 났고, 인강 내용을 바탕으로 첫 테스트 코드를 적용한 토이 프로젝트 내 코드들을 조금 리뷰해보려고 한다. 프로젝트를 간단히 소개하자면, 그냥 롤 챔피언 정보를 JSON으로 받아와서 무언가를 하는 서비스를 구현 할 예정이다. 우선 돌아가게는 작성했는데 테스트 코드를 처음 직접 활용하다보니 부족한 부분이 많을 수 있다. 혹여 지나가다 보시는 고수분들께서 틀린 점이 있다면 지적좀 해주시면 감사할 따름.. 단위 테스트 Champion의 Repository에 대한 테스트를 작성했다. package com.example.lolchampionsinvestment.domain.champion; import org.junit.jupiter.api.DisplayName; import org.junit.j..