본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)85

Java Heap 정렬 #0. 힙 정렬을 위한 개념 준비 ──────── 자바(Java)를 통해서 빠르고 훌륭한 힙정렬(Heap sort)에 대해서 정리 해 보겠습니다. 예전 공부를 할 때는 의사코드(pseudo code)로만 보고 "아~ 저런 개념이구나~" 하고 넘어갔었는데, 실제 구현하려 해 보니 어렵고 시간이 꽤 걸렸던 것 같습니다. 알고리즘은 역시 실제 타이핑을 해 보아야 하는 것을 다시한번 깨달았습니다. 힙정렬에서의 데이터 정렬을 위한 구조는 배열을 이진트리(binary tree)형태로 구분하는 것 입니다. 이진트리는 배열의 관계를 부모 - 자식간의 형태로 데이터를 정렬하는 것을 의미 합니다. 부모는 0~2개의 자식을 가질 수 있으며 2개 이후의 자식은 다음 세대의 부모가 됩니다. 아래와 같이 숫자형태의 배열이 존재합.. 2021. 1. 14.
Java 모듈(Java module, 자바 모듈, 자바 module) with SpringBoot 자바에서 제공하는 모듈(module)이라는 기능은 자바 버전 1.9 부터 지원하는 기능 입니다. 모듈(module)은 패키지(package)보다 상위의 개념 입니다. 서로 다른 프로젝트가 이름(name)을 가지고 imports와 exports라는 명령어를 통해 본인이 받고 싶어하는, 또는 주고 싶어하는 패키지(package)를 설정하여 사용 할 수 있습니다. 이러한 프로젝트의 구성 방법을 Jigsaw Project 라고 합니다. A라는 프로젝트가 존재하고, B라는 프로젝트가 존재한다고 가정하여 봅니다. A라는 프로젝트에는 com.test라는 패키지가 존재하고, B라는 프로젝트에는 com.good 이라는 패키지가 존재한다고 가정합니다. B프로젝트의 com.good 패키지를 A프로젝트에서 사용하고 싶어하는 .. 2021. 1. 6.
Java 11 HttpClient (자바11 HttpClient) 기능 살펴 보기 자바가 11버전으로 업그레이드 되면서 java.net 패키지에 http관련된 라이브러리가 추가 되었습니다. Java11 이전에는 대부분 아파치에서 제공하는 라이브러리를 사용 했었습니다. * Apache Http Client(org.apache.httpcomponents) 먼저 살펴 볼 방법은 get 방식으로 요청하는 방법 입니다. import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpClient.Version; import java.net.http.HttpRequest.BodyPublisher; .. 2020. 12. 28.
Java SpotBugs 정적 분석 도구(Java 취약점검, 자바 취약점검) 공공기관 프로젝트를 하면서 취약점검을 받는 경우에는 일반적으로 사용한 무료 툴인 아라크니(arachni) 를 활용하여 응답 및 요청에 대해서 문제가 없는지 검증 하였었습니다. 그런데, 소스코드(Java)에 대해서 문제가 있는지 없는지를 검증 해 달라는 요구사항에 대해서는 무엇을 써야 되는지 난감하였습니다. 야스카(yasca)같은 툴은 자바버전이 1.7만 넘어가도 Java 코드(code)에 대해서는 아무것도 찾지 못하는 현상이 존재하였고, 그렇다고 상용화된 서비스를 이용하자니 비용문제가 발생 하여서 고민하던 찰나 SpotBugs 라는 훌륭한 툴을 알게 되었습니다. SpotBugs는 주로 코드의 정확도(Correctness), 스타일(Style), 성능(Performance) 등 코드 품질에 관련된 패턴을 .. 2020. 12. 16.
Java 버전에 따른 인터페이스 상속 정리(자바 인터페이스 상속) 자바에서 인터페이스(Interface)를 상속 받는 것은 implements 명령어를 통해서 가능합니다. Java에서는 인터페이스를 n개 까지 상속(implements)받을 수가 있습니다. 자바에서 extends를 통해서 받는 상속은 단 1개만 가능하게 되어 있습니다. #자바 7까지의 인터페이스 상속시 유의 사항 ───────────── 간단하개 2개의 인터페이스와 1개의 상속받는 클래스를 만들어 살펴 보겠습니다. 그러면, 아래와 같은 2개의 인터페이스가 존재 합니다. * 이름 : Test1 //첫번째 인터페이스 public interface Test1 { public final String NAME = "I am Test1"; public void print(); } * 이름 : Test2 //두번째 .. 2020. 12. 11.
Java 폴더 용량 측정, 폴더 갯수 측정(Java measure folder size) 간단정리! 자바에서 폴더용량을 측정하는 방법 입니다! 재귀호출(Recursive Call) 방식의 메소드 입니다. 1. 폴더 내부의 용량을 측정 //폴더 용량을 측정 합니다. public static long measurefolderSize(File directory) { long length = 0; try { for (File file : directory.listFiles()) { if (file.isFile()) length += file.length(); else length += measurefolderSize(file); } } catch (Exception e) { } return length; } 위와 비슷하게 갯수를 더하면 폴더 내부의 파일 갯수를 구할 수 있습니다. 2. 폴더 내부의 .. 2020. 11. 16.