분류 전체보기 138

Spirng Batch 로 Batch Job 만들기 (1)

이번에 일일 집계를 만들면서 spring batch를 처음 써봤다. 인터넷에 batch에 대한 이론 자료는 많으므로 여기엔 딱히 쓰진 않겠다. spring batch는 스케줄 등록하는 기능이 없다.그래서 Jenkins로 시간을 설정해서 빌드하고 batch는 spring batch를 썼다. 하루동안 사람들이 쓴 글의 총 수를 TEXT 테이블에서 셀렉트 해온 후 그 데이터를 AGGT(집계) 테이블에다가 넣는 예제이다. 두가지 방법이 있는데,첫번째는 비지니스 로직 없이 셀렉트해온 값을 바로 인서트 하는예제이다. (1) 비지니스 로직 없이 select 후 바로 insert 하기 1. XML에 JOB을 설정한다. .... -- 한 job에 스텝 여러개 추가 가능 -- query의 namespace+id -- da..

개발/Spring Batch 2012.08.16

forEach를 이용해서 JSTL로 출력하기

JAVA에서 VIEW단으로 리턴한 데이터 객체를 JSTL 문법을 써서 쓰는 방법. JAVA에서 보낸 객체가 이런형태로 생겼다고 하자. [[{key1 = lion, key2 = cat}], [{key1 = apple, key2 = melon}]] 자바에선 List 이런 곳에 담겨있던 데이터이다.복잡한가..?ㅋㅋ key1, key2에 있는 값을 출력해보자. 1. 맨 바깥 리스트 벗기기 java에서 modelData 란 이름으로 저 데이터를 넣었다. ${list} 포이치 한번 돌린 ${list}엔 뭐가 들어있을까?바깥 리스트 껍데기가 하나 벗겨진 [{key1 = lion, key2 = cat}] [{key1 = apple, key2 = melon}]이것이 출력된다. 2. 안쪽 리스트 벗기기 그다음 바깥 리스트..

개발/JSP 2012.08.10

날짜 구하기

날짜는 계산해야될 때 마다 매번 또찾아보고 또찾아보고 귀차늠자주 갖다 쓰는것만 정리함 - 요다타임 조다타임 joda 타임 으로 오늘날짜 구하기 String date = new DateTime().toString(DateTimeFormat.forPattern("yyyyMMddHHmmss"); - Calendar로 오늘 날짜 구하기 요다타임은 내가 잘 못찾는건지.. 잘 모르겠고, 대부분 이게 많이 나와서 이게 익숙하다. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");Calendar c = Calendar.getInstance(); // 오늘날짜String date = sdf.format(calendar.getTime()); // sdf가 Str..

개발/JAVA 2012.08.09

[MySql] 같은 컬럼의 행들에 한방에 update 하기

한 컬럼에 여러행들에 update를 한방에 업데이트 하는방법. 이런 경우 말이다. [ TABLE ]id name 1 사자 2 고양이 name컬럼의 값을id가 1이면 "lion"으로, id가 2이면 "cat"으로 바꾸고 싶다. 그럴땐 Case문을 쓰면된다. UPDATE TABLESETname = CASEWHEN id = 1 THEN "lion"WHEN id = 2 THEN "cat"ENDWHEREid IN (1, 2) 그럼 결과는 아래와 같이 나타난다. [ TABLE ] - 결과id name 1 lion 2 cat

개발/Database 2012.08.07

[MYSQL] 가져온 값을 조건에 따라 값 바꾸기(case - when - end 문)

집계 쿼리 만들 때 쓰이는 것... Group by 를 써서 데이터를 가져왔는데그 데이터는 숫자 코드로 되어있다(1 :사과 , 2: 포도) 숫자 코드는 보기 안좋으니까 글자로 바꾸려는데, 쿼리에서 조건문을 쓰려면 어떻게 할까? SELECTCODE,COUNT(*) AS COUNTFROM TESTWHEREDTTM = "20120802";GROUP BY CODE 가져와진 값이 아래와 같다고 치자 CODE COUNT 1 50 270 CODE가 1이면 사과의 합CODE가 2이면 포도의 합이라고 바꾸고 싶으면??? SELECTCASE CODE WHEN 1 THEN '사과의 합' ELSE '포도의 합' END, COUNT(*) AS COUNTFROM TESTWHEREDTTM = "20120802";GROUP BY C..

개발/Database 2012.08.02

클로저란 무엇인가? (Closure)

클로저란? 한마디로 정의 내리기가 어렵다. 그래서 두가지 예를 들겠음. 1. 아래 예제는 클로저를 사용하는 예제다. outer함수랑 setTimeout함수가 있다. setTimeout 함수로 인해서 outer함수가 끝나고 2초 뒤에 alert이 두번 띄워질텐데, outer함수가 끝이 났으므로 그 안에 변수들도 소멸이 되어야 하는게 상식적인 생각이지만ㅋㅋ 외부 함수에 있는 변수를 내부 함수에서 접근할 수 있다. (생명주기가 끝났어도..) 이것이 클로저(closure). (메모리 누수의 원인이라는 ㅋㅋ) function outer(a) {var b = "test"; setTimeout(function() {alert(a);alert(b);}, 2000);} 2. 요 아래 코드도 클로저의 예다. var b=2..

개발/Javascript 2012.07.30

Ajax로 받아온 데이터에 이벤트 걸기

내가 만든 프로그램중에 이런 버그가 있었다. 친구 목록이 쭉~ 있고, 친구한테 쪽지를 보내는 것이었는데 친구목록에서 더보기를 누른 후 나타난 친구 목록에서는(Ajax로 친구목록 더 가져옴) 쪽지가 안보내졌다. 일단, 더보기를 누르고 나면 자바스크립트로 새로운 친구목록을 append 했을 것이다. 그 append 된 곳에서 쪽지 보내는 event가 작동하지 않은 것인데.... 왜? 왜? 왜? 새로 가져온 친구목록에는 클릭 이벤트가 바인딩 되지 않았기 때문이다. 해결 방법은.... body 영역에 클릭이벤트를 주는 것이다. $('body').on('click', 'button.message', function(e) { // 구현 });

개발/Javascript 2012.07.30