개발/부트캠프

본캠프 : 개인 과제(계산기 만들기) 트러블 슈팅

EJ EJ 2025. 1. 8. 21:05

1. 개요 

클래스를 적용해 기본적인 연산을 수행할 수 있는 계산기 만들기 과제(Lv.2)를 진행하며, 겪은 이슈를 다뤄보겠습니다.

 

2. 트러블 슈팅

● 배경

Lv.1 클래스 없이 기본적인 연산을 수행하는 계산기에서 정상 작동하던 While문의 사칙연산 swich case가 Lv2. Calculator 클래스로 구현하면서 에러가 발생했습니다.

● 발단

연산을 수행하는 calculate 메서드 내에 while문을 사용하면 해당 메서드 내에서 계속 반복 작업이 일어나서 에러가 발생한다는 것을 인지했습니다.

● 전개

그래서 calculate 메서드에서 연산이 한 번만 진행되도록 while문을 삭제했습니다.

● 위기

이후에는 사칙연산 swich case문에서 아래 2가지를 어떻게 처리할지가 고민이었습니다.

1) case ' / ' : "나눗셈 연산에서 분모(두 번째 정수)에 0이 입력될 수 없습니다.“

2) default : "잘못 입력하였습니다."

● 절정

위 내용을 App 클래스로 이동하여 피연산자, 연산자를 입력받은 후에 바로 If문으로 처리할 수 있도록 접근했습니다.

● 결말

App 클래스의 main에서 반복문을 통해 피연산자와 연산자를 입력받고 잘못된 입력 값일 경우 다시 처음으로 돌아가 값을 받아 제대로 된 값이 입력되면, 이후에 Calculator 클래스에서는 연산을 수행하도록 해결했습니다.

 

3. 마무리

Lv.1 클래스 없이 기본적인 연산을 수행하는 계산기를 Lv.2 클래스를 적용하여 연산을 수행할 수 있도록 코드를 수정할 때, 각 클래스에서 수행할 기능을 정확히 구분하여 에러가 발생하지 않도록 처리해야 한다는 걸 배웠습니다.