개발 251

[java] split multi_tif single page(멀티 tif 파일 쪼개기)

안녕하세요.포스팅의 내용은 제목 그래도 multi tif 파일을 쪼개는 것 입니다.예전에 했음에도 불구하고 다시 할려니 이리저리 쫌 해메어서 기록해 두려고 합니다. 제가 사용한 소스만을 첨부할 것이므로궁긍한 사항은 댓글로 문의 주세요. 사실 자바로 작성전에 파이썬으로 multi tif 쪼개는 코드를 작성하였는데품질이 안좋아서 다시 자바로 작성하였습니다.혹시나 파이썬으로 작업하시는분들은 이점 참고바랍니다. static void splitFile_ToJpeg(File file) throws IOException { String dir = file.getParent(); String file_name = file.getName().toLowerCase(); file_name = file_name.substri..

개발/java,spring 2020.01.20

[oracle]오라클 시퀀스(sequence) 생성 및 삭제

안녕하세요.오라클 시퀀스에대해 포스팅하려고 합니다.시퀀스의 기능은 워낙 유명해서 모두 알고 계실거라고 생각합니다. 시퀀스란?연속적인 일련번호를 만들어주는 기능 입니다. 주로 사용자의 번호나 사번 등으로 주로 활용됩니다.간단하게 사용 문법만 기재하겠습니다. 문법create sequence 시퀀스 이름increment by n ------> 시퀀스 증가 값(기본 1), -1로 설정하면 감소하는 시퀀스임start with 1 ------> 시퀀스 시작 값maxvalue 100000 ------> 시퀀스 최대값(다른옵션 : nomaxvalue)minvalue 1 ------> cycle일 경우 새로 시작되는 값(다른옵션 : nominvalue)cycle ------> 시퀀스 번호 순환 설정 (다른옵션 : noc..

개발/DB 2019.12.03

[오라클] 인덱스의 주의사항 및 관리방법(쿼리문 확인)

안녕하세요.앞서 인덱스의 개념과 종류에 대해 알아보았습니다.[개발/DB] - [오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX) 오늘은 인덱스의 주의사항과 실습을 통하여 인덱스의 관리법을 알아보고자 합니다. 인덱스의 주의사항인덱스를 생성하면 속도가 빨라지는 것은 사실이나용도에 맞게 인덱스를 생성하여 사용해야 합니다.그렇지 않으면 Full Table Scan보다 느려지는 경우도 종종 있습니다. 1) DML 쿼리문 주의 사항 ○ insert 작업을 할 경우에 INDEX Split 현상이 발생할 수 있습니다. → INDEX Split로 인해 속도가 느려질 수 있습니다. 기존 블록에 여유 공간이 없는 상황에서 새로운 데이터가 들어오게 되면 기존 블록의 내용 중 일부를 새 블록에 기록..

개발/DB 2019.12.03

[오라클] 인덱스의 원리 및 개념과 종류(B-TREE, BITMAP INDEX)

안녕하세요.오늘은 인덱스에 대해 포스팅하겠습니다.오라클을 기준으로 하여 설명할 것 입니다인덱스 개념 및 원리인덱스의 개념어떤 데이터가 어느 위치에 있다는 정보를 가진 주소록 같은 개념 입니다. 인덱스의 개념을 이해하기 위해서는 오라클이 select를 하는 원리를 알아야 합니다.일반적인 select 쿼리를 실행될때 먼저 메모리의 데이터베이스 버퍼 캐시를 살펴봅니다.버퍼 캐시에는 자주 사용되는 테이블들이 캐싱되어 있는데 여기서 데이터가 있을 경우에는 바로 찾아 출력하고없을 경우에는 하드 디스크에 있는 데이터 파일에서 데이터를 찾기 시작합니다. 인덱스를 사용한다면 이러한 과정을 거치지 않고 바로 주소를 통해 찾아간다는 것이지요.예를들어 홍길동 이라는 사람의 집에 택배를 배송하기위해 대한민국 전국을 뒤져야 합니..

개발/DB 2019.11.30

오라클(oracle) pivot, unpivot 함수 활용 예제

안녕하세요.오늘은 pivot, unpivot 함수를 정리해볼까 합니다.pivot 함수는 row단위를column단위로 변경해주는 함수입니다.unpivot 함수는 pivot의 역순이라고 생각하시면 됩니다.예제를 통해 알아보겠습니다. 현재 테이블 현황 입니다.직원 휴가 현황입니다.제가 보고싶은 것은 월별 휴가현황을 보고싶습니다. 이때 pivot 함수를 활용하여 월별 휴가현황을 확인해 보겠습니다. select * from (select user_nm, month, h_day from h_sts ) pivot ( sum(h_day) for month in ( '1' as "1", '2' as "2", '3' as "3", '4' as "4", '5' as "5", '6' as "6", '7' as "7", '8'..

개발/DB 2019.11.14

오라클(oracle) rank(), row_number() 순위함수 사용 예제

안녕하세요.오늘은 오라클 함수에 대해 설명하고자 합니다.오라클 뿐만 아니라 mssql에서도 사용이 가능 합니다.mysql, postgre 등의 다른 DB는 확인해보셔야 할 것 같습니다. 순위를 뽑아내는 rank() 함수에 대해 알아보겠습니다.이런 함수는 알아둬야 나중에 검색이라도 해서 활용 할 수 있습니다. 기본 랭크 함수입니다.구분을 위해 쿼리는 파란 네모 표시로 하겠습니다. rank() 함수select sno, cost, rank() over(order by nvl(cost,0) desc) rank from pt_02;cost가 null값이면 0으로 처리하였습니다.또한 내림차순으로 정렬하였습니다.rank 출력문을 보시면 1,2,3,4,5,5,7 로 출력되는것을 볼 수 있는데cost 값이 500으로 똑..

개발/DB 2019.11.13

데이터베이스(DB) 정규화(1차,2차,3차)

안녕하세요.현재 필자는 오라클 데이터베이스를 필두로 하여 데이터베이스에 대해 공부하는 중 입니다.여러가지 Sql 쿼리문들도 있지만 이번엔 정규화에 대해서 알아보고자 합니다.실제 개발자분들은 현업에서 실제 사용할 일이 있을지는 모르겠지만기본 개념으로 알아두시면 좋을듯 싶습니다.저 또한 그런 의미로 정리를 하고자 합니다. 정규화의 목적☞ 데이터를 보다 효율적으로 저장하고, 데이터 중복을 방지하며, 저장 공간이 낭비되는 테이블 설계를 제거하기 위함 정규화를 논할때는 일반적으로 1차, 2차, 3차 정규화를 대상으로 합니다.그럼 이제 정규화에 대해 알아보도록 하겠습니다. 1차 정규화 정의☞ 반복되는 속성이나 그룹의 속성을 제거하고, 새로운 테이블을 추가한 후에 기존 테이블과 일대다 관계를 형성하는 것을 의미합니다..

개발/DB 2019.11.10

drop, delete, truncate 차이점 및 개념 이해하기

안녕하세요.오늘의 포스팅 주제는 DROP, TRUNCATE, DELETE 명령어에 대해 알아보고자 합니다.그리고 차이점을 알아보도록 하겠습니다. TRUNCATE 명령어개념 : 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납 설명 - 해당 테이블의 데이터가 모두 삭제되지만 테이블 자체가 지워지는 것은 아님 - 해당 테이블에 생성되어 있던 인덱스도 함께 truncate 됨사용 : TRUNCATE TABLE lee_Table; DROP 명령개념 : 테이블 자체를 삭제하는 명령어설명 - 테이블 자체가 모두 지워지며, 해당 테이블에 생성되어 있던 인덱스도 삭제됨 - 오라클 10g부터는 테이블이 삭제되는 것이 아니라 윈도우의 휴지통 개념처럼 잠시 삭제됨 그리고 테이블 이름이 BIN$..로 변경됨사용 : ..

개발/DB 2019.11.06

파티션 종류 및 개념 알아보기(Hash Partition, List partition, composite partition)

안녕하세요.계속해서 파티션(partition)에 대하여 알아보고 있습니다.파티션에 사용되는 파티셔닝 기법이라는 것과실제 쿼리 작성하여 실습을 통해 range 파티션을 알아보았습니다.이전 포스팅 글 입니다. [개발/DB] - [오라클(oracle)] range 파티션(partition) 알아보기[개발/DB] - [오라클(oracle)] 파티션 테이블을 개념(테이블 파티셔닝) 이번 포스팅에서는 실습을 진행하지 않을 것입니다.이유는, 앞서 실습을 통해 알아봤던 range 파티션을 실습해보니..... 부분적으로 캐치만 하면 다른 파티션 기법을 사용할 수 있다고 생각하기 때문입니다. 지금부터 다른 파티션에 대해 알아보겠습니다. range partition(범위 파티션) - 복습장점 : 사용하고 관리하기 쉬움단점 ..

개발/DB 2019.11.05

[오라클(oracle)] range 파티션(partition) 알아보기

안녕하세요.지난 포스팅에서는 파티셔닝에 대한 간략한 개념을 포스팅하였습니다.[개발/DB] - [오라클(oracle)] 파티션 테이블을 개념(테이블 파티셔닝) 그리고 오늘은 파티션을 실제 실습하는 포스팅을 하려고 합니다.실습은 Range PARTITION(범위 파티셔닝)을 실습하였습니다. 사용하는 쿼리를 적으며 어떻게 쓰는지 경험 및 개념만 알아둔다면다른 파티션들의 사용법은 약간이 쿼리 차이가 있을뿐 응용할 수 있을것 같습니다. Range PARTITION(범위 파티셔닝)특정 기준에 의해서 범위를 나눌 때 사용하는 방법입니다.실습은 판매 테이블을 파티셔닝 하는데 판매 날짜를 기준으로 범위를 나누었습니다.가장 기본적이면서도 많이 사용되는 파티셔닝 기법이라고 합니다. 지금부터 쿼리는 파란 네모박스에 기재하겠습..

개발/DB 2019.10.28