이 글은 순수 창작이 아니라, 맨 아래에 출처를 밝힌 사이트의 글 일부를 번역한 글입니다. LazyInitializationException 은 무엇이고 어떻게 해결하는가 잦은 문제인 만큼, 다양한 조언들을 찾을 수 있는 문제이기도 하다. 하지만 맹목적으로 조언들을 들어서는 안된다. 조언대로 문제를 해결하는 과정에서 또 다른 문제가 발생하는 경우가 있기 때문이다. 그 다른 문제란 1) 성능의 이슈일수도 있고, 2) 매번 다른 결과를 도출하는 해결방법을 찾게 되는 것일 수도 있다. 다음 문단들에서, 이 예외가 무엇인지, 무시해야 하는 조언에는 어떤 것이 있는지, 그리고 조언을 듣는 것 외에 문제를 해결하기 위한 방법에는 무엇이 있는지 설명하겠다. Hibernate 는 언제 LazyInitialization..
도커로 Gradle 빌드 후 프로젝트 배포하는 과정 1. 아래와 같이 Dockerfile 을 작성한다. (Intellij 내에서 작성 or 깃허브에서 작성) 어떤 Gradle 프로젝트이던지 빌더 이미지의 .jar 확장자 파일에서 이름을 복사해 두 부분만 바꾸어주면 된다. FROM gradle:7.4-jdk11-alpine as builder WORKDIR /build # 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함. COPY build.gradle settings.gradle /build/ RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true # 빌더 이미지에서 애플리케이션 빌드 COPY . /build RUN..
import java.util.Scanner; public class Q1855 { public int fibonacci(int n) { /* Fibonacci sequence is a sequence f numbers where each number is a sum of two precedent numbers. * Thus, sequence looks as follows: 1 1 2 3 5 8 13 21 34 ... * For nth fibonacci number, the repetition occurs n times, each of which adds two numbers, starting from 0 and 1. * e.g. 3rd fibonacci number: requires computing ..
Introduction To backtrack means going back to a previous step. Backtracking algorithm is applied to problems finding the solution step-by-step. For instance, we use backtracking algorithm for searching the path to a destination in a maze. On every direction taken carefully, algorithm judges whether this choice would lead to an escape. If a step taken currently is confirmed to be a part of the po..
@RestController 도입 이전: model 을 사용해서 entity 를 model 에 addAttribute 해주었다. 그래서 View(화면)에 띄울 수 있었다. 이는 @Controller 는 MVC Controller를 사용하겠다는 의미이기 때문이다. 주로 결과값을 View 로 전달하는 방식이며, 함수의 리턴 값을 문자열 형태의 View 의 이름으로 지정해 반환하게 된다. 컨트롤러에서 View 를 거치지 않기 위해서는 바로 데이터를 @ResponseBody 에 넣어서 응답할 수 있었다. @RestController 도입 이후: JSON 형태 데이터를 앞단으로 보낼 수 있다. 엔티티 내에서 간단히 static 메서드 of 를 구현해서 entity 를 response body 화 해줄 수 있다. ..
위 처럼 인텔리제이에서 테스트 코드를 작성한 후 실행 시 한글이 나오지 않는 오류가 발생할 수 있다. 인코딩의 문제이므로 관련된 설정값을 바꾸어 주어야 한다. 가장 확실한 방법은 VM 옵션을 추가해주는 것이다. 인텔리제이의 Help 옵션에서 Edit Custom VM Options... 를 클릭한다. 다음 나온 창에서 아래 옵션들을 추가해주면 된다. -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 정상적으로 한글이 보이는 것을 확인할 수 있었다.
Enums 는 프로그램 내에서 절대 변하지 않을 값들을 모아 놓은 특별한 '클래스' 이다. - W3Schools - 로또 당첨 통계를 내는 프로그램 구현 문제의 풀이 과정에서 enum 을 활용하라는 조건이 있었다. 이전에도 enum 을 접해본 적은 있었지만, 적극적으로 구현에 활용해본 것은 처음이었고, 활용 과정에서 적재적소에 enum 을 최대한으로 활용하기 위해서는 용도와 목적을 공부해야겠다는 필요성을 느껴 포스트를 작성하게 되었다. 1. Enum 의 용도와 목적 위에서 정의했듯이 일반 Class 와 비슷한 듯 다른 enum 을 이해하기 위해 일반 Class 와 enum 의 차이점을 정리해보았다. 구분 일반 Class enum type Class 멤버 변수의 접근 제어자 public, private, ..
지난 시간, 리스트를 활용해서 퀵 정렬을 보다 직관적으로 구현해보았다. 이번에는 이론 (Array 1단계) 에서 설명한 구현에 이어서 재귀호출과 배열을 사용해 퀵 정렬을 구현해보자. 배열을 활용한 퀵 정렬 - 시간복잡도: O(logN) - 공간복잡도: O(N). 이론에서 설명한 대로 한 차례 루프를 돌고 나면, 이제 배열을 쪼갤 차례이다. 기준 값이 이동하는 것이다. 그 전에, 먼저 메서드의 매개 변수를 추가해주어야 한다. 추적하기 위함인데, 쪼개진 배열의 첫 번째와 마지막 인덱스로, 계속 어디를 기준으로 쪼갤지를 명시한다고 생각하면 된다. 이 매개 변수가 변하면서 재귀적으로 메서드를 호출하면 된다. 그래서 정수 startIdx, endIdx 를 새로운 메서드의 매개 변수로 넣어주고 구현한다. publi..
- Total
- Today
- Yesterday
- 지연 로딩
- docker
- FCM
- 역직렬화
- ci/cd
- 프로그래머스
- gitlab
- Firebase
- 실시간데이터
- Jackson
- 코테
- JPQL
- 도커
- json web token
- @RequestBody
- Java Data Types
- spring
- LazyInitializationException
- 깃랩
- 알고리즘
- google cloud
- JOIN FETCH
- 기지국 설치
- DTO
- 인증/인가
- JPA
- N+1
- DeSerialization
- Spring Boot
- 가상 서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |