2024. 9. 5. 22:17ㆍ내일배움캠프
이전에는 단일 클래스에 연산을 수행하는 계산이를 구현했다면, 이번에는 목적에 부합하는 여러 클래스의 객체를 다루는 방식으로 계산기를 구현하는 과정을 남겨본다. 정리해둔 요구사항은 여기에서 확인할 수 있고 구현한 코드는 여기서 확인가능하다.
먼저 다른 방식으로 구현한 '다른 계산기' 를 한 프로젝트 안에 추가하는 것이기에 연산을 위한 입력 외에도 어떤 계산기를 선택해 사용할지 사용자가 선택할 수 있는 입력이 필요하다 생각했다. 다음으로 요구사항에는 기존 'level01' 계산기에서 추가 구현 부분이 일부 활용되는 것을 요구했지만 결국 여러 클래스의 객체를 사용하는 별도의 계산기 구현을 요구하는 것으로 판단 'level02' 계산기의 흐름을 작성할 '별도의 클래스(Main 클래스와 유사한)' 가 필요하다 생각했다. 마지막으로 여러 클래스의 객체를 활용하는 것이 해당 단계의 주목적이라 판단 각 클래스마다 다른 역할을 수행할 수 있도록 클래스들을 구현할 필요가 있다 생각했다.
요구사항과 함께 정리해보면 이전에 구현한 'level01' 계산기에는 영향을 전혀 주지 않으며, 여러 객체를 활용해 'level02' 계산기를 구현하는 것이 되겠다.
이전 구현한 'level01' 계산기의 기능을 최대한 그대로 가져왔고 별도의 계산기처럼 패키지를 구성했다.
src/main/java/calculator ─ Main.java
└─────── /level02 ─ CalculatortApp.java
└───── /calculate
└───── /validation
- Main.java : 'level01' 계산기 구현 코드와 계산기 선택 및 선택 계산기 호출 코드를 작성
- /level02 : 'level02' 계산기에 대한 구현은 해당 패키지 안에서 진행
- CalculatorApp.java : 'level02' 계산기에 대한 실행 흐름을 구현 코드를 작성
- /calculate : 연산 관련 기능을 수행하는 클래스 및 인터페이스(구현클래스 포함)가 위치하는 패키지
- /validation : 실행에 사용되는 데이터의 유효성을 판단하는 클래스가 위치하는 패키지
계획했던대로 'level01' 계산기와 기능이 분리되어 서로 영향이 없으며 기존에 가지고 있던 기능들을 그대로 유지할 수 있었다. 물론 요구사항은 전부 만족시켰다. 지금 당장은 어떤 부분이 문제가 있을지 보이지 않아 내일 다시 한 번 더 코드를 확인해보고 불필요한 부분은 날리고 유지보수에 불편함을 느끼게하는 코드는 수정할 생각이다.
'내일배움캠프' 카테고리의 다른 글
[내일배움캠프] 계산기 구현 - level.02(2) (0) | 2024.09.06 |
---|---|
[내일배움캠프] TIL - 24.09.05(목) (0) | 2024.09.05 |
[내일배움캠프] 계산기 구현 - level.01(2) (0) | 2024.09.05 |
[내일배움캠프] TIL - 24.09.04(수) (0) | 2024.09.04 |
[내일배움캠프] 계산기 구현 - level.01(1) (0) | 2024.09.04 |