본문 바로가기

2018/04286

전자정부표준프레임워크 3.7 설치하기 오랜만에 전자정부표준프레임워크 사이트에 들어가보니 몇가지 변화가 있었습니다. 첫 번째는 전자정부표준프레임워크 새 버전이 릴리즈 되었다는 것입니다. 2018년 2월 28일 3.7 버전이 릴리즈 되었습니다. 두 번째는 2018년 4월 30일부터 회원 정보를 더이상 수집하지 않고, 회원 가입없이 모든 기능을 사용할 수 있도록 한다는 것입니다. 기존의 회원정보는 4월 29일 모두 삭제된다고 합니다. 로그인 없이 사용 가능한게 이제 몇일 남지 않았지만, 아직까지는 로그인 해야 새 버전을 다운로드 받을 수 있었습니다. 나는 64bit 운영체체를 사용하므로 eGovFrameDev-3.7.0-64bit.exe(1.34GB) 파일을 다운로드 받았습니다. 전자정부표준프레임워크 3.7의 주요 변경사항은 다음과 같다고 합니다.. 2018. 4. 27.
Oracle JDK 라이센스와 OpenJDK Oracle 사이트에서 내려받은 Java SE JDK 8 을 사용중 이었습니다. JRE 업데이트 알림이 떠서 업데이트 하고 마지막 화면에서 JDK 8이 2019년 1월 부터 기업 사용자에게 업데이트가 유료화 된다는 내용이 있어서 Oracle JDK의 라이센스에 대해 알아봐야 겠다는 생각이 들었습니다. 먼저 알아본 결과부터 말하자면 명확히는 잘 모르겠다는 것입니다. 이것저것 찾아본 내용을 정리해서 적어봅니다. 기사들을 찾아보니 Java가 Sun에서 Oracle 로 넘어가고 나서 유료화에 대한 우려가 나오기 시작했고, 2016년말 영국의 한 언론이 오라클이 기업에 대해 자바 라이센스를 위반했다고 과금을 시작했다는 기사가 나와서 이슈가 되었었다고 합니다. 오라클 홈페이지에는 Java SE 가 무료라고 나와 있.. 2018. 4. 26.
자바 MD5, SHA-256, AES256 암호화 하기 java.security 라이브러리를 사용해서 MD5, SHA-256 으로 해시 하는 방법과 AES-256 으로 암호화 하고 복호화 하는 방법을 알아 봅니다. MD5와 SHA-256은 단뱡향 암호화로 비밀번호를 암호화 하거나 데이터 전송등에서 무결성을 체크하는데 사용됩니다. MD5는 128bit로 서로 다른 값에 같은 해시가 발생하는 충돌이 확인 되었고, 빠르게 해시가 가능하므로 비밀번호를 만드는데는 안전하지 않다고합니다. 이제는 SHA-256을 사용하기는 권장하고 있습니다. MD5이던 SHA-256 이던 적절한 길이의 salt와 bcrypt, scrypt 또는 pbkdf2와 같은 느린 알고리즘을 적용하여 무작위 대입 공격에 대한 대비를 해야만 안전한 비밀번호를 만들 수 있습니다. 이글의 예제 에서는 M.. 2018. 4. 25.
eclipse 설치위치 변경시 .eclipseextension 폴더 위치 변경하기 이클립스를 간단히 이클립스가 설치된 폴더를 다른곳으로 이동하여 사용할 수 있습니다. 컴퓨터를 바꾸면서 이클립스가 설치되어 있는 하드디스크는 그냥 가져와서 사용하였는데, 이클립스가 설치된 위치만 바뀌게 되었습니다. 이클립스의 실행은 문제가 없이 잘 되는데, 이전 위치에 폴더가 발생되고 .eclipseextension 폴더가 생성되는 것입니다. 어딘가 설치시 위치가 저장되어 있는것 같습니다. 아크로 에디터의 찾기 기능을 이용하여 이전의 설치 위치가 포함되어 있는 파일을 찾은 결과 여러개의 파일이 검색되었습니다. 관련이 있어 보이는 파일은 이클립스가 설치된 곳 아래의 다음 두개의 파일 입니다. - eclipse/p2/pools.info- eclipse/p2/profiles.info 설치위치를 변경하고, 이클립.. 2018. 4. 24.
드라이브 루트 폴더에 msdia80.dll 파일이 생기는 문제 해결 컴퓨터를 다시 셋팅하는 동안 D드라이브 루트 폴더에 msdia80.dll 파일이 생성되었습니다. 웹에서 검색해서 원인을 찾아보니. 다음 URL에서 찾을 수 있었습니다. https://support.microsoft.com/ko-kr/help/927665/the-msdia80-dll-file-is-installed-in-the-root-folder-of-the-boot-drive Visula C++ 2005 재배포 가능 패키지를 설치하면 잘못된 위치에 msdia80.dll 파일이 설치되는 버그가 있다고 합니다.정상적인 원래 위치는 "driver:\Program Files\Common Files\Microsoft Shared\VC\msdia80.dll" 이라고 합니다. 해결법이 2가지 나와 있습니다. 1. .. 2018. 4. 24.
자바(Java) - static import 사용하기 자바 클래스의 static 메소드는 클래스에 대한 인스턴스의 생성없이 메소드를 사용할 수 있습니다. 예로 절대값을 구하는 java.lang.Math 클래스의 abs() 메소드는 다음과 같이 클래스명.메소드로 바로 사용합니다. int i = Math.abs(-3); JDK 1.5부터는 이러한 정적(static) 메소드를 더욱 쉽게 사용하기 위해서 static import 를 지원합니다. import static java.lang.Math.abs; int i = abs(-3); 정적 메소드를 import static 을 사용해서 import 한후에 클래스명 없이 abs(); 처럼 바로 사용할 수 있습니다. 주의해야 할 것은 같은 클래스 내에 동일한 이름의 메소드가 있으면 클래스 자신의 메소드가 우선합니다. .. 2018. 4. 23.
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.