[문자열 덧셈 계산기] 김민하 미션 제출합니다.#1118
Open
kmha27 wants to merge 10 commits intowoowacourse-precourse:mainfrom
Open
Conversation
입력 문자열을 한 글자씩 순회하며 숫자를 추출하고 공백·연속 구분자·잘못된 문자를 감지하도록 구현했습니다. 기본 구분자(, :) 기반으로 정상 동작을 검증하는 단위 테스트를 작성해 NumberExtractor의 계약을 고정했습니다. 테스트 시나리오: - 기본 구분자(, :)로 분리 시 [1,2,3] 추출 - 연속 구분자 발생 시 예외 (예: "1,,2") - 공백 포함 입력 시 예외 (예: "1, 2") - 시작/끝 구분자 허용 (예: ",1,2," → [1,2])
StringCalculator가 NumberExtractor를 활용해 입력 문자열을 파싱하고 합산하도록 통합했습니다. 기본 구분자(, :) 기반 입력을 처리하며, Application에서 Console 입력을 받아 결과를 출력하는 최소 실행 구조를 완성했습니다. 의도: - 로직과 입출력 분리를 유지하며 책임 명확화 - 추후 커스텀 구분자 및 예외 검증 로직 확장을 위한 구조 확립
입력 문자열에서 //과 개행 문자 사이의 한 글자를 커스텀 구분자로 인식해 기본 구분자 목록에 추가했습니다. - 기본 구분자: , : - 커스텀 구분자: 한 글자만 허용 - 예외 처리: 커스텀 구분자가 2글자 이상 또는 개행 누락 시 IllegalArgumentException 발생
입력 문자열의 규칙을 검사하도록 InputValidator를 추가했습니다. - 입력은 숫자로 시작하고 숫자로 끝나야 함 - 공백, 음수, 연속 구분자 포함 시 예외 발생 - 구분자 목록을 전달받아 형식 검증 수행
Console API를 사용해 문자열을 입력받고 결과를 출력하는 실행 흐름을 구현했습니다. StringCalculator를 호출해 입력값을 계산하고, 예외 발생 시 프로그램이 종료되지 않도록 설계했습니다.
통합 테스트(ApplicationTest) 및 단위 테스트(DelimiterParserTest, NumberExtractorTest)를 정리했습니다. - 시작/끝 구분자 예외 검증 추가 - 커스텀 구분자 및 연속 구분자 테스트 포함 - 전체 23개 테스트 케이스 통과 확인
테스트 입력값이 //;\n 형태로 들어오는 경우 실제 개행 문자로 변환하여 커스텀 구분자 헤더가 정상 파싱되도록 수정.
DelimiterParser에서 얻은 구분자 목록을 그대로 전달하도록 메서드 시그니처와 호출부를 정리. - StringCalculator: numbersPart, delimiters 배선 - NumberExtractor: splitToNumbers(numbersPart, delimiters) 시그니처 확정 동작 변경 없이 코드 의도를 명확히 함.
문자열 덧셈 계산기 프로그램의 전체 기능을 구현하고 설계 의도를 README.md에 정리했습니다. - 기본 및 커스텀 구분자 파싱 기능 구현 - 입력값 검증 로직 분리(InputValidator) - 숫자 추출 및 합산(NumberExtractor, StringCalculator) - 예외 처리 기준: 공백, 음수, 연속 구분자, 시작·끝 구분자 - TDD 기반 단위 테스트 및 통합 테스트 총 23개 케이스 통과 - README에 개발 과정, 설계 방향, 커밋 의도, 회고 포함
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.