오라클(Oracle)에서 17버전부터는 NFTC(No-Fee Terms and Conditions)라는 새로운 라이센스를 내세우면서 무료로 사용이 가능하다는 것을 내세웠지만, 사실상 이는 무료의 사용 기간을 길게 한 것일뿐 무료 사용이 끝나는 기간에는 유료 결제를 해야 한다. 물론 자바의 버전을 계속 변경하다보면 사용이 가능할 것도 같지만, 문제의 여부를 테스트 해봐야 하고 수많은 서버가 있는 곳에서 이런 작업은 더욱 피곤하게 만든다. 그래도 다행인 것은 Java21이든 Java17이든 유료 라이센스에 영향을 주는 것은 운영서버 즉, 배포를 하는 환경일 뿐 개발자 환경에서는 OracleJDK로 하든 OpenJDK로 하든 상관이 없는 것으로 보인다. 처음에는 OpenJDK로 설치를 하여 진행하려고 했지만,..
자바로 파일을 복사하는 3가지 방식을 설명해보도록 하겠습니다. 이것 이외에도 다양한 라이브러리를 사용해서 복사하는 방법들이 있지만, 아래의 방식만 알아도 큰 문제는 없을거라 판단해서 3가지를 선정해보았습니다. 1. FileInputStream/FileOutputStream 방식 우선 가장 고전적인 방식으로 InputStream, OutputStream 을 사용하여 byte를 복사하는 방식입니다. public static void main(String args[]) { String orgFilePath = "D:/test_copy/original.jpg"; String outFilePath = "D:/test_copy/copy.jpg"; System.out.println("status -> " + file..
Java에서 List 데이터의 값으로 오름차순을 하거나 내림차순을 하는 방법은 최하단 포스팅을 확인하시면 되며, 여기서는 데이터를 저장한 순서를 뒤집는 방법을 설명해보고자 합니다. 데이터 세팅 public static void main(String[] args) { String[] arrs = {"삼성전자","테슬라","비트코인","펄어비스","코카콜라"}; List list = new ArrayList(Arrays.asList(arrs)); System.out.println("리버스 이전 리스트 -> " + list.toString()); } # 리버스 이전 리스트 -> [삼성전자, 테슬라, 비트코인, 펄어비스, 코카콜라] 오늘은 주식이 우울한 관계로 떡상하자는 마음에 주식 종목들과 암호화폐 종목을 리..
Maven으로 프로젝트를 만들게 되면, 기본적으로 Java 버전이 1.5를 사용하게 된다. 현재 카프카를 테스트 하기 위해 만들어진 임시적인 Maven 프로젝트를 기준으로 설명을 하게 되면... 현재 Pom.xml 4.0.0 kafka test 0.0.1-SNAPSHOT kafka-test jar http://maven.apache.org org.apache.kafka kafka-clients 2.6.0 이와같이 Pom.xml에는 그 어디에도 Java를 지정한 곳이 없다. 이건 아무래도 IDE에 따라 다를거라 판단되는데 필자가 사용한 Eclipse 혹은 전자정부프레임워크(이놈도 사실 eclipse)에서 maven java project를 생성 후 simple모드를 할 경우 java 버전을 별도로 설정하지..
Math.round 방식 double a = 12.3456789; System.out.println(a*100); 1234.56789 System.out.println((double)Math.round(a*100)); 1235.0 System.out.println((double)Math.round(a*100)/100); 12.35 자바의 대표적인 수학모듈인 Math는 다양한 소수점을 처리하는 기능도 제공한다. Math.round를 쓰게 되면, 소수점 위치에 반올림하게 되는데 원하는 위치를 반올림을 하기 위해서는 별도의 인자값을 넣는 것이 아니라 위 소스처럼 그만큼의 소수점을 Shift해야 한다. 즉 2자리까지 보여주고 반올림을 하고 싶을 경우 우선 현재 값에 100을 곱하고, Math.round를 쓰면 ..
어제 불현듯, 이런 생각이 들었습니다. "내가 왜 Dapp만 공부하고 있지? 그냥 블록체인을 만들어 볼까?" 사실, 블록체인의 개념은 프로토타입으로 만들기엔 어려운 내용은 아니라고 생각했습니다. 그리고, 자바로 충분히 구현할 수 있다고 생각이 들어서 한번 무모하게 도전을 해보려고 합니다. 이 프로젝트가 중간에 엎어질 지, 아니면 성공할 지 모르겠으나 개인적인 생각으로는 99%는 현재 내 지식과 프로그래밍 실력으로 구현 가능하다 보고 있고, 블록체인에 대해서 설명할 때 프로그램으로 설명하는 것만큼 좋은 것이 없다고 생각이 들기 때문에, 한번 토큰 개발이 아닌 코인 개발에도 도전을 할 생각입니다. 일단 진행사항은 포스팅과 유튜브 모두 올릴 생각이긴 하나, 선 유튜브 정리되면 포스팅을 하려고 합니다. 포스팅을..
객체지향에서 꼭 지켜야 할 원칙이 총 5가지 있는데 이걸 OOP 5대 원칙이라고 한다. 물론 이걸 머리속에 집중하며 5대원칙 중 하나는 뭐... 또 하나는 뭐... 이렇게 외우면서 설계 및 코딩하는 사람들은 없기 때문에 한두번 정도 이해하고, 나머지는 경험에서 우러나오는 개발을 하게 된다. OOP 5대 원칙을 줄여서 SOLID라고도 부른다(앞글자들 모음) 1. OOP 설계의 5대 원칙의 개요 가. OOP 설계의 5대 원칙의 개념 - 객체지향 소프트웨어 설계 도구들의 근본이자 목적이 되는 원칙 나. 객체지향 설계의 필요성품질 향상 : 재사용성, 유지보수 등을 통한 생산 및 품질의 향상모형의 적합성 : 현실 세계에서의 인간 사고와 유사일관성 유지 : 공정 단계간의 전환과 변경이 자연스럽고 신속함 2. OOP..