본문 바로가기

분류 전체보기

(53)
[Spring] Spring Rest Docs [참고] Spring REST Docs Documentation (Spring REST Docs 공식 문서) Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test, WebTestClient, or REST Assured. docs.spring.io 백기선님 강의 - 스프링 기반 REST API 개발 (섹션 3) 스프링 기반 REST API 개발 - 인프런 | 강의 다양한 스프링 기술을 사용하여 Self-Descriptive Message와 HATEOAS(Hypermedia as the engine of ap..
프로그래머스 디스크 컨트롤러 Java 풀이 출처 programmers.co.kr/learn/courses/30/lessons/42627 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 ..
프로그래머스 더 맵게 Java 풀이 출처 programmers.co.kr/learn/courses/30/lessons/42626 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는..
프로그래머스 K번째수 Java 풀이 출처 programmers.co.kr/learn/courses/30/lessons/42748 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 so..
[Docker] Unable to prepare context Docker 이미지를 build 할 때 Context folder가 정해지지 않아, Dockerfile을 찾지 못해 발생하는 에러 docker build -t docker-whale . 와 같이 .(현재 경로) 등의 Context folder를 정해줘야 함. 참고: stackoverflow.com/questions/35511604/docker-unable-to-prepare-context-unable-to-evaluate-symlinks-in-dockerfile-pat?page=1&tab=votes#tab-top Docker: unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx I jus..
[Jenkins] JAVA_HOME should point to a JDK not a JRE Jenkins 프로젝트 빌드 중 해당 빌드의 Console Output에서 "JAVA_HOME should point to a JDK not a JRE" 라는 메시지를 보게 되었다. 처음에는 Jenkins 오류겠거니 했는데 로그를 자세히 살펴보니 Maven 오류였다. www.baeldung.com/maven-java-home-jdk-jre JAVA_HOME should point to a JDK not a JRE | Baeldung Learn about the root cause of the Maven error 'JAVA_HOME should point to a JDK not a JRE' and how to resolve it www.baeldung.com 즉, Maven goal을 실행 시 javac..
[Jenkins] GitHub Webhook 설정 시 "Polling has not run yet" 메시지 Jenkins에 Webhook을 설정하여, GitHub Repository에 푸시가 발생했을 때 자동으로 빌드 및 배포를 실행하려 했다. 여러 설정을 마치고 해당 GitHub Repository의 Settings > Webhooks > Recent Deliveries 를 확인해보니 push 후 Jenkins 서버로 요청을 보냈고 200 status code를 받은 것을 알 수 있었다. 하지만 Jenkins의 해당 프로젝트 GitHub Hook Log를 보니 "Polling has not run yet" 라는 메시지가 떴다. 즉, GitHub Repository에서는 요청을 보냈으나 Webhook이 일어나지 않은 것이다. 사람들마다 여러 이유가 있겠지만 나의 경우에는 GitHub Repository의 Se..
[Spring] JPA - 테이블 생성시 컬럼 순서 정렬 결론부터 말하자면 1. 간단히 애노테이션이나 설정값 변경으로 할 수는 없다. 2. 또한, Hibernate에서도 장려하지 않는다. 간단히 할 수 없다고 한 것은, Hibernate의 DDL 생성 부분을 깊이 있게 파서 어떻게 해결할 수는 있을 것이라는 뜻이다. 참고: www.inflearn.com/questions/17359 hbm2ddl 를 이용해 테이블 생성시 컬럼 순서 수정 방법 - 인프런 | 질문 & 답변 안녕하세요. Kyeongseok Ko님^^ 사실 저도 처음 JPA를 사용할 때 이것 때문에 고민을 좀 했었는데요. 아쉽지만 현재로써는 단순하게 해결할 수 있는 방법은 없습니다. 하이버네이트의 DDL 생성 부분을 www.inflearn.com Hibernate에서도 장려하지 않는다는 것은, hbm..
[Spring] JPA - How to fix “Error executing DDL ”alter table events drop foreign key {foreign key} “ via JDBC Statement” alter 명령어로 특정 테이블의 foreign key를 drop할 때 발생하는 에러이므로 에러가 발생하는 여러 경우가 있겠지만 이번에는 DDL에 RDBMS의 keyword가 포함되어 있는 경우였다. RDBMS의 keyword란 MySQL의 state, PostgreSQL의 user와 같이 기능이 정의되어 있는 명령어를 말한다. 참고: stackoverflow.com/questions/54504230/how-to-fix-error-executing-ddl-alter-table-events-drop-foreign-key-fkg0mkvgsqn How to fix "Error executing DDL "alter table events drop foreign key FKg0mkvgsqn8584qoql6a2rx..
[Spring] JPA - @OneToOne 조인 전략을 left join -> inner join 으로 변경하기 Entity 객체 조회 시 Hibernate SQL 로그를 확인해보니, @OneToOne으로 매핑한 객체에 left join(= left outer join)이 사용되는 것을 확인했다. 경험해본 RDBMS들의 Optimizer는 모두 left join보다 inner join을 사용했을 경우 성능이 더 좋았기 때문에 필수적인 경우가 아니면 left join을 모두 inner join으로 바꾸고 싶었다. 생각해보면 연관된 외래키가 nullable인 경우에는 left join으로 가져와야 하는 것이 당연하기 때문에 @ManyToOne, @OneToOne의 default 조인 전략이 left join인 것 또한 당연하다. 참고: siyoon210.tistory.com/57 JPA 조인 전략 변경하기 JPA 조인..