개발/java,spring 48

자바 xml 데이터, 속성 파싱(java xml parsing data, attribute)

안녕하세요.오랜만에 자바관련 포스팅을 합니다.나중에도 요긴하게 쓰일거같아 기본 코딩만 해두고 포스팅하려고 합니다. xml 데이터 파싱을 해보겠습니다.(java xml parsing data and attribute) 우선 테스트 xml 입니다. 홍길동 25 A B C 임꺽정 22 AA BB CC xml 구조는 테스트로 만든것이기 때문에 이해하기 쉬울 거라 생각됩니다. 제가 구현한 소스 입니다. import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import ..

개발/java,spring 2017.12.04

java static 변수에 대한 기초 개념 이해!

자랑하는건 아니지만... 현재 개발 3년차 입니다.그런데 가끔 프로젝트를 진행하다보면 아주 기초적인 개념 등을 몰라서어리둥절한 경우를 겪게 됩니다. 이번에는... static 변수!제가 알기로는 static 변수는 객체를 생성하지 않아도 접근이 가능하다... 정도?그래서 프로젝트에서 관련 클래스안에 static으로 선언하여 몇번 사용하곤 했습니다. 그래도...나름 개발자인데!알고 사용해야하지 않는가! 라는 생각에 정리해두기로 하였습니다. static 변수클래스 변수이다.클래스가 정의만 되어도 접근이 가능한 변수(인스턴스 변수는 인스턴스가 생성되었을때 접근 가능) class InstCnt { static int instNum=0; public InstCnt() { instNum++; System.out.p..

개발/java,spring 2017.10.12

자바 가상머신(jvm) 메모리 모델, 개념 이해하기

안녕하세요 ~! 이번 포스팅에서는 자바 가상머신(JVM)에 관련된 이야기를 해볼까 합니다.사실 static에 대한 개념을 공부하던 중 jvm관련 개념을 알아야 할거같아 jvm부터 포스팅 하게 되었습니다. 사실 static에 대한 공부를 하고 포스팅 정리하는 중입니다단지, jvm의 간략한 개념을 먼저 이해하는게 도움이 되서 먼저 포스팅 할 뿐! 먼저 의문점!'메모리 관리는 운영체제가 하는 건가요?' 아니면'가상머신이 하는 건가요?' 보통 이런 문제는 신경쓰지 않고 넘어가게 되는데메로리 관리의 이해는 프로그래머에게 중요하다는 사실을 요즘들어 느끼고 있습니다. 메모리에 대한 답변운영체제가 자바 가상머신에 메모리를 준다. ex) 4GB 자바 가상머신은 4GB를 본인이 알아서 사용한다. 그렇다면 자바 가상머신은 ..

개발/java,spring 2017.09.24

자바 선택정렬(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