넘어졌으면 일어서서 다시 걷자 🐈My GitHub🐈

Projects/Remembrance

[회고] 우테코 프리코스 1주차 - 문자열 덧셈 계산기

YongE 2024. 10. 23. 11:42

🌏과제 - 문자열 덧셈 계산기


입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.

  • 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다.
    예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6
  • 앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다.
    예를 들어 "//;\n1;2;3"과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
  • 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되어야 한다.

 

❗구현 기능 목록


  1. 구분자를 기준으로 숫자를 추출하는 기능
        - 입력값이 없다면(공백) 0을 반환한다.
        - 입력은 구분자와 양수로 이뤄진 문자열이다.
        - 추출된 숫자는 모두 **양수**(ex : 2,3,4...)이다.
        - 커스텀 구분자를 확인하고 저장해야 한다.
        - 커스텀 구분자는 **무조건** 문자열 앞부분의 "//"와 "\n" 사이에 위치한다.
        - 커스텀 구분자는 저장된 후 구분자로써 기능한다.
  2. 추출된 숫자를 관리(저장 및 덧셈 연산 수행)하는 기능
  3. 사용자 입력 및 결과 출력 기능

 

구현 클래스

└── calculator
    ├── Application
└── calculator.controller
    └── CalculatorController
└── calculator.model
    └── Numbers
    └── Separator
└── calculator.view
    └── IOView

 

 

 

회고


기능과 예외 처리에 대한 내용을 적절히 분리하지 못했다.

위에서 보이다시피 기능 아래에 조건을 명시했다. 그러나 발생할 수 있는 예외 상황에 대해 적절히 분리하여 기술하지 못했다. 예외 처리를 명확히 해야 구현 단계에서 유발될 실수를 줄일 수 있다고 생각한다. 앞으로 일어날지도 모르는 상황에 대해 깊이 고민해야겠다고 다짐했다. 또한 문서를 깔끔하고 명확하게 작성할 수 있도록 노력해야겠다.

 

정규표현식을 사용할 수 있었다.

 

제출하고 다시 보니 구분자를 처리하는 기능에서 정규표현식을 사용했다면 코드가 더 깔끔해졌을 것이라고 생각한다. 이 부분을 학습하고 적용했다면 구분자에 대한 예외 기준을 더 명확히 하여 오류를 확실히 잡을 수 있었을 것이다. 더 나은 방법이 있지 않았는지 마지막까지 고민해보는 시간을 가져야겠다.

 

728x90
반응형