분류 전체보기

JPA

Querydsl: OneToMany 관계에서 Projection DTO 값 List를 어떻게 갖고올까?

이 코드의 목적 제목, 글쓴이, 제목 + 내용 등을 통한 게시글 검색 기능입니다. 게시글 리스트를 불러올 때 해시태그도 보여줘야 하기 때문에 List값이 필요합니다. 이 오류는 왜 발생했을까? Entity입니다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Post extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private Us..

Spring/오류

com.querydsl.core.types.ExpressionException

이 코드의 목적 제목, 글쓴이, 제목 + 내용을 통한 게시글 검색 기능입니다. 이 오류는 왜 발생했을까? 먼저 QueryDSL을 작성한 코드를 보겠습니다. public Page search(PostSearchCondition condition, Pageable pageable) { List content = queryFactory .select(Projections.constructor(PostListResponseDto.class, post.id, user.id, user.nickname, post.thumbnail, post.title, post.content, post.hits, post.category, post.comment.size(), post.postLike.size(), post.crea..

Spring/오류

JPA: Parameter value [1] did not match expected type

Parameter value [1] did not match expected type 내가 만든 쿼리 유튜브 댓글처럼, 대댓글을 불러오기 위한 쿼리를 생성했다. 이 api를 호출했을 때, 부모 댓글을 기준으로 자식 댓글을 불러온다. 예외 발생 어.. 내가 원하는 값은 parentId를 기준으로 comment를 불러오는 건데 왜 예외가 발생하지? 예외 발생 원인 쿼리를 자세히 보자. c.parent 자체는 객체, parentId는 Long타입이기 때문에 바인딩이 안 돼서 발생한 예외다. Comment Entity를 살펴보자 되게 사소한 실수지만, 누구나 접할 수 있는 실수다. 올바른 쿼리로 바꾸기 정상 동작함을 알 수 있다!

JPA

JPA: 게시글 전체 조회 N + 1를 어떻게 처리할까?

0. 배경JPA로 개발하면서 N + 1 문제를 만나 헤맸던 부분과 제대로 처리하지 않으면 성능 저하, 장애로 이어질 수 있다는 부분을 깨닫고 정리하였습니다.  1. JPA: N + 1 문제정의N + 1 문제는 ORM 기술에서 특정 객체를 대상으로 수행한 쿼리가 해당 객체가 가지고 있는 연관관계를 조회하게 되면서 N번 추가적인 쿼리가 발생하는 문제입니다. 예시간단하게 구조를 살펴보겠습니다.1. POST는 LIKE, USER, COMMENT를 갖고 있습니다. 2. PostRepository에서 여러 Post를 조회하는 메소드를 호출하면 1개의 SELECT 쿼리로 POST가 조회 되고,FetchType.LAZY 설정으로 인해 LIKE, USER, COMMENT는 프록시 객체가 생성됩니다. 3. 해당 컬렉션을 ..

백준 오답노트/트리

백준 - 트리 순회 1991번 문제 / DFS풀이

전위 순회, 중위 순회, 후위 순회란 무엇인가? 전위 순회 루트 노드가 가장 먼저 나오는 순회 방식 Root -> Left -> Right 자기 자신 -> 왼쪽 자식을 방문 -> 오른쪽 자식을 방문 중위 순회 각 루트 노드가 자식 노드의 사이에 위치 Left -> Root -> Right 왼쪽 자식을 방문 -> 자기 자신 -> 오른쪽 자식을 방문 후위 순회 루트 노드가 가장 마지막에 출력 Left -> Right -> Root 왼쪽 자식을 방문 -> 오른쪽 자식을 방문 -> 자기 자신 접근 방법 DFS를 이용한 구현 왼쪽, 오른쪽을 구분할 수 있는 2차원 배열 생성 배열 안에 값을 알파벳 말고 숫자로 담은 후 출력만 알파벳으로! 구현 전위 순회: DFS를 시작했을 때, 그 값을 먼저 출력하고 계속 파고드..

자료구조/트리

자료구조 - 트리란 무엇인가?

트리란 무엇인가? 트리는 가계도와 같은 계층적인 구조를 표현할 때 사용할 수 있는 자료구조다. 이진 탐색 트리 (Binary Search Tree) 이진 탐색이 동작할 수 있도록 고안된 효율적인 탐색이 가능한 자료구조의 일종 이진 탐색 트리의 특징: 왼쪽 자식 노드 선형 자료구조 왼쪽 오른쪽으로 나누어져 있는 것 => 비선형 자료구조 왼쪽, 오른쪽 두 가지로 나눌 수 있는 것을 이진 트리라고 한다. 대표적인 예시로 데이터의 탐색 속도 증진을 위해 사용하는 구조 전위 순회, 중위 순..

초보병일이
'분류 전체보기' 카테고리의 글 목록 (9 Page)