Engineering/Java 28

linux 에 maven(mvn) 설치

리눅스에서 메이븐 빌드를 할 일이 발생한다. 그래서 간단히 메이븐(maven) 을 설치하는 방법을 설명한다. * JDK 1.5 이하일때는 maven 3.0.X 를 다운받는다(maven 3.2.X 는 JDK 1.6 을 요구한다) 둘다 설치법은 동일하니깐, maven 3.0.5 를 기준으로 설명한다. # wget http://apache.mirror.cdnetworks.com/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz(=> maven binary 다운로드) # pwd/root# tar xvfz apache-maven-3.0.5-bin.tar.gz...# mv apache-maven-3.0.5 /usr/local(=> /usr/local 로 mav..

Engineering/Java 2014.07.31

blowfish 를 이용한 문자열 인코딩/디코딩 예제

blowfish 를 이용해서 문자열을 인코딩/디코딩할 일이 있어서 공개된 정보들을 찾아서 정리해본다. import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class MyCrypto { private String myKey; public String getMyKey() { return myKey; } public void setMyKey(String myKey) { this.myKey = myKey; } public MyCrypto() { } /** * @Method Name : encryptString * 암호화할 데이터를 입력받고 암호화한 문자열을 반환 * @param myKey암호키 * @param data암호화할 데이..

Engineering/Java 2013.10.30

Spring jdbcTemplate 를 이용해서 프로시저/함수 호출

Spring 의 jdbc Template 를 이용해서 DB 의 프로시저/함수를 호출하는 java 코드를 정리해본다. public String CreateToken(int uid, String ip, long limitTime, boolean renew, String oldToken) { SqlFunction sf = new SqlFunction(dataSource, "select CreateToken(?, ?, ?, ?, ?)"); sf.declareParameter(new SqlParameter("id", Types.INTEGER)); sf.declareParameter(new SqlParameter("ip", Types.VARCHAR)); sf.declareParameter(new SqlParamet..

Engineering/Java 2013.08.29

Incorrect result size: expected 1, actual 0 에러메시지 해결

Spring 에서 queryForObject() (queryForMap() 도 결국 queryForObject() 를 호출하기 때문에 동일함)사용했는데, 쿼리 결과값이 1 이어야 하는데 실제 결과값은 0 일때 다음과 같은 에러가 발생한다.org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 이 경우에는 try, catch 를 사용하면 해결 가능하다.import org.springframework.dao.EmptyResultDataAccessException;...String sql = new String("select uId from Users u where userId = ? l..

Engineering/Java 2013.08.05

c# enum Flags 를 java 코드로 변경

c# 에서 enum 변수를 AND/OR 연산이 가능하게 선언되었을때, java 에서 비슷한 코드를 만드는 방법을 찾아서 테스트 해보았다. enum MccAppError { Success = 0x01, SuccWithError = 0x02, ... } // c# MccAppError error; error = MccAppError.Success | MccAppError.SuccWithError; if (error & MccAppError.Success) Console.writeLine("true"); java 로 구현.// javaEnumSet error;error = EnumSet.of(MccAppError.Success, MccAppError.SuccWithError);if (error.contains..

Engineering/Java 2013.07.24

Mac 에서 한글이 포함된 java 소스 컴파일시 warning: unmappable character for encoding EUC_KR

윈도우에서 작업한 한글이 포함된 소스파일을 UTF8 로 저장하고, Mac OS 터미널에서 컴파일할 경우 다음과 같이 warnig 이 발생한다.warning: unmappable character for encoding EUC_KR 터미널 환경이나 언어 설정, vimrc 설정도 모두 UTF8 로 변경했는데, 왜 euc-kr 로 인식이 되는걸까? 이는 MacOS 가 윈도우와 달리 unicode(utf8) 을 처리하는 방식이 달라서이다. (설명 블로그 참조 ) waring 을 제거하려면 javac 컴파일시 인코딩 옵션을 UTF8 고정하면 문제는 해결된다.$ javac -encoding UTF8 Constant.java

Engineering/Java 2013.07.23

JAVA 에서 큰 숫자 표현

java 에서 primitive type 형 숫자들중 가장 큰 자릿수를 지원하는 Long 형이나 Double 형의 최대값은 Long.MAX_VALUE = +9,223,372,036,854,775,807 Double.MAX_VALUE = 1.79769313486231570e+308d 둘다 8바이트이고, 자릿수를 계산해보면 19, 20 자리 정도이다. 이런 자릿수보다 더 큰 숫자를 표현하려면 어떻게 해야할까. java 에서 BigInteger(java.math.BigInteger) 를 사용하면 큰 숫자를 표현가능하다. 예를 들어 1 부터 100 까지 숫자를 차례로 곱해서 결과값을 구하는 프로그램은 다음과 같이 표현할 수 있다. import java.math.BigInteger; public class Big..

Engineering/Java 2013.07.18