프로그래밍에서 유효성 검사(Validation)는 입력된 데이터가 특정 조건이나 기준을 충족하는지 확인하는 과정이다. 유효성 검사는 사용자 입력의 정확성을 보장하고, 시스템 오류를 방지하며, 데이터 무결성을 유지하기 위해 매우 중요하다.
1. 공백 문자 처리
지난 블로그에서 간단한 계산기를 만들었다.

만약 텍스트박스에 숫자를 넣지 않고 ‘버튼’을 입력하면 어떻게 될까?

‘The input string '' was not in a correct format’ 라는 오류가 발생하게 된다. 입력받은 값이 없기 때문에 문자열을 정수형으로 변환할 수 없다는 의미이다.
using System; using System.Windows.Forms; namespace HelloCsharpWin { public partial class Calculator : Form { public Calculator() { InitializeComponent(); } private void HelloLabel_Click(object sender, EventArgs e) { int num1 = 1; int num2 = 2; int sum = 1 + 2; HelloLabel.Text = sum.ToString(); } private void btn1_Click(object sender, EventArgs e) { if (num1.Text == "" || num2.Text == "") { MessageBox.Show("텍스트박스에 숫자를 입력하세요."); return; // return 을 사용하면 아래 코드를 사용하고 바로 함수를 종료시킴. // 부모 클래스의 리턴타입이 void 면 return만 적으면 되고, int 타입 등 타입이 있다면 해당 타입의 결과를 리턴해야 함 } int number1 = Convert.ToInt32(num1.Text); // 텍스트박스로 입력받는 값은 String 값이기 때문에 Convert 함수를 사용해 형변환 int number2 = Convert.ToInt32(num2.Text); int sum = number1 + number2; //sum1.Text = Convert.ToString(sum); 동일 sum1.Text = sum.ToString(); } private int Add(int number1, int number2) { int sum = number1 + number2; return sum; } } }
if문을 사용해 텍스트 박스에 값이 없을 경우에 대한 처리를 해준다.
텍스트 박스 num1 와 num2 에 값이 입력되지 않으면 메세지 박스를 출력한다.
메세지박스는 using System.Windows.Forms; 라는 네임스페이스를 정의하면 사용할 수 있는 함수이다.

프로그램을 실행 후 버튼을 누르면 메세지 박스가 출력된다.
2. 공백 문자 처리
만약 빈 문자(””)가 아니라 공백 문자(” ”)가 입력되면 어떨까? 공백 문자(” “)는 빈문자(””)와 다르게 인식하기 때문에 IF 조건문을 타지 않는다.
이때 String.IsNullOrWhiteSpace() 메서드를 사용한다. String.IsNullOrWhiteSpace() 메서드는 문자열이 공백 혹은 빈 문자열인 경우를 확인하는데 사용한다.
using System; using System.Windows.Forms; namespace HelloCsharpWin { public partial class Calculator : Form { public Calculator() { InitializeComponent(); } private void HelloLabel_Click(object sender, EventArgs e) { int num1 = 1; int num2 = 2; int sum = 1 + 2; HelloLabel.Text = sum.ToString(); } private void btn1_Click(object sender, EventArgs e) { if (String.IsNullOrWhiteSpace(num1.Text) || String.IsNullOrWhiteSpace(num2.Text)) { MessageBox.Show("텍스트박스에 숫자를 입력하세요."); return; // return 을 사용하면 아래 코드를 사용하고 바로 함수를 종료시킴. // 부모 클래스의 리턴타입이 void 면 return만 적으면 되고, int 타입 등 타입이 있다면 해당 타입의 결과를 리턴해야 함 } int number1 = Convert.ToInt32(num1.Text); // 텍스트박스로 입력받는 값은 String 값이기 때문에 Convert 함수를 사용해 형변환 int number2 = Convert.ToInt32(num2.Text); int sum = number1 + number2; //sum1.Text = Convert.ToString(sum); 동일 sum1.Text = sum.ToString(); } private int Add(int number1, int number2) { int sum = number1 + number2; return sum; } } }
IF 조건문을 String.IsNullOrWhiteSpace 로 변환 후 프로그램을 실행한다.


스페이스로 공백을 입력 후 버튼을 누르면 메세지 박스가 출력된다.
3. 타입 변환이 되지 않는 경우
만약 텍스트 박스에 숫자가 아니라 문자를 입력하면 어떻게 될까? INT 형으로 형 변환이 되지 않아 오류가 발생하게 될 것이다. 이때 int.TryParse() 라는 메서드를 사용한다.

int.TryParse() 는 위의 사진에서 확인할 수 있듯이, 두 개의 매개변수를 변수를 받고, bool 타입을 리턴한다. 즉 첫 번째 매개변수로 받은 값이 숫자로 변환이 가능하면,두 번째 매개변수에 넣으면서 true를 리턴하고, 만약 첫 번째 매개변수로 받은 값이 숫자로 변환이 되지 않으면 false 를 리턴한다.
using System; using System.Windows.Forms; namespace HelloCsharpWin { public partial class Calculator : Form { public Calculator() { InitializeComponent(); } private void HelloLabel_Click(object sender, EventArgs e) { int num1 = 1; int num2 = 2; int sum = 1 + 2; HelloLabel.Text = sum.ToString(); } private void btn1_Click(object sender, EventArgs e) { int number1 = 0; // number1 와 number2를 0으로 선언 후 초기화한다. int number2 = 0; if (String.IsNullOrWhiteSpace(num1.Text) || String.IsNullOrWhiteSpace(num2.Text)) { MessageBox.Show("텍스트박스에 숫자를 입력하세요."); return; // return 을 사용하면 아래 코드를 사용하고 바로 함수를 종료시킴. // 부모 클래스의 리턴타입이 void 면 return만 적으면 되고, int 타입 등 타입이 있다면 해당 타입의 결과를 리턴해야 함 } if(int.TryParse(num1.Text, out number1) == false || int.TryParse(num2.Text, out number2) == false) { MessageBox.Show("텍스트 박스에는 숫자만 입력 가능합니다."); return; // return 을 사용하면 아래 코드를 사용하고 바로 함수를 종료시킴. } number1 = Convert.ToInt32(num1.Text); // 텍스트박스로 입력받는 값은 String 값이기 때문에 Convert 함수를 사용해 형변환 number2 = Convert.ToInt32(num2.Text); int sum = number1 + number2; //sum1.Text = Convert.ToString(sum); 동일 sum1.Text = sum.ToString(); } private int Add(int number1, int number2) { int sum = number1 + number2; return sum; } } }

프로그램 실행 시 문자를 입력하면 메세지 박스 창이 뜬다.
Share article