C# ์ฝ๋๋ฅผ ๋ณด๋ค๊ฐ String.IsNullOrEmpty()๊ฐ ์ฌ์ฉ๋ ๋ถ๋ถ์ ๋ดค๋ค. ์ด ์ฝ๋๋ฅผ ์ ๋๋ก ์ดํดํ๋ ค๋ฉด String.IsNullOrEmpty()๊ฐ ์ ์ฐ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ด ๋ฉ์๋๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ์์์ผ ํ ๊ฒ ๊ฐ์์ ์ ๋ฆฌํด๋ณธ๋ค.
1. String.IsNullOrEmpty()๋?
String.IsNullOrEmpty()๋ ๋ฌธ์์ด์ด null์ด๊ฑฐ๋ ๋น ๋ฌธ์์ด("")์ธ์ง ํ์ธ ํ ๋ ์ฌ์ฉํ๋ C#์ ์ ์ ๋ฉ์๋๋ค.
์ด ๋ฉ์๋๋ ๋ค์ ๋ ๊ฐ์ง ๊ฒฝ์ฐ์ true๋ฅผ ๋ฐํํ๋ค.
- ๋ฌธ์์ด์ด null์ผ ๋
- ๋ฌธ์์ด์ด ๋น ๋ฌธ์์ด("")์ผ ๋
๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ false๋ฅผ ๋ฐํํ๋ค. ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด null๊ณผ ๋น ๋ฌธ์์ด์ ๋ฐ๋ก๋ฐ๋ก ์ฒดํฌํ ํ์ ์์ด ํ ๋ฒ์ ๊ฒ์ฌํ ์ ์์ด ์ฝ๋๊ฐ ๋ ๊น๋ํ๊ณ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋ค.
1.1 String.IsNullOrEmpty()๋ฅผ ์ฐ๋ ์ด์
์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋๋ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด ์๊ธธ ์ ์๋ค:
- ๋ฐ์ดํฐ๊ฐ ์์ง ์ด๊ธฐํ๋์ง ์์์ null ์ํ์ผ ๋
- ์ฌ์ฉ์๊ฐ ์๋ฌด ๊ฐ๋ ์ ๋ ฅํ์ง ์์ ๋น ๋ฌธ์์ด("")์ผ ๋
์ด ๋๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ํ ๋ฒ์ ์ฒ๋ฆฌํด์ผ ํ ๋ ์ ์ฉํ๋ค.
String.IsNullOrEmpty()๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋์ฒ๋ผ ๋ฐ๋ก๋ฐ๋ก ์กฐ๊ฑด์ ๊ฒ์ฌํด์ผํ๋ค:
if(myString == null || myString == "")
{
Console.WriteLine("๋ฌธ์์ด์ด null์ด๊ฑฐ๋ ๋น์ด ์์ต๋๋ค.");
}
์ ์ฝ๋๋ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ฌธ์ ๋ ์์ง๋ง, ์กฐ๊ฑด์ด ๋์ด๋ ์๋ก ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง ์ ์๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์ String.IsNullOrEmpty()๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊น๋ํ๊ฒ ์์ฑํ ์ ์๋ค:
if(String.IsNullOrEmpty(myString))
{
Console.WriteLine("๋ฌธ์์ด์ด null์ด๊ฑฐ๋ ๋น์ด ์์ต๋๋ค.");
}
2. ์ฝ๋ ์์ : String.IsNullOrEmpty()์ ์ฌ์ฉ๋ฒ: ๊ธฐ๋ณธ ์ ๋ ฅ๊ฐ ํ์ธ
foreach(String val in initCheckList)
{
if(String.IsNullOrEmpty(val.ToString()))
throw new UserException("๊ณ์ฝ์ ์ ๋ณด๋ฅผ ํ์ธํด ์ฃผ์ธ์.");
}
if(String.IsNullOrEmpty(paymentType))
throw new UserException("๊ฒฐ์ ๋ฐฉ์์ ์ ํํด ์ฃผ์ธ์.");
์ด ์ฝ๋์ ๋ชฉ์ ์ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ ์ ๋ ฅ๊ฐ์ด ๋น์ด ์๋์ง(null ๋๋ "") ํ์ธํ๋ ๊ฒ์ด๋ค.
๋ค์๊ณผ ๊ฐ์ ํ๋ฆ์ผ๋ก ๋์ํ๋ค.
- initCheckList ๊ฒ์ฌ
- initCheckList๋ ๊ณ์ฝ์ ์ ๋ณด(์: ์ด๋ฆ, ์๋ ์์ผ)๋ฅผ ๋ด๊ณ ์๋ ๋ฌธ์์ด ๋ฐฐ์ด์ด๋ค.
- foreach ๋ฃจํ๋ฅผ ์ฌ์ฉํด์ ๋ฆฌ์คํธ์ ๊ฐ ํญ๋ชฉ(val)์ด null ๋๋ ๋น ๋ฌธ์์ด("")์ธ์ง ๊ฒ์ฌํ๋ค.
- ๋ง์ฝ ๊ฐ์ด ๋น์ด ์์ผ๋ฉด, UserException์ ๋์ ธ์ ์ฌ์ฉ์์๊ฒ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ค.
- paymentType๊ฒ์ฌ
- ๊ฒฐ์ ๋ฐฉ์(์: ์นด๋, ๊ณ์ข์ด์ฒด) ์ ๋ํ๋ด๋ ๋ณ์์ธ paymentType์ด ๋น์ด ์๋์ง ๊ฒ์ฌํ๋ค.
- ๋น์ด ์๋ค๋ฉด ๋์ผํ๊ฒ UserException์ ๋์ง๋ค.
2.1 ๋ฐ๊ฒฌํ ๋ฌธ์ ์
์ฝ๋๋ ์ ์๋ํ ๊ฒ ๊ฐ์ง๋ง, ๊ฐ์ ํ ์ ์๋ ๋ช ๊ฐ์ง ํฌ์ธํธ๋ฅผ ๋ฐ๊ฒฌํ๋ค.
- val.ToString()์ ๋ถํ์์ฑ
- initCheckList๊ฐ ์ด๋ฏธ ๋ฌธ์์ด(string)ํ์ ์ด๋ผ๋ฉด val.Tostring()์ ํ์์๋ค.
- ๊ทธ๋ฅ String.IsNullOrEmpty(val)๋ก ๊ฒ์ฌํด๋ ์ถฉ๋ถํ๋ค.
- ๊ณต๋ฐฑ ๋ฌธ์์ด ์ฒ๋ฆฌ
- ์ฝ๋์์ String.IsNullOrEmpty()๋ฅผ ์ฌ์ฉํ์ง๋ง, ๊ณต๋ฐฑ๋ง ํฌํจ๋ ๋ฌธ์์ด(์: " ")์ ๊ฑธ๋ฌ์ง์ง ์๋๋ค.
- ๊ณต๋ฐฑ ๋ฌธ์์ด๋ ์ ํจํ์ง ์์ ๊ฐ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค๋ฉด, String.IsNullOrWhiteSpace()๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ ํฉํ๋ค.
2.2 ๊ฐ์ ๋ ์ฝ๋
์ ๋ฌธ์ ๋ฅผ ๊ณ ๋ คํด์ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํ๊ณ ์์ ์ ์ธ ์ฝ๋๋ก ๊ฐ์ ํด๋ดค๋ค:
foreach(String val in initCheckList)
{
if(String.IsNullOrWhiteSpace(val))
throw new UserException("๊ณ์ฝ์ ์ ๋ณด๋ฅผ ํ์ธํด ์ฃผ์ธ์.");
}
if(String.IsNullOrWhiteSpace(paymentType))
throw new UserException("๊ฒฐ์ ๋ฐฉ์์ ์ ํํด ์ฃผ์ธ์.");
์์ ํ ์ด์ :
- val.ToString()์ ๊ฑฐ
- initCheckList์ ํ์ ์ด string์ด๋ฏ๋ก, val์ ์ด๋ฏธ ๋ฌธ์์ด์ด๋ค. ToString() ํธ์ถ์ ํ์ ์๋ค.
- String.IsNullOrWhiteSpace() ์ฌ์ฉ
- ๊ณต๋ฐฑ ๋ฌธ์์ด๋ ๋น์ด ์๋ ๊ฐ์ผ๋ก ๊ฐ์ฃผํด์ผ ํ๊ธฐ ๋๋ฌธ์ String.IsNullOrWhiteSpace()๋ฅผ ์ฌ์ฉํ๋ค. ์ด ๋ฉ์๋๋ null, ๋น ๋ฌธ์์ด(""), ๊ณต๋ฐฑ ๋ฌธ์์ด(" ")์ ๋ชจ๋ ๊ฑธ๋ฌ๋ธ๋ค.
2.3 ์์ธ ์ฒ๋ฆฌ ์ ๋ต
throw new UserException()์ผ๋ก ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ๋ฐฉ์์ ์ ์ ํด ๋ณด์ด์ง๋ง, ๋ง์ฝ ๊ฒ์ฆ ํญ๋ชฉ์ด ๋ง์์ง๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ํ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ฝ๋๊ฐ ๋ฉ์ถ ๊ฒ์ด๋ค. ์ด๋ฐ ์ํฉ์์ ๋ชจ๋ ์ ๋ ฅ๊ฐ์ ํ ๋ฒ์ ๊ฒ์ฆํ๊ณ , ๋ฌธ์ ๊ฐ ๋ ํญ๋ชฉ์ ํ๊บผ๋ฒ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํด๋ณผ ํ์๊ฐ ์๋ค.
๋ค์์ ๋ชจ๋ ์ค๋ฅ๋ฅผ ๋ชจ์์ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ค:
List<string> errors = new List<string>();
foreach(String val in initCheckList)
{
if(String.IsNullOrWhiteSpace(val))
errors.Add("๊ณ์ฝ์ ์ ๋ณด๋ฅผ ํ์ธํด ์ฃผ์ธ์.");
}
if(String.IsNullOrWhiteSpace(paymentType))
errors.Add("๊ฒฐ์ ๋ฐฉ์์ ์ ํํด ์ฃผ์ธ์.");
if(errors.Count > 0)
{
throw new UserException(string.Join(Environment.NewLine, errors));
}
์ฅ์ :
- ๋ชจ๋ ์ ๋ ฅ๊ฐ์ ๊ฒ์ฆํ๊ณ , ๋ฌธ์ ๊ฐ ๋๋ ํญ๋ชฉ์ ํ๊บผ๋ฒ์ ์ฌ์ฉ์๊ฐ์ ์๋ ค์ค ์ ์๋ค.
- ์ฌ์ฉ์ ์ ์ฅ์์ ๋ ํธ๋ฆฌํ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ค.
2.4 ๋ฐฐ์ด์
์ด ์ฝ๋๋ฅผ ํตํด String.IsNullOrEmpty()์ String.IsNullOrWhiteSpace()์ ์ฐจ์ด๋ฅผ ๋ช ํํ ์ดํดํ ์ ์์๋ค. ๋ํ, ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ์์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ๊ณ ๋ฏผํ ์ ์์๋ค.
์์ผ๋ก ์ด๋ฐ ๊ฒ์ฆ ์ฝ๋๊ฐ ๋์จ๋ค๋ฉด, ๊ณต๋ฐฑ ๋ฌธ์์ด ์ฒ๋ฆฌ์ ์๋ฌ ๋ฉ์์ง ์ถ๋ ฅ ๋ฐฉ์์ ์ ๊ฒฝ ์ฐ๋ฉด์ ๋ ๋์ ์ฝ๋๋ฅผ ์์ฑํด๋ด์ผ๊ฒ ๋ค.๐