Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 보다 강력한 암호화 운용방식을 지원하기 위해서 '자바 암호화 확장'을 다운받아 설치해야 하는데, 이전까지는 local_policy.jar , US_export_policy.jar 두 개의 파일을 <java-home>/lib/security 폴더에 저장해두는 방식이었다. 그러나, 자바 8 151 버전 이후부터는 폴더 구조가 변경되어 <java-home>/lib/security/policy 폴더가 생겼으며 그 안에 limited 와 unlimited 폴더가 있고 각각 local_policy.jar , US_export_policy.jar 두 파일이 존재하므로 오라클 사이트에서 다운로드 받을 필요가 없어졌다. 그리하여, 새로운 활성화 방법은 <java-home>/lib/security/java.security 파일을 열어 826번째 줄에서 crypto.policy=unlimited 의 주석 처리 부분을 제거한다. 또는, 자바 소스 코드에서 Security. setProperty ( "crypto.policy" , "unlimited" ) ; 라고 지정해 줄 수도 있다. 추가하여, 자바 9부터는 기본적으로 unlimited strength가 활성화되어 있다고 한다.
아래 그림에서와 같이, 원래의 좌표를 (x, y)라 하고, y축으로부터의 각도를 θ라고 하자. 또, 회전 시키고자하는 각도를 δ라 하고, 회전된 좌표를 (x', y')라고 한다. 이 때, 회전의 기준점과 원래의 좌표 사이의 거리를 r이라고 하면, 회전된 이후의 좌표와 회전 기준점 사이의 거리 또한 r로써 동일하다. 수식으로 정리하면, x = r sinθ y = r cosθ x' = r sin(θ+δ) y' = r cos(θ+δ) 삼각함수의 덧셈정리 를 이용하여 x'와 y'를 풀어보면, x' = r (sinθ cosδ + cosθ sinδ) = r sinθ cosδ + r cosθ sinδ y' = r (cosθ cosδ - sinθ sinδ) = r cosθ cosδ - r sinθ sinδ x = r sinθ, y = r cosθ이므로, x' = x cosδ + y sinδ y' = y cosδ - x sinδ δ가 반시계방향인 경우에는, x' = x cosδ - y sinδ y' = y cosδ + x sinδ 라는 수식으로 정리될 수 있다. 이렇게 구한 공식을 도형의 각 꼭지점에 대해서 적용하면 회전 이동한 도형을 구할 수 있다. public void rotateBy ( float d , float x0 , float y0) { float dX = x - x0 ; float dY = y - y0 ; double rad = Math . abs ( Math . toRadians (d)) ; float cosD = ( float ) Math . cos (rad) ; float sinD = ( float ) Math . sin (rad) ; if (d>= 0 ) { x = dX * cosD + dY * sinD ; y = dY * cosD...
CSV 파일은 쉼표로 구분된 값(comma separated value) 을 저장하는 텍스트 파일 형식이며, 주로 엑셀 등에서 데이터를 텍스트 파일로 저장할 때에 사용된다. 아파치 재단에서 자바 프로그래머를 위한 CSV 라이브러리를 내놓았는데, 이 글을 작성하고 있는 현재 시점의 버전은 1.0이다. http://commons.apache.org/proper/commons-csv/ CSVParsr 클래스는 생성자 또는 스태틱 메서드인 parse() 를 통해서 생성한다. 파서를 생성한 후 getRecords() 메서드를 사용하면 CSV 파일의 각 행을 나타하는 List 객체를 얻을 수 있다. CSVFormat 클래스에는 자주 사용되는 몇 가지 형식들이 사전 정의 되어 있으며, 입맛에 맞게 변경할 수 있다. parser() 메서드를 통해서 CSVParser를 얻을 수도 있다. CSVRecord 클래스는 CSV 파일의 각 행에 해당하는 정보를 담고 있다. get() 메서드를 통해서 셀의 데이터를 문자열 형식으로 얻을 수 있다. CSVPrinter 클래스는 CSV 형식으로 데이터를 출력할 때 사용된다. 파서의 생성 Reader (또는 InputStream) 객체을 통해서 파서를 생성하는 방법. CSVParser parser = new CSVParser ( new InputStreamReader(inputStream, "UTF-8" ), CSVFormat. EXCEL ); List<CSVRecord> records = parser.getRecords(); ... parser.close(); File 객체를 통해서 파서를 생성하는 방법. CSVParser parser = CSVParser . parse (file, Charset. forName ( "UTF-8" ), CSVFormat. EXCEL .withHeader()); List<CSVRecord> records = pa...
댓글
댓글 쓰기