본문 바로가기
우아한테크코스

우테코 프리코스[BE 7기] 1주차 회고

by CodingMasterLSW 2024. 12. 27.

1주차 미션 : 문자열 덧셈 계산기

 

기능 요구 사항에 기재되지 않은 내용은 스스로 판단하여 구현한다.

 

이 부분이 나한테는 엄청 애매했다... 우선 요구사항에 대해 살펴보며 기능목록을 작성했다.

 

구분자와 양수로 구성된 문자열

양수를 맨 처음 봤을 때 생각난 건, 아 이건 int로 처리하면 오류난다. 양수니까 int 범위를 넘은 값이 들어올 수도 있으니까 long으로 입력값과 결과값을 처리하자는 생각을 우선적으로 했다.
그렇게 구현을 마치고 테스트 코드를 작성하던 중, 양수가 정확하게 뭐지? 내가 아는 '양의 정수'가 양수가 맞나? 의심이 들었고, 사전적 정의를 찾아봤다.

 

양수: 양의 부호(+)를 붙인 수로 0보다 큰 수다

 

이 의미면 소수도 포함되는거 아닌가...? 나아가 무리수도 양수일텐데 무리수 계산까지 구현을 해야하는건가? 많은 생각이 들었다,,,이런 생각을 하면 끝도 없을 것 같아서 소수까지 계산을 하자! 결론을 내렸다.


미션을 진행하며 느낀 점

 

1) 요구사항과 관련해서

굉장히 간단한 걸 하나 만들었지만, 대충 만드는 것과 제대로 만드는 것의 차이점이 엄청 컸다.
예시에서는 간단하게 3+2를 예시로 주었지만, 값의 limit이 정해진 게 아니였고, '양수' 라는 조건이 주어졌을 때 생각해야 할 부분이 많았다.

 

  • int타입을 사용한다고 했을 때, int의 maxValue를 넘어간다면?
  • 양수는 소수도 포함하는데 소수를 계산한다면?
  • 그렇다면 double 타입을 사용해아하는데, double은 정수끼리의 계산에서 소수점을 출력하는데 이 문제는 어떻게 해결할건지? (ex 3+2 = 5.0)

생각해야 할 부분이 엄청 많아서 간단한 기능을 구현하는거였지만, 내가 어떻게 생각하고 공들이냐에 따라 아예 다른 방향성이 잡힐 수 있다는 것을 크게 느꼈다.

 

2) 프로그래밍 과정에서 느낀 부분

미션을 시작하기에 앞서  '내가 할 수 있는 모든 능력을 다 써서 미션을 구현해보자' 라는 마음가짐을 갖고 시작했다.

 

정답인 코드는 없지만, 코드를 더 나은 방향으로 작성하려면 어떻게 해야하지? 계속 생각했고, 미션을 완료하는 시점에 머릿속에는 몇 가지 의문이 남았다.

  • 클래스의 분리는 어디까지?
  • 테스트 코드는 어디까지?
  • void를 지향해야 하는가? return 값을 반환하는게 좋은 코드인가?

라는 의문점이 들었고, 프리코스 커뮤니티를 통해 사람들과 토론을 하며 하루 빨리 문제에 대해 이야기를 나누고 싶다!!! (빨리 월요일이 왔으면,,, 궁금하다)

 

https://github.com/CodingMasterLSW/java-calculator-7

 

GitHub - CodingMasterLSW/java-calculator-7

Contribute to CodingMasterLSW/java-calculator-7 development by creating an account on GitHub.

github.com

branch - CodingMasterLSW