기존의 스프링부트 2.X를 사용할때 처럼 yml에 아래와 같이 적용하였는데, 로그에 파라미터 결과가 나오지 않았다. 스프링부트 버전의 문제이지 않을까 싶어서 구글링하였더니, spring boot3 버전이 올라가면서 hibernate의 버전도 같이 업그레이드 되었다고 한다. 그래서 해당 하이버네이트의 버전에 맞춰서 기존과 다르게 설정을 하여 한다고 했다. ...
현재 사용중인 23.0.0.202303040621 버전에 맞춰 셋팅하겠다. 상단탭에서 [파일]-[설정]을 클릭 Global Settings를 클릭하면 환경설정 창이 나타나는데, 테이블명 축약어 자동완성 끄기 [편집기]-[SQL 자동완성]-가장 하단의 Insert table aliases의 설정을 N/A 로 변경한다. ![](https://velog.v...
API 테스트를 위해 Swagger, Postman을 이용하는데, 인텔리제이와 왔다갔다 하면서 테스트 할때 불편하다. Intellij의 Endpoints를 사용하면 인텔리제이 하나로 간편하게 API 테스트까지 가능해진다. 1. 사용법 인텔리제이 하단의 EndPoints 탭을 클릭하면 해당 프로젝트의 모든 API를 조회할 수 있다. 하나를 클릭하면 우측...
직면했던 이슈 코틀린 @get 을 사용하여 entity를 구현하였는데, @GeneratedValue 앞에 붙이지 않아서 save() 시 id를 assign 해주지 않았다는 에러가 발생하였다. 그래서 @GeneratedValue 앞에 @get 을 선언해줌으로써 문제를 해결했는데, 정확한 이슈 발생이유와 해결방안이 이해가 가지 않았다. 코틀린의 @get 이...
엔티티 클래스 개발1,2 @Enumerated의 속성값 default는 EnumType.ORDINAL로 필드의 순서값이다.이는 순서가 변경될 경우, 이전 데이터의 정합성이 떨어지므로 EnumType.STRING으로 지정해서 사용하도록 하자 @OneToOne의 관계는 DB에서 어느쪽에 FK를 잡든 entity에서 동일하게 동작하고, 대신 FK를 entit...
Around 어노테이션을 검색해봤을 때, 단순히 개념적인 설명만 있고 어떤 케이스에 사용하는지 예시가 다양하지 않아 직접 정리해 보았다. 개념 @Around 는 ‘핵심관심사’의 실패여부와 상관없이 전 후로 실행되록 하는 Advice로, 아래와 같이 메서드를 생성할 때, return 값은 Object 이고, 인자는 ProceedingJoinPoint 이다....
진행중인 프로젝트에서 request로 파라미터를 보내는 경우, 아래의 3가지 케이스가 있다. [GET] queryString [POST] Multipart/form-data [POST] Application/json 보통 request의 parameter를 읽을 때, 아래의 두가지 메서드를 사용하는데, request.getParameterNames() r...
https://velog.io/@dayoung_sarah/content-type%EB%B3%84-request-body-%EC%9D%BD%EA%B8%B0 위 글을 작성하고, InputStream 을 두번 읽는 상황이 바로 나에게 발생하였다.... 나의 상황은 Filter에서 InputStream을 먼저 읽고 있었고, AOP 에서 request body를...
HttpServletRequest의 파라미터를 읽기 위해, 아래와 같이 getParameterMap() 메서드를 사용하여 파라미터를 로그에 찍었다. getParameterMap() 그런데 contentType이 application/json인 경우, 로그에 찍히는게 없었다. 구글링을 해보니, request를 읽어들이는 방법은 아래와 같이 3가지가 존재...
해결 정렬문제를 풀 때, Java에서 기본적으로 제공해주는 Arrays.sort()를 사용하였다. 해당 문제에서도 동일하게 Arrays.sort()를 사용하여 문제를 풀었는데, 소요시간이 아주 오래 걸렸다. 잘 하면 시간제한에 걸릴 것 같았다. Arrays.sort()는 dual-pivot Quicksort 알고리즘을 사용하여, 평균 시간복잡도가 O(...
Counting Sort 특정 범위 내에서 각 요소의 발생 횟수를 카운트한 다음, 이 카운트 정보를 사용하여 정렬할 배열 내의 요소의 위치를 결정하는 선형 정렬 알고리즘 최대 값과 최소 값의 차이에 선형적이므로 , 범위가 크면 효율적이지 않을 수 있다. 큌 정렬(Quick Sort), 합병 정렬(Merge Sort)의 평균 시간복잡도는 O(nLogn)인데...
빌더 패턴이란? > The builder pattern is used in software development to construct complex objects in a step-by-step manner, without having to specify the complex details of object creation in the main code...
해결 입력값은 최대 123456이지만, 문제내에서 구해야 할 범위는 입력값 두 배이다. 그래서 123456*2 까지의 소수를 구해야 한다. 소수 여부 배열을 생성 후, 각 인덱스마다 소수가 몇 개인지 저장하는 배열을 하나 더 생성해서, 해당 배열을 사용하여 소수의 개수를 구한다. > [참고] https://velog.io/@dayoung_sarah/알고...
해결 M,N의 입력값은 1000000이하의 자연수이다. 대량의 소수를 구할때는 알고리즘 ‘에라토스테네스의 체’를 이용하면 효율적으로 구할 수 있다. > [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체 코드
해결 소인수분해는 소수인 인수로 분해하는 것을 말하며, 그렇기에 출력되는 소수의 범위는 입력값의 제곱근 이하로 볼 수 있다. ⇒ Math.sqrt() 이용하기 코드
해결 입력값의 범위는 10000이하로, 대량의 범위에서 소수를 구해야 할 경우 알고리즘 ‘에라토스테네스의 체’를 이용하면 효율적으로 구할 수 있다. > [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체 코드
방법1. 일반적인 식 1, 본인 제외 한 수로 나눈 나머지가 모두 0이 아닌 경우 방법2. 알고리즘 ‘에라토스테네스의 체’ 이용 [참고] https://velog.io/@dayoung_sarah/알고리즘-에라토스테네의-체
특정 범위에서의 모든 소수를 찾을때 가장 효율적인 알고리즘 ⇒ 대량의 범위에서 소수를 찾을 때 가장 효율적인 방법인다. ⇒ 시간복잡도: O(N log long N) 예제) 2 ~ 120 까지의 모든 소수 찾기 https://blog.kakaocdn.net/dn/otLmE/btqG6HS7le2/KofCwMN7Et7RMkR0nykxM0/img.gif 과...
주의할 점 A,B의 최대값을 보면 10의 10000승이다. long의 범위는 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 으로 long 보다 크기가 클 수 있다. long 보다 큰 범위를 가지는 숫자를 표현할 때는 BigInteger를 사용하면 된다. 코드