본문 바로가기

Server Oriented

(184)
리눅스 명령어, 간혹 사용하는 find find /var -type f -exec du -s {} \; | sort -k1n | tail -1 - 특정 파일을 찾아서 삭제. 삭제 명령 은 명령을 실행하기 전에 다시 확인하는 작업 필수. 백업을 하거나 mv 로 이름만 바꾸었다가 경과를 지켜보고 실제로 삭제하는 과정을 거치는 것이 필요 find . -name "photothumb.db" -exec rm {} \; . 현재 디렉토리를 작업 root 로 삼으라는 것. /data/data2 이런식으로도 가능 "photothumb.db" 찾을 파일명 와일드문자를 넣을 수 있다. Thumbs.db -exec 리눅스 명령어를 실행하라는 것 rm 파일 삭제하는 리눅스 명령어 {} \; find 로 찾아진 파일명을 -exec 에 던저주는 것 - 특정 사이즈 이..
JSP 파라미터 암호화에 대한 생각 요즘 통신 선로가 보안성이 있다 없다, 특히 Wi-Fi 에 대해서들 말들이 많더군요. 그리고, 망에 흐르는 데이타 자체를 암호화 해야 한다고 SSL 등을 사용하기도 하죠. 그런데, 한가지 조금 난감한 점이 있습니다. "...jsp?param1=암호화데이타1&param2=암호화데이타2&param3=암호화데이타3" 이렇게 쓰기도 하구요. 그런데, 여기서 생각을 해 보았습니다. 파라미터 구분도 암호화 대상이어야 하지 않느냐는 것이죠. "param1=비암호화데이타1&param2=비암호화데이타2&param3=비암호화데이타3" 데이타 자체를 암호화 하는 것이죠. 그래서 "...jsp?param=여러파라미터를암호화한데이타" 이렇게 만드는 겁니다. 이를 처리하는 .jsp 에서 param 하나만 받아서 전체 데이타를 복..
onkeypress 이벤트 event.keyCode 를 이용하여 입력란에 Enter 엔터 입력시 검색하기 jQuery 로, 모든 엔터 입력시 무시하게 하는 코드 $(document).ready(function(){ $(document).keypress(function(e){ if(e.keyCode==13) return false; }); }); 이거 골치 많이 아파요, 의외로.. o onSubmit 이 안 되게 하려면, input 태그에서 type 을 image 나 submit 을 쓰지 말아야 한다는 것... 또는 form 태그의 onsubmit 에 return false 라 하면 된당. o Enter 엔터가 먹게 하려면, form 태그 옵션에 onSubmit 을 사용. 아니면, 검색 이미지를 img 가 아니라 input 으로 사용. input 타입을 button 으로 하면 엔터가 먹지 않음.
Ajax 와 jQuery UI 를 십분 활용할때 목록과 상세화면에 보여줄 내용 *. 정보처리 방법론 - indexCommon.jsp ACL 과 기타 공통 코드를 관리. 전체에 정적 포함. - index.jsp ACL 만 체크하고 전체 프레임 관리 - indexJs.jsp 변경이 거의 없는 경우에는 index.js 를 사용하겠지만, 자주 변동될 것이기에 캐시를 고려하여 .jsp 로 작업 - indexList.jsp Ajax 로 불려지는 목록. 목록을 Excel 에 담기도 편하당 - indexView.jsp Ajax 와 jQuery UI 의 Popup 으로 처리. 조회/수정/등록 모두 담을 수 있다. CSS 와 jQuery 를 잘 활용. 상기와 같이 개발된다 했을때.. 목록에는, 최초 등록일시(분초는 고려), 등록자 이름(부서나 직책은 고려), 제목(본문 내용 일부는 고려) 등을 표시..
ACL 이 적용된 내용인 경우 상세화면 조회시에도 반드시 ACL 체크 예를들어, 게시 여부가 존재하는 게시물인 경우.. 목록에서는 게시 여부를 체크하면서, 상세에서는 게시 여부를 체크하지 않기도 하는데.. 사실 목록에서 체크했다면 상세에서도 체크하는 것이 정석. 누군가 해당 게시물의 상세화면 코드를 알고 있다면, 목록을 거치지 않고 상세화면을 볼 수 있기 때문. 게시 여부뿐만 아니라, 만약 카테고리로 운영된다면 카테고리도 ACL 에 넣어야 합니다. 그렇지 않으면, 다른 권한의 화면에서 해당 내용을 조회할 수 있거든요. 사용자 화면인 경우에는, DB 쿼리에 해당 로직을 넣고.. 관리자 화면인 경우에는, JSP 나 JAVA 로직에서 체크.
UTL_HTTP 패키지를 사용하여 오라클 DB 에서 URI 호출하는 DB 프로시저 생성 혹시 10g 나 9i 에선 잘 되던 것이 11g 로 바뀌고 난 다음에 작동하지 않는다면 아래 링크를 클릭해 보세요.11g 부터는 utl_http 에 대한 접근권한을 설정해야 작동합니다 이곳에서는 단순히 URI 를 호출하는 방식을 기술합니다. Response 에 담아와서 추가적인 작업을 할 수도 있습니다. DB 프로시저에 .jsp 를 일단 등록했으니, DB Job 에 등록하면 매번 자동으로 돌아가게 할 수가 있습니다. Java 로 만들어서 Crontab 에 돌리는 것과 같은 효과입니다. CREATE OR REPLACE PROCEDURE SP_A IS REQ UTL_HTTP.REQ; RESP UTL_HTTP.RESP; BEGIN UTL_HTTP.SET_TRANSFER_TIMEOUT(5); -- 5초 이상 걸..
일정 주기로 실행되는 .java 를 크론탭에 등록 실행되는 .java 에는 public static void main(String[] args) 메소드가 정의되어야 합니다. 다른 package 의 class 메소드를 실행하려면 main 메소드 안에 해당 코드를 등록합니다. package com.sn.app; public class DelayedAppMng { public static void main(String[] args) throws Exception { AppInfo info = new AppInfo(); info.setCnt1(-6); info.setCnt2(2); AppMng appMng = new AppMng(); appMng.doDelayedAppsNotify(info); } } 그런데, DB 를 작업하는 등 다른 외부 라이브러리를 사용할..
Generic Type Cast 방법 @SuppressWarnings("unchecked") List list = (List)request.getAttribute("list"); for (int i=0; i < list.size(); i++){/* JDK1.5 이상에선 이런 방식이 아니지 참.. ㅋㅋ */ BoardVo row = list.get(i); //BoardVo row = (BoardVo)list.get(i); /* JDK1.4.x 까지는 이렇게 했어야 했다.. */ ... } ... ... List va = new List(); ...