Server Language/Java22 Java로 Builder Program 만들기 (완결) - Apache Commons-compress로 빌드 된 프로젝트 폴더 tar.gz 파일로 압축하기 이전 포스팅에서 원하는 도커 이미지를 사용하여 Build 된 프로젝트 폴더를 AWS S3 Bucket에 올리기 쉽게 tar.gz(tgz) 파일로 압축하는 작업을 실행할 차례. apache에서 제공하는 commons-compress 라이브러리를 주입받아 사용한다. Dependency injection 본인은 gadle build tool을 사용하고, commons-compress 1.3버전을 주입받아 사용하였다. dependencies { implementation group: 'org.apache.commons', name: 'commons-compress', version: '1.3' } Make CompressLib Class compress 기능은 추후 다른 곳에서도 사용할 수 있기 때문에 comp.. Server Language/Java 2023. 1. 2. Java로 Builder Program 만들기 (2) - Java로 Shell Script를 Controller하여 Docker로 Source Build하기 Java Docker Library를 찾던 중 대표적으로 많이 쓰이는 2가지를 찾게 되었지만 둘 다 사용하고 싶지 않았다. 첫 번째로 찾은 Library는 docker-java. 최소 2가지의 dependency를 주입받아야 했고 그 이외에 gradle repository를 추가하거나 데몬을 사용해야 하는 등 내가 필요한 기능 이외에 것들을 많이 설정해야 해서 resource 차지가 심하다고 생각이 들었다. 두 번째로 찾은 Library는 gradle-docker-plugin. bmuschko라는 닉네임을 사용하는 특정 개발자가 만든 library로써 사용설명에 이후의 업데이트는 없다고 명시해 놨기 때문에 사용성 측면에 있어서 어려움이 있었다. 그래서 사용자가 원하는 Docker Image를 사용하여 원.. Server Language/Java 2022. 12. 28. Java로 Builder Program 만들기 (1) - Java JGit Library 사용해서 Git Controller하기 최근 CI/CD를 구현하면서 Builder라는 것에 대해 많이 생각하게 되었다. 단순히 빌드( 개념 정리는 여기 클릭 )를 진행해 주는 프로그램이라 생각했었고, 단순히 사용만 하던 이 Builder라는 녀석을 직접 Java로 구성해보려 하니 막막했다. 특정된 FrameWork이나 특정된 언어(Java, PHP 등)로 구성된 Project만 빌드 해주는 builder가 아니라 사용자의 입맛대로 (원하는 언어 혹은 FrameWork, Git Repository 등을 사전에 설정하면 원하는 방식으로) Build 해주는 프로그램을 만들어 보려고 한다. Java Builder 이미지 메이킹 builder가 하는 역할이나 흐름도에 대해 머릿속에서 대략적으로 생각했던 것들을 손으로 정리해 보았다. 원하고자 하는 기능.. Server Language/Java 2022. 12. 27. Java로 Firebase Cloude Message (Application Push) 구현하기 Firebase Cloude Message(이하 FCM)을 구현하여 Web 및 App Device에 Push Message를 보내는 기능을 구현해봅니다. FCM 구현에는 송수신을 위한 두 가지 주요 구성요소가 필요합니다. Firebase용 Cloud Functions 또는 앱 서버와 같이 메시지를 작성, 타겟팅, 전송할 수 있는 신뢰할 수 있는 환경 해당 플랫폼별 전송 서비스를 통해 메시지를 수신하는 Apple, Android 또는 웹(자바스크립트) 클라이언트 앱 1. Firebase Admin SDK 의존성 추가하기 Firebase Admin SDK를 사용하기 위해서는 해당 서버에 Java 8 이상이 설치되어 있어야 합니다. // Gradle - build.gradle dependencies { imp.. Server Language/Java 2022. 7. 19. Java로 Data 암호화 및 복호화 하기 - AES256 서버에서 동작하는 Application은 Java 기반으로, 그 데이터와 연동되는 다른 API 기능은 PHP로 개발을 진행하는 와중에 두 사이에서 같은 데이터를 암/복호화해서 사용하는 상황이 발생하였습니다. 처음엔 Laravel Framework의 Crypt Facades를 사용하여 라라 벨에서만 복호화를 진행하였는데, Java Application에서 암호화시킨 데이터를 같은 맥락으로 Laravel Framework에서 복호화시켜 사용해야 함에 따라 기본 Laravel App Key를 사용했던 Crtpt Facades를 대체하며 같이 Java에서 사용할 AES256 알고리즘 형태의 암복호화 소스가 필요해졌고, Java는 아래 형태로 개발을 진행하게 되었습니다. [연관글] PHP로 Data 암호화 및 복.. Server Language/Java 2022. 6. 27. Java로 Apache Kafka Consumer 구독 구현하기 Apache Kafka Consumer를 구독하여 값을 읽어오는 기능을 Java언어로 구현해봅니다. apache.org에서 제공하는 Kafka API문서를 참고하였고, Apache Kafka의 개념을 먼저 학습한 후 예제 코드를 통하여 카프카에 대해 구현해보는 걸 권장합니다. Apache Kafka란? - 아파치 카프카에 대한 학습 대학생 시절에는 프로그래밍 언어를 위주로 공부하였고, 개발자가 되어 4년차가 된 지금, 프로그래밍 언어의 장벽은 낮아졌고 오히려 프로그래밍 아키텍쳐, 디자인 패턴, 파이프라인 구축 등 min-nine.tistory.com kafka 2.6.0 API kafka.apache.org 1. Consumer 데이터 가져오는 예제 코드 및 설명 // Properties 객체를 생성하.. Server Language/Java 2022. 6. 20. [Gradle] Gradle로 Java Application 생성 및 실행하기 Gradle 7.4.2v 을 사용하여 앞으로 Test code를 작성할 Java Application Project를 만들어 봅니다. 1. 프로젝트 폴더 생성 및 gradle init 명령어 실행 $ mkdir testGradleProject $ cd testGradleProject $ gradle init 2. Project Type 선택란으로 application 환경을 셋팅하기 위해 2번 진행 3. Project Language 선택란으로 Java 3번 혹은 default enter 진행 4. Library를 포함유무 선택란으로 본인은 함께 설치하기 때문에 yes 진행 5. Build Script 언어 선택란으로 설정은 default로 진행 6. Project name 및 packange 등 설정은.. Server Language/Java 2022. 6. 8. Log4j에 대한 학습 - Log4j 의 개념 및 Log4j2 Java 프로젝트를 진행하면서 가장 중요하다고 생각하는 로그 출력에 대한 라이브러리를 찾아보다가 최근 보안취약점으로 이슈가 되었던 Log4j가 보안 취약점을 보안한 Log4j2 라이브러리가 많이 사용되는것을 보고, Log4J에 대한 개념 및 사용법을 학습하여 여기에 기술한다. Apache Log4J ( Log For Java ) 란? 소프트웨어가 가동되면 일련의 이벤트들을 일으키는데, 이런 이벤트들의 성공여부 혹은 실패여부부터 시작하여 사용자가 어디서 언제 어떤 이벤트를 어떻게 잃으켰는지 등의 모든 작업행위 등을 로그(Log)라고 부르며 로그를 남기는 행위를 로깅(Logging)이라고 부르고, 때문에 Java로 만들어진 프로그램의 로깅을 쉽게 도와주는 라이브러리가 Log4J ( Log For Java ).. Server Language/Java 2022. 5. 30. 그래들 ( Gradle ) 에 대한 학습 - Gradle 구조 및 Gradle Wrapper 그래들 ( Gradle ) 빌드 도구 (혹은 빌드 툴)에 대한 학습을 통해서 gradle에 대해 알아보았다면, gradle을 실전에서 사용하기 위한 gradle 구조 및 gradle이 설치되어있지 않은 환경에서 실행하게 해주는 Gradle Wrapper에 대해 학습한다. gradle이 무엇인지 궁금하다면 아래 링크를 참고한다. 그래들 ( Gradle ) 에 대한 학습 - 그래들이란? / What is Gradle? 학부생시절, 메이븐 빌드툴을 이용해서 자바프로젝트를 진행했던 희미한 기억이 있다. 그런데 현 직장에서 처음 맡은 프로젝트가 그래들 (gradle) 구성으로 이루어진 프로젝트. 때문에 그래들에 min-nine.tistory.com 그래들 ( Gradle ) 디렉터리 기본 구조 Build.grad.. Server Language/Java 2022. 5. 27. 그래들 ( Gradle ) 에 대한 학습 - 그래들이란? / What is Gradle? 학부생 시절, 메이븐 빌드 툴을 이용해서 자바 프로젝트를 진행했던 희미한 기억이 있다. 그런데 현 직장에서 처음 맡은 프로젝트가 그래들 (gradle) 구성으로 이루어진 프로젝트. 때문에 그래들에 대한 학습을 진행하고 여기에 기록한다. gradle은 build를 쉽게 하게 해주는 도구라고 생각할 수 있으며 사전에 빌드(build)에 대한 개념을 잡고 학습한다. 컴파일,링크, 빌드, 배포 개념 정리 / what is the Compile,Link,Build,Deploy? 본인은 PHP 웹개발자 외길 인생을 살아왔다. Frame Work는 Laravel을 사용하여 개발을 진행하였고, 별도의 컴파일 , 빌드 과정 없이 실서버에 deploy(배포)만 진행하여 서비스를 개발해왔다. 최근 회사에 min-nine.t.. Server Language/Java 2022. 5. 27. 컴파일,링크, 빌드, 배포 개념 정리 / what is the Compile,Link,Build,Deploy? 본인은 PHP 웹 개발자 외길 인생을 살아왔다. Frame Work는 Laravel을 사용하여 개발을 진행하였고, 별도의 컴파일 , 빌드 과정 없이 실서버에 deploy(배포)만 진행하여 서비스를 개발해왔다. 최근 회사에서 java 언어로 프로젝트를 진행하게 되었고 각 용어에 대한 정리를 할 필요성을 느껴 여기에 정리한다. 컴파일 ( Compile ) 이란? 학부생 때 배운 개념. 컴퓨터는 [0 또는 1의 숫자]로 모든 명령을 이해한다는 것이다. 흔한 예로 대문자 A는 아스키코드로 65, 65의 십진수는 2진수로 변환되어 1000001로 컴퓨터가 해석하게 된다. 사람이 이해하는 A라는 문자를 컴퓨터가 이해하는 1000001로 변환해주는 이러한 일련의 작업 혹은 기능을 컴파일이라고 한다. 1. 사람이 이해.. Server Language/Java 2022. 5. 26. [Java 무작정 따라하기] 11. JAVA 패키지 및 예외처리 알아보기 Java 무작정 따라하기 11. JAVA 패키지 및 예외처리 알아보기 사용자 패키지를 정의하고 정의된 패키지를 사용하여 프로그램을 만들어보자. 예외종류를 알아보고 예외처리 코드를 작성해보자. 1.JAVA 패키지 패키지의 의미 관련이 있는 클래스와 인터페이스를 묶어놓은 것을 패키지 라고 한다. 클래스와 인터페이스는 패키지의 멤버로 존재하게 된다. 전체적으로 계층(트리) 구조의 형태로 클래스 라이브러리 라고도 한다. 패키지(계층구조이기 때문에 폴더와 유사하다) 단위로 계층적으로 분류된다. 패키지의 용도 쉽게 찾아 사용하기 위해 패키지를 사용한다. 접근 제어를 위해 패키지를 사용한다. 동일한 이름 및 유사한 기능을 재개발 하는것을 방지하기 위해 패키지를 사용한다. 시스템 패키지 Java가 제공하는 기본 클래스.. Server Language/Java 2020. 5. 17. 이전 1 2 다음