분수로 표현 가능한 수를 유리수라고 한다. 정수도 유리수에 속한다.
Maven은 자바 프로젝트의 빌드와 관리를 도와주는 오픈 소스 툴입니다. Apache Software Foundation에서 제공하며, 프로젝트의 전체 빌드 과정을 자동화 해주는 도구로 알려져 있습니다.
Maven의 핵심 기능으로는 프로젝트 구조와 내용을 정의하는 POM(Project Object Model) 파일의 사용, 필요한 라이브러리를 자동으로 다운로드하고 관리하는 의존성 관리, 또한 빌드, 테스트, 배포 등의 프로세스를 정의하고 관리하는 것 등이 있습니다.
이 외에도 Maven은 프로젝트의 정보를 제공하거나, JUnit 테스트 리포트 생성, 자바 문서(javadoc) 생성 등 다양한 플러그인을 통해 기능을 확장할 수 있습니다.
Maven을 사용하면 프로젝트의 빌드 및 관리 과정이 단순화되고, 표준화되어 개발 생산성을 향상시킬 수 있습니다.
brew install mvn
brew --version
: 프로젝트란 일정한 목표를 달성하기 위해 계획, 실행, 관리되는 작업의 집합이다. 프로그램을 만들기 위한 여러 수단의 집합이라고 봐도 되겠다.
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.nhnacademy</groupId>
<artifactId>rational</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.10.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-console-standalone -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-console-standalone</artifactId>
<version>1.10.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.22.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.1</version>
</dependency>
</dependencies>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
</configuration>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
</project>
구현해야할 기능
몫 받기
분수 받기
Rational 받기
문자열 출력 -> 정수, [1/3]
Equals
Add
Subtraction
Multiply
Division
Inverse
Pow(지수 양수, 음수)
테스트해야할 기능
0, 1, -1, int.max_value, int.min_value
0/10 , 1/2, -1/2
Max/max, max/min, min/max, min/min
기약분수 테스트
import org.apache.logging.log4j.Logger;
Logger logger = LogManager.getLogger(this.getClass().getSimpleName());
logger.info("new rational : [{}/{}]", numerator, denominator);
log4j2.xml 파일을 src/main/resources 디렉토리에 추가
level 에 따라 trace, info 등의 변경사항을 줄 수 있으며,
ref 에 따라 console 에 로그를 출력할지, file 에 로그를 기록할 지 선택할 수 있다.