목록프로그래밍 언어 (95)
IT 일기장
엑셀 다운로드를 구현했을 때 아래 링크를 참고하여 만들었다.https://techblog.woowahan.com/2698/ 아 엑셀다운로드 개발,,, 쉽고 빠르게 하고 싶다 (feat. 엑셀 다운로드 모듈 개발기) | 우아한형제실제로는 적절한 이름을 가진 private method로 코드가 나누어져 있습니다. @NoArgsConstructor(access = AccessLevel.PRIVATE) public ExcelRenders { public static createCellStyle(Workbook wb, ColumnType columnType) { XSSFCellStyle cellStyltechblog.woowahan.com 현재 Maven Project를 사용하고 있으며 poi 버전은 5.2...
간단한건데 찾아보니 적어놓지 않았었다.. 그래도 적어놓는 습관은 좋으니 남겨둔다.SimpleDateFormat을 이용한 방식이며 한국 시간 기준으로 정확하게 출력된다. 날짜 뽑아내는 패턴도 알아두자. yy : 년도 (뒷 2자리)ex) 2024년 => 24yyyy : 년도 (4자리)ex) 2024년 => 2024M : 월 (1자리 숫자인 경우 그대로)ex) 6월 => 6 MM : 월 (1자리 숫자인 경우 앞에 0이 붙음)ex) 6월 => 06d : 일 (1자리 숫자인 경우 그대로) ex) 1일 => 1 , 26일 => 26dd : 일 (1자리 숫자인 경우 앞에 0이 붙음) ex) 1일 => 01 , 26일 => 26h : 시 (1자리 숫자인 경우 그대로, 오전/오후 구분이 없음) ex) 1시 => 1 , ..
Excel POI로 엑셀 다운로드 개발하고 있을때 발생한 개념이였다.여러 방법을 생각하기 위해 시행착오를 몇 번 겪었었는데 그 중에서 DB에서 Column들에 대한 Key값들을 순서대로 가져오고 싶었을때 이 개념을 찾아냈다. LinkedHashMap 사용법은 간단하다. HashMap과 동일한 개념이다. HashMap 예제부터 살펴보면 HashMap map = new HashMap();map.put("test1", 1);map.put("test2", 2);map.put("test3", 3);map.put("test4", 4);map.put("test5", 5);for (Map.Entry result : map.entrySet()) { System.out.println(result.getKey() + ..
프로젝트 하면서 어디 좋고 쓸만한 무료 Grid가 없나.. 찾아보던 중에 Toast Grid를 발견하게됐다.여기서 들었던 의문점 중 하나가 "Toast Grid는 많은 데이터들을 커버할 수 있을까?" 였는데계획 및 방법은 다음과 같다. 계획1. 테스트 테이블 toast_test 하나 만들어놓고 데이터를 10만개 정도 넣어본다.2. 화면볼때 이상이 없는지 확인한다.3. 이상이 없다면 10만개씩 더 넣어본다.4. 이를 반복 방법1. Java에서 function 하나 만들어서 DB에 데이터를 집어넣는다.2. 프로시저를 사용해서 DB에 데이터를 집어넣는다.3. INSERT 구문을 이용해서 하나씩 DB에 데이터를 집어넣는다. 참고로 현재 DB 개발환경은 MariaDB 11이다.이정도까지만 생각하고 방법 3가..
정말 오랜만에 블로그 포스팅을 한다. 10개월만에 다시 부활.. 회사 프로젝트로 인해 바쁘기도 하고~ 야근도 많이 하고~ 여행도 많이 다니고~ 하다보니머릿속에 컨텐츠들이 쌓이고 쌓여 다시 초심으로 돌아가 포스팅 시작! Spring Boot 기반 Rest API 개발 시작을 위해 유틸을 만드는 중 생각나서 정리한다.포스팅 해놓은줄 알았는데 안적어놨더라.. List>의 성격상 Array 형태로 Response 된다. 따라서 JSONArray로 선언하여 추가 해줘야한다.물론 그 전에 Map 데이터들을 JSONObject에 담는게 먼저다. // List> => json array로 변환@SuppressWarnings("unchecked")public static JSONArray convertListToJso..
검색하다 우연히 구글 검색에 관한 이스터에그를 발견하게 됐는데 그 중 하나인 "do a barrel roll"이다. 구글 검색 이스터에그 검색하면 재밌는 기능들이 숨어있더라~ 공공기관 프로젝트 하면서 항상 정적인 것들만 다뤄서 심심했는데 이런거보면 또 재밌다. 아무튼 "do a barrel roll"이라는 단어를 구글에서 검색하면 아래 화면처럼 검색 결과 화면이 360도 돈다. 별거 아니지만 신기해서 비슷하게 구현을 해봤다. 어떻게 화면이 돌아가는지에 대한 원리만 알면되니까. 간단하게 div 영역잡고 해보자. welcome to "do a barrel roll"~ content class에 양념칠 해보자. CSS를 잘 몰라서 가운데 영역잡고 테두리랑 배경색 칠해주고 글자만 좀 크게.. .content {..
상황 테스트 서버에 배포하고 재기동을 시켰는데 다음과 같은 스크린샷이 확인됐다.. 원인 원인과 해결책의 정석은 사실 메모리 누수가 되는 소스가 어디인지 찾고 그 소스를 수정해야되는 방법으로 가는게 맞는데, 고객과 기획자에게 당장 내일까지 보여줘야됐던 상황이였던지라 마음이 좀 급하여 임시방편(?) 방법으로 개선하였다. 원인은 역시나.. 메모리를 사용하는곳이 너무 많고 사용할 수 있는 메모리가 초과하여 생긴 오류다. free -h 해결 해결은 swap을 이용했다. swap이란 실제 메모리가 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용해서 부족한 메모리를 대체할 수 있는 공간을 의미한다. 가상 메모리 같은 개념인데 속도면에서는 하드디스크를 이용하는 것이라 메모리 속도면에서는 떨어지는 단점이 있다..