[JAVA] 계산기 과제 개념 추가 정리

2025. 9. 16. 21:06·JAVA/Java 실습

🧐 프로젝트 작업 내용

  • 깃허브 링크 

☠️ 트러블 슈팅

  • 발생한 Issue 
    • Lv2 과제 수행 간 Calculator 사칙연산 작업 클래스 연결과정에서 입력받은 값을 조건문이 올바르게 처리하지 못하는 이슈가 발생
    • calculate 사칙연산 클래스 선언 간 래퍼 클래스를 사용해야 하는 이유가 무엇인지에 대한 확인이 필요했음
  • 해결방법 / 찾아본 내용
    • Calculator.java 파일 내에 조건문을 설정하면서 초기 입력값에 대한 조건문 설정에 오류가 있었음
      • 입력받는 값  둘 중 하나라도 양의 정수가 아니면 조건문이 false가 되도록 설정해야하나 true 값으로 설정하여 예외 케이스에 대해 정상적으로 코드가 실행되지 않음 

+ 조건문을 처리함에 있어서 Early Return 개념에 대해 숙지하고 코드 구성을 할 수 있도록 해야함 ! 

  • 정의 : 특정 조건을 만족하지 않을 경우, 가능한 한 빨리 함수 실행을 종료하고 값을 반환하는 방식
  • 목적 : 코드의 가독성과 유지보수성을 높이고, 들여쓰기의 깊이를 줄이기 위함
    • 코드의 성능 개선보다는 유지보수성을 높이는게 주요 핵심

    • 값을 입력받고 결과를 저장하는 단계에서 계산 이력 관리 및 배열 선언 등으로 인하여 래퍼 클래스 선언을 통해 코드 구성이 필수적인 부분이었음
      • 이 외에도 null 값을 표현하여 코드 구성을 하려는 점에서 래퍼 클래스가 필요
      • 오토박싱 / 언박싱 편의성 확보 등으로 인하여 래퍼 클래스가 필수요소가 된 부분
/* 값을 저장하는 배열형태의 컬렉션 필드 선언 및 생성 private 접근제한자 설정으로 외부 클래스에서 접근 불가 */
     private List<Integer> saveList = new ArrayList<>();
     

/* 계산 메서드를 래퍼클래스로 선언하여 위의 List 선언을 올바르게 받아들이고 처리할 수 있도록 구성 */
	public Integer calculate(int firstNum, int secondNum, char operation) {}

 

 

'JAVA > Java 실습' 카테고리의 다른 글

[JAVA 실습] 객체지향 커머스 과제  (0) 2025.09.22
Lv3. Enum, 제네릭, 람다 & 스트림을 이해한 계산기 만들기  (0) 2025.09.18
점메추 SPA 에디션  (0) 2025.09.10
MVC 기반 점심 메뉴 추천기  (0) 2025.09.10
JSP 자기소개 버전 만들기  (0) 2025.09.09
'JAVA/Java 실습' 카테고리의 다른 글
  • [JAVA 실습] 객체지향 커머스 과제
  • Lv3. Enum, 제네릭, 람다 & 스트림을 이해한 계산기 만들기
  • 점메추 SPA 에디션
  • MVC 기반 점심 메뉴 추천기
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백엔드 기초다지기
    Til
    jsp
    Java 문법기초
    다형성
    프로세스와 쓰레드
    HTML&CSS
    WebSocket
    경합조건과 교착상태
    Spring
    백엔드 기초
    MVC
    thymleaf
    SpringSecurity
    Stomp
    BEAN
    웹소켓
    String.format
    java
    git
    실시간 데이터 처리
    네트워크 기초
    for문
    JPA
    객체지향
    Spriingboot
    객체지향프로그래밍
    RestTemplate
    Github
    algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
[JAVA] 계산기 과제 개념 추가 정리
상단으로

티스토리툴바