앞부분을 읽은 결과와 전체 승인 여부는 다릅니다
수량을 입력하는 칸에 12px가 들어왔다고 합시다. AI가 파스인트(parseInt, 문자열 앞부분을 정수로 읽는 함수)로 바꾸면 12가 나오니 정상이라고 설명할 수 있습니다. 그러나 숫자 12를 얻은 과정과 원래 입력 전체를 허용해도 되는지는 서로 다른 질문입니다.
parseInt('12px', 10)은 앞에서 십진 숫자로 읽을 수 있는 부분을 읽고 p에서 멈춥니다. 결과 12에는 뒤의 px를 읽지 않았다는 별도 표시가 붙지 않습니다. 그래서 변환된 숫자만 기록하면 원래 입력의 형식 문제를 놓칠 수 있습니다.
소수점과 지수 표기도 대조합니다
활동에서 12.5를 선택하면 parseInt는 소수점 앞의 12를 돌려줍니다. Number는 전체 문자열을 숫자 표기로 해석해 12.5가 됩니다. 어느 함수를 쓸지는 소수를 허용하는 입력인지에 따라 달라집니다.
1e3에서는 parseInt의 결과가 1이고 Number의 결과는 1000입니다. 십진 정수 읽기는 e에서 멈추지만 Number의 숫자 표기에서는 지수가 해석됩니다. AI가 두 함수를 언제나 같은 변환이라고 설명한다면 이 작은 대조로 차이를 확인할 수 있습니다.
빈 입력이 0으로 바뀌는 경우도 살핍니다
입력란을 모두 지워 보세요. parseInt의 결과는 NaN(낸, 숫자 결과를 얻지 못했음을 나타내는 값)이고 Number의 결과는 0입니다. 공백만 남겨도 Number는 0을 돌려줍니다.
빈칸을 수량 0과 같은 뜻으로 받기로 정한 적이 없다면 변환 전에 누락 여부를 확인해야 합니다. Number가 숫자를 돌려준다는 조건만으로 사용자가 값을 입력했다고 판단할 수 없습니다. NaN도 일반적인 오류 문구가 아니라 프로그램 안에서 구별해야 할 특별한 숫자 값입니다.
학습용 입력 규칙을 명시해서 비교합니다
세 번째 결과는 앞뒤 공백을 제거한 뒤 선택적인 + 또는 - 부호와 하나 이상의 0~9 숫자만 허용합니다. 여기서 음수 부호는 키보드의 하이픈(-)이며, 모양이 비슷한 수학 기호(−)는 이 입력 규칙에 포함하지 않습니다. 이 규칙에서 12와 -12는 통과하고 12px·12.5·1e3·빈칸은 통과하지 않습니다. 이것은 이 실험이 정한 정수 입력 형식입니다.
문자열을 직접 바꾸면서 세 결과를 먼저 예상한 뒤 확인하세요. 형식 통과는 입력 값이 업무상 허용된다는 뜻까지 포함하지 않습니다. 예를 들어 -12가 정수 형식에는 맞아도 구매 수량으로는 부적절할 수 있습니다. 최솟값·최댓값·안전한 정수 범위 등은 별도 조건입니다.
변환 전에 무엇을 허용할지 결정합니다
이 활동은 최대 마흔 자의 학습용 문자열을 처리하며 결과를 서버에 보내지 않습니다. 큰 정수의 정밀도와 다른 언어의 파싱 규칙은 별도의 검토 대상입니다. 화면의 형식 검사만 실제 서비스 검증 코드로 복사해서는 안 됩니다.
AI의 보고에는 원래 문자열, 진법, 사용한 함수, 변환 결과, 허용 형식을 나누어 적으세요. 잘못된 입력에서 일부 숫자를 얻는 기능이 필요한 상황도 있습니다. 문제는 그 기능을 전체 입력 검증이라고 부르는 데 있습니다.

