Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
6f78571
요구기능 구현
kimihiqq Jun 11, 2023
7f53d44
메서드 및 클래스 분리
kimihiqq Jun 12, 2023
ba06183
테스트 코드 작성
kimihiqq Jun 12, 2023
92ebeca
default절 추가
kimihiqq Jun 12, 2023
9e74dcb
정규식 및 테스트 파일 수정
kimihiqq Jun 13, 2023
b5d21ac
refactor: Console 클래스를 ConsoleInput과 ConsoleOutput으로 분리
kimihiqq Jun 15, 2023
56138c1
refactor: Calculator가Runnable 인터페이스를 구현하지 않도록 수정
kimihiqq Jun 15, 2023
f56b91b
feat(Calculator): 'Option' enum을 통해 메뉴 선택 기능 추가
kimihiqq Jun 15, 2023
0d09cf9
feat(Application, Calculator): 종료 옵션 선택시 프로그램 종료 기능 추가
kimihiqq Jun 15, 2023
36dc30a
refactor: calculate 메서드 분리
kimihiqq Jun 16, 2023
01e1aa5
refactor: calculate 메서드 중복 코드 최소화
kimihiqq Jun 18, 2023
2513523
refactor: Calculator 및 Pretreatment 클래스의 에러 핸들링 개선
kimihiqq Jun 18, 2023
848bdbb
refactor: Optional 객체 사용으로 코드 안정성 강화
kimihiqq Jun 18, 2023
c126ebe
refactor: Output 인터페이스에 대한 구현체 수정
kimihiqq Jun 18, 2023
39513c1
refactor: Pretreatment 클래스명 FormulaProcessor로 변경 후 utils 패키지로 이동
kimihiqq Jun 18, 2023
af7b07d
refactor: executeOperation 메소드 리스트 요소 제거 방식 수정
kimihiqq Jun 19, 2023
db1bdcf
refactor: FormulaProcessor 클래스의 인스턴스 생성 방지
kimihiqq Jun 19, 2023
14c9fd3
History의 상태 변경 방지를 위한 코드 수정
kimihiqq Jun 19, 2023
fecc0dd
test: Calculator 테스트 코드 수정
kimihiqq Jun 19, 2023
b0bf294
refactor: isValidFormula 메서드명validateFormula로 변경
kimihiqq Jun 22, 2023
4ad82d5
refactor: Calculator 클래스에서 Operator enum 사용
kimihiqq Jun 22, 2023
6c0d5ae
fix: 실수값 입력에 대한 검증 로직 수정
kimihiqq Jun 23, 2023
ef7e4b2
feat: Operator 열거형의 DIVIDE 연산자에 0으로 나누는 경우 예외 처리 추가
kimihiqq Jun 26, 2023
9a8672c
fix: validateFormula() 메서드의 수식 유효성 검증 정규식 업데이트
kimihiqq Jun 26, 2023
6bb7c7a
fix: run() 메서드에서 유효하지 않은 페이지 선택 처리 수정
kimihiqq Jun 26, 2023
a0264c5
test: FormulaProcessorTest 추가
kimihiqq Jun 26, 2023
10a1d28
test: OperatorTest 추가
kimihiqq Jun 26, 2023
9f7e082
test: OptionTest 추가
kimihiqq Jun 26, 2023
d1abcc8
test: CalculatorTest 수정
kimihiqq Jun 26, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Created by https://www.toptal.com/developers/gitignore/api/java,gradle,intellij+all
# Edit at https://www.toptal.com/developers/gitignore?templates=java,gradle,intellij+all

### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.

.idea/*

!.idea/codeStyles
!.idea/runConfigurations

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

### Gradle ###
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

### Gradle Patch ###
# Java heap dump
*.hprof

# End of https://www.toptal.com/developers/gitignore/api/java,gradle,intellij+all
25 changes: 25 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
plugins {
id 'java'
}

group 'me.kimihiqq'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
}

dependencies {
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
testImplementation 'org.mockito:mockito-core:3.12.4'

}


test {
useJUnitPlatform()
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading