Java
Spring ResponseEntity Stream 처리 관련 오류
admin 웹 페이지에서 사용하던 문서 다운로드 기능이 배포 후 갑자기 안되는 오류를 발견 오류servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.io.IOException: Stream closed 원인spring에서는 stream은 응답할때까지 close하면 안된다. spirng에서 응답 후 close 해주는데 이미 close가 되버려서 생긴 오류 디버깅controller->service->db->service->controller 내부에 있는 log는 모두 잘 찍혀 있었고 이후에 response filter에서 해당 오류가 찍혀있었다. 수정 코드를 확인하니 최근에 스패로우 관련 정책..
레거시 스케줄러에 배치 처리 방식 적용하기
기존 프로젝트에서 레거시 스케줄러 코드에 배치 형식을 적용한 코드를 공유한다. 레거시 스케줄러에서도 배치 형식을 적용되어 있었다(ex. 백만건 -> 1000건 단위 배치 작업)1000건을 threadPoolExecutor(thread-size : 10)를 사용하여 작업을 처리 하였는데 [AS-IS] for(File file : fileList){ threadPoolExecutor.submit(new BulkFile(file,....));} 이렇게 submit이 1000번 호출되고 10개는 스레드 풀이 작업을 나머지 990개는 queue에 쌓였다(스레드가 하나씩 가져와서 작업).스레드가 하나씩 가져와서 작업하는 방식은 context-switching이 자주 발생하고 불필요한 오버해드가 많이 발생해서 ..
자바 기초1
get/set : 정보은닉 둘중 하나만 제공해서 필요한 것만 사용하게 하거나 멤버변수에서 값을 받을 때 원하는 형식을 받기 위해 사용 변수를 핸들링 하기 위해 사용 지역변수 : 사용하고 사라짐 맴버변수 : 인스턴스에서 사용되고 사라짐, int, char, double 초기화하지 않으면 맴버변수는 0,null로 초기화 됨 참조변수 : String, 객체 클래스변수 : 데이터 메모리에 올라가서 프로그램 종료시 사라짐 static : 로딩될때 데이터 메모리에 올라가서 프로그램 종료시 사라짐 공통적으로 사용하거나 고정된 값을 메모리놓고 쓸 때 사용 메모리 구조 : 데이터 메모리 - 스택 메모리 - 힙 메모리 데이터 메모리 : static 메모리, 프로그램 종료 시 사라짐 스택 메모리 : 함수 실행시 올라갔다가 ..