본문 바로가기

프로그래밍458

HTML5 VIDEO 태그로 웹페이지에 동영상 넣기 HTML5에서 새로 나온 기능인 태그를 사용해서 웹 페이지에 동영상을 넣을 수 있습니다. 1. 호환성브라우저 호환성은 IE9 부터 태그를 지원합니다. 지원하는 동영상 포맷을 IE9 부터 .webm, .mp4 를 지원합니다. 2. 주요 속성- width : 동영상 너비- height : 동영상 높이- controls : 설정되면 소리 조절(volume), 동영상 탐색(seek), 일시 정지(pause)/재시작(resume)을 할 수 있는 컨트롤러를 제공합니다.- autoplay : 설정되면 페이지 로딩시 자동 실행됩니다.- oncontextmenu : false 를 반환하면 마우스 오른쪽 키로 띄우는 팝업 메뉴를 사용할 수 없게 됩니다.- src : 동영상을 지정합니다. 내부의 속성을 사용하여 여러개의 동.. 2018. 10. 10.
자바스크립트 RSA 암호화 라이브러리 JSEncrypt JSEncrypt는 브라우저에서 서버로 보낼 데이터를 암호화 하기 위해서 사용할 수 있는 자바스크립트 라이브러리로 RSA 방식으로 데이터를 암호화/복호화 할 수 있습니다. RSA는 비대칭형 암호화 알고리즘으로 브라우저에서 공개키로 암호화 해서 데이터를 서버로 보내면 서버에서는 개인키로 복호화 할 수 있습니다. JSEncrypt는 http://travistidwell.com/jsencrypt/ 에서 다운로드 할 수 있습니다. 이 사이트에 설명되어 있듯이 JSEncrypt는 http://www-cs-students.stanford.edu/~tjw/jsbn/ 에 있는 다양한 암호화 관련 라이브러리들의 래퍼로 하나의 파일에 필요한 라이브러리를 모두 포함하고 있고, 간편한 API를 제공합니다. 다운로드 받은 파일.. 2018. 10. 4.
CSS box-sizing 프로퍼티 사용법 HTML 요소들의 크기는 Box Model을 따릅니다. 모든 요소들은 사각형 박스 형태로 페이지내에서 자리를 차지하게 됩니다. 이때 상자(Box)는 컨텐츠 영역, 패딩, 보더, 마진의 영역으로 이루어지고 CSS 에서 width 는 컨텐츠 영역 만을 말합니다. 그러므로 실제로 요소가 차지하는 width는 컨텐츠 너비 + (패딩 x 2) + (보더 x 2) + (마진 x 2) 가 됩니다.(x2 는 좌, 우를 모두 포함하기 때문입니다.) Box Model에 대한 자세한 설명은 "CSS Box Model, Element Size, iframe Auto Resize"을 참고 하세요. CSS에서 요소의 너비(width)가 결정되는 방식을 변경할 수 있는 프로퍼티가 box-sizing 입니다. box-sizing 에.. 2018. 9. 30.
CSS에서 height: 100% 가 동작 하도록 설정하기 태그의 높이를 100%로 줘서 차지할 수 있는 전체 높이를 가지도록 하려고 합니다. 아래와 같이 스타일에 hieght: 100% 를 지정했지만 동작하지 않습니다. .panel-container { height: 100%; display: flex; flex-direction: row; border: 1px solid silver; overflow: hidden;} 너비나, 높이를 비율(%)로 주게 되면 그 엘리먼트를 포함하고 있는 부모 엘리먼트에 대해 상대적으로 길이가 정해 집니다. 부모 태그가 body 인데, body 는 기본적으로 높이값이 나오지 않습니다. 그러므로 해결 방법은 부모 태그에 높이를 주면 됩니다. html, body { margin: 0; height: 100%; overflow: hi.. 2018. 9. 27.
IIS 오류-다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스할 수 없습니다. 개발 테스트 용으로 Windows 10 에 IIS 서버를 셋팅하여 사용중입이니다. 새로운 테스트 사이트를 9000번 포트에 설정해서 사용중에 다음과 같은 오류가 발생하였습니다. "다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스할 수 없습니다.(예외가 발생한 HRESULT: 0x80070020)" 인터넷에서 에러 메세지를 검색해 본 결과 Microsoft의 support 사이트에서 관련 정보를 찾았습니다. https://support.microsoft.com/ko-kr/help/890015/you-receive-a-the-process-cannot-access-the-file-because-it-is-being-u 비슷한 증상이고, 이 경우는 80이나 443 포트가 사용중일때 발생한다고 합니다.. 2018. 9. 21.
Tomcat에서 jsessionid가 URL에 붙는것 비활성화 하기 Tomcat서버에서 스프링 프레임웍의 태그를 사용할 경우 최초 호출시 URL에 jsessionid 가 붙여지게 됩니다. 이것은 버그가 아니고 의도적으로 설계된 것입니다. 새 세션이 만들어지면 클라이언트가 쿠키를 지원하는지 여부를 서버가 알 수 없으므로 쿠키와 URL에 모두 jsessionid 가 만들어 집니다. 클라이언트가 두 번째 요청부터 세션 쿠키를 보내오면 URL에 jsessionid를 붙이지 않고, 쿠키가 없으면 계속 URL에 jsessionid 를 붙이게 됩니다. - 최초로 호출되는 index.jsp 파일 - 호출된 URL http://localhost:8080/sht_webapp/cmm/main/mainPage.do;jsessionid=1B7613A3D23C36061FD53EB9C81CBE2A.. 2018. 9. 19.
Jsoup 예제 - 그누보드 크롤링 Jsoup 을 사용해서 그누보드 게시물을 크롤링 해보는 예제를 알아보겠습니다. 게시물 본문과 본문에 포함된 이미지와 첨부파일을 다운로드하여 파일로 저장해 봅니다. Jsoup의 기본적인 사용법은 "jsoup : 자바 HTML 파서(Java HTML Parser)" 을 참조하세요. 테스트용 글이 작성되어 있는 URL 입니다. 본문에 포함된 이미지는 SmartEditor를 사용해서 업로드된 것입니다. http://localhost:8080/bbs/board.php?bo_table=free&wr_id=1 1. 로그인 하기 공개된 글이 아닐 경우 로그인이 필요할 수 있습니다. 계정이 있으면 아래 코드로 로그인할 수 있습니다. // 로그인 합니다.Connection.Response res = Jsoup.connec.. 2018. 9. 9.
Windows 10 작업 스케줄러로 PHP 스크립트 주기적으로 실행하기 Windows 10에서 작업 스케줄러를 사용해서 PHP 스크립트를 주기적으로 실행시키는 방법을 보겠습니다. 꼭 PHP 스크립트가 아니더라도 batch 파일이나 실행 가능한 프로그램은 작업 스케줄러로 주기적으로 실행할 수 있습니다. 테스트에 필요한 스크립트를 만듭니다. 이 글에서는 D:/echo_date.php 파일로 만들었습니다. 실행될때마다 D:/datefile.txt 파일에 일자와 시간을 기록합니다. "시작버튼 -> Windows 관리도구 -> 작업 스케줄러" 를 실행합니다. 작업 스케줄러 화면에서 "기본 작업 만들기..."를 클릭합니다. "기본 작업 만들기" 화면에서 작업의 이름과 설명을 입력합니다. 여기서는 "PHP 테스트" 라고 입력했습니다. "트리거" 화면에서 매일에 체크합니다. 자신이 실행시.. 2018. 9. 5.
드래그해서 순서를 바꿀 수 있는 리스트 만들기(jQuery UI - Sortable) 순서가 있는 리스트에서 드래그 앤 드랍을 이용해서 아이템의 순서를 바꿀 수 있는 UI(사용자 인터페이스)가 jQuery UI에서 지원이 됩니다. Sortable 기능을 사용하면 원하는 기능을 구현할 수 있습니다. jQuery UI 사이트의 예제에는 기존에 존재하는 리스트 항목을 드래그 앤 드랍으로 순서를 바꿀 수 있는 예제만 나옵니다. 이 글에서는 순서를 바꾸는것 외에 아이템을 추가하고, 삭제하는 기능까지 구현해 보겠습니다. 첫 번째 예제는 Sortable의 기본 기능을 확인해보고, 두 번째 예제에서는 추가, 삭제 기능도 포함된 예제를 보도록 하겠습니다. 1. 필요한 js 라이브러리들 불러오기 jQuery 라이브러리, jQuery UI 라이브러리와 스타일 시트가 필요합니다. 예제에서는 외부 라이브러리를 .. 2018. 8. 31.
IIS 웹서버에서 기본 페이지와 오류 페이지 설정하기 웹 서버에 http://pentode.tistory.com 처럼 특정 페이지를 지정하지 않고 도메인이나 디렉토리만을 지정하면 기본적으로 보여질 페이지를 지정할 수 있습니다. 보통 index.html, index.php, index.jsp, defaults.asp 등을 지정합니다. 하지만 다른 이름을 지정해도 상관이 없습니다. 오류 페이지는 페이지를 찾을 수 없거나, 프로그램 오류가 발생하였거나, 권한이 없거나 할 경우에 보여지는 페이지 입니다. 대부분의 웹서버의 기본 페이지는 너무 상세한 정보를 알려주므로 보안상 사용하지 않습니다. 오류 페이지를 직접 만들어서 사용하는 방법을 알아 봅니다. 1. 기본 페이지 설정하기 1.1. IIS 관리자에서 사이트를 선택하고 Feature View에서 "기본 문서"를 .. 2018. 8. 28.
IIS에서 URL Rewrite를 사용해서 HTTP요청을 HTTPS로 리다이렉트하기 이 글은 Windows 10의 IIS에서 테스트 되었습니다. URL 재작성을 사용하기 위해서는 웹 플랫폼 인스톨러를 통해서 URL 재작성 기능을 설치해야 합니다. 웹 플랫폼 인스톨러가 설치되어 일지 않다면 "Web Platform Installer" 에서 다운로드하여 설치합니다. 웹 플랫폼 인스톨러에서 URL 재작성 기능을 검색하여 설치합니다. IIS 관리자에서 웹사이트를 선택하고 가운데 화면에서 "URL 재작성"을 더블 클릭합니다. 오른쪽 화면에서 "규칙 추가..."를 클릭합니다. 인바운드 규칙의 "빈 규칙" 을 선택하고 "확인" 버튼을 누릅니다.(빈 규칙을 더블 클릭해도 됩니다.) 인바운드 규칙 편집 상단의 이름과 URL 검색에 다음과 같이 입력합니다. * 이름 : Redirect to HTTPS *.. 2018. 8. 27.
@SessionAttributes와 SessionStatus 사용하기(세션에 모델 객체 저장) 스프링프레임워크에서 @ModelAttribute또는 model.addAttribute()를 사용해서 프레젠테이션 계층으로 객체를 보낼 수 있습니다. 이때는 request scope에 객체가 저장 되므로 요청시에만 객체가 사용되어 집니다. @RequestMapping(value = "/sawon_list.do", method = RequestMethod.GET)public String sawonList(Model model) throws Exception { model.addAttribute("list", sawonService.selectSawonList()); return "sawon_list";} @RequestMapping(value = "/sawon_regform.do", method = Requ.. 2018. 8. 26.
CentOS 7에서 mod_jk사용하여 Apache 2.4 와 Tomcat 연동하기 CentOS 7에서 mod_jk 모듈을 이용하여 Apache 2.4와 Tomcat을 연동해 봅니다. Apache 웹서버와 Tomcat은 미리 설치되어 있다고 가정합니다. 참고로 Apache와 Tomcat을 연동하는 방법으로는 mod_proxy_ajp 를 사용하는 방법도 있습니다. 1. 시스템 확인Apache 버전에 맞는 Tomcat Connector(mod_jk)의 소스 또는 바이너리를 구할때 필요한 정보들 입니다. - 소스를 다운로드 합니다.# wget -c http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.43-src.tar.gz LoadModule jk_module modules/mod_jk.so .. 2018. 8. 23.
ORA-01461 Long 열에 입력할때만 Long 값을 바인딩 할 수 있다. Oracle 데이터베이스 입력 쿼리에서 "ORA-01461: can bind a LONG value only for insert into a LONG column" 에러가 발생하였습니다. 테이블에 Long 타입의 열은 없었습니다. 원인은 VARCHAR2(4000) 열에 열의 크기를 초과하는 값을 넣어려고 해서 발생한 것이었습니다. 해결 방법은 더 큰 데이터를 입력해야 하므로 CLOB 타입으로 변경하여 처리했습니다. 오라클에서 VARCHAR2 타입의 컬럼을 CLOB 타입으로 바꾸는 방법은 "Oracle에서 VARCHAR2 컬럼을 CLOB으로 변경하기"을 참조하세요. 그외에 발생가능한 상황으로는 PL/SQL 에서 함수에 4,000바이트 이상의 값을 가진 변수를 사용하려고 할 경우입니다. CREATE TABL.. 2018. 8. 21.
자바(Java)로 파일의 마임 타입(MIME Type) 확인하기 파일 다운로드를 구현할때 파일에 직접 링크를 하지 않고, 프로그램을 사용해서 웹루트 밖의 저장소에서 파일을 읽어서 브라우저로 보내야 하는 경우가 많이 있습니다. 이때 파일의 마임 타입(MIME Type)을 지정해줄 필요가 있습니다. Java언어로 파일의 마임 타입을 알아내는 방법을 알아 봅니다. 1. Files 객체의 probeContentType() 메소드를 사용하는 방법Java 7 부터 지원합니다. 이 메소드는 마임타입을 확인하지 못하면 null을 반환합니다. package com.tistory.offbyone; import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths.. 2018. 8. 21.