기존에 poi 라이브러리를 이용하여 엑셀 파일 읽기 프로그램을 만들었다. 엑셀 업로드 10만 이상의 대용량 처리 이슈는? 어떻게 하지? 문제점 : 엑셀 사이즈가 커지게 되면 엑셀 파일을 workbook 객체로 변환할 때 Out of Memory(메모리 부족) 현상이 발생하게 된다. 그렇게 되면 엑셀 파일 읽기 도중 서버가 터질 수;; 있는 상황이 발생 그리하여 이보다 좀더 적은 메모리를 이용하여 처리하는 sax 방식을 채택 ※ 사용되는 클래스 SheetHandler.java(명칭은 정한것임) -> 엑셀 양식에 맞게 데이터를 커스텀하여 정리하는 클래스 : SheetContentsHandler 를 extends 받아서 override를 하게 된다. public class SheetHandler impleme..
한글 깨짐 원인은 tomcat 또는 프로젝트 파일 web.xml 파일 설정과 연결되어있다. 그리고 적용 방식에는 POST 방식과 GET 방식에 따라 달라진다 POST 방식 일 경우 ->WEB-INF/web.xml 해당 프로젝트 web.xml 에 filter 기능을 추가 한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* GET 방식 일 경우 ->tomcat -> server.xml GET 방식일경우 한글 데이터를 받을려고 하면 서버내에 직접 설정을 해주어야 한다. 톰켓 하위 server.xml에 들어가 밑에 코드를 찾아 URIEncoding="UTF-8" 을 추가해주..
map 데이터 비교하기 함수 종류 map.getOrDefault : 찾는 키가 존재한다면 찾는 키의 값을 반환 아니면 기본 값을 반환 (map의 특정 키값으로 비교하는 함수 for문 대신 사용 가능) ex ) result.add(map.getOrDefault(element,getEmtpyMap(element)); getEmtpyMap 사용자 설정 함수 : 초기값으로 설정해놓았음 -> map 안에 들어있는 값과 element 라는 list의 값을 비교하여 true 일경우 element를 현재 맵의 값을 반환 false 일경우 getEmtpyMap 사용자 설정 값을 반환 예시 코드 //초기값 함수 private Map getEmtpyMap(String element) { Map resultmap = new ..
db lock 일명 '하드락' 은 해당 테이블에 관하여 락을 걸어서 해당 테이블을 이용하고자 하는 사용자에게 대기를 거는 방식 이다. 하드락이라고 불리는 이유는 굉장히 위험하면서도 강력한 lock 이기 때문이다. 사용되는 곳 : 동시성 제어가 요구되는 특정 정보가 공유되는 경우 사용됨 ex) 특정 데이터가 공유되며 데이터의 한정성이 결정되어야 하는 경우 ( 은행 자금, 영화 티켓 등) 하드락을 사용하기 위한 쿼리 문구 -테이블 잠금- 1. select ~ for update //업데이트 잠금 2. select ~ lock in share mode //읽기 잠금 해당 테이블 전체에 대한 lock을 걸어서 동시성 제어 처리 해당 테이블 전체에 걸 경우 모든 정보에 대해 대기열을 제시함 ex)table loc..
- Total
- Today
- Yesterday
- dfs
- spring
- Java
- hazelcast
- 권한
- 캐시
- ncp
- Lock
- 캘린더
- 개념 이해하기
- insert
- dockerfile
- 정의
- Cache
- 격리수준
- mybatis
- 이미지
- Linux
- 리눅스
- centos7
- LocalDate
- 스케줄러
- 컨테이너
- leatcode
- 알고리즘
- 도커
- Quartz
- 네이버 클라우드
- docker
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |