본문 바로가기

부트캠프

[우테코 - 1주차] 10.16(수) 간단한 원시 코드 작성

728x90

1. 시작하기 전에 앞서...

1) 계획 세우기

  • 오늘은 어제 만든 기능 명세서를 토대로 전체적인 코드를 한번 짜볼 것이다.
  • 전체적인 코드를 짜면서 MVC 패턴을 어떻게 구성할건지 생각하면서 짜보겠다.

2. 몰입

  • 처음부터 MVC 패턴에 맞게 코드를 짜면 좋겠으나 이번에 처음으로 MVC 패턴에 맞게 코드를 짜볼것이기 때문에 감이 안잡혔다.
    • 때문에, 일단 전체적인 코드를 한번 짜고 이를 리팩토링하는 형태로 코드를 짜기로 했다.

1) 코드 구상

  • 전체적인 구상은 아래와 같이 했다.
    • 사용자가 계산기에 입력
    • 입력받은 문자열을 구분자가 있는지 확인
      • 예외 체크
    • 문자열의 구분자 앞뒤에 숫자들을 배열로 split이나 token을 사용해 분리
      • 단순하게 split이나 ,token을 사용하기보다는 정규식을 사용
    • 배열로 분리한 숫자들이 예외가 있나 체크
    • String → Int로 형 변환
    • 배열 합 연산
    • 출력

2) 코드 짜는 과정에서 생긴 문제

  • 정규식에 대해 정확하게 알지 못하기 때문에 추가적으로 자세하게 알아봤다.
  • 해당 내용은 블로그 링크를 따라가면 정리해뒀다.

[JAVA] 정규 표현식

 

[JAVA] 정규 표현식

정규표현식이란?프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어 프로그램을 작성할 때 일정한 규칙을 가진 텍스트 문자열을 사용하는 경우, 정규 표현

lold2424.tistory.com

  • 이후 전반적인 코드를 짜고 나서 보니 기능 요규사항에 고민을 할게 생겼다.
  • 문제 기능 요구 사항에서 아래와 같이 되어있었다.
    • 그래서 실수도 포함인지 정수도 포함인지 매우 고민이 되었다.
      • → 두개 다 만들어 보기로 함
    • 우선 정수를 만들어서 코드를 전체적으로 짜고 나서 보니 실수는 double로 계산만 하면 되기 때문에 정수 먼저 코드를 다 짰다.
      • MVC 패턴으로 리팩토링 할 예정!

3. 느낀 점

1) 기능 명세서의 중요성

사실 맨처음 계산기를 구현하라기에 간단한 마음으로 접근했다.

하지만 기능 요구사항에 맞춰 짜다보니 이것저것 고려할게 많았다.

평소에는 코드를 짤 때 기능 요구사항 같은걸 먼저 작성하기보단 무작정 코드를 짜는 편인데 이번 기회에 기능 요구사항을 생각하면서 코드를 짜니 코드가 더 짜임새 짤 수 있었던것 같다.

뿐만 아니라, 코드를 완성하고 난 뒤 예외나, 오류발생도 더 적게 발생했다.

앞으로도 코드를 짤 때 무작정 짜기보다는 고려해야 할 부분을 직접 작성하고 이를 토대로 참고하면서 코드를 짜도록 해야겠다.

2) 정규식에 대해 정확하게 알게됨

사실 정규식은 이전에 코테 연습을 통해 문제를 풀때 조금씩 사용했었다.

하지만, 그때마다 검색을 통해 필요한 기능만 복붙을 할 뿐이지 이번처럼 자세하게 어떤 기능이 어떤 역할을 하는지 처음 알게 되었다.

split을 정규식으로 여러가지를 쪼갠다거나 하는 기능 또한 이번에 처음 찾았다.

앞으로도 정규식을 사용해서 특정 문자를 찾거나 치환하는데 종종 유용하게 사용할 수 있을 것 같다.

아직 프리코스가 한참 남았는데도 불구하고 이전에 대강 알았던 부분에 대해 자세하게 습득 할 수 있는 날이었다.

앞으로도 이런 문제들이 닥쳐올텐데 그때마다 대강대강 흝어보지않고 상세하게 알아간 뒤 기록하면 좋겠다.

남은 기간 동안 나의 부실한 기초를 다시 튼튼하게 다질 수 있는 기회가 되기를 바란다!

728x90