본문 바로가기

JAVA6

[Java DataEngineering] Parquet 파일 쓰고 읽는 코드 정리 Write & Read Java를 이용해 Parquet 파일을 쓰고 읽는 코드를 소개한다. 라이브러리 버전 정보 org.apache.parquet:parquet-avro:1.12.2 org.apache.hadoop:hadoop-common:3.3.4 org.apache.hadoop:hadoop-mapreduce-client-core:3.3.4 유의점 parquet 파일 저장 코드를 소개하는 포스트들은 대게 Path 경로만 넣어서 writer를 빌드하는 방법을 사용한다. 허나 아쉽게도 해당 코드는 Deprecated 처리되었는데 이유는 정확히 모르겠다.. 어쨌거나 Path가 아닌 org.apache.parquet.io.OutputFile (interface) 를 구현한 클래스를 넣어야 한다. https://issues.apach.. 2022. 11. 25.
[Java Gradle] 등록된 라이브러리 Jar 목록 확인(Classpath) gradle 7.4 https://docs.gradle.org/7.4/userguide/userguide.html Java 프로젝트를 만들 때 간혹 추가한 외부 라이브러리가 classpath에 제대로 등록되지 않는 경우가 있다. 대게 문법 오류로 인한 문제겠다. 이럴 땐 제대로 등록된 라이브러리 목록을 봐가며 점검을 할 필요가 있다. 아래엔 Gradle Task를 이용해 등록된 라이브러리 Jar 목록을 출력하는 방법을 소개한다. Gradle 버전에 따라 문법이 다를 수 있으니 주의할 것! ... configurations { testImplementation { canBeResolved(true) } } dependencies { testImplementation 'org.junit.jupiter:jun.. 2022. 11. 25.
Netty 기반 경량 Http Server 구성 ( with Gradle ) Netty는 이벤트 기반 네트워크 어플리케이션 구성을 위한 프레임워크다. 통상 NIO 기반 비동기 프로토콜 서버 구축용 프레임워크로 더 잘알려져있다. NIO는 New input output의 약자로 Channel Buffer의 방식으로 입출력을 다루는 자바의 기본 IO 라이브러리를 뜻한다. Netty가 비동기 프로토콜 서버를 구출할 수 있는 이유는 이러한 NIO를 사용하기 때문이며 달리 말하면 NIO가 Non-Blocking IO를 지원하기 때문이다. Blocking IO란 먼저 입력된 데이터가 처리되어 출력되기 전까지 새로운 데이터를 입력받지 않는 방식을 말하며 Non-Blocking은 이와 반대로 먼저 입력된 데이터의 처리 여부와 상관없이 다른 데이터들의 입력을 받고 입력 순서과 상관없이 처리 순서에.. 2022. 9. 25.
JAVA Installation On Linux Java 설치는 해도해도 이상하게 잘 기억나지 않고 또 귀찮고 번거롭다. 그래도 또 막상 찾아 해보면 쉽다. 매번의 찾는 과정을 반복하고 싶지 않아 여기에 기록해두기로 한다. Java 설치엔 다음의 세 가지 과정이 필요하다. 설치 파일 다운로드 Symbolic link 연결 환경변수 설정 java 11을 기준으로 하겠다. java 11 부터는 jdk/jre 의 구분이 없어졌다. java 설치 = jdk 설치 라고 보면 되겠다. 1 . 설치 파일 다운로드 유료 버전의 Java EE 를 쓰지 않을 거라면 OpenJDK 중 하나를 선택해서 설치해야한다. 문제는 너무 많은 OpenJDK가 있어서 무엇을 설치해야하는지가 생각보다 까다롭다는 점이다. 주로 쓰거나 확실히 아는 것이 없는 경우엔 Oracle에서 제공하.. 2022. 9. 2.