IntelliJ와 Eclipse 단축키를 비교한 좋은 글이 있어서 가지고 왔다. 앞으로 IntelliJ를 이용해 개발을 할텐데 자주자주 보면서 익혀야겠다. 설명 Eclipse IntelliJ 창 닫기 ctrl + w ctrl + F4 창 크게하기 ctrl + m ctrl + shift + F12 import 하기 ctrl + 1 alt + enter 메소드 단위로 커서 위치 이동 alt + ↑, alt + ↓ 커서 위치한 line 옮기기 alt + ↑, alt + ↓ ctrl + alt + ↑, ctrl + alt + ↓ 커서 위치한 line 삭제 ctrl + d ctrl + y 커서 위치한 line 복제 ctrl + alt + ↑, ctrl + alt + ↓ ctrl + d 특정 line 번호로 이동 ..
application의 OSS version을 올리는데 특정 기능을 수행중에 위와 같은 Warning이 발생하였다. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.poi.util.DocumentHelper (file:/C:/Users/User/.m2/repository/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar) to method com.sun.org.apache.xerces.internal.util.SecurityManager.setEntityExpansionLimit(int) WARNING: Please co..
iBatis의 설정파일인 SqlMapConfig.xml 에서 datasource 설정하는 방법에 대해 기술하고자 한다. application에 DB 정보를 입력하여 DB Access를 하는 JDBC 방식이 있고 application이 올라가는 WAS에 DB 정보를 입력하여 DB Access를 하는 JNDI 방식이 있다. JDBC 방식의 연결 ... 생략 ... 위의 설정에서 눈여겨 봐야 할 부분은 dataSource type을 SIMPLE 로 지정을 했다는 것이다. db.properties 파일에 작성한 datasource 정보를 가지고 와서 각 property 설정을 해주는 방식이다. JNDI 방식의 연결 ... 생략 ... 여기서는 dataSource type을 JNDI로 설정을 하였다. 필자는 WA..
springboot version을 2.3.x에서 2.5.x로 migration을 하였다. 다른 기능은 다 잘 되는데 한가지.. 바로 기동시킨 application의 port가 unknown port로 표시가 되었다. 표시만 이렇게 되고 기동시에는 내가 지정한 port로 정상적으로 잘 기동이 된다. sts dashboard에 display 시에만 이렇게 보인다. 개발을 하는데 있어서 엄청나게 크리티컬한 이슈는 아니지만 성격상 잡고 넘어가야 마음이 편하다. 일단 증상은 springboot version up을 하고 발생을 했으니 최신버전의 server.port 설정이 변경이 되었나 mig guide를 살펴보았으나 그런건 없었다. 혹시 springboot version을 내가 사용하고 있는 sts가 지원을 ..
프로젝트를 진행 시 phase(local, dev, prd..)에 따라 다른 resource를 바라봐야 할 때가 있다. 예를들면 DB 같은 경우이다. dev(개발)에서는 개발 DB를 바라보고 prd(운영)에서는 운영 DB를 바라봐야 한다. 이것뿐만 아니라 많은 설정들이 개발이냐 운영이냐에 따라 바뀌어야 한다. 이럴때 소스의 변경 없이 profile 으로 손쉽게 갈아끼울수 있다. springboot에서는 어떻게 spring profile을 설정하는지 알아보자. Spring Profile 설정방법 (application.yml) server: port: 8080 servlet: context-path: / session: timeout: 1800 spring: datasource: driver-class-n..
이전에 Spring + MyBatis에서 Query 변경시 서버 재시작 없이 Reload 하기에 대한 글을 작성했었다. Spring + Mybatis 에서 Query 변경시 서버 재시작 없이 Reload 하기 MyBatis 를 사용하여 개발하는 경우 쿼리를 수정했을때 WAS를 재기동해야 변경된 내용이 반영된다. 클래스가 몇개 없는 작은 프로젝트에서는 이렇게 재기동을 해서 확인을 하는것이 큰 부담이 없 oingdaddy.tistory.com 하지만 요즘 대세인 Springboot 환경에서 적용하기 위해서 Java Config로 이를 전환하였다. Xml Config에서 Java Config로 전환을 하는데 RefreshableSqlSessionFactoryBean을 그대로 사용하니 잘 동작하지 않았다. 그래..
MyBatis 를 사용하여 개발하는 경우 쿼리를 수정했을때 WAS를 재기동해야 변경된 내용이 반영된다. 클래스가 몇개 없는 작은 프로젝트에서는 이렇게 재기동을 해서 확인을 하는것이 큰 부담이 없지만 재기동되는데 시간이 오래 걸리는 프로젝트인 경우는 이것은 큰 부담이 된다. 이를 해결해주기 위해 어느 능력자분이 서버의 재기동 없이 Query Reload를 해주는 로직을 개발해주셨다. RefreshableSqlSessionFactoryBean 라는 아주 유명한 로직이다. 언제 누가 만든건지 모르지만 일단 그분께 감사를 드린다. 2011년도에도 이걸 사용했던것 같은데 벌써 10년이 지났다. 시간 참 빠르다. RefreshableSqlSessionFactoryBean.java import java.io.IOEx..
jsp 파일중에 65535 byte가 넘는 큰 파일들이 있다. 이 파일들을 읽으려고 할때 설정이 없으면 오류가 발생한다. org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [100] in the generated java file: [big_jsp.java] The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit 대략 이런 오류이다. 소스의 길이가 엄청 길다는 말이다. 이것을 근본적으로 해결하려면 하나의 큰 jsp 파일을 include를 통해서 여러개로..