자바 계산기 구현 미션 Repository입니다.
계산기 기능입니다. 띄어쓰기 기준으로 숫자와 부호들을 받아 계산하고 올바른 식이라면 저장해두고 조회할 수 있습니다.
- 띄어쓰기를 기준으로 부호와 숫자를 나눴습니다.
- 객체지향적인 코드로 계산기 구현하기
-
조회는 디비의 내용을 순서대로 출력하였습니다.
-
계산은 입력을 받고 띄어쓰기 단위로 나누어 어레이리스트에 넣어주었습니다.
-
그리고 올바른 표현식인지 검사하였습니다.
-
곱하기와 나누기를 먼저 우선적으로 스택을 이용하여 구하고 스택에는 곱하기, 나누기가 완료된 숫자와 +,- 부호만 남겼습니다.
-
이후 +,- 계산을 최종적으로 하고 그 결과와 식을 db에 넣었습니다.
- [ O ] 더하기
- [ O ] 빼기
- [ O ] 곱하기
- [ O ] 나누기
- 정수형이며 소숫점은 내림합니다.
- [ O ] 우선순위(사칙연산)
-
[ X ] 테스트 코드 구현하기
- 코드를 다 짜고 테스트 코드를 짜보려고 했는데 짜고보니 테스트코드를 실행할 수 없는 코드입니다.
- 따라서 현재 코드를 테스트 코드를 사용할 수 있는 코드로 리팩토링 하려고 합니다.
- 현재 input값과 계산,서비스 로직이 한 클래스 안에 들어가 있는데 인풋값을
-
[ O ] 계산 이력을 맵으로 데이터 저장기능 만들기
- 어레이 리스트를 이용해서 구하였습니다.
-
[ X ] 정규식 사용
##✅ PR 포인트 & 궁금한 점
- 테스트 코드 구현 실패
- 코드를 다 짜고 테스트 코드를 짜보려고 했는데 짜고보니 테스트코드를 실행할 수 없는 코드가 되었습니다.
- 따라서 현재 코드를 테스트 코드를 사용할 수 있는 코드로 리팩토링 하려고 합니다.
- 현재 사용자가 입력을 하는 로직이 있는 클래스에 서비스 로직이 같이 안에 들어가 있는데 입력과 로직을 분리하고 테스트 코드를 할 수 있도록 하려고 합니다.
- 즉, 사용자 입력과 서비스 로직을 완전히 구분하고, 단위 테스트를 위하여 파싱,식 검증 등을 각각의 객체로 분리하려 합니다.
- OOP 스러운 구현을 어떻게 하는지 아직 잘 모르겠습니다.
- 현재 코드는 계산기 부분이 절차 지향적으로 짜여져 있다고 생각합니다. 일단 테스트 코드가 잘 되도록 리팩토링을 하고 OOP 지향적으로 리팩토링 하려고 합니다.
- 커밋을 언제 어떻게 해야할지 아직 감이 잡히지 않습니다. 만들다 보면 이미 기능이 거의 완성되어 있습니다.😢
기능은 되지만 아직 테스트 코드를 거의 짜지 못했습니다. 리팩토링을 크게 해야할것같아 주말내로 끝내지 못할 확률이 높아 피드백을 받고 싶어 수정전 코드를 올렸습니다.감사합니다!
1. 조회
2. 계산
선택 : 2
1 + 2
3
1. 조회
2. 계산
선택 : 2
1 + 2 * 3
7
1. 조회
2. 계산
선택 : 1
1 + 2 = 3
1 + 2 * 3 = 7
선택 : 2
3 - 2 * 2
-1