유리수 프로젝트

Moom2n·2024년 3월 4일
0

Java

목록 보기
14/26
post-thumbnail

유리수

- 유리수란?

분수로 표현 가능한 수를 유리수라고 한다. 정수도 유리수에 속한다.

- Maven 설치

Maven은 자바 프로젝트의 빌드와 관리를 도와주는 오픈 소스 툴입니다. Apache Software Foundation에서 제공하며, 프로젝트의 전체 빌드 과정을 자동화 해주는 도구로 알려져 있습니다.

Maven의 핵심 기능으로는 프로젝트 구조와 내용을 정의하는 POM(Project Object Model) 파일의 사용, 필요한 라이브러리를 자동으로 다운로드하고 관리하는 의존성 관리, 또한 빌드, 테스트, 배포 등의 프로세스를 정의하고 관리하는 것 등이 있습니다.

이 외에도 Maven은 프로젝트의 정보를 제공하거나, JUnit 테스트 리포트 생성, 자바 문서(javadoc) 생성 등 다양한 플러그인을 통해 기능을 확장할 수 있습니다.

Maven을 사용하면 프로젝트의 빌드 및 관리 과정이 단순화되고, 표준화되어 개발 생산성을 향상시킬 수 있습니다.

brew install mvn
brew --version

  1. 의존성 관리
    : 의존성(Dependency)은 프로그램이 다른 외부 모듈, 라이브러리, 혹은 프레임워크에 의존하여 동작하는 것을 말한다.
    프로그램을 개발할 때는 프레임워크나 다른 모듈에 의존하여 동작하는 경우가 많다. 프로그램이 특정 기능을 수행하기 위해 필요한 다른 것들을 의존성이라고 할 수 있겠다.
    외부 라이브러리나 모듈 같은 것들은 버전이 매우 중요한데, 버전에 따라서 코드가 돌아가기도, 그렇지 않기도 한다. 이때 Maven이 쉽게 버전 관리를 할 수 있도록 도와주기도 한다.
  1. 빌드 자동화
    : 빌드(Build)는 소프트웨어 개발 과정 중에 소스 코드, 리소스 파일, 구성 파일 등을 -> 컴퓨터가 이해할 수 있는 실행 가능한 소프트웨어나 라이브러리 등으로 변환하는 과정을 말한다. 컴파일도 빌드의 일부다.
    Maven은 일관된 방식으로 빌드를 처리하고, 소스 코드를 실행 가능한 형태로 만들고, 소프트웨어의 품질을 검증할 수 있게 만든다.
  1. 그 외 기타 기능
    : 이 외에도 Maven은 플러그인, 테스트, 레파지토리, 문서 생성 등을 지원하고, 다중 모듈을 관리하는 기능을 하기도 한다.

- 프로젝트란?

: 프로젝트란 일정한 목표를 달성하기 위해 계획, 실행, 관리되는 작업의 집합이다. 프로그램을 만들기 위한 여러 수단의 집합이라고 봐도 되겠다.

- pom.xml 작성

  • pom.xml은 Maven 프로젝트의 구성 파일이다.
  • Maven Java 프로젝트의 빌드, 종속성 관리, 배포 등을 자동화하기 위해 사용되는 도구인데, 이러한 작업을 수행하기 위해서 pom.xml 파일을 이용한다.
  • [pom.xml 파일이 포함할 수 있는 정보]
    -- 프로젝트 정보, 종속성, 빌드 설정, 플러그인 설정 등
<?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>

- 프로젝트 생성

  • Raional class 작성

구현해야할 기능

몫 받기

분수 받기

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 에 로그를 기록할 지 선택할 수 있다.

0개의 댓글

관련 채용 정보