본문 바로가기

2018/04/2111

Hibernate Bean Validator 사용하기(2) - 그룹과 커스텀 아노테이션 앞에서의 기본 사용법과 이어지는 내용으로 다음과 같은 내용을 알아보겠습니다. 예제의 전체 소스는 글의 끝에 첨부해 두었습니다. - 빈 객체가 멤버로 객체를 가지거나 컬렉션을 가질 경우 모두 검증하기 - 객체의 멤버들을 그룹을 지정하여 특정상황에 특정 멤버만 검증하기 - 커스텀 검증 아노테이션 만들기 1. 테스트용 폼 만들기(personForm.jsp) ... 주민번호 비밀번호 ... ... ... - 주민번호는 검증을 위한 커스텀 아노테이션을 만들어 봅니다. - 비밀번호는 그룹을 사용하여 특정 상황에서만 검증하도록 하여 봅니다. - relations[0] 으로 된 부분은 멤버로 객체 리스트를 가지는 부분으로 리스트 전체를 검증 합니다. - recommender 부분은 멤버로 가지는 하나의 객체의 멤버를 .. 2018. 4. 21.
Hibernate Bean Validator 사용하기(1) - 기본 사용법 폼에서 입력한 값을 클라이언트 측에서는 자바스크립트를 사용해서 유효성을 검증하고 서버측에서도 검증을 하여야 합니다. 서버측에서 폼에 입력된 값을 검정하는데 사용되어질 수 있는 Hibernate Bean Validator 를 사용하는 방법을 알아봅니다. 1. pom.xml 파일에 의존성을 추가합니다. org.hibernate.validator hibernate-validator 6.0.8.Final 2. 메세지 다국어 처리- 기본적인 다국어 설정은 "Spring Framework 메세지 국제화(다국어 지원) 사용하기"를 참조하세요.- root-context.xml 파일에 Validator가 messageSource를 사용하도록 설정합니다. - servlet-context.xml 파일에 Controller가.. 2018. 4. 21.
스프링프레임워크 에러페이지 만들기 프로그램 수행중에 예기치 못한 예외가 발생하면 에러페이지를 보여주게 됩니다. WAS 의 기본 에러페이지는 대부분 코드중의 예외 라인과 상세한 스택 추적 정보를 보여주게 되므로 운영 환경에서는 보안상 문제가 됩니다. 그러므로 대부분 자체적인 에러 페이지를 제작하여 보여주게 됩니다. 여기서는 서블릿에서 기본적으로 제공하는 에러페이지 설정과 스프링 프레임워크에서 지원하는 에러페이지 설정부분을 알아 봅니다. I. web.xml 에서 에러페이지 설정하기 소스파일명과 Exception 이 발생한 라인번호, 예외 메세지, 스택 추적 정보가 보여집니다. 개발시에는 유용하지만 운영시에는 보안상 문제가 됩니다. 1. Tomcat에서 에러페이지 설정이 없을 경우 2. web.xml 파일에 에러페이지 설정하기 예외 타입별로,.. 2018. 4. 21.
PHP 파일 업로드와 다운로드 만들기 PHP 에서 간단히 파일 업로드와 다운로드를 구현해 봅니다. 파일 업로드 할때는 파일명 중복 방지와 파일명을 추측해서 다운로드 하는 것을 방지하기 위해 랜덤하게 파일명을 만들어서 서버에 저장합니다. 보안을 위해서는 파일 업로드 위치를 웹루트 밖에 하는것이 좋습니다. 파일 정보를 데이터베이스에 저장할 때도 파일을 구분할 파일 아이디를 예측 가능하지 않게 만들어서 다운로드시 사용합니다. 보안을 위해서는 다운로드 프로그램에 권한이 적용되면 더 좋습니다. 전체 예제 파일은 글 하단에 첨부하여 두었습니다. 1. 파일정보를 저장할 테이블 구조- 데이터베이스는 캐릭터셋 utf8, collation은 utf8_general_ci 로 만들었습니다. CREATE TABLE upload_file ( file_id VARCH.. 2018. 4. 21.
Oracle Open 백업 하기(Hot backup) Oracle 백업은 닫힌 백업(Close Backup)과 열린 백업(Open Backup) 으로 나눌 수 있습니다. 닫힌 백업은 Oracle 데이터베이스를 완전히 종료한후 필요한 파일을 백업하는 방법입니다. 열린 백업은 데이터베이스가 실행중에 백업을 할 수 있는 방법 입니다. 여기에서는 Oracle의 열린 백업을 하는 방법을 알아보겠습니다. 환경은 Windows에서 Oracle XE 11g 로 테스트 하였습니다. 일단 열린 백업을 하기 위해서는 데이터베이스가 아카이브 모드로 동작하고 있어야 합니다. 아카이브 모드로 설정하는 것은 "Oracle Archive Mode 설정하기" 를 참조하세요. 1. 백업 대상이 되는 파일- 데이터 파일 : 실제 데이터가 저장되는 파일 입니다.- 컨트롤 파일 : 데이터베이스.. 2018. 4. 21.
Oracle Archive Mode 설정하기 Oracle은 데이터 복구를 위해 데이터베이스에 대한 모든 변경사항을 redo 로그 파일에 적어둡니다. redo 로그 파일에 변경정보를 적어서 보관하는데, 두 가지 방법을 사용할 수 있습니다. 아카이브 로그 모드(Archive Log Mode)와 노 아카이브 로그 모드(No Archive Log Mode)입니다. 노 아카이브 로그 모드는 오라클 설치시 기본 설정으로 몇 개의 redo 로그 파일을 돌려 쓰는 방식입니다. 즉, 일정 갯수의 파일에 저장된 정보 외에 이전 정보는 사라지게 됩니다. 아카이브 로그 모드는 redo로그 파일을 모두 사용하여 처음 파일에 덮어쓰기전에 이전 파일을 다른 곳에 복사해 두는 방식입니다. 그러므로 모든 로그 정보가 보존됩니다. 현재 데이터베이스의 로그 모드를 확인해 보고, 변.. 2018. 4. 21.
Subclipse의 History에서 변경 파일 목록 복사하기 Eclipse에서 SVN 플로그인으로 Subclipse를 사용중입니다. 변경된 사항을 확인하기 위해서 Team -> Show History 를 사용합니다. Revision을 클릭하면 하단에 변경된 파일 목록이 나옵니다. 이 파일 목록은 복사가 되지 않습니다. 변경된 파일 목록만을 따로 텍스트 파일로 저장하는 방법을 알아 보겠습니다. 상당의 Revision을 마우스 오른쪽 키로 클릭합니다. 팝업 메뉴에서 "Generate ChangeLog..." 을 클릭합니다 Output format: 에서 "svn log with affected paths" 를 선택합니다. Save to: 는 Clipboard를 선택하면 텍스트 파일에 붙여넣기 하면 됩니다. 파일로 저장할 수도 있습니다. 하단 Preview:에 내용이 .. 2018. 4. 21.
Windows에서 TOMCAT에 개발용으로 SSL 적용하기 사이트에 SSL을 적용하려면 인증기관으로부터 인증서를 발급받아 웹서버에 설치해야 합니다. 개발용으로 자신이 인증기관이 되어 인증서를 발급하여 Tomcat에 적용하는 방법을 알아봅니다. 1. openssl 설치하기 키와 인증서를 만들기 위해서 openssl을 설치합니다. 다음 사이트에서 자신의 PC에 맞는 파일을 다운 받습니다. 이 글에서는 윈도우에서 테스트하므로 openssl-0.9.8k_X64.zip 파일 다운로드 받았습니다. https://code.google.com/archive/p/openssl-for-windows/downloads 다운 받은 파일은 압축을 풀어서 적당한곳에 복사해두면 됩니다. 여기에서는 D:\util\openssl-0.9.8k_X64 에 설치하였습니다. D:\util\opens.. 2018. 4. 21.
SSL 동작 방식을 간단히 알아보기 SSL 은 웹서버와 브라우저 간의 통신을 암호화 해서 중간에 누가 가로채더라도 내용을 알 수 없게 해줍니다. SSL이 적용되면 https:// 를 사용하여 웹서버에 접근하게 됩니다. 원래 여러가지 기술들이 작용하는 것이라 복잡하므로 기술적인 부분은 제외하고 개념적인 SSL 동작 방식을 간단히 알아보겠습니다. 그래도 미리 알아 두어야 할 것들이 많습니다. 1. SSL과 TLS SSL(Secure Sockets Layer)와 TLS(Transport Layer Security)는 같은 것이라고 할 수 있습니다. SSL은 TCP/IP 암호화 통신에 사용되는 규약으로써 넷스케이프에서 만들었습니다. SSL 3.0 버전부터는 IETF에서 표준으로 정해서 TLS 1.0이 되었습니다. 하지만 아직도 그냥 SSL이라고 .. 2018. 4. 21.
도메인 이전시 기존 도메인의 모든 URL을 새 도메인으로 리다이렉트하기 Servlet 을 사용하는경우 도메인 이전시에 기존 도메인의 즐겨찾기 되어 있는것과 같은 어떤 URL에서 접근하더라도 새 도메인으로 리다이렉트하는 방법을 알아봅니다. 사이트 도메인이 변경되면 기존 도메인은 새로운 도메인으로 리다이렉트 되도록 하는게 일반적입니다. 이때 영구 이전을 나타래는 301 HTTP 응답코드를 사용하는게 좋습니다. 이때 보통은 index 페이지에만 리다이렉트 처리를해서 이전 도메인만으로 들어오면 리다이렉트 되지만 사이트내의 특정 페이지들을 즐겨찾기 해두고 사용하던 곳은 페이지를 찾지 못하는 상황이 됩니다. Servlet 을 사용하는 경우 Filter 를 사용하여 어떤 URL의 요청이 들어오더라도 새 도메인으로 리다이렉트 되도록 만들어 보겠습니다. 1. 요청을 특정 URL로 리다이렉트.. 2018. 4. 21.
파이썬 웹프로그래밍 - 장고(Django) 데이터베이스 API 사용하기 이 글은 앞의 글 "파이썬 웹프로그래밍 - 장고(Django) 튜토리얼 1(MySQL, MariaDB 연동)" 에 이어집니다. 대화식 Python Shell 에서 Django 데이터베이스 API를 테스트 해봅니다. 명령창을 열어서 앞에서 만든 샘플 프로젝트의 src 폴더에 들어가서 다음 명령을 실행합니다. D:\workspace\mysite\src\python manage.py shell 단순히 python만 실행하여 쉘을 띄우지 않는 이유는 manage.py 에 설정된 DJANGO_SETTINGS_MODULE 환경변수를 사용할 수 있게 하기 위해서 입니다. 이 환경에는 샘플 프로젝트에서 만든 데이터베이스 연결정보 객체 정보를 바로 사용할 수 있습니다. 1. 모델 임포트하고 Question 객체 생성하기.. 2018. 4. 21.