본문 바로가기

전체 글36

스프링 배치. 그리고 스케줄러, Quartz 스프링 배치 스프링 배치는 대용량데이터를 자동화하여 일괄처리 할 때 사용한다. 주기적으로 실행을 위해서는 스프링 스케줄러, Quartz 를 이용하면 된다. 배치 작업의 단위는 Job이라고 부른다. 이 Job 을 스케줄러나 Quartz를 이용해서 주기적으로 실행해준다. Job은 최소 하나의 step을 가져야 한다. step은 읽기 > 가공하기 > 쓰기의 묶음이다. ItemReader ( 읽기 ) > ItemProcessor ( 가공하기 ) > ItemWriter ( 쓰기 ) 그냥 하나의 트랜잭션으로 이해하면 된다. ( 데이터를 읽고 로직을 수행하여 가공하고 DB에 입력이나 업데이트 ) 스프링 배치의 장점 - 대용량 데이터 처리에 최적화되어 고성능을 발휘한다. - 효과적인 로깅, 통계처리, 트랜잭션 관리 등.. 2020. 3. 26.
@Transactional / 트랜잭션 트랜잭션 정의 트랜잭션(Transaction)은 데이터베이스(DB)의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션 사용 이유 DB에 insert, update 등 작업을 여러번 하게되는 로직이 있을 경우 중간에 실패하게되면 잘못된 값이나 필요없는 값이 저장될 수 있다. 이 경우 트랜잭션을 사용하여 모든 로직이 정상적으로 완료되지 않는다면 Rollback 하거나 모두 완료되야만 Commit 하여 데이터의 잘못된 저장을 막을 수 있다. 스프링에서 사용방법 어노테이션 @Transactional 을 이용할거면 손쉽게 설정 후 사용가능하다. xml에 아래 내용만 추가해주면 된다. 주요 속성 isolation -> Trans.. 2020. 3. 16.
JAVA 핫스왑 해주는 것들 로컬에서 JAVA 파일을 수정하게 되면 서버가 재시작하게 된다. 재시작 없이 바로 수정된 JAVA 파일이 반영되게 하려면 핫스왑 해주는 것들을 사용하면 된다. 그 중 3가지는 아래와 같다. * jrebel : 유료 * spring loaded : 무료. 안먹히는 경우 몇 가지 있음. debug 관련... * DCEVM : 무료. jdk버전에 맞춰서 릴리즈가 있고 한정적이다.. 2020. 3. 11.
JavaScript의 var, let, const 기존에 JavaScript는 변수 선언시 var 로 변수를 선언했다. 그리고 ES6 부터는 let 과 const 가 추가되었는데 차이는 var 보다 엄격하고 스코프가 다르다. # 재선언과 재할당 // var는 재선언이 가능하고 재할당도 가능하다 var name = 'ok' var name = 'ok' name = 'ok' // let는 재선언은 안되지만 재할당은 가능하다 let name = 'ok' name = 'ok' let name = 'error' // const는 재선언과 재할당 모두 안된다. const name = 'ok' const name = 'error' name = 'error' 위 예제처럼 var 는 재선언과 재할당 모두 가능하지만 let은 재할당만 가능하고 const는 선언후에는 변경.. 2020. 3. 11.