본 문서는 다음의 URL을 통해 Spring boot intialize로 프로젝트 생성 및 환경설정까지 다루어 보았습니다.
총 1~3편으로 구성되어 있으며, rest api와 접목하여 만들어보겠습니다.
출처 URL : https://avro.apache.org/docs/1.11.1/getting-started-java/
Getting Started (Java)
This is a short guide for getting started with Apache Avro™ using Java. This guide only covers using Avro for data serialization; see Patrick Hunt’s Avro RPC Quick Start for a good introduction to using Avro for RPC. Download Avro implementations for C
avro.apache.org
1. https://start.spring.io/ URL을 통한 Project 생성
SNAPSHOT 버전 말고 일반 3.3.4 버전을 이용하였습니다.
(SNAPSHOT의 경우엔 지속적인 버전 업그레이드가 이뤄지기 때문에, 나중에 의존성에 있어 문제가 발생될 소지가 있습니다.)
2. 이 외의 환경설정 (JDK, MAVEN 등)
이제는 빌드 툴들의 버전을 수정할 시간입니다.
(저는 openjdk 1.8 등을 사용하고 있었기 때문에, 버전업이 시급했습니다..)
그래서 과감하게, 최신 버전인 Oracle JDK 23버전을 이용하였습니다.
(Oracle JDK 23은 개인 사용자에게 무료로 사용할 수 있습니다. Oracle은 2021년부터 JDK 17 이상 버전에 대해 새로운 Oracle No-Fee Terms and Conditions (NFTC) 라이선스 모델을 도입했습니다. 이 라이선스에 따르면, 개인 사용자와 개발자는 상업적 용도가 아닌 경우 JDK를 무료로 사용할 수 있습니다. <챗 지피티 답변 참조함>)
https://www.oracle.com/java/technologies/downloads/#jdk23-windows
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
maven도 덩달아 업그레이드 해줍니다. 최신 버전 3.9.9 버전 install 합니다. (JDK 8 이상과 호환)
(당연한 얘기겠지만, 버전 호환에 주의하셔야합니다.)
https://maven.apache.org/install.html
Maven – Installing Apache Maven
Installing Apache Maven The installation of Apache Maven is a simple process of extracting the archive and adding the bin directory with the mvn command to the PATH. Detailed steps are: Have a JDK installation on your system. Either set the JAVA_HOME envir
maven.apache.org
자 이제 확인해봐야겠죠?
음. 잘 설정된 것을 확인하였습니다.
이제 본격적으로 실습에 들어가도록 하겠습니다.
3. pom.xml 수정
이제 intelliJ를 통해 project를 open 하여 maven 의존성을 본격적으로 고쳐봅니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>my-rest-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>my-rest-api</name>
<description>rest api example 입니다.</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>23</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.11.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- avro 관련 plugin 추가 -->
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<version>1.11.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
</goals>
<!-- 경로를 제대로 지정하지 않으면 의도하지 않은 경로에 생성됨 -->
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/avro/</sourceDirectory>
<outputDirectory>${project.basedir}/src/main/java/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>23</source>
<target>23</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
plugin의 source 및 target 버전은 23으로 수정, 이 외에는 예제에서 나온 그대로 의존성을 추가 한 후 ->
`mvn clean install` 명령어를 통해 target 디렉토리의 파일 및 디렉토리들을 날려버리고 새로운 녀석들로 채우기로 합니다.
다행히도 build에 성공하여 jar 파일이 성공적으로 생성되었습니다.
2편 부터는 본격적인 example 코드를 다뤄보도록 하겠습니다~!
'Apache Avro' 카테고리의 다른 글
avro plugin을 이용한 Spring boot 실습 - 3 (avro read) (1) | 2024.09.24 |
---|---|
avro plugin을 이용한 Spring boot 실습 - 2 (avro write) (1) | 2024.09.24 |
avro dependency를 이용한 Spring boot 실습 (without plugins) (1) | 2024.09.24 |
직렬화와 역직렬화 (0) | 2024.09.21 |
apache avro 란? (0) | 2024.09.21 |
댓글