목록IT/Java (35)
잡동사니
안녕하세요. yeTi입니다.오늘은 자바(Java) 1.8이상에서 지원하는 클래스를 활용하여 날짜를 가져오는 방법을 정리해보겠습니다. 어제 날짜 가져오기- LocalDateTime.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMdd"))
안녕하세요. yeTi입니다.오늘은 Spring boot에서 스케쥴링시 사용하는 Scheduled 어노테이션의 활용방법에 대해서 알아보겠습니다. 1분마다 수행- @Scheduled(cron="*/60 * * * * *") 초기 실행 후 5초마다 수행- @Scheduled(initialDelay = 0, fixedDelay = 5000) 매일 5시에 수행- @Scheduled(cron="0 0 5 * * ?")
안녕하세요. yeTi입니다.오늘은 Java에서 Datastax 라이브러리의 Object Mapper를 활용하여 Cassandra의 Timestamp를 추가시 발생하는 CodecNotFoundException을 해결하는 방법을 알아보겠습니다. 설치 환경- Spring Boot : 1.5.4.RELEASE- Cassandra Driver : cassandra-driver-core-3.5.1 1. Object Mapper를 활용했습니다.- java.sql.Timestamp로 선언했던 변수를 java.util.Date로 변경합니다.
안녕하세요. yeTi입니다.오늘은 Spring에서 Cassandra를 연동해보려고 합니다. 설치 환경- Spring Boot : 1.5.4.RELEASE- Mybatis : 1.3.2 1. Cassandra의 SDK를 설치합니다. (저는 Gradle 활용)- compile group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.5.1' compile group: 'com.datastax.cassandra', name: 'cassandra-driver-mapping', version: '3.5.1' compile group: 'com.datastax.cassandra', name: 'cassandra-driver-extras'..
안녕하세요. yeTi입니다.오늘은 Spring에서 AOP를 활용하여 SQL Log를 확인해보려고 합니다. 설치 환경- Spring Boot : 1.5.4.RELEASE- Mybatis : 1.3.2 1. Aspect에 다음과 같이 구현합니다.- @Around("execution(* org.apache.ibatis.session.SqlSession.*(String, ..))")public Object logBefore(ProceedingJoinPoint pjp) throws Throwable {Object[] methodArgs = pjp.getArgs(), sqlArgs = null;String statement = null;// SQL IDString sqlId = methodArgs[0].toStri..
안녕하세요. yeTi입니다.오늘은 간헐적으로 java.lang.NumberFormatException이 발생하는 현상에 대해 얘기하고자 합니다. 근래에 서버에서 다음과 같은 오류가 발생했습니다.- java.lang.NumberFormatException: For input string: ".77E1."- java.lang.NumberFormatException: multiple points 우연히 발생하는 위치가 SimpleDateFormat 객체로 parse하는 부분이었습니다.그래서 SimpleDateFormat 객체와 관련하여 버그를 찾던 중 Thread Safe 관련한 내용들을 찾았습니다. 1. Stack Overflow나 다른 개발자분들의 블로그에서 비슷한 상황에 대한 문제를 찾았습니다.- 주요 ..
안녕하세요. yeti입니다.오늘은 Spring Boot, Gradle 기반에서 HikariCP를 연동해보도록 하겠습니다. 설치 환경Spring Boot : 1.5.4-release 1. Gradle에 HikariCP 라이브러리를 추가합니다.- compile group: 'com.zaxxer', name: 'HikariCP', version: '3.1.0' 2. DataSourceBuilder에 DataSource 타입을 설정합니다.- DataSourceBuilder.create().type(HikariDataSource.class).build(); 3. 설정파일을 변경합니다.- extension:datasource:hikari:- url -> jdbcUrl
안녕하세요. yeTi입니다.오늘은 클래스 명세서를 쉽게 생성하는 방법에 대해 알아보고자 합니다. 1. Doxygen 설치 2. Graphviz 설치3. Java 소스로 RTF 변환 참고 문헌Doxygen : http://www.stack.nl/~dimitri/doxygen/Graphviz : http://www.graphviz.org/
안녕하세요. yeTi입니다.오늘은 윈도우 환경에서 개발시 이클립스에서는 괜찮다가 톰캣에서 배포시 한글이 깨지는 현상을 해결하는 방법에 대해서 알아보고자 합니다. 다음 명령어를 수행하면 개발환경과 운영환경에서 다른 결과 값이 나오는 경우가 있습니다. System.getProperty("file.encoding") 이는 JVM이 기본적으로 String 형태의 데이터를 읽을 경우 사용하는 인코딩을 나타내는데요.톰캣 구동시 해당 설정을 할 수 있습니다. 톰캣 설치 폴더에서 "catalina.bat" 파일의 상단에 아래 명령어를 입력해줍니다. set "CATALINA_OPTS=-Dfile.encoding=UTF-8" 이는 기본 설정을 UTF-8로 설정한다는 의미입니다. 개발 환경과 운영 환경의 인코딩을 동일하게 ..
안녕하세요. yeTi입니다.오늘은 자바 스윙의 AWT를 활용하여 텍스트를 회전하는 방법에 대해서 알아보겠습니다. 코드는 아래와 같습니다. Font oldFont = g.getFont(); AffineTransform newAT = new AffineTransform();newAT.rotate(Math.PI/2); Font theDerivedFont = oldFont.deriveFont(newAT);g.setFont(theDerivedFont); g.drawString("Text", 0, 0); g.setFont(oldFont); 해설을 하면 AffineTransform을 활용해 회전 속성을 부여하고 이를 기존 Font를 상속하여 Font를 생성합니다.그러면 상속받은 Font는 회전 속성을 가지게 되고 이..