오류상황 개인공부를 위한 프로젝트에서 프로젝트 실행이전, DB에 데이터를 넣어주기 위해 CommandLineRunner 인터페이스를 상속받은 SetUp 클래스를 실행시켰습니다. # SetUp 클래스는 아래와 순서로 동작을 합니다. 팀 객체 생성 후 DB에 저장 팀 객체 조회 후 생성한 멤버 객체와 연관관계를 맺은 후 DB에 저장 이 때 DB에 저장한 팀을 조회해서 생성한 멤버와 연관관계 메서드를 통해 연관관계를 맺어주려 했는데 이 때 오류가 발생했습니다. private void setTeam(Team team) { this.team = team; team.getMembers().add(this); } => team.getMembers()에서 오류 발생 오류해석 failed to lazily initial..
티스토리 또는 velog를 보면 기본적으로 임시저장 기능이 있습니다. 그래서 이번에는 임시저장 기능을 구현해볼까 합니다. 요구사항 1분마다 임시저장 요청이 들어간다. 작성하고 있는 글의 제목이 없다면 임시저장불가 메시지를 띄운다. 생각해봐야 할 것 # 저장소를 DB를 사용할까? 저장소 클래스를 생성하여 사용할까? 임시저장은 말 그대로 중간에 저장하는 것입니다. 굳이 DB까지 갈 필요가 있을까란 생각을 했습니다. 하지만 저장소 클래스는 서버가 내려가는 순간 데이터가 삭제되기 때문에 임시저장기능의 의미가 없어집니다. 따라서 DB를 사용하기로 했습니다. # 임시저장 테이블을 따로 만들어야할까? 게시글 임시저장 테이블을 만든다면 그냥 게시글 테이블과 속성이 거의 똑같습니다.(제목, 게시글, 썸네일, 카테고리 등..
현재 블로그 만들기를 개인 프로젝트로 진행하고 있습니다. 어느정도 기능은 거의 완성되어서 서버를 돌려 확인해보고 글 목록을 조회하는 부분에서 쿼리가 어마어마하게 나가는 것을 확인했습니다. 원인 Board 엔티티를 조회했는데 Board 엔티티를 응답 DTO로 변환하는 과정에서 발생하는 BoardTag와 Tag 엔티티에 대한 지연로딩 때문에 발생하는 쿼리들이 위의 어마어마한 쿼리들의 원인이였습니다. 아래의 수행시간을 보면 115.2036ms 정도가 측정되었습니다. 확인해 보니 제가 작성한 JPQL에 fetch join을 적용하지 않고 단순히 Board 엔티티만을 가져왔었습니다. 해결 그래서 저는 fetch join을 적용해 보았습니다. 위 사진은 BoardTag 엔티티에 대해 fetch join을 적용한 뒤..
문제이해 파라미터로 전달된 숫자에서 k개의 수를 제거하여 가장 큰 수 로 만드는 문제이다. 문제생각 나는 stack 자료구조를 이요하면 가능하다고 생각했다. 왜냐하면 해당 문제는 앞의 숫자를 그 이전의 숫자와 비교해야하기 때문이다. 위의 이유때문에 LIFO(Last In First Out)의 스택을 사용하면 현재 숫자와 이전 순서에서 나온 숫자와의 비교와 제거가 쉽다고 생각했다. 문제풀이 1. 앞의 숫자부터 순차적으로 반복문을 돌린다. 2. 스택이 비어있다면 값을 넣는다. 3. 그렇지 않다면 while 문을 돌리는데 이 while문에서는 앞의 숫자와의 비교를 실행한다. - 만약 앞에 출현한 숫자가 현재 나온 숫자보다 작다면 더 작은 수가 된다. - 따라서 앞의 나온 숫자를 스택에서 pop()해주고 k(제..
문제상황 토이 프로젝트를 하던 중 카테고리 이름을 PathVariable을 통해 전달하려 했습니다. 그런데 PathVariable이 깨져버리는 것입니다. 문제점 검색을 해보니 Tomcat에서의 인코딩 문제라고 했습니다. 톰캣의 기본인코딩은 ISO-8859-1라서 별도의 UTF-8 인코딩 설정이 필요했습니다. 문제해결 여러 검색 결과에서는 [TOMCAT_HOME]/conf/server.xml 경로의 파일에서 uriencoding 설정을 UTF-8로 변경하라고 하였습니다. 하지만 내가 사용하고 있는 스프링부트 환경에서는 properties 파일을 통해 애플리케이션의 설정을 조정하고 있습니다. 그럼 여기서는 어떤 설정을 건드려야 할까요? 위의 설정을 utf-8로 설정하니 pathVariable이 한글로 들어와..
블로그 프로젝트를 하던 와중에 오류를 발견했습니다. 바로 조회한 태그가 UI에 뜨지 않는다는 것!! 상황 게시글과 태그의 ManyToMany 관계를 풀어놓은 BoardToTag 테이블 FK에 null값으로 채워지고 있었습니다. 그래서 지연로딩을 통한 조회를 하더라도 태그의 이름이 조회가 되지 않아 UI에도 보이지 않았던 것이였습니다. 그럼 왜 null 값으로 채워지고 있었을까요..? 원인후보1: 연관관계 메서드를 제대로 작성하지 않았다. 연관관계 메서드는 확실하게 작성되어 있었습니다. 원인후보2: @JoinColumn 속성에 문제가 있다. 네..맞습니다. @JoinColumn 속성으로 insertable=false, updateable=false를 설정했기에 위와 같은 현상이 발생했습니다. # inser..
- Total
- Today
- Yesterday
- 게시판#자바#JPA#Entity
- this()
- 자바
- 백엔드#게시판
- 11659
- HTTP#HTTP특징
- 파이썬
- arraylist
- MVC
- 7568
- 프로그래머스
- Spring
- controller
- 서블릿#Servlet
- 사탕 게임#백준#3085
- springboot
- 대충 만든 자판
- 덧칠하기
- 4673번
- 백준#잃어버린 괄호#1541
- 스프링
- 1316번
- 오류
- querydsl
- list
- 백준#서강근육맨#20300
- java
- 1978
- 백준
- 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |