본문 바로가기

분류 전체보기487

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.
Windows 10에 IIS, PHP, Oracle 연동 설치하기 Windows 10 64bit 운영체체에 IIS를 설치하고, PHP 7.2.5를 설치하여 연동합니다. 여기에 PHP와 Oracle 데이터베이스를 연동하여 사용할 수 있도록 필요한 설치를 해봅니다. IIS의 설치는 "Windows 10에 IIS 설치하기" 글을 참조해서 설치해 주세요. PHP의 설치와 IIS와의 연동은 "Windows 10에 IIS 와 PHP 7 설치 및 연동하기" 글을 참조해서 설치해 주세요. 이제 PHP와 Oracle 을 연동해 보겠습니다. 1. 오라클 인스턴트 클라이언트 설치하기다음 URL에서 오라클 인스턴트 클라이언트를 다운로드 받아서 설치합니다. 오라클 계정이 있어야 합니다. 여기서는 Oracle 11g 를 사용합니다. http://www.oracle.com/technetwork/.. 2018. 8. 16.
IIS 요청 필터링(특정 파일 또는 폴더에 접근하지 못하게 설정하기) IIS를 사용할때 특정 파일이나 특정 폴더를 접근하지 못하게 설정하여야 할 경우가 있습니다. web.config 파일이나 Tomcat 과 연동을 했을때 WEB-INF 폴더 등 입니다. 이때 요청 필터링을 사용할 수 있습니다. 요청 필터링을 사용하기 위해서는 Windows 10 에서는 "윈도우즈 기능 켜기/끄기" 에서 요청 필터링을 체크합니다. Windows Server라면 "서버 역할 페이지 -> 웹 서버 (IIS) -> 웹 서버 -> 보안 -> 요청 필터링" 을 체크합니다. 사이트를 클릭하고 가운데 화면에서 "요청 필터링"을 더블 클릭하여 들어갑니다. 탭에서 숨겨진 세그먼트를 선택합니다. 이미 web.config 가 등록되어 있는것을 확인할 수 있습니다. 오른쪽 위의 "숨겨진 세그먼트 추가..."를 클.. 2018. 8. 14.
Java Generic사용법과 Generic에서의 와일드카드 Java의 Generic은 C, C++의 템플릿과 같은 기능 입니다. 하나의 코드를 다양한 데이터 타입에 대해 사용할 수 있도록 하는 편리한 기능 입니다. 자바에서는 1.5 버전에서 부터 사용할 수 있습니다. 자바에서도 자신만의 Generic 코드를 작성할 수 있지만, 여기서는 자바를 사용하면서 Generic이 가장 많이 사용되는 컬렉션 객체에 대해 알아보고, 좀 특수한 형태인 Generic에서의 와일드 카드에 대해서도 알아봅니다. Java SE 1.5 이전의 자바에서는 자료구조에 데이터를 저장할때 Object 타입으로 저장하였습니다. Object는 모든 객체의 최상위 객체이므로 모든 객체는 Object 타입으로 다룰 수 있습니다. 하지만 객체 자신만의 기능을 사용하기 위해서는 원래 객체로 캐스팅 되어야.. 2018. 8. 12.