개발/java,spring 45

자바 선택정렬(select sort)

평소 알고리즘 공부를 해야지 ~ 해야지 하고 생각하고 있다가.드디어 정리를 하게 됩니다. 선택정렬 개념첫번째 위치의 숫자와 두번째,세번째, 네번째로 계속 뒷자리 숫자와 대소비교를 합니다.그리고 작은 숫자와 자리를 변경합니다. 예시초기 데이터 : 8,3,6,2,10,4 실행 : step01 8,3,6,2,10,4↑첫번째 데이터 8을 기준으로 그다음 데이터 3과 비교3,8,6,2,10,48과 3의 자리 변경 그다음 데이터 6과 비교(변화없음)그다음 데이터 2와 비교(자리변경)2,8,6,3,10,4 그다음 데이터 10과 비교(변화없음)그다음 데이터 4와 비교(변화없음) step022,8,6,3,10,4 ↑이다음에는 두번째 위치의 숫자 8부터 대소비교를 시작합니다. 소스코드 첨부합니다. /** 1. index가..

개발/java,spring 2017.09.16

이클립스를 통한 라이브러리 추가 및 jdk 버전 변경하기

대학교때 라이브러리를 추가하거나 jdk버전을 변경할때!엄청....어리버리 하면서 뭐가 뭔지로 몰랐던 시절이 생각이 납니다.음...약간 초보적인?그렇다고 무시 할것이 아니라한번쯤은 꼭해보고 알아두어야할 설정법인것 같습니다. 먼저 프로젝트를 우클릭하여 'Properties'를 선택합니다.프로젝트 우클릭화면은 캡쳐 하지 않았지만... 좌측에 맨 위 프로젝트명을 우클릭하시면 됩니다. 화면을 보시면 제가 클릭한 것을 보실 수 있습니다.'Java Build Path'를 선택합니다.그리곤 우측에서 빨간점에 표시된 'Add Library' 를 선택합니다. 그러면 창이 하나 뜨게됩니다. 그리고 JRE System Library를 선택!사실 되게 복잡해 보이지만 의미만 알게되면....외우지 않고도 간단히 하실수 있습니다...

개발/java,spring 2017.09.08

[자바, iBatis 배치활용]insert/update 속도 개선!

새로운 이슈가 생겨서 블로그에 적어두려고 합니다.일반 적으로 데이터를 insert, update를 할때 시간을 신경쓰지 않습니다.그런데 이번 프로젝트를 진행하며 데이터 insert 할 건수가 대략 적이지만 50만건 정도는 되었습니다. 아무생각없이 일반 insert문으로 진행 할시 시간이 어마어마하게 많이 걸렸습니다.1,000건을 insert해도 시간이 상당하더군요. 그래서 대용량 insert 등 막 검색해서 배치! 라는 것을 알게 되었습니다. 먼저 startBatch(), excuteBatch()함수를 활용해야 하는데SqlMapExecutor 인터페이스에서 가져온 설명 입니다. /** * Starts a batch in which update statements will be cached before b..

개발/java,spring 2017.08.25

스프링 @RequestBody, @ResponseBody

프로젝트를 진행하며 json 형태의 데이터를 주고받을 경우가 생겼다. 요즘 xml이나 json 등의 형식으로 주고받은 경우가 빈번하게 발생하고 있는 추세이다. 스프링 MVC 이에 따라 스프링 MVC도 클라이언트에서 전송한 XML 데이터나 JSON 또는 기타 데이터를 컨트롤러에서 DOM 객체나 자바 객체로 변환해서 송, 수신 즉 주고 받을 수 있다. @RequestBody 어노테이션과 @ResponseBody 어노테이션은 각각 HTTP 요청 몸체를 자바 객체로 변환하고 자바 객체를 HTTP 응답 몸체로 변환하는 데 사용 @RequestBody - HTTP 요청 몸체를 자바 객체로 전달받음 - HTTP 요청의 body 내용을 자바 객체로 매핑하는 역할 @ResponseBody - 자바 객체를 HTTP 응답 ..

개발/java,spring 2017.07.07

자바 날짜형식, 데이트 타입/포맷 확인

엑셀데이터를 읽어 들인 데이터가 날짜 포맷으로 변환이 가능한지에 대한 여부를 판단해야할 일이 생겼다. 자바 날짜 관련 클래서! SimpleDateFormat 를 사용하였습니다. SimpleDateFormat dateForm = new SimpleDateFormat("yyyyMMdd"); if (dateStr == null) return false; String format = null; try { format = dateForm.format(dateForm.parse(dateStr)); } catch (Exception e) { e.printStackTrace(); } return dateStr.equals(format); 위와 같이 지정하면 yyyyMMdd 가 아닐경우 parse 할 때 catch문으로..

개발/java,spring 2017.07.05

도메인, VO 객체 Serializable 직렬화

프로젝트를 진행하다보면도메인 혹은 VO객체에 implements Serializable를 하는 경우가 많다. 갑자기 이 행위를 왜 하는지 궁금해 졌다. 다른 네트웍 통신을 하지 않는데 사용하길래 더욱더 궁금해 졌다.그래서 간략하게 정리하게 됬었다. 직렬화란?JVM 힙영역에 존재하는 객체를 한 줄로 늘어선 바이트의 형태로 만드는 것!! 역직렬화란?객체의 형태로 복원하는 작업! java.io.Serializabe 인터페이스를 보면 구현해야 하는 메소드가 없다. 그 이유는 Serializable 인터페이스를 구현한 구현체가 직렬화 대상이다라는 것을 JVM에게 알려주는 역할만을 하기 때문이다. 결론은....속도와도 전혀 상관 없고해당 객체를 파일 또는 서블릿세션에 저장하거나 소켓/RMI로 보내야할때 구현해야 한..

개발/java,spring 2017.06.13

스프링/아이바티스 2개의 DB연결

오라클 DB, 큐브리드에 접근해야 할 경우가 생겼습니다.이에 서로다른 DB에 접근해보도록 하겠습니다. 저는 현재 전자정부 프레임워크를 사용중이므로 전자정부 프레임워크 기준으로 작성중입니다. 일반적으로 DB를 연결하는 dataSource를 다음 처럼 수정합니다. bean 객체를 2개 선언합니다. 그리고 각 연결되 DB를 어디에서 사용할지 정해줍니다여기에 작성한 디렉토리에 쿼리 xml 파일을 생성해야 합니다. 그리고 이번엔 자바 파일 즉, 클래스를 이용하여 DB에 접속할 DAO를 만들겠습니다. 저는 전자정부 프레임워크를 사용하기 때문에 기본적으로 "sqlMapClient" 빈 객체를 사용합니다. 전자정부프레임워크에서 제공하는 EgovAbstractDAO 을 상속받고 사용합니다. public class Url..

개발/java,spring 2017.05.23

스프링 redirect 파마미터 처리

스프링에서 redirect를 사용할때 파라미터 값을 넘겨야 할 경우가 있다.예를들어xxx.do?id=mm&name=lee이렇게 하면 값은 가지만...url에 데이터값이 다 노출되기 때문에 먼가 꺼림직하다.그래서 데이터를 숨기면서 다른 controller로 보낼 방법을 검색하였다. 방법 1.RedirectAttributes 사용하기 인터페이스는 org.springframework.web.servlet.mvc.support.RedirectAttributes 값 전달하기 @RequestMapping(value="/test.do",method=RequestMethod.POST) public String test(HttpServletRequest req,@RequestParam Mapparams, ModelMap..

개발/java,spring 2017.03.20

java, jsp 페이징처리

아주 예~~전에 교육받을때 페이징처리를 처음부터 생성하며 해보았지만....할때마다 가끔 생각이 뒤죽박죽이 된다.이유는 페이징에 사용되는 변수의 쓰임에대해 제대로 개념을 잡지 못해서 인것 같다. 그래서 이번에 정리를 해두려고 합니다.먼저 사용하는 변수! controller 에서 사용하는 변수 입니다.pageIndex - 현재 페이지 번호 입니다. ex) [1] [2] [3] [이전] [ ${i} ] [다음] 태그가 아닌 ${ }안에 있는 변수들은 Controller에서 받아온 값 입니다.

개발/java,spring 2017.03.16

버블정렬(bubble sort)_자바구현

버블정렬에 대해 간단히 정리해 보았습니다.역시 프로그래밍은...해봐야 정신차린다는... ㅠㅠ 간단한거라고 생각했지만 막상할려니 고민스러웠어요 ㅋㅋㅋ이왕하는김에 블로그에 정리해서 올려두려고 합니다. 버블정렬의 기본 개념은이웃한 데이터들을 비교하여 차레로 정렬한다는 것 입니다. 다음과 같은 배열이 있습니다. 8,3,6,2,10,4↑ step018,3,6,2,10,4↑↑ 8과 3을 대소비교하여 정렬을 합니다.결과는 8과 3이 바뀌게 되겠죠3,8,6,2,10,4 step023,8,6,2,10,4 ↑↑이번에는 8과 6을 비교하게 됩니다.이런식으로 배열의 끝까지 대소비교를하여 정렬하면 됩니다. 버블정렬은 나름 개념이 쉬운 알고리즘이라고 생각합니다.모두들 한번씩 해보세요^^ 소스코드는 아래와 같습니다. /** 1. ..

개발/java,spring 2016.11.08