RSA 암호화는 공개키 암호화 방식이다. PRIVATE KEY PUBLIC KEY 두 키를 생성하여 . 암호화, 복호화 하는데 사용한다. PUBLIC KEY를 이용하여 암호화하고 PRIVATE KEY를 이용하여 복호화한다. JAVA CODE로 알아보자. 우선 util 기능은 이렇게 정의한다. /** * 키페어 생성 */ static HashMap createKeypairAsString() { HashMap stringKeypair = new HashMap(); try { SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGene..
프로젝트를 하던중 geoserver에 발행된 레이어(postgres 로 발행) 의 스키마가 변경될 일이 있었다. 예를 들어 필드계산기 기능을 이용하여 스키마를 동적으로 추가해주는 기능이 있었다. 하지만 물리 디비에서 스키마를 새로 추가해주면 Geoserver는 처음 레이어를 발행했때의 스키마만 찾기 때문에 지도에 랜더링 되지 않는 현상이 발생했다. ajax통신을 통해서 geoserver 스키마를 갱신시켜줄 필요가 있었다. $.ajax({ url : geoserverUrl + "/rest/reload", beforeSened : function(xhr){ //지오서버 아이디, 비밀번호 xhr.setRequestHeader("Authorization", "Basic " + btoa("admin:geoserv..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb70PRs%2FbtqZ3fcJGDA%2FxmiCF4crDO4KKOpMdhagNk%2Fimg.png)
ie브라우저를 사용할 경우 웹 기능에서 제약이 많다. 그래서 특정 url로 이동했을때 브라우저를 감지해서 Edge 브라우저를 열 필요가 있었다. 일단 Edge브라우저는 window 기본 브라우저기 때문에 javascript에서 지원을 해주는 것 같다. 웬만하면 크롬으로 열고 싶었었는데 기능을 찾지 못했다. 일단 여는 방법은 간단하다. if (navigator.userAgent.indexOf('Trident') > 0) { window.location = 'microsoft-edge:' + 'http:naver.com' setTimeout(function () { window.open('', '_self').close() }, 1) } Edge의 하위버전은 ie브라우저라 다를 게 별로 없다. var uti..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmAjvi%2FbtqZ0sjN1tX%2FzTe7mJLODB69eI1LkvGExK%2Fimg.png)
웹페이지를 개발하면서 select box의 리스트가 많을경우 검색이 힘든 경우가 많다. 그럴때 select2기능을 사용하면 편하다. select2 기능을 사용하기 위해선 js랑 css가 필요하다. [Import] [설정] 위와 같은 이미지의 selectbox를 설정할 수 있다. 물론 검색도 가능하다. 원하는 selectbox를 객체를 잡아서 사용법 : $("#아이디").select2(); 이런식으로 선언해주면 된다. 또는 select box의 oncheange 이벤트가 필요할 경우 $("#아이디").on('select2:select', function(e){ console.(e) /// 이벤트 객체를 잡을 수 있다.여기서 처리해주면 된다. } [옵션] $("#아이디").select2({ maximumSe..
Dbeaver라는 db툴을 이용해 postgresql function을 만들 수 있다. function을 만드는 이유는 긴 sql문을 간편하게 실행할 수 있는 장점이 있다. CREATE OR REPLACE FUNCTION 함수명 () RETURNS integer LANGUAGE plpgsql AS $function$ declare r record; --> 1.함수명과 파라미트. 리턴값을 정의해준다. BEGIN for r in select 컬럼명 from 테이블 loop --> 2. for문을 돌릴 테이블을 정의한다. INSERT INTO VALUES ON CONFLICT (충돌id) DO UPDATE SET 컬럼명 = r.컬럼명 end loop; return 1; --> 3. 원하는 sql문을 작성한다...
mybatis에서 vo에 선언된 list를 파라미터로 받을 수 있다. 일단 vo에서 list컬럼을 선언해두어야한다. -VO- private List list; 리스트로 선언해둔다. -XML and id in #{arr} 리스트 컬럼에 if조건을 두고 조건이 성립할 경우 foreach문을 실행한다. foreach문 옵션들- 구분 설명 collection 전달받은 인자값 item 전달받은 인자값을 다른이름으로 대체 open 해당 구문이 시작할 때 close 해당 구문이 끝날 때 index 항목의 인덱스 값을 꺼낼 때 사용할 변수 이름을 지정 separator 구분자. 한번 이상 반복할 때 반복되는 사이에 해당 문을 넣어줌
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9UHC3%2FbtqR9nwI6WF%2FZ97Vqs80jk7A57B8yZ6NC0%2Fimg.png)
프로젝트 업무중 Roadview를 구현해야하는 기능이있다. 나는 kakao roadview를 이용하였다. 우선 apis.map.kakao.com/ 에 접속하여 app key 발급을 하여야 한다. 어플리케이션을 추가 후 알맞게 적어주면 된다. 추가한 어플리케이션을 클릭 후 좌측 플랫폼 메뉴에 서비스를 이용할 도메인을 입력해 주어야한다. 10개까지 도메인이 이용가능하다고 한다. apis.map.kakao.com/web/sample/roadviewWithMapButton/ 에 들어가서 javascript+html 탭에 있는 코드를 복사 후 key정보만 수정해주면 된다. *유의사항 kakaomap api는 kakao 자체의 맵 객체를 이용하여 구현이된 코드이다. 그렇기 때문에 openlayer를 이용하여 배경지..
프로젝트를 하던 중 rgb컬럼을 데이터의 양만큼 만들일이 있었다. 랜덤색상일 경우 랜덤함수를 돌려 rgb컬러를 생성하면 되지만 예를 들어 빨강색부터 파랑색까지 100개의 rgb컬러를 그라데이션으로 만들고 싶을땐 함수를 이용해야 한다. 동기가 검색하다 알려준 사이트에서 디버깅을 통해 함수를 뽑아냈다. 출처 : https://htmlcolors.com/color-mixer Color Mixer | Html Colors htmlcolors.com 이 사이트는 색상 두개를 선택해 step을 정하면 원하는 그라데이션 rgb를 웹에서 표현해준다. 나는 여기있는 사이트를 디버깅 하여 함수를 뽑아내봤다. interpolateHSL 이 녀석 함수를 사용하면 된다. 나머지 함수는 interpolateHSL안에 있는 함수들..