본문 바로가기

Java

[JAVA]DateUtils 를 이용한 스트링 형태의 날짜 비교 DateUtils 를 이용한 스트링 형태의 날짜 비교 JAVA 에서 문자열로 받은 두개의 스트링 날짜값 간의 차이를 분단위 이상으로 변환하여 결과를구해야 한다고 한다. 예전에 Calendar 공부할 때는 간단히 되었던 것 같은데 막상 하려니 잘 안되었다.-_-;;;(어떻게 했었지;; 기록도 해두지 않아 자료도 없다.ㅠㅠ) 검색을 해도 깔끔하게 나온 건 없었다.(이런건 사실 직접 코딩해서 만들어야 실력이 느는데.ㅠㅠ) Apache 의 commons 에 util 이 있을 것 같아서 찾아보니 DateUtils 클래스가 있었다.(commons-lang-x.x.jar) 원래는 truncatedCompareTo 메서드를 활용하려고 했느나 commons-lang-2.4.jar 에는 메서드가 없는 관계로 getFrag.. 더보기
[JAVA]파일 업로드 구현(SERVLET 사용) 파일 업로드 구현(SERVLET 사용) 스프링 없이 servlet으로만 구현해보았음 파일 중복처리를 위해 SimpleDateFormat 을 이용하여 yyyyMMddhhmmssS 값을 구해와 사용하였음 - commons-file 사용url : http://commons.apache.org/proper/commons-fileupload/(참고로 해당 파일은 톰캣에 기본으로 들어있음) - tomcat 7- log4j2 Annotation 3.0 을 활용하여 servlet 별도 셋팅 없이 servet 파일에 annotation으로 설정하였음참고 url : http://knight76.tistory.com/entry/Tomcat7-Serlvet-30-%EB%A7%9B%EB%B3%B4%EA%B8%B0-Annotat.. 더보기
[JAVA]SPRING CONTROLLER의 반환형이 LIST 일 경우 VIEW에서 확인 및 사용방법 SPRING CONTROLLER의 반환형이 LIST 일 경우 VIEW에서 확인 및 사용방법 @RequestMapping("list")public List list() throws Exception {return ftService.selectFileTestList(); } 이렇게 List 를 넘겨줄 경우 이를 View 단에서 어떻게 접근하는지 헷갈려서 확인해봤다. 결론부터 이야기 하면 requestScope에 fileTestList 로 매핑되어 넘어온다.(fileTestList 로 사용하면 됨) 확인하기 위해 태그스틀립 을 이용하여 로그를 확인해보았다. fileTestList : ${fileTestList} ${empty fileTestList} request 안의 attribute 로 잡혀있는 objec.. 더보기
FileChannel FileChannel java의 NIO에서 좀더 빠른 속도로 access를 하기 위해 나옴 Buffer 객체를 입출력 자료형으로 사용함 InputStream : 읽기 전용 채널을 얻을 수 있음 OutputStream : 쓰기 전용 채널을 얻을 수 있음 RandomAccessFile : 읽기/쓰기 전용 채널을 얻음 Buffer의 allocateDirect 를 통해 시스템 메모리 공간을 활용하므로서 속도 향상 샘플 예제 RandomAccessFile raf = new RandomAccessFile("addfile/test.txt", "rw"); FileChannel fc = raf.getChannel(); String message = "안녕하세요.."; ByteBuffer byteBuf1 = ByteBuf.. 더보기
ByteBuffer ByteBuffer Java NIO에서 사용하기 위한 자료형 이라 판단됨 자바 기본자료형에대 boolean 을 제외하고 존재함 보통 파일 입출력이나 소켓 전송으르 위해서는 ByteBuffer을 사용할 거라 생각됨 ByteBuffer.allocate 혹은 ByteBuffer.allocateDirect 를 통해 객체를 얻어옴 allocate 는 기존 자바 힙 에 객체 저장 allocateDirect 는 OS의 메모리 영역에 저장 좀더 빠른 속도를 위해 allocateDirect를 사용할 것을 권장. capacity 가 정해지면 크기를 변경할 수 없음 get put : position이 이동됨 clear : data삭제 안됨. limit, position 을 초기화함 rewind : position을 0으로 .. 더보기
Bean 정보를 읽어 멤버변수를 반환하게 하는 클래스 PropertyDescriptor 클래스를 이용하여 Bean 내용을 읽어 setXXX, getXXX 중 한개라도 메서드가 존재하는 멤버변수 값을 받아오는 클래스를 작성해 보았다. 또한 해당 Member 변수에 담긴 값도 알아올 수 있었다. (다만 setter 가 실행되지 않게 되면 값이 할당되지 않아 null이 ㅂ Java 환경에서 수행하였기에 PropertyDescriptor 를 얻어오는 방법으로 Instrospector 클래스와 BeanInfo 클래스를 사용하였다. 만약 웹 환경이라면 아차피 홈페이지에서 받은 Commons-beanutils.jar를 이용하여 다음과 같이 코딩하면 되겠다. PropertyDescriptor[] descriptor = PropertyUtils.getPropertyDesc.. 더보기
제네릭 클래스 관련 제네릭 클래스 JDK1.5 부터 도입되었으며 주로 Map 부분에서 볼 수 있다. ArrayList tmpArray = new ArrayList(); 처럼 사용하게 된다. 이렇게 되면 tmpArray 에는 String 형의 Object만 입력이 가능하게 된다. (다른 형태의 객체 입력 시 실행 시점에서 에러가 발생한다.) 이를 통해 ArrayList에 형에 상관없이 무조건적으로 어느 객체나 입력가능함으로써 생길 수 있는 예상치 못한 에러를 방지할 수 있다. ArrayList 는 제네릭 클랙스로 만들어진 것이며 사용자 개인도 Class 이와 같은 형태로 Class를 만들어 사용할 수 있다. 사용자가 만든 제네릭 클래스 package genericclass; import java.util.ArrayList; .. 더보기