[ERROR] prepareKotlinBuildScriptModel Task fails in a Java project
문제 원인 :prepareKotlinBuildScriptModel Task fails in a Java project 해결 방안 build.gradle 에 아래와 같은 코드를 넣어준다. tasks.register("prepareKotlinBuildScriptModel"){} IDEA Kotlin 플러그인이 해당 Task 를 실행시키면서 발생하는 것 같은데 원래는 Root 프로젝트에 있을 경우에만 진행되는 것 같다. 멀티모듈 연결이나 다른 작업이 일어나면서 어디선가 꼬이면서 일어나는 것 같다. 참고: https://github.com/gradle/gradle/issues/14889
2022.10.19
[JPA] Oracle 을 사용해서 Native Query 로 출력 개수까지 다 가져와보기
예를 들어, 아래와 같은 복잡한 질의가 있다. SELECT so.seqno , ... , CASE WHEN SYSDATE BETWEEN MIN(ev.startdate) AND MIN(ev.enddate) THEN 'Y' ELSE 'N' END AS event_flag , TO_CHAR(MIN(so.display_start), 'yyyy-mm-dd hh24:mi') AS display_start , TO_CHAR(MAX(so.display_end), 'yyyy-mm-dd hh24:mi') AS display_end , TO_CHAR(MIN(ev.startdate), 'yyyy-mm-dd hh24:mi') AS event_start_date , TO_CHAR(MAX(ev.enddate), 'yyyy-mm-d..
2022.10.17
no image
[Spring] 라이브러리 등록 시 라이브러리를 외부에서 소스를 볼 수 있도록 하기
예를 들어, Intellij 에서 직접 External Libraries 또는 어떤 객체의 사용 위치를 참조하여 파일을 살펴볼 때 아래와 비슷하게 메세지가 나타나는 경우가 있다. Decompiled .class file, bytecode version: 57.0 (Java 13) 보통 개발을 하면서 문제가 생겼을 때 디버깅을 찍어보면서 Spring 과 같은 다른 라이브러리의 내부 코드를 들여다보던지 아니면 평소대로 라이브러리에서 지원하는 메서드를 사용하려고 할 때 주석이라던지를 참조를 하게 되는데 자기가 직접 스스로 라이브러리를 만들면서 Maven 또는 직접 운영하는 Nexus 에 라이브러리를 등록하여 사용을 할 때 만약 아무런 빌드 옵션을 주지 않고 등록을 하게 되면 위와 같이 바이트 코드만 볼 수 있..
2022.10.13
[Java] 간단하게 알아보는 웹 기술 역사
웹 기술 1997 - 서블릿 HTML 생성이 어려웠음 1999 - JSP HTML 생성은 편리했지만, 비즈니스 로직까지 전부 함께 들어있어 너무 많은 역할을 담당했음 2000년 초 ~ 2010년 초 - 서블릿, JSP 를 조합한 MVC 패턴 Model, View, Controller 로 역할을 나누어서 개발 MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기술을 지원했음 스트럿츠, 웹워크, Spring MVC (과거) 현재 Annotation 기반 Spring MVC @Controller 사실상 이 기술이 나오면서 다양하게 MVC 프레임워크가 나오던 것이 막을 내림 Spring Boot Spring Boot 는 빌드 결과(Jar) 에 WAS 서버를 포함 → 빌드 배포가 단순화됨. ..
2022.10.03
[JPA] H2 DDL 초기 테스트 데이터 설정
요구 사항 만약, 아래와 같은 Entity 를 H2 데이터베이스 같은 곳에서 자동으로 DDL 이 이루어진 다음, 그 후에 스크립트 기반으로 데이터를 미리 넣어서 테스트 코드로 데이터를 사용하고 싶다고 해보자 @Builder @Getter @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "BOOKS") @DynamicInsert @DynamicUpdate public class Books { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID", nullable = false) private Long id; @Column(name = "BOOK_CODE", null..
2022.10.01
[DB] H2 데이터베이스 조회 시 한글 깨짐 수정
application.yml (또는 application.properties) 에 아래와 같은 속성을 추가한다. spring.sql.init.encoding=utf-8 # 또는 spring: sql: init: encoding: utf-8 Spring Boot 2.5 이전 버전까지는 spring.datasource.sql-script-encoding 속성을 사용했으나 현재 버전에 와서는 deprecrated 되었으므로 사용하지 말자
2022.10.01
DB
no image
[DB] H2 데이터베이스 설정 초기화
윈도우 기준 1. 보통 c:\users\사용자이름 으로 이동하면 아래와 같이 3개의 파일이 있다. 이 중에서 .mv.db, .trace.db 확장자로 이루어진 파일은 삭제한다. 2. .h2.server.properties 파일을 메모장으로 열어서 아래와 같은 내용을 넣고 저장한다. #H2 Server Properties #Sat Sep 24 23:32:33 KST 2022 10=Generic DB2|com.ibm.db2.jcc.DB2Driver|jdbc\:db2\://localhost/test| 11=Generic Oracle|oracle.jdbc.driver.OracleDriver|jdbc\:oracle\:thin\:@localhost\:1521\:XE|sa 12=Generic MS SQL Server..
2022.09.28
DB
[GIT] GIT 원격 origin 변경 방법
1. 기존의 원격 origin 을 제거한다. $ git remote remove origin 2. 새로운 원격 origin 을 추가한다. $ git remote add origin [GIT저장소주소]
2022.09.21
GIT
no image
[IDE] Intellij 패키지 접힘 풀기
기본적으로 패키지 생성할 때 별 다른 파일없이 계속해서 안에다가 패키지를 만들게 되면 아래와 같이 생성된다. 예를 들면 위 사진에서 threadlocal 이라는 패키지를 만든 후 그 아래에 code 라는 패키지를 다시 한 번 만들면 위처럼 된다. 이렇게 되면 저기에 클래스를 만들게 될 때 code 패키지를 기준으로 생성하게 된다. 위 기능을 해제하는 방법이 있다. 프로젝트 탭에서 우측 위의 톱니바퀴 모양의 버튼을 누르고 'Compact Middle Packages' 를 누르면 아래처럼 별도의 패키지로 분리되어 보이게 된다.
2022.09.08