자바 공감 세미나에 가서 lombok 이라는 프로젝트를 알게 되었는데 이 프로젝트가 상당히 흥미로운 기능을 가지고 있다. 대게 VO(Value Object) 및 도메인 객체 사용 시 getter, setter를 생성하는데 lombok 라이브러리를 추가하여 @Data 애노테이션을 달아 주면 컴파일 시점에 getter, setter, hashCode(), toString(), 생성자를 자동으로 생성해 준다. 자동으로 생성한다고 하여 소스 코드 상에 getter, setter가 생성 되는 것이 아닌 bytecode에 생성이 된다. @Datapublic class LombokTest { private String name;private String id; } 사실 VO 클래스를 사용하다 보면 getter, se..
오늘의 주제는 properties 에 관한 내용이다.오래 전 겪었던 일이지만 properties 파일을 볼때마다 그때의 악몽이 새삼 떠오른다. 내용인 즉슨, 프로퍼티에 다음의 값이 저장되어 있었다. remote.domain.name=http://test.co.kr http를 이용하여 다른 웹 어플리케이션 서버에 요청을 보낼 때 http://test.co.kr/remote.do?code=1111 와 같이 URI 값을 append하여 전송하는 로직을 개발하였다. 헌데, 테스트를 해보면 상대방의 도메인으로 데이터를 전송하지 못하는 것이었다. 프로퍼티 설정 값이 잘못 되었나?로직을 잘못 만든 건가?파라미터 부분이 잘못 생성되었나? 여러 가지 삽질 끝에 원인은... remote.domain.name에 설정한 값의..
오늘은 JDK 를 설치해 보겠습니다. 요즘 개발 환경 셋팅하는 재미가 솔솔하네요. ^^ 먼저 리눅스 운영체제에 JDK를 설치하기 위해선 몇 비트 운영제제 인지를 알아야 합니다. 다운로드 페이지에 들어가보시면 알겠지만 32bit, 64bit 두 가지로 파일 다운로드를 제공하고 있기 때문이죠.. [kyu@qctest ~]$ getconf LONG_BIT 64터미널에서 위의 명령어를 실행 하였을때, 64가 나오면 64bit 운영체제이고, 32bit가 나오면 32bit 운영체제 입니다. 현재 제가 사용하고 있는 테스트 장비는 64bit 입니다. (오오~~ 나름 고급) 다음으로 JDK 를 다운로드 받으로 가겠습니다. 1. http://java.sun.com/javase/downloads/index.jsp 페이지 ..
자바5.0이 나오면서 새로추가된 기능으로 코드가 간결해진다. 단, 기존 1.4에 익숙해져있는 개발자들이 이 문법을 봤을때는 살짝 거부감이 들지도 모른다.. 나 또한 1.4만 써오다 이런게 있다고만 알았지 정작 사용해보지는 않았기 때문이다. 하지만 지금 회사에서 대리님 한분이 사용을 하시길래 개념을 확실히 잡고자 이렇게 정리했다.. import java.util.ArrayList; public class Generic { public static void main(String[] args) { // 기존 JDK 1.4에서 사용했던 방식 ArrayList a1 = new ArrayList(); a1.add("aaa"); a1.add("bbb"); a1.add("ccc"); for (int i = 0; i <..
몇일전 회사 대리님의 한 말씀..... " 난 아직도 인터페이스를 왜 사용하는지 모르겠다 " 라고 하셨다.. 나 조차 자바개발자로서 인터페이스의 기능과 문법은 알고있지만 지금까지도 왜?왜?왜? 사용해야하는지 자세히 알지는 못하였다. 오히려 불필요하다고만 생각해왔을뿐.. 하지만 인터페이스는 오픈소스인 스프링, 스트럿츠에 많이 사용되어져 있고 다른 프로젝트의 소스코드를 보아도 조금씩은 들어가 있기에 이번 기회에 완벽히 습득을 하고자 공부를 해봤다. 1. 먼저 interface는 다른 클래스의 멤버들과 달리 다음과 같은 제약사항을 가지고 있다. - 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다. - 모든 메서드는 public abstract 이어야 하며, 이를 생략할 ..
저장하기 package BLOB; import java.io.*; import java.sql.*; import java.util.*; public class Exam_07 { public static void main(String[] args) throws IOException { try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("드라이버 검색 성공"); }catch(ClassNotFoundException e) { System.err.println("error = " + e); System.exit(1); } Connection conn = null; PreparedStatement pstmt = null; Stri..