본문 바로가기

분류 전체보기487

CSS - position 프로퍼티 사용하기 CSS의 position 프로퍼티는 top, right, bottom, left 프로퍼티로 HTML 요소의 위치를 지정할때 무엇을 기준으로, 어떤 식으로 사용되어질지 그 방법을 지정합니다. postion 프로퍼티에 사용되어지는 다섯가지 값입니다.- static- relative- fixed- absolute- sticky 1. postion: static; position 프로퍼티를 지정하지 않았을 때의 기본값이 static 입니다. 이 상태에서는 top, bottom, left, right 프로퍼티가 동작을 하지 않습니다. HTML요소의 배치는 일반적인 흐름을 따름니다. 내용 2. position: relative; HTML 요소의 postion 프로퍼티를 relative로 설정하면 일반적인 위치(po.. 2018. 5. 9.
Java에서 assert 사용하기 Java에서 단언문 assert는 JDK 1.4 부터 지원합니다. 객체가 아니고 예약어 입니다. 사용법은 두 가지 형식이 있는데, 다음과 같습니다. assert expression1;assert expression1: expression2; 첫 번째는 인자로 boolean으로 평가되는 표현식 또는 값을 받아서 참이면 그냥 지나가고, 거짓이면 AssertionError 예외가 발생합니다. 두 번째는 표현식1이 거짓인 경우 두번째 표현식의 값이 예외 메세지로 보여지게 됩니다. Assertion은 디버깅 용도로 사용되어서 JVM 기본 설정으로 프로그램을 실행하게 되면 assert문은 모두 실행에서 제외 됩니다. assert가 동작하게 하려면 실행시 -ea 옵션을 사용해서 실행합니다. java -ea 클래스명 .. 2018. 5. 4.
JUnit 4 기능 찾아보기 JUnit를 공부하는 중에 사용되는 기능들을 빠르게 찾아보기 위해서 정리를 했습니다. JUnit 4 버전을 기준으로 작성을 하였고, 관련된 JUnit 3에서의 사용법도 조금 적었습니다. 1. 테스트 케이스(TestCase) 만들기 - 메소드에 @Test 아노테이션을 붙이면 됩니다.- JUnit3 에서는 TestCase 클래스를 상속해서 test로 시작하는 메소드를 만들면 됩니다. 2. 픽스쳐 만들기 - @Before, @After 아노테이션으로 사전, 사후 실행될 메소드를 지정합니다. 매 테스트 메소드 마다 전후에 실행됩니다.- @BeforeClass, @AfterClass는 테스트 케이스 클래스에서 처음과 끝에 한번만 실행됩니다. 이 아노테이션이 지정된 메소드는 static 메소드여야 합니다. 그 이유.. 2018. 5. 3.
기계식 키보드 (KB-A106 ARON) 직접 수리하기 오래전에 구입한 기계식 키보드인 KB-A106 ARON 키보드를 사용하고 있습니다. 얼마전부터 아래쪽 화살표키와 키패드의 마이너스(-) 키가 입력되었다, 안되었다 하더니 기어코 아래쪽 화살표키가 죽어 버렸습니다. 좀 오래되었지만 아직도 다른 키들은 기능적으로 이상이 없고, 구입시 가격도 보통 키보드보다는 좀 비쌌던거라 직접 수리하기로 마음 먹었습니다. 수리 계획은 다음과 같습니다. 1. 완전히 죽은 아래쪽 화살표키와 키패드의 마이너스키를 떼어 냅니다.2. 거의 사용되지 않는 Scroll Lock키와 Pause Break 키를 떼어 냅니다.3. 1과 2를 바꿔서 붙입니다. 공구를 준비했습니다. 땜납, 송진, 인두, 납땜제거기, 드라이버, 플라이어가 필요합니다. 키캡 리무버와 스위치 리무버가 있으면 좋지만 .. 2018. 5. 2.
전자정부표준프레임워크 폼 검증(Form validation)하기 전자정부표준프레임워크는 폼 검증에 Jakarta Commons Validator를 사용하고, 이것을 Spring Framework와 연동하기 위해서 spring-modules-validation 을 사용합니다.(https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:ptl:security:jakarta_commons_validator) Jakarta Commons Validator는 각종 검증 규칙을 xml 파일로 작성합니다. 이 규칙에 따른 검증은 Java 클래스 및 Javascript로도 제공되어 서버측 검증과 클라이언트측 검증 모두에서 사용되어 집니다. 이글의 예제는 전자정부표준프레임워크의 eGovFrame Web Project에서 생성된 샘.. 2018. 5. 2.
spring-test - 테스트 프로젝트 및 테스트 케이스 기본구조 스프링프레임워크로 만들어질 웹애플리케이션을 spring-test 라이브러리를 사용하여 테스트를 하는 방법을 알아 봅니다. spring-test는 스프링프레임워크 3.2부터 지원되며, 스프링 MVC 컨트롤러에 대한 단위테스트를 지원합니다. 예제로 사용할 프로젝트를 전자정부표준프레임워크 3.6에 있는 템플릿을 사용해 봅니다. 1. 예제 프로젝트 만들기 - 전자정부표준프레임웍 3.7을 사용합니다. "전자정부표준프레임워크 3.7 설치하기" 를 참조하세요. 1.1. File -> New -> eGovFrame Web Project를 선택합니다. 1.2. Project name과 Maven Setting의 Group ID에 "spring_test" 를 입력합니다. Target Runtime은 Apache Tomca.. 2018. 5. 1.
전자정부표준프레임워크 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.