본문 바로가기

분류 전체보기120

POI #1 [ POIFSFileSystem vs OPCPackage ] OLE와 OOXML 문서 표준 규격에 따르면 여러가지 문서들이 즐비해 있겠지만 가장 많은 비중을 차지하는 두가지 포맷에 (OLE와 OOXML) 관련하여 정리하겠습니다. POI에서 위에 명시된 두개의 파일 포맷을 읽어 들이기 위해서 사용하는 두가지 라이브러리가 있는데요. OLE (97~2003) - POIFSFileSystem OOXML - OPCPackage 크게 두개로 나뉘고 OLE의 Stream을 읽어 들인다와 OOXML 내부의 xml + 여러 파일을 읽어 들이는데 차이가 있습니다. 그러면 내부를 좀 더 살펴 보겠습니다. 두개 파일의 차이점이 확연히 들어납니다. 어떻게 보면 OLE 파일이 더 간단한것 같지만 위에서와 같이 하드디스크 용량을 따진다면 OOXML이 더 효율적일 것 입니다. 왼쪽에 나타나는.. 2020. 6. 29.
POI #0 Java에서 ms계열 혹은 hwp 파일 등을 읽어 들일때 파서를 많이 찾으시는데요. 대표적으로 POI 라이브러리를 사용해서 파싱을 할 수 있습니다. Apache에서 관리하는 무료 라이브러리이며 현재 4.1 버전이 최신으로 업데이트 되어 있습니다. 간단하게 Excel파일을 만들거나 여러가지 문서를 읽어 들일때 사용하면 됩니다. 주로 OLE 포맷이나 OOXML 파일 포맷들을 읽어 들일때 ms 포맷 말고 여러가지 포맷등도 지원합니다. 2020. 6. 26.
java #2 [HashMap, ConcurrentHashMap] 쓰레드에 더 유용하게 사용하는 자료구조 Dao 객체를 만들어서 사용하는게 더 나은 방법이 될 수도 있겠지만 자료구조를 잘 활용하는 것이 때로는 더 적은 리소스로 더 나은 성능을 만들수 있다고 믿습니다. 그중에서도 HashMap과 ConcurrentHashMap은 이름이 비슷하지만 사용시에 확연히 다른 모습을 보여줍니다. HashMap의 특징을 먼저 보겠습니다. null을 key 값으로 허용합니다. 중복을 허용하지 않습니다. 순서나 동기화를 보장하지 않습니다. ConcurrentHashMap의 특징을 보겠습니다. null을 허용하지 않습니다. 중복을 허용하지 않습니다. 순서는 보장하지 않지만 동기성은 보장합니다. 위와 같이 보았을때 스레드 상에서 ConcurrentHashMap을 사용하면 더 좋은 효과를 .. 2020. 6. 26.
docker [CentOS(Red Hat) - 주의 사항] CentOS는 보수적입니다. docker를 사용하기 위해서는 기본적으로 지원하는 Virtual 기능은 어떤 Linux OS나 가지고 있지만 Red Hat 계열의 CentOS는 Virtual Network를 지원하지 않습니다. Virtual Network가 왜 중요 할까요?? 사실 하나의 docker container만 서비스 한다면 CentOS도 크게 제약 사항이 없습니다. 하지만 platform + DB 같은 서비스를 해야 할 때는 docker(platform) + docker(DB)와 같은 공식으로 서비스 해야 할 때도 있습니다. 예로 docker-compose.yml을 사용해 A,B,C 서비스를 올리게 되면 A,B,C는 Virtual Network를 통해 하나의 Network로 묶어 사용됩니다. 하.. 2020. 6. 25.