728x90
반응형
전체 글

전체 글

    오래된 ubuntu버전 사용 시 apt command 동작 안하는 이슈 수정

    라즈베리 파이에 예전에 설치한 우분투에 jdk를 설치하기 위해서 sudo apt-get update를 진행하였으나 계속 아래 에러를 내뱉고 실패했다. ㅜㅜ "/etc/apt/sources.list" 49L, 2861B 49,75 모두 # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to 무시:1 http://ports.ubuntu.com/ubuntu-ports hirsute InRelease 무시:2 http://ports.ubuntu.com/ubuntu-ports hirsute-updates InRelease 무시:3 http://ports.ubuntu.com/ubuntu-ports hirsute-backports InRel..

    MapStruct의 mapping방식과 Lobmok 함께 사용 시 값이 mapping되지 않는 이유

    저번에 작성했던 MapStruct를 사용하면서 겪은 이야기를 정리해본다. MapStruct를 사용하면 값을 매핑해야하는 여러 경우에서 편리하게 값을 매핑할 수 있다. 특히 Entity값을 외부로 내보내려고 값객체에 값을 저장할 때 유용하게 사용된다. 객체 생성 및 값 주입 방법 기본적으로 MapStruct에 경우 setter, constructor, builder를 사용하여 객체를 생성하고 값을 넣는다. 먼저 setter를 사용하는 경우를 살펴보자. 1. setter package com.wedul.mapstructtest.entity; import lombok.Builder; import lombok.Getter; import java.util.List; @Getter public class Accou..

    Mapstruct 사용 시 collection 내부에 이름이 다른경우

    Mapstruct를 통해 편하게 응답값을 매핑할 수 있도록 도와주는 라이브러리를 살펴본적 있다. https://wedul.site/703 만들면서 배우는 아키텍처 그리고 매핑 프레임워크 MapStruct를 사용한 매핑 만들면서 배우는 아키텍처 (Get Your Hands Dirty on Clean Architecture) 요새 읽던 책중에 'Get Your Hands Dirty on Clean Architecture' 책이 인상 깊었다. 원서로 팀원들과 스터디 하고 나서 인상깊어서 '만들면서 배 wedul.site 값을 매핑할 때 필드의 이름이 다를 경우에는 아래 처럼 Mapping애노테이션을 사용해서 source, target에 이름을 명시하여 이를 해결 할 수 있었다. @Mapping(source =..

    JPA querydsl에서 oneToMany fetchjoin시 offset, limit를 사용할경우 result list가 distinct가 되는 이유

    Jpa join시 중복 엔티티 출력 현상 교실 (Classes 엔티티) package com.wedul.jpa.school; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @Getter @NoArgsConstructor @Entity @Table public class Classes { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String className; @OneToMany(cascade = CascadeType.AL..

    query specified join fetching, but the owner of the fetched association was not present in the select list 설명과 문제해결

    package com.wedul.jpa.school; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @Getter @NoArgsConstructor @Entity @Table public class Classes { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String className; @OneToMany(cascade = CascadeType.ALL, mappedBy = "classes", orphanRemoval =..

    MultipleBagFetchException 문제 발생

    엔티티에 연관되어 있는 다른 테이블의 데이터를 2개 이상 fetch join하려고 시도했다. 예를 들어보면 아래와 같이 Classes엔티티에 oneToMany관계인 student와 teacher 두개에 엔티티를 fetch join으로 가지고 오고자 했다. Classes.java package com.wedul.jpa.school; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import java.util.List; @Getter @NoArgsConstructor @Entity @Table public class Classes { @Id @GeneratedValu..

    dynamoDbEnhancedClient range query condition 사용 시 The provided starting key does not match the range key predicate 에러 발생

    이전글에서 QueryConditional에서 range로 requestDateTime의 값을 sortkey로 구간 조건으로 조회를 했었다. 근데 dynamodb 특성상 페이징을 하기 위해서는 exclusiveStartKey값을 이용해서 마지막 이후 부터 값을 읽도록 쿼리를 수행해야한다. 하지만 작성한 쿼리로 로직을 수행하던중 The provided starting key does not match the range key 에러가 발생했다. 삽질을 계속 하던 중 query condition에서 사용했던 sortkey range구간을 벗어나는 값을 넣었을 경우에 발생했다. 만약 range query condition을 사용할 경우 range구간을 벗어나는 값을 exclusiveStartKey값으로 넣지 않도..

    dynamoDbEnhancedClient에서 QueryConditional에서 sort key range 조회하기

    아래와 같이 데이터가 존재하는 상황을 가정해보자. import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbPartitionKey; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbSortKey; @Getter @Setter ..

    mysql 컬럼별 상위 N건 조회하는 방법

    mysql을 사용하고 있는 상황에서 타입별 보유하고 있는 score별 순위 2개까지의 값을 가져오는 쿼리가 필요했다. 예를 들면 강아지 페스티벌에 참여한 강아지들의 스코어 별 상위 3위까지의 강아지를 찾는 쿼리가 필요했다. 그럼 값을 한번 추출해보자. 우선 전제가 되는 테이블은 아래와 같다. # database 생성 create database test character set utf8mb4 collate utf8mb4_general_ci; use test; # 테이블 생성 create table dog_festival ( id int primary key not null auto_increment, dog_type varchar(30), score int ) # 값 추가 insert into dog_f..

    문자열 연결 시 실행되는 내부 로직

    문자열 생성 String 문자열을 연결할 때 아래와 같이 객체로써 선언해서 사용할 경우 불필요한 객체가 만들어진다는걸 우리는 알고있다. String temp = new String("wedul"); 그래서 String을 아래와 같이 선언해서 String constants Pool에 저장해서 불변객체를 생성해서 동일한 문자열에 대해서 새로 생성하지 않고 가져다 사용할 수 있도록 할수있다. (effective java. 불필요한 객체를 만들지 마라.) String temp = "wedul" 문자열 연결 문자열 생성 시 우리는 + 로 문자열을 연결할 경우 새로운 문자열 객체가 계속 생성되기 때문에 이를 해결하기 위해서 StringBuilder를 통해서 모든 append가 끝나고 build를 통해 문자열 객체를..

반응형