Skip to content

Conversation

@kmha27
Copy link

@kmha27 kmha27 commented Oct 20, 2025

No description provided.

kmha27 and others added 10 commits October 20, 2025 22:04
입력 문자열을 한 글자씩 순회하며 숫자를 추출하고 공백·연속 구분자·잘못된 문자를 감지하도록 구현했습니다.
기본 구분자(, :) 기반으로 정상 동작을 검증하는 단위 테스트를 작성해 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에 개발 과정, 설계 방향, 커밋 의도, 회고 포함
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant