JAVA
-
[SPRING] 스프링 프레임워크에서 트랜잭션 처리JAVA 2015. 12. 8. 10:01
SPRING + MAVEN + MyBatis로 되어 있는 프레임워크로 프로젝트를 진행하던 중 트랜잭션 관련된 이슈가 생겨서 글로 남겨둔다. 스프링자체에 @Transactional 이라는 어노테이션이 있길래 당연히 이걸 쓰면 되는줄 알고 썼다가.. 큰일날뻔 했다.. 요놈이 글쎄 트랜잭션 처리를 안해줌..!!! 로직 자체가 한 메소드에서 여러 테이블에 저장을 해야 하는 로직인데, autoCommit이 되버려서 데이터가 꼬여버리는 것이었다.. 결국 구글신님께 도움을 요청. 몇가지 원인이 될만한 것들을 찾았다. 프로젝트에서 쓰는 MySQL DB내의 테이블 타입이 InnoDB가 아니면 문제가 될 수 있다. -> 타입은 정확히 InnoDB로 되어 있었다.. Database-config.xml 에서 트랜잭션 옵션 설..
-
REST API 호출JAVA 2015. 12. 2. 15:03
협업 프로젝트를 진행하다 보면 REST API를 사용해야 하는 경우가 있다. 이번에 REST API를 호출하는 기능을 만드는 기회가 있어서 정리를 위해 글을 남긴다. 내가 사용한 방식은 HttpURLConnection을 이용한 방식이다. 리턴 방식은 JSON 형태로 아래와 같다고 하자. JSON Data { success : true/false, data : { data1 : "data1", data2 : "data2" } } 위의 결과를 받기 위한 REST API 호출 코드는 아래와 같다. JAVA Method public Map callRestApi(String paramVal1) { // JSON 파라미터 String jsonParam1 = "abcd"; String jsonParam2 = "123..
-
[Exception] printStackTrace String값으로 읽기JAVA 2015. 11. 17. 10:50
로그 파일을 분리해서 로그를 남기기는 했는데.. Exception에서 제공해주는 getMessage()를 사용해서 로그를 남겼더니 정보가 너무 부족했다.. printStackTrace를 그대로 뿌려주면 안되나 했는데 될리가 있나.. 방법이 없어 구글링 시작.. 그래서 찾은 해법.. 일단 지난번 했던 로그파일분리 에서 사용했던 메소드를 재활용해보자.. // Properties load public void setProperties() { PropertyConfigurator.configure(this.getClass().getResource("/").getPath() + logPath); // Logger Set debug_logger = Logger.getLogger("변수명1"); error_logge..
-
[LOG] Logger 2개 사용하기JAVA 2015. 11. 17. 10:34
이것은 기본 JAVA Project 기준으로 설명합니다. 지난번에 log4j파일분리 세팅 을 했으니 이번엔 그 사용법을 알아보자. 요구사항은 일반 디버깅 로그와 작업수행에 대해 직관적으로 볼 수 있는 로그파일 2개를 생성해 달라는 것이었다. 기본 자바 프로젝트다보니 log4j 설정파일 경로 같은 것을 XML등을 이용해서 셋팅하는게 불가능하고 기본 JAVA 클래스에서 처리를 해야 했다. 그리고 이 프로젝트 자체가 jar파일로 만들어 배치작업을 돌려야 하기 때문에 해당 프로젝트내에서 properties를 컨트롤할 수 있어야 했다. 그래도 일단 패키지형태는 제대로 맞추자 생각해서 했던 세팅.. 이렇게 패키지를 구성하고 작업을 시작했다. config에는 메시징 처리를 위한 msg.properties파일과 log..
-
[LOG] Log4j 로그파일 분리JAVA 2015. 11. 13. 10:51
이번에 작업을 하면서 고객사측에서 로그를 직관적으로 볼 수 있게 해달라는 요청이 왔다. 워낙 document에 약해서 그쪽을 제대로 신경을 쓰질 못했는데 역시나... 그래서 이번에 부랴부랴 찾아본 로그관리 툴 Log4j. 사용하기도 편리하고 등급별로 로그를 남길 수가 있어서 많은 개발자들이 애용하고 있단다.. 사실 log4j는 실무에서 자바 개발을 한다면 누구나 볼 수 있었을것이다. 다만 제대로 파악을 못하고 있었을 뿐... 사실 이번에 요놈을 사용해보니 특별히 어려운게 전혀 없었다.. 설정파일만 잘 세팅하면 나머진 일도 아니다. 그래서 설정하는 법에 대해서만 기록을 남기고자 한다. 이번 프로젝트는 JAVA project로 만들어서 jar파일로 배포하는 것이 목적이었기 때문에 정말 자바로만 만들어졌다. ..
-
[XML] XML 파싱..JAVA 2015. 10. 29. 17:02
새로운 회사에 와서 처음으로 받은 작업.. XML파일을 파싱해서 DB에 저장해달라는 것이었다. 하라면 해야지.. 일단 XML의 예제 구조부터 보자. Data XML 홍길동 010-0000-0000 29 이몽룡 010-9999-9999 31 이런식으로 되어있는 XML 구조에서 tel항목의 전화번호만 빼오고 싶다하자.. 그럼 먼저 필요한 파라미터를 정리해야한다. XML파일을 가져올 URL주소 XML내에서 추출할 TAG명 두개의 파라미터를 받는 메소드를 작성한다. JAVA Method /** 전달받은 주소 정보로 XML 데이터 가져오기 * @param url URL주소 * @param targer추출할 tag명 * @return map (code/msg/list) */ public Map xmlToString..