본문 바로가기

2018/04/1726

Tomcat 필터 맵핑 제외하기 - Url Rewrite Filter 이용 Tomcat의 web.xml 파일에서 필터 맵핑 부분을 보면 아래와 같은 형태가 됩니다. TestFilter /* 이렇게 필터에 맵핑되는 URL중에 특정 URL을 필터에서 제외하기 위한 방법을 찾아 보았습니다. 하지만 필터 맵핑에서 URL을 제외하는 방법을 없다는 것을 알게 되었습니다. 필터를 직접 만들었다면 필터내에서 호출된 URL이 특정 URL일 경우 다른 방식의 처리를 하도록 코딩을 할 수 있겠지만, 소스가 없는 필터라는 처리가 힘들것 입니다. 그래서 찾은 것이 URL Rewrite Filter 입니다. 이 필터는 특정 URL에 대한 요청을 다른 곳으로 redirect 또는 forward 할 수 있습니다. 이 필터를 사용함에 있어서 유의할 점은 필터의 적용 순서 입니다. Rewrite 필터가 다른 .. 2018. 4. 17.
아이폰 음악앱 전체반복 재생, 한곡반복 재생 설정하기 아이폰에 기본으로 있는 음악앱을 사용해 본지가 꽤 오래되었는데, 이번에 애플 뮤직을 가입하게 되어서 기본 음악앱을 주로 사용하게 되었습니다. 그런데 음악 플레이 순서가 임의 순서이고 재생목록이 한번만 재생되고 멈추는 것입니다. 전체반복하는 설정이 전에는 재생중인 곡을 탭하고 들어가면 있었던걸로 기억하는데, 들어가봐도 없었습니다. 너무 답답하던 차에 우연히 설정하는 곳을 찾게 되었습니다. 그 순간 아~ 아이폰이 원래 이런 것이었지 하는 생각이 들었습니다. 아이폰을 3년 넘게 쓰고 있지만 아직도 모르는게 많은것 같습니다. 음악앱에서 재생목록 전체반복, 한곡반복, 임의재생을 설정하는 방법 입니다. 1. 음악앱을 실행해서 곡이 플레이 되고 있는 상태 입니다. 혹은 플레이 되고 있는 음악앱이 백그라운드로 실행되고.. 2018. 4. 17.
Tomcat HTTP 메소드 제한하기 HTTP 규약에 따라 웹서버들은 GET, POST, HEAD, PUT, OPTIONS, DELETE, TRACE의 7개 메소드를 제공합니다. 요즘은 이러한 메소드들은 보안 취약점이 생길 수 있으므로 GET과 POST를 제외한 나머지 메소드들을 비활성화합니다. Tomcat에서 GET과 POST 를 제외한 메소드들을 비활성화 하는 방법을 알아보겠습니다. web.xml에 항목을 추가 합니다. url-pattern 이 /* 이므로 모든 요청에 대해 아래에 나열에 메소드들을 비활성화 합니다. Restricted methods /* PUT DELETE OPTIONS TRACE 실제로 이러한 메소드들이 동작을 하는지 알아보는 방법으로는 명령창에서 telnet 명령으로 직접 호출해보는 방법이 있습니다. - 명령창에서 .. 2018. 4. 17.
자바스크립트 정규식 객체와 자주 쓰이는 함수 자바스크립트에서 정규식을 사용하는 방법은 String 객체의 메소드를 사용하는 방법과 정규식 객체 RegExp 를 사용하는 방법이 있습니다. 자주 사용하는 몇가지를 알아 보도록 하겠습니다. 정규식을 다음과 같은 문법을 가집니다. /pattern/flags; flags 로는 다음 세 가지가 있습니다. - g : 일치하는 첫 번째 문자에서 멈추지 않고 전체에서 일치하는 모든 문자를 검색합니다. - m : 시작 혹은 끝 문자 탐색(^ and $)이 행마다 적용되도록 합니다 - i : 대소문자를 구분하지 않고 매칭합니다. var str = "abc\nABC abc"; // 전체의 시작을 검색합니다. var patt = /^abc/gi; var result = str.match(patt); console.log(.. 2018. 4. 17.
아이폰 애플 뮤직 3개월 무료체험 가입하기 애플 뮤직이 서비스를 시작한지 좀 되었는데요. 아직은 서비스되는 음악이 많지는 않다는 의견이 대부분인것 같습니다. 일단 3개월 무료 체험이 가능하니 한번 써볼까 합니다. 마음에 안 들면 3개월 전에 해지 하면 되겠습니다. 3개월 무료 체험후에는 자동으로 유료 결제가 되는데, 개인 사용은 월 7.99달러이고, 가족(최대 6명) 사용원 월 11.99달러 입니다. 개인사용의 경우 현재 환율로 9,031.10원 이네요. 데이터가 얼마 안되어 음악은 Wifi로 다운로드 받아서 오프라인으로 들으려고 합니다. 가입방법 입니다. 1. 뮤직앱을 실행해서 하단의 보관함 외에 다른 항목을 선택합니다. 여기서는 For You를 선택했습니다. 상단의 "3개월 무료 체험하기"를 탭합니다. 무료 체험하기 화면에서 "지금 시작하기".. 2018. 4. 17.
자바스크립트 쿠키 - jQuery Cookie Plugin Cookie는 웹 브라우저에 데이터를 저장할 수 있는 방법중에 하나 입니다. 서버 측에서 Set-Cookie 헤더 정보를 설정하여 클라이언트로 보내면 브라우저는 이 값을 저장하고 있다가 다음 요청부터 계속 서버로 보내게 됩니다. 웹 프로그래명 초기에는 세션 유지를 이 쿠키를 사용해서 했었습니다. 요즘에는 클라이언트 측에 자료를 두는 것이 보안문제가 발생할 수 있으므로 세션 데이터를 서버측 세션 객체에 저장하고, 이 세션 객체를 찾기 위한 세션 키만을 쿠키를 사용해서 전달을 하는 방식으로 바꼈습니다. 이제는 세션정보는 쿠키를 사용하여 저장하지 않습니다. 보통 쿠키는 서버측에서 set-cookie 헤더를 사용하여 부여하지만, 클라이언트 쪽에서 자바스크립트를 사용해서 쿠키를 다루는 것도 가능합니다. 가장 많이.. 2018. 4. 17.
아이폰 만료된 신용카드 정보 변경하기 신용카드 유효기간이 만료되어 재발급 받은 후 아이폰에 등록해 둔 신용카드 정보를 변경하지 않고 결제 하려다 오류가 발생했습니다. 아이폰에 등록된 신용카드 정보를 변경하는 방법을 알아보겠습니다. iOS 10.3.3 입니다. 1. 설정 아이콘을 터치하여 설정으로 들어갑니다. 2. 설정 상단의 Apple ID 부분을 클릭하여 들어가면 "Apple ID" 화면에서 결제 및 배송을 누릅니다. 3. 지불 및 배송 화면에서 만료된 카드를 클릭하여 들어가서 카드 정보를 수정합니다. 4. 저장하고 빠져나오면 1달러 테스트 결제된 내용을 신용카드 결제 알림 문자로 날아 옵니다. 이것으로 카드 정보가 변경되었습니다. 2018. 4. 17.
자바스크립트의 trim() 함수 사용하기 문자열 좌우에서 공백을 제거하는 함수가 trim() 함수 입니다. 대부분의 언어에서 기본 제공하고 있고, 좌/우 측만 trim 하는 함수를 제공하기도 합니다. 자바스크립트에서도 사용할 일이 자주 있는 편인데, IE8 이하에서는 제공되지 않습니다. 사이트가 IE 8 도 지원해야 한다면 보통 많이 사용하는 방법이 IE 조건부 주석을 사용해서 IE 8이하일때 String 객체의 prototype 에 trim() 함수를 추가하여 IE 8이하에서도 IE 9이상과 동일하게 사용할 수 있도록 지원하는 것입니다. 다른 방법은 jQuery를 사용한다면 jQuery의 $.trim(); 메소드를 사용하여 처리하는 방법입니다. 다음은 각각의 방법을 적용해본 예제입니다. TRIM 결과) :test: :test: :test : .. 2018. 4. 17.
PHP 마이그레이션시 자주 나오는 DEPRECATED 함수 대체하기 PHP로 만들어진 오래된 홈페이지에 PHP 버전을 올릴 경우 여러가지 문제가 발생할 수 있습니다. 파라미터를 변수에 자동으로 할당하는 register_globals 옵션 문제, 2018. 4. 17.
Microsoft Webmatrix 설치하기 Webmatrix는 마이크로소프트에서 만든 웹 개발툴로 .NET, PHP 등으로 개발된 오픈소스 애플리케이션을 쉽게 설치하여 사용할 수 있도록 되어 있습니다. Webmatrix를 설치하고, 간단한 PHP 웹 애플리케이션을 만드는 환경을 테스트해보겠습니다. Webmatrix의 설치는 Microsoft Web Platform Installer 5.0를 통해서 하게 됩니다. 그러므로 먼저 웹 플랫폼 인스톨러를 설치합니다. 1. 다음 URL에서 다운로드 받습니다. https://www.microsoft.com/web/downloads/platform.aspx "Free Download" 버튼을 눌러 wpilauncher.exe 파일을 다운로드 받습니다. 2. 다운로드 받은 파일을 더블클릭하여 실행합니다. 설치가.. 2018. 4. 17.
이클립스 local histroy 사용법 및 저장위치 이클립스에서 파일을 수정해서 저장할 때마다 이전 내용의 복사본이 로컬 히스토리에 저장되어 집니다. 이 저장된 이전 기록은 언제든지 현재의 내용과 비교하거나 교체할 수 있습니다. git, svn 같은 코드 저장소를 사용하고 있다면 거기에 더 좋은 기능이 있겠지만, 코드 저장소를 사용하지 않아도 로컬 히스토리를 이용하면 실수로 변경하거나 삭제하였을때 도움이 됩니다. 로컬 히스토리 사용법에 대해 알아보겠습니다. 1. 변경사항 비교하기 좌측 파일 트리에서 비교할 파일에 마우스 오른쪽키를 누르고, Compare With -> Local History... 를 선택합니다. History 탭이 열리고 저장했던 날짜와 시간의 히스토리가 보여집니다.(이미지에서는 History 탭이 우측에 보이지만, 기본설정에서는 에디터.. 2018. 4. 17.
루프 도중 안전하게 삭제하기 데이터를 ArrayList에 담아서 작업 도중 유효성 검사 등을 통해서 조건에 맞지 않는것을 삭제하려고 합니다. 루프(loop)를 돌면서 유효성을 체크해서 삭제를 하는데, 일반적인 for 루프를 사용하면 예외가 발생하거나 원하는 결과를 얻지 못할 수 있습니다. 삭제를 해버리면 내부적으로 루핑을 돌기 위해 사용하는 list의 크기와 처리해야할 항목을 가리키는 인덱스의 불일치 때문에 에러 또는 논리적인 오류가 발생합니다. List list = new ArrayList(); list.add("apple"); list.add("banana"); list.add("melon"); for(String str : list) { if("melon".equals(str)) { list.remove(str); } } Sy.. 2018. 4. 17.
Windows 10 가상 데스크탑 단축키 Windows 10의 가상 데스크탑(Virtual Desktop)은 윈도우 바탕 화면을 여러개 만들어서 전환해 가면서 사용할 수 있는 기능입니다. 모니터가 하나밖에 없다면 하나의 가상 데스크탑에는 Eclipse를 띄워두고 또 다른 가상 데스크탑을 만들어서 웹 브라우저를 띄워 화면을 전환 하면서 쓰면 아쉽게나마 듀얼 모니터 비슷하게 사용할 수 있습니다. 듀얼 모니터를 사용할 때에는 각각의 가상 데스크탑이 듀얼 모니터를 가지고 있는 것처럼 됩니다. 가상 데스크탑을 사용하는 단축키는 다음과 같습니다. 모든 가상 데스크톱보기 : Windows Key + Tab 새 가상 데스크톱 만들기 : Windows Key + Ctrl + D 현재 가상 데스크톱 닫기 : Windows Key + Ctrl + F4 다음 가상 .. 2018. 4. 17.
Windows 10 왼손잡이 마우스/키보드 설정 오른손잡이인데 통증 때문에 오른손 검지로 마우스 클릭이 힘들어져서 트랙볼을 사용한지 수년이 되었습니다. 얼마전부터 오른쪽 어깨 통증이 심해져서 트랙볼을 왼손으로 옮겨서 사용하고 있습니다. 왼손잡이용 키보드를 구해보려고 했지만 구하기가 쉽지 않았습니다. 예전에 국내에서 제조하는 회사가 하나 있었던것 같은데, 단종이 되었더군요. 그러다 알아보니 Windows 에 왼손잡이용 단축키가 있었습니다. 1. 마우스를 왼손잡이용으로 설정하기 마우스는 간단히 기본클릭을 오른쪽 버튼으로 설정하면 왼손으로 사용할 수 있습니다. i) "Windows 설정" 화면에서 장치(Bluetooth, 프린터, 마우스) 를 선택합니다. ii) 왼쪽 메뉴에서 "마우스"를 선택합니다. iii) 상단의 "기본 단추 선택" 셀렉트 박스에서 "오.. 2018. 4. 17.
스프링프레임웍 - 메일 발송하기 스프링프레임웍의 JavaMailSenderImpl을 이용해서 메일을 발송하는 방법에 대해 알아 보겠습니다. 메일을 발송하려면 메일을 발송해주는 메일 서버(SMTP Server)가 있어야 합니다. 메일 서버를 통해 메일을 보낼때 서버에 접속하는 방법은 보통 두 가지가 있습니다. 첫 번째는 서버가 릴레이를 허용하는 경우 입니다. 메일 서버가 릴레이를 허용하는 경우 그 메일 서버에 계정이 없더라도 메일을 발송할 수 있습니다. 이렇게 릴레이를 허용하는 경우 타인에 의해 스팸 메일을 보내는데 악용이 될 수 있으므로 특정 IP에서만 릴레이가 되도록 하는게 일반적입니다. 두 번째는 메일 서버에 계정이 있어서 아이디와 비밀번호로 인증후 메일을 보내는 방법 입니다. 요즘은 두 번째가 가장 일반적인 방법일 것입니다. 1... 2018. 4. 17.