본문 바로가기

전체 글487

자바스크립트의 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.
Stack Trace 바로 확인할 수 있는 개발용 에러 페이지 만들기 자바로 웹 개발시 에러가 발생하면 서버나 브라우저의 에러 페이지가 아니라 커스텀 에러페이지를 보여주도록 설정을 합니다. 이 설정은 web.xml 파일에서 아래와 같이 해 줄 수 있습니다. 500 /WEB-INF/views/error.jsp 보안 때문에 모든 에러에 동일한 에러페이지를 설정하기도 하고, 에러코드 별로 다른 에러페이지를 설정하기도 합니다. 실제 에러페이지의 내용은 보안 목적상 에러 내용을 통해서 서버 정보를 취득하지 못하도록 간단한 에러발생 알림만 보여주게 만듭니다. 디버깅에 필요한 정보들은 로그파일에 남기게 됩니다. 물론 로그 파일에도 디버깅을 위한 최소한의 정보만 남기고, 개인정보 등 민감한 정보가 남지 않도록 주의해야 합니다. 이번에 볼 내용은 개발용으로만 사용되어야 할 것으로, 에러 .. 2018. 4. 17.
스프링프레임웍 - Tomcat에서 POST/GET 데이터 인코딩 설정 Tomcat에서 스프링프레임웍을 사용할때 POST방식으로 데이터를 전송할 때와 GET 방식으로 데이터를 전송할때 인코딩 지정을 별도로 하여야 합니다. 1. POST 데이터의 인코딩은 web.xml 에서 필터를 사용해서 처리합니다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter *.do 위 설정에서는 필터 맵핑은 *.do 로 끝나는 모든 요청에 적용되어 집니다. 2. GET 방식의 데이터의 인코딩은 server.xml 파일의 Connector 설정에서 처리합니다. 웹 프로그래밍에서 전송되는 데이터의 인코딩 설정은 WAS에 따라 달라질 수 있습니다. 이 글에서는 Tomcat 에.. 2018. 4. 17.
CSS Box Model, Element Size, iframe Auto Resize 이번에 알아볼 것은 HTML 페이지를 디자인하고 레이아웃을 만들 때 엘리먼트가 화면에서 어떻게 공간을 차지하는지와 엘리먼트의 크기에 대해 알아봅니다. 그리고 추가적으로 자바스크립트에서 엘리먼트의 사이즈를 알아보는 방법과 iFrame을 사용하는 페이지가 로딩될때 iFrame이 포함하고 있는 컨텐츠에 따라 자동으로 크기를 조정하는 방법을 알아보겠습니다. 1. CSS Box Model 화면에 보여지는 모든 HTML 엘리먼트들은 사각형 박스 모양으로 공간을 차지합니다. 이것은 CSS에서는 Box Model(박스 모델)이라고 합니다. HTML 요소는 실제 컨텐츠를 패딩(Padding), 보더(Border), 마진(Margin)의 세가지 박스가 둘러싸고 있는 모양 입니다. 각각을 알아보면 다음과 같습니다. * Co.. 2018. 4. 17.
Maven 저장소와 의존성 관리 Maven은 빌드 툴이지만 라이브러리 의존성 관리 툴로 더 많이 사용되고 있는것 같습니다. 스프링 프레임웍이나 전자정부 표준 프레임웍을 사용하게 되면 프로젝트의 기본 빌드 설정을 그대로 사용해서 별로 문제가 되는게 없으므로 손댈 것이 별로 없었던것 같습니다. 대부분 필요한 라이브러리를 추가하거나 하기 위해서 저장소(repository)와 의존성(dependency) 부분만을 많이 사용하게 됩니다. 이 글에서는 저장소(repository)와 의존성(dependency)을 사용하는 부분에 대해서 알아보겠습니다. Maven은 단독으로 설치해서 사용할 수도 있습니다. http://maven.apache.org 에서 다운로드 받아서 설치하면 됩니다. 여기서는 직접 설치하지 않고, Eclipse에 기본으로 포함되어.. 2018. 4. 17.
sqldeveloper를 사용하여 export/import 하기 오라클 데이터베이스를 export/import 하기 위해서 Original Utility인 exp/imp 또는 10g 이후부터 새로 나온 Oracle Data Pump (expdp/impdp)를 주로 사용합니다. 하지만 스키마 만을 옮기거나 데이터가 작을 경우 sqldeveloper를 사용해서 간단하게 export/import 할 수 있습니다. sqldeveloper를 사용하여 export 하는 방법을 알아 보겠습니다. 이 글의 테스트는 Oracle 11g express editon과 SQL Developer 17.2를 사용하였고 샘플 데이터베이스는 전자정부 표준프레임워크 Portal Site 템플릿의 테이블을 사용하였습니다. 1. SQL Developer 메뉴에서 도구(T) -> 데이터베이스 익스포트(.. 2018. 4. 17.
전자정부 표준프레임워크 - dataSource (DBCP) 설정하기 전자정부 표준프레임워크의 템플릿 프로젝트를 설치하고 실행해보면 데이터베이스와의 연결풀을 설정하는 DataSource 설정에 Apache Common DBCP(Database Connection Pool)을 사용하고 있습니다. 대부분 개발후 운영환경에서는 WAS(Web Application Server)에서 제공하는 DataSource를 사용하도록 수정할 것이므로, 기본 설정을 그대로 사용하고 변경하는 일은 잘 없을 것입니다. 하지만 운영환경이 Tomcat 이라면 대부분 연결풀로 DBCP 를 사용하므로 설정 방법을 알아 두는 것도 나쁘지 않을 것입니다. 다음은 전자정부 표준프레임웍 Portal 사이트 템플릿 프로젝트의 DataSource 기본 설정입니다. 이 템플릿은 commons-dbcp 1.4 버전을 .. 2018. 4. 17.
새로운 Oracle export/import 유틸리티 - Oracle Data Pump(expdp/impdp) Oracle 10g 부터는 데이터의 백업과 복원을 위해서 기존에 사용되는 exp/imp툴을 대신할 Oracle Data Pump(expdp/impdp) 유틸리티가 제공되어 집니다. exp/imp 툴이 없어진것은 아닙니다. Oracle 11g 부터는 기존의 Original exp/imp툴에 대한 일반적인 사용지원이 되지 않는다고 합니다. Oracle Data Pump 유틸리티는 더욱 유연하고, 빠른 속도의 기존의 exp/imp를 대체할 유틸리티 라고 합니다. 기존의 exp/imp와의 차이점을 간단히 알아보겠습니다. 1. exp/imp는 덤프 파일을 유틸리티를 실행하는 컴퓨터에 생성합니다. expdp/impdp 는 덤프 파일이 데이터베이스 서버의 지정된 폴더에 생성됩니다. 즉, 덤프 파일을 받고 올리기 위해.. 2018. 4. 17.