본문 바로가기
구간 합 구하기 5 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline() def make_sum_array(array): sum_array = [0] * len(array) for i in range(1, len(array)): sum_array[i] = sum_array[i - 1] + array[i] return sum_array N, M = .. 2024. 3. 24.
JPA, querydsl는 네이티브 쿼리를 보완할 수 있을까? 이전에 다녔던 회사에서 JPA와 querydsl을 주로 사용해 비즈니스 로직을 구현해 서비스를 제공해주었다. 물론 외주받아 처음에 수행해주었던 SI 회사에서는 jdbc를 사용해 네이티브 쿼리를 사용했지만 사수가 입사 후에 JPA와 querydsl을 사용해 리팩토링을 했다. 나 또한 지금까지도 네이티브 쿼리보다는 JPA, querydsl을 많이 차용했고 필요한 데이터를 추출할 때의 과정에서는 디비버 툴을 사용해 해당 데이터베이스의 쿼리문을 직접 작성하여 확인하고 이를 querydsl로 변형하여 코드를 구성했었다. 문득, 이 방법에 대해서 옳은 방향인가에 대해 깊은 고민을 하기 시작했고 각자의 장점과 단점을 파악하기로 마음 먹었다. 네이티브 쿼리 스프링에서부터 네이티브 쿼리는 jdbc나 mybatis 라이브.. 2024. 3. 21.
동기 처리와 비동기 처리 처음엔 단순히 비동기 처리는 뭐다! 하고 자바스크립트에선 setTimeout, Promise, async/await이 있다라고 이해하고 넘어가려 했다. 하지만 스프링 부트를 가지고 공부를 했을 당시에 내부에서 비동기 처리를 해본 적이 없으니 명확한 차이를 알고 싶어졌다. 스프링부트에서 처리했던 방식 내가 스프링부트를 사용해 서버 단에서 데이터를 처리했던 방식은 대부분 동기적인 방식이었다. 동기 처리에 대한 개념은 순차적으로 데이터를 처리하는 것이라 생각하면 되는데 순차적으로 처리하기에 처리하던 부분이 완료될 때까지 기다려야되는 상황이 생긴다. 그러면 동기 처리는 별로인가? 그렇다는 것은 아니다. 상황에 따라서 동기 처리가 좋을지 비동기 처리가 좋을지는 경험을 통해서 알아가야 할 것이라고 생각하고 있다. .. 2024. 3. 21.
비동기 처리 자바스크립트를 사용하는 회사로 이직을 하게 되면서 그 전부터 정리가 안되있던 개념 중 한 가지인 비동기 처리에 대한 부분을 정리하려고 한다. 동기 처리부터 알아보자. '비'동기 처리니까 동기 처리에 대한 부분도 있을 것이다. 이것부터 코드로 먼저 알아보자. function sync() { console.log("처리를 시작한다."); let startTime = new Date().getTime(); while (new Date().getTime() 처리를 시작한다 -> 처리를 완료.. 2024. 3. 13.
querydsl을 사용해서 조인 querydsl 의존성을 알게된 건 이전 회사에서 사용했었기에 알고 있었다. JPA만을 가지고 쿼리를 조회하는 것은 쉽지 않기에 쿼리 질의문에 많은 복잡성이 생긴다면 한계가 분명 있다. querydsl 말고도 jpql 등 여러 방식이 많지만 나는 querydsl을 사용하기로 했다. https://choidevvv.tistory.com/49 1:N 관계를 매핑해주기 관리자 페이지에서 상품 저장 로직을 구성하는 도중에 상품 - 상품 이미지에 대한 연관 관계를 나는 1:N으로 하였다. 말로 풀어서 정리하자면 상품을 저장하는데 해당 상품에 대한 이미지는 N개 choidevvv.tistory.com 바로 전 게시물에서 상품 - 상품 이미지 테이블을 1:N 관계로 OneToMany 연관관계를 형성했다. 이제 내가 .. 2024. 3. 7.
1:N 관계를 매핑해주기 관리자 페이지에서 상품 저장 로직을 구성하는 도중에 상품 - 상품 이미지에 대한 연관 관계를 나는 1:N으로 하였다. 말로 풀어서 정리하자면 상품을 저장하는데 해당 상품에 대한 이미지는 N개를 가질 수 있다라는 뜻이다. 스프링부트 환경에서 이를 저장해주려면 어떻게 해야할지 정리하려고 한다. 결과 결과부터 보여주자면 상품 기본키 10번에 해당하는 이미지는 2개를 저장했고 모두 10번의 외래키를 가지고 있는 것을 확인할 수 있다. 소스 코드로 알아보기 @Entity @Getter @NoArgsConstructor @Table(name = "pcmoa_products") public class Products extends BaseEntity { @Column private String name; @Colum.. 2024. 3. 7.