발생일: 2009.11.06 문제: 타시스템으로부터 인터페이스 받아오는 임시 테이블이 있다. 이 테이블은 데이터 전달용으로 임시로만 사용하기 때문에 따로 PK 를 두지 않았다. 헌데 이 테이블에 중복된 데이터가 인터페이스 되게 되었다. PK 가 없는 테이블에서 중복된 데이터를 어떻게 제거해야 할까... 다른 테이블로 옮기는 과정에서 프로시저를 통해 중복데이터를 제거하면 되겠지만, 현재 상황에서는 프로시저를 수정할 수는 없다. 단순하게 DELETE 구문을 통해 중복 데이터를 제거하려고 한다. 테이블 스키마는 대략 아래와 같다고 가정한다. IF_TEMP id (number) content (varchar2) 현재 데이터는 아래과 같다. id content 123 가나다 123 가나다 234 마바사 234 마..
발생일: 2009.11.05 문제: 디자인 패턴 책을 읽으면서 예제를 따라해보던 중, double 의 합계 계산에서 뭔가 이상한 점을 발견했다. double a = 1.13; double b = 0.86; System.out.println(a + b); 이렇게 했을 때, 그 결과가 1.99가 나와야 정상인데, 1.9899999999999998 가 나와버린다. 움메... 이거 왜 이럴까... 해결책: float 과 double 타입은 과학과 엔지니어링 분야의 계산을 위한 목적으로 설계되었다. 그러나 정확한 결과를 제공하지는 않기 때문에, 주의해서 사용해야 한다고 한다. 그렇기 때문에 float 과 double 타입은 특히 화폐 계산에 부적합하다. float이나 double은 0.1(혹은 negative p..
발생일: 2009.11.05 문제: 메이븐이 뭐지...? 해결책: 메이븐 시작하기
발생일: 2009.11.05 문제: unix 에서 실행하고 있는 java 클래스가 있다. sh 파일 내에서 호출해서 실행하고 있는데, 한글이 깨지더라. 클래스 파일을 수정할 수 없는 상황이라 -Dfile.encoding=EUC-KR 를 실행 시에 넣어 인코딩을 설정해줬다. 전체적인 모습은 대략 java -classpath $CLASSPATH -Dfile.encoding=EUC-KR Test 이런 모습이다. 그러고보니, java 만 따로 실행해 본 적이 하도 오래 돼서 컴파일이나 실행 시 옵션에 대한 내용이 잘 기억나지 않는다. 정리된 문서가 있을까? 해결책: 'java 옵션' 키워드로 구글링 해보니 정리된 문서가 많다... ^^; 그 중에 쉽게 잘 정리되어 있는 포스트 몇 개를 찾아냈다. [강좌] Jav..
발생일: 2009.11.01 문제: 오늘 디비 서버 이관 작업이 있었다. 헌데 기존에 디비 링크로 연결하던 테이블을 조회할 수 없다.... 서버 담당자에게 문의해보니, 링크를 새로 생성해야 한다고 한다. 디비 링크.. 한 번도 안해봤는데.... -_-a 해결책: 디비 링크에 대해 아주 깔끔하게 정리해 둔 포스트가 있다. [오라클] DB Link 설정 위 포스트가 간단 요약 정리라면, 아래 포스트는 친절한 예제와 함께 설명해준다. ORACLE|DB Link 생성 및 사용법 그리고 마지막으로, 디비 링크 조회 쿼리. 1) USER ACCOUNT SELECT * FROM USER_DB_LINKS 2) DBA ACCOUNT SELECT * FROM DBA_DB_LINKS 이렇게 하면 되겠다. * 실질적으로 문제..
발생일: 2009.10.30 문제: spring mvc 예제를 따라 해보고 있다. 커트롤러의 클래스명과 유사하게 매핑하는 ControllerClassNameHandlerMapping 을 구성해보려고 하는데, 자꾸 클래스를 찾을 수 없다고 나온다. xml 설정 부분은 책에서와 같이 아래와 같다. 해결책: 책에 적혀있는 핸들러 클래스의 주소가 실제 라이브러리 내에 있는 것과 달랐다. 실제 라이브러리의 ControllerClassNameHandlerMapping 클래스의 패키지를 포함한 내용은, org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping 이다. 가운데 support 패키지가 추가됐다. 지금은 2.5.6 버전으로 테..
발생일: 2009.10.01 문제: 예제 1을 수행하려고 한다. Bean 설정도 끝났고 (여긴 성공이다!), AOP 를 적용한 후에 테스트해보려고 한다. 엥, 근데 아무리 해도 AOP 적용이 안된다. 아예 xml 파일을 읽기조차 안하는 것 같다.. xml 파일의 경로도 올바르고 책의 예제대로 돌렸는데,... 이상하다.... 메인 메서드는 아래와 같다. public static void main(String[] args) { BeanFactory factory = new XmlBeanFactory(new FileSystemResource("c:/chap1/knight.xml")); // knight.xml 파일에 AOP 에 대한 설정도 포함되어 있다. Knight knight = (Knight) conte..
발생일: 2009.10.01 문제: Spring in Action 책을 보고 있다. 챕터 제목처럼 '스프링에 뛰어들기'를 하려고 하는데 말이다... 처음부터 쉽지 않다.... -_-;; 챕터 1의 예제를 따라해보려고 하는데,.. 아래와 같은 에러가 난다. Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [chap1/knight.xml]; nested exception is java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoin..
발생일: 2009.10.29 문제: 후배 P에게 아직 비밀번호 변경하기 기능이 구현이 되지 않은 시스템에 기능을 추가해보라고 했다. 그리고는 같이 네이버나 다음, 구글의 경우 어떤 식으로 로직을 처리하는지 한 번씩 찾아봤다. 해결책: 네이버는 다른 백업 메일을 가지고 있지 않아 다음과 구글만 확인해보기로 했다. 내부적으로 두 사이트 모두 전체적인 로직은 다음과 같다. (여기서는 메일을 이용해 찾는 기능만 고려했다) 비밀번호 찾기 ---> 백업 메일로 임시비밀번호 또는 비밀번호 찾기 링크 전송 ---> 전송받은 메일 페이지에서 비밀번호 변경 페이지로 이동 ---> 임시비밀번호를 통해(또는 링크로 전달된 값으로 자동 설정) 비밀번호 변경 다음과 구글의 차이가 있다면, 다음과 같다. [다음] 다음의 경우, 비..