우아한 테크코스의 프리코스가 오늘(10/15) 오후 3시에 시작됐다. 1주차가 끝날 때까지 이 글이 올라가지는 않겠지만 하루하루 드는 생각을 바로 작성하는 게 좋을 것 같아서 글을 작성해본다. 할 일이 너무 많아서 걱정인데 꼭 제대로 구현해보는 것을 목표로 !!! 시작해보자!
우선 우아한테크코스는 크게 네 가지를 요구하고 있다.
- 과제 진행 요구 사항
- 기능 요구 사항
- 입출력 요구 사항
- 프로그래밍 요구 사항
과제 진행 요구 사항에 따르면 커밋 메세지 작성 규칙은 AngularJS Git Commit Message Conventions을 따라 작성하라고 나와있다. 이건 추후에 살펴보겠다.
우선 현재 내가 가장 먼저 해야할 일은 요구 사항을 보고 구현할 기능 목록을 정리하는 것이다. 이 중에서 구현을 할 때 갖춰야할 요구 사항들은 2,3,4번이다.
기능 요구 사항과 입출력 요구 사항은 다음과 같다.
기능 요구사항
입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.
- 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다.
예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6- 앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다.
예를 들어 "//;\n1;2;3"과 같이 값을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.- 사용자가 잘못된 값을 입력할 경우 "[ERROR]"로 시작하는 메시지와 함께 Error를 발생시킨 후 애플리케이션은 종료되어야 한다.
입출력 요구사항
구현해야할 기능들을 정리해보자.
1. 구분자 판별하기
1-1) 기본 구분자 쉼표(,),따옴표(:)를 기준으로 문자열을 분리한다.
1-2) 커스텀 구분자를 확인하고 커스텀 구분자를 기준으로 문자열을 분리한다.
2. 숫자 더하기
분리된 문자열을 숫자로 변환한 후 합을 구한다.
3. 에러 발생
3-1)커스텀 구분자 및 구분자, 숫자가 아닌 문자열이 존재하는 경우 에러를 발생시키고 종료한다.
3-2) 구분자 사이의 수가 음수일 경우 에러를 발생시키고 종료한다.
3-3) 구분자 사이가 숫자가 아닌 문자열일 경우 에러를 발생시키고 종료한다.
4. 입출력
위 사진에 맞게 출력하기
내 마음대로 작성한건데 이런 형식대로 구현해야 할 기능들을 작성해도 될지 의문이다.
우선 구분자를 판별하는 함수 하나, 숫자를 더해주는 함수 하나를 만들 생각이다.
그리고 에러가 발생했을 경우엔 return을 시켜 종료하려고 한다.
라이브러리는 @woowacourse/mission-utils에서 제공하는 Console API를 사용해서 구현해야 한다고 나와있다.(자세한 건 링크 들어가서 보세요!)
평소에 쓰던 console.log 같은 기능을 쓰면 안된다는 것이다!
그래서 이 라이브러리는 어떻게 사용하는 것인지 찾아보았다.

우리가 사용해야 할 함수들은 이게 전부다.
현재 가장 걱정되는건 자바스크립트 코드 컨벤션과 커밋 규칙에 따라 커밋을 작성해야 한다는 것 ...!! 지금까지는 내 마음대로, 친구들과 정하는대로 작성을 했기 때문에 이런 생각, 고민을 하고 작성한 적이 없다.
협업을 하려면 필수적으로 배워야하는 것이니 이번 기회에 제대로 배워보자 !!
이번주차 과제가 끝나면 올릴 예정! 마무리땐 어떻게 변할지 기대된다!