전체 글

개발에 대한 내용을 주로 다루는 블로그입니다.
개발/리팩토링

네이밍 관련 글 정리

다음 글들의 내용을 취합해서 정리한 내용입니다. https://a-nickels-worth.blogspot.kr/2016/04/a-guide-to-naming-variables.html http://journal.stuffwithstuff.com/2009/06/05/naming-things-in-code/ http://nikas.praninskas.com/javascript/2016/11/28/naming-things-handlers/ http://codelegance.com/semantic-method-naming/ http://codebuild.blogspot.kr/2012/02/15-best-practices-of-variable-method.html # 클래스, 인터페이스 - 명사여야 한다. : ..

개발/Spring

Spring Batch skip 로직 동작 방식

Spring Batch에는 skip-limit라는 설정을 할 수 있습니다. chunk 단위 처리할 때 skip-limit에 설정된 횟수만큼은 예외가 발생해도 예외를 skip하고 계속해서 잡이 수행됩니다. 이 정도만 알고 있었는데 skip-limit를 실제 적용해보면서 새롭게 알게된 것들이 있어 정리해봅니다. 아래와 같이 chunk 설정을 해서 1개 단위로 처리를 하고 발생하는 예외에 대해서 7번까지 skip하고 진행하고자 했습니다. 설정이 잘 동작하는지 테스트를 해보니 processor에서 예외가 발생한 경우 예외가 발생한 item은 skip되고 다음 item 처리로 넘어갔습니다. 하지만 writer에서 예외가 발생한 경우는 skip되지 않고 같은 item이 다시 processor부터 다시 처리되었습니다..

개발/리팩토링

읽기 좋은 코드가 좋은 코드다 - 노트

책 '읽기 좋은 코드가 좋은 코드다 ' 내용 중 기억에 남는 내용이나 잘 몰랐던 부분에 대해서 정리한 내용임. 변수/메소드명 지을 때 쓸 수 있는 상황에 더 적합한 '화려한' 단어의 예시send : deliver, dispatch, announce, distribute, routefind : search, extract, locate, recoverstart : launch, create, begin, openmake : create, set up, build, generate, compose, add, new인덱스 변수로 i, j, k를 쓰는 것은 좋지만 중첩 루프로 어떤 변수에 어떤 인덱스 변수가 사용되는지 알기 힘들다면, 인덱스 변수명에 사용될 변수의 앞자리를 붙여서, ci, mi, ui 이런식으로..

개발/Front End

[JavaScript] 이미지 사이즈 구하기

이미지의 사이즈를 구해서 사이즈로 뭔가 작업을 해줘야할 필요성이 있을 때가 있다. Image 객체에 이미지 로딩하고 로딩 완료 시점에 사이즈를 구한다.

개발/자바

FileLock

Java에서 File에 락을 걸기위한 방법으로 FileLock이라는 것을 사용할 수 있다.File file = new File("D:\\data\\people.txt"); FileChannel channel = null; try { channel = new FileOutputStream(file).getChannel(); FileLock fileLock = channel.tryLock(); fileLock.release(); } catch (IOException e) { e.printStackTrace(); }다음과 같이 한다. 락을 걸고 사용 후에는 해제를 해줘야 한다. 락을 확보했다가 해제하는 것을 100만번 반복하는데 1000 밀리초 정도 걸렸다. (Intel i7-4790 3.60GHz) 락을 확..

개발/Spring

Spring Batch commit-interval에 대한 정리

Spring Batch Job 설정 시 commit-interval 이라는 값을 지정할 수 있다. 이 값이 의미하는 바는 commit되는 단위 갯수인데 정확히 어떤 의미인지 정리해본다. 스프링 배치 문서에는 다음과 같이 되어있다. The number of items that will be processed before commit is called for the transaction. Either set this or the chunk-completion-policy but not both. Can be specified as an expression that will be evaluated in the scope of the step (e.g. "#{jobParameters['commit.interva..

bebeside77
Spread your wings