์ต๊ทผ ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ํ๋ฉด์ '์, ์ด๋์ ํด๋ฆฐ ์ฝ๋๊ฐ ์ค์ํ๊ตฌ๋?'๋ฅผ ์จ๋ชธ์ผ๋ก ๊นจ๋ซ๊ฒ ๋์์ต๋๋ค. ๐คฏ
๋๊ฐ์ ๊ธฐ๋ฅ์ ํ๋๋ฐ๋ ์ฝ๋๊ฐ ์ค๋ณต๋์ด ์๊ณ , ๋ณ์๋ช ์ ์์๋ณผ ์ ์๊ณ , ํจ์ ํ๋๊ฐ ์ธ ๊ฐ์ง ์ผ์ ํ๊ณ ์๋ ๊ฑธ ๋ณด๊ณ โฆ ๊ฒฐ๊ตญ ์ฃผ๋ง์ ๋ฐ๋ฉํ๊ณ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํ๊ธฐ๋ก ๊ฒฐ์ฌํ์ต๋๋ค. ๋ด๊ฐ ๊ณ ํต๋ฐ์๋ ๋งํผ, ํ๋ฐฐ ๊ฐ๋ฐ์๋ค์ ์ข ๋ ๊ณ ํต๋ฐ๊ฒ ํ์!
๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ ํด๋ฆฐ ์ฝ๋์ ํต์ฌ ์์น๊ณผ ์ค์ฒ ๋ฐฉ๋ฒ์ ์ํธ ์๊ฒ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. ๐
ํด๋ฆฐ ์ฝ๋๋ ์ฝ๊ธฐ ์ฝ๊ณ , ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉฐ, ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ ์ฝ๋๋ฅผ ์๋ฏธํฉ๋๋ค. ํด๋ฆฐ ์ฝ๋์ ๋ชฉํ๋ ๋จ์ํ ๋์ํ๋ ์ฝ๋๊ฐ ์๋๋ผ, ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ฒ ์ดํดํ๊ณ ์์ ํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค.
์ดํดํ๊ธฐ ์ฌ์ด ๋ณ์๋ช ๊ณผ ํจ์๋ช ์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋์์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๋๋ค. ํ์ ํ ๋ ๋ณ์์ ํจ์๋ช ์ด ์ง๊ด์ ์ด์ง ์๋ค๋ฉด? ์ด์ ๋ถํฐ *"์ด ๋ณ์๋ ๋์ฒด ๋ญํ๋ ๋ ์์ด์ง?"*๋ผ๋ ์ฒ ํ์ ๊ณ ๋ฏผ์ด ์์๋ฉ๋๋ค. ์๋ชป๋ ๋ค์ด๋ฐ์ ์ฝ๋ ์ดํด๋๋ฅผ ๋จ์ด๋จ๋ฆฌ๊ณ , ๊ฐ๋ฐ์๋ค์ด ๋ถํ์ํ ์๊ฐ ๋์ ์ฝ๋๋ฅผ ํด์ํ๋ ๋ฐ ์ง์คํ๊ฒ ๋ง๋ญ๋๋ค.
๋ฐ๋ผ์ ๋ช ํํ๊ณ ์๋ฏธ ์๋ ์ด๋ฆ์ ์ง๋ ๊ฒ์ ๋จ์ํ ์คํ์ผ ๋ฌธ์ ๊ฐ ์๋๋ผ, ํ์ ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ํ ์์กด ์ ๋ต์ ๋๋ค.
tempData
๊ฐ์ ๋ชจํธํ ๋ณ์๋ช
๋ณด๋ค userSessionData
์ฒ๋ผ ์ญํ ์ด ๋ช
ํํ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์.usrInfo
๊ฐ์ ์ ๋งคํ ์ด๋ฆ๋ณด๋ค userInformation
์ด ๊ฐ๋
์ฑ์ด ํจ์ฌ ์ข์ต๋๋ค.getUserName()
, fetchUserName()
, retrieveUserName()
๊ฐ์ ํผ๋์ ์นด์ค์ค๋ฅผ ํผํ๊ธฐ ์ํด ํ ๋ด ์ปจ๋ฒค์
์ ์ ํ๊ณ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.isBooleanFlag
๊ฐ์ ๋ณ์๋ช
๋ณด๋ค๋ isActive
์ฒ๋ผ ๊ฐ๊ฒฐํ๊ณ ๋ช
ํํ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์.๊ฒฐ๋ก ์ ์ผ๋ก, ์ข์ ๋ค์ด๋ฐ์ ๊ฐ๋ฐ์๊ฐ ๋๋ฃ๋ค์๊ฒ ๋จ๊ธฐ๋ ์ต๊ณ ์ ๋ฐฐ๋ ค์ด์, ๋ฏธ๋์ ๋ ์์ ์ ์ํ ๋ณดํ์ ๋๋ค. ์ง๊ธ ๋น์ฅ์ ์ฌ์ํด ๋ณด์ด๋๋ผ๋, ์ฝ๋๊ฐ ์ปค์ง์๋ก ์ด ์ฐจ์ด๋ ์ด๋ง์ด๋งํ๊ฒ ์ปค์ง๋๋ค!
๐ซ ๋์ ์์ :
int a = 5; // a๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ๋ชจํธํจ
String str = "Hello"; // str๋ณด๋ค ์๋ฏธ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ ๊ฒ
โ ์ข์ ์์ :
int maxRetryCount = 5;
String welcomeMessage = "Hello";
โ๏ธ ์ค์ฒ ๋ฐฉ๋ฒ:
ํ๋์ ํจ์๊ฐ ์ฌ๋ฌ ๊ฐ์ง ์ผ์ ํ๋ค๋ฉด? ์ด์ ๋ถํฐ ์ ๋ชฝ์ด ์์๋ฉ๋๋ค. ํจ์๊ฐ ์ด๊ฒ์ ๊ฒ ๋ค ํ๋ ค ํ๋ฉด ๊ฒฐ๊ตญ '๋ง๋ฅ'์ด ์๋๋ผ '๋ง์ ์ฐฝ์ด'๊ฐ ๋ฉ๋๋ค. ์ ์ง๋ณด์ํ ๋๋ง๋ค ์ด๋๋ฅผ ์์ ํด์ผ ํ ์ง ํท๊ฐ๋ฆฌ๊ณ , ๋ณ๊ฒฝํ ๋๋ง๋ค ์๋์น ์์ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๋๋ค. ๊ฒ๋ค๊ฐ, ๊ฐ์ ๋ก์ง์ ๋ ๋ค๋ฅธ ๊ณณ์์ ์ฌ์ฉํ๋ ค ํ๋ฉด? ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ์ ํฅ์ฐ์ด ํผ์ณ์ง๋ฉด์ ๊ธฐ์ ๋ถ์ฑ๊ฐ ์์ด๊ธฐ ์์ํฉ๋๋ค. ๊ฐ๋ฐ์๋ ๋ ์ด์ ๊ธฐ๋ฅ ์ถ๊ฐ๋ณด๋ค ๋ฒ๊ทธ ์์ ๊ณผ ์ฝ๋ ์ดํด์ ์๊ฐ์ ํ๋นํ๊ฒ ๋๊ณ , ๊ฒฐ๊ตญ '์ด ์ฝ๋ ๋๊ฐ ์งฐ๋?'๋ผ๊ณ ์์ผ๋ก ์ธ์น๋ ๋ ์ด ์ค๊ฒ ๋ฉ๋๋ค.
๊ธฐ์ตํ์ธ์! ํจ์๋ ๊ผญ ํ์ํ ์ผ๋ง ํด์ผ ํฉ๋๋ค. ํ๋์ ํจ์๊ฐ ํ๋์ ์ญํ ์ ์ํํ๊ฒ ๋ง๋ค๋ฉด, ์ฝ๋๊ฐ ๋ ์ฝ๊ธฐ ์ฌ์์ง๊ณ ์ ์ง๋ณด์๋ ํธ๋ฆฌํด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค๋, ๋ฏธ๋์ ๋น์ ์ด ์ฝ๋๋ฅผ ๋ณด๋ฉฐ ํ์จ ์ฌ์ง ์๊ฒ ๋ฉ๋๋ค.
๐ซ ๋์ ์์ :
public void processOrder(Order order) {
validateOrder(order);
saveToDatabase(order);
sendConfirmationEmail(order);
}
โ ์ข์ ์์ :
public void validateOrder(Order order) { /* ์ ํจ์ฑ ๊ฒ์ฌ */ }
public void saveToDatabase(Order order) { /* ๋ฐ์ดํฐ ์ ์ฅ */ }
public void sendConfirmationEmail(Order order) { /* ์ด๋ฉ์ผ ์ ์ก */ }
โ๏ธ ์ค์ฒ ๋ฐฉ๋ฒ:
๋๋ฌด๋ ๋น์ฐํ ์ด์ผ๊ธฐ์ง๋ง, ์ค๋ณต๋ ์ฝ๋๊ฐ ๋ง์ผ๋ฉด ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ด ๊ฒ์ ๋ถ ๋ณด๋ฏ ๋ปํ ์ผ์ ๋๋ค. ์ต๊ทผ ์ฌ์ฉ์ ์๋ฆผ ๊ธฐ๋ฅ์ ๋ฆฌํฉํ ๋งํ๋ค๊ฐ ๋์ผํ Java ์ฝ๋๊ฐ ๋ ๋ฒ์ฉ ์กด์ฌํ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๋๋ฐ, ํธ์์ ์๋ฆผ์ ๋ด์ฉ์ด ๋์ผํจ์๋ ๋ถ๊ตฌํ๊ณ ์ฝ๋๊ฐ ์ด์ค์ผ๋ก ์กด์ฌํ์ต๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ํ์ชฝ๋ง ์์ ํ๊ณ ๋ค๋ฅธ ์ชฝ์ ์์ ํ์ง ์๋ ์ค์๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๊ณ , ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋๋ง๋ค ๋ ๊ณณ์ ๋ชจ๋ ์์ ํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊น๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ง์ฝ QA ๋จ๊ณ์์ ํ์ชฝ๋ง ์์ ๋์๋ค๋ฉด? ์ด์ ๋ถํฐ ์ฝ๋์ ์ด์ํ๊ฐ ์์๋ฉ๋๋ค. ๋ ๋์ฐํ ๊ฒ์ ์ด๋ฐ ์ค์๋ค์ด ๋์ ๋๋ฉด์ ์ฝ๋์ ์ผ๊ด์ฑ์ด ๋ฌด๋์ง๊ณ , ๊ฒฐ๊ตญ ์ ์ง๋ณด์ ๋น์ฉ์ด ๋๋ฉ์ด์ฒ๋ผ ๋ถ์ด๋ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ฐ๋์ ๋ช ์ฌํฉ์๋ค: ์ค๋ณต ์ฝ๋๋ ์ ์ง๋ณด์์ ์ ์ด๋ฉฐ, ๊ธฐ์ ๋ถ์ฑ์ ์ง๋ฆ๊ธธ์ ๋๋ค!
๐ซ ๋์ ์์ :
int sum1 = a + b + c;
int sum2 = x + y + z;
โ ์ข์ ์์ :
public int calculateSum(int... numbers) {
return Arrays.stream(numbers).sum();
}
โ๏ธ ์ค์ฒ ๋ฐฉ๋ฒ:
๋์ ์์ ์ ์ ์๋์ด๋ถ๊ป์ ์ด๋ ๊ฒ ๋ง์ํ์ จ๋ค: "์ฃผ์์ ๋ค๋ ๊ฒ๋ ์ข์ง๋ง, ๋ค ์ฝ๋๊ฐ ์ฃผ์ ์์ด๋ ์ดํด๋ ๋งํผ ๋ช ํํ ๊ฒ์ด ๋ ์ค์ํ๋ค." ๊ทธ๋ฆฌ๊ณ ์๊ฐ์ด ์ง๋๋ฉด์ ์ด ๋ง์ด ์ผ๋ง๋ ํ์ค์ ์ธ ์กฐ์ธ์ธ์ง ๊นจ๋ซ๊ฒ ๋์๋ค.
์ค๋ฌด์์๋ ์ฝ๋๊ฐ ์ ๋ฐ์ดํธ๋ ๋๋ง๋ค ์ฃผ์์ ๊ฐฑ์ ํ๋ ์ผ์ด ์ฝ์ง ์๋ค. ๊ทธ๋ ๋ค ๋ณด๋ ์ค๋๋ ์ฃผ์์ด ์ฝ๋์ ๋ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒํ๊ณ , ๊ฒฐ๊ตญ '์ฃผ์์ ๋ฏฟ๋๋, ์ฝ๋๋ฅผ ๋ฏฟ๋๋'๋ผ๋ ์ฒ ํ์ ์ง๋ฌธ์ ์ง๋ฉดํ๊ฒ ๋๋ค. ๊ฐ์ฅ ์ข์ ํด๊ฒฐ์ฑ ์? ์ฃผ์์ด ํ์ ์์ ์ ๋๋ก ๋ช ํํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ!
ํ์ง๋ง, ๋๋๋ก ๋ถ๊ฐํผํ๊ฒ ๋ณต์กํ ๋ก์ง์ด ์กด์ฌํ ์ ์๋ค. ์ด๋ด ๋๋ JavaDoc์ ํ์ฉํ๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ด๋ค. JavaDoc์ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ์ ๋ฐ์ดํธ๋ ๋ ํจ๊ป ๋ฌธ์ํํ ์ ์๊ณ , ์ ์ง๋ณด์๋ ํ๊ฒฐ ํธํด์ง๋ค. ๊ฒฐ๊ตญ, ์ฝ๋๋ ์ฝ๊ธฐ ์ฝ๊ฒ, ์ฃผ์์ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๊ฒ! ์ด
๋ ๊ฐ์ง ์์น์ ๊ธฐ์ตํ์.
๐ซ ๋์ ์์ :
// ์ฌ์ฉ์์ ์ด๋ฆ์ ๊ฐ์ ธ์ด
String name = user.getName();
โ ์ข์ ์์ :
String userName = user.getName(); // ํน์ ํ ๋ก์ง์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ฃผ์์ ์ถ๊ฐ
โ๏ธ ์ค์ฒ ๋ฐฉ๋ฒ:
์์ธ ์ฒ๋ฆฌ๋ ์ฝ๋์ ์์ ์ฑ์ ๋์ด๋ ๊ฐ์ฅ ์ค์ํ ์์ ์ค ํ๋์ ๋๋ค. ์ด์ ํ๊ฒฝ์์๋ ์์ธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ด ๋ถ๊ฐํผํ๋ฉฐ, ์ด๋ ๊ฐ๋ฐ์๊ฐ ํต์ ํ ์ ์๋ ์ธ๋ถ API ํธ์ถ ์คํจ, ๋คํธ์ํฌ ๋ฌธ์ , ์ฌ์ฉ์ ์ ๋ ฅ ์ค๋ฅ ๋ฑ ๋ค์ํ ์ด์ ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์์ธ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋๋์ ๋ฐ๋ผ ์๋น์ค์ ์ ๋ขฐ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
์์ธ ์ฒ๋ฆฌ๋ฅผ ๋ช ํํ๊ฒ ํ๋ฉด:
๋ฐ๋ฉด, ์์ธ ์ฒ๋ฆฌ๊ฐ ๋ถ๋ช ํํ๋ฉด:
๊ฒฐ๋ก ์ ์ผ๋ก, ์์ธ ์ฒ๋ฆฌ๋ ๋จ์ํ try-catch ๋ธ๋ก์ ๋ฃ๋ ๊ฒ์ด ์๋๋ผ, ๋ฐ์ํ ์ ์๋ ๋ชจ๋ ์์ธ๋ฅผ ์์ํ๊ณ , ์ ์ ํ ๋์ ์ ๋ต์ ์๋ฆฝํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค. ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ๋ ๊ฐ๋ฐ์๋ ์ด์ ํ๊ฒฝ์์๋ ์ ๋ขฐ๋ฐ๋ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ต๋๋ค. ๐
๐ซ ๋์ ์์ :
try {
int result = 10 / 0;
} catch (Exception e) {
// ๋น catch ๋ธ๋ก
}
โ ์ข์ ์์ :
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.err.println("0์ผ๋ก ๋๋ ์ ์์ต๋๋ค: " + e.getMessage());
}
โ๏ธ ์ค์ฒ ๋ฐฉ๋ฒ:
Exception
์ผ๋ก ์ฒ๋ฆฌํ์ง ๋ง ๊ฒ).ํด๋ฆฐ ์ฝ๋๋ ๋จ์ํ ์คํ์ผ ๊ฐ์ด๋๊ฐ ์๋๋ผ, ์ ์ง๋ณด์์ ํ์ฅ์ฑ์ ๊ณ ๋ คํ ๊ฐ๋ฐ ์์น์ ๋๋ค. ์ข์ ์ฝ๋ ์ต๊ด์ ๊ธฐ๋ฅด๋ฉด ๊ฐ๋ฐ ์๋๋ฟ๋ง ์๋๋ผ ํ์ ๊ณผ์ ์์๋ ๋ง์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
โ ๋ช
ํํ ๋ณ์๋ช
๊ณผ ํจ์๋ช
์ ์ฌ์ฉํ๋ผ.
โ ํ๋์ ํจ์๋ ํ๋์ ์ญํ ๋ง ์ํํ๋๋ก ํ๋ผ.
โ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ๋ผ.
โ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฝ๋๋ก ์ฃผ์์ ์ต์ํํ๋ผ.
โ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ๋ช
ํํ ํ๊ณ , ์์ ์ ์ธ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ผ.
์ต์ํ ์ 5๊ฐ์ง๋ ๊ผญ ์งํค๋ฉด์ ์ฝ๋ฉํฉ์๋ค!
์ด์ ๋ถํฐ ํด๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ต๊ด์ ๊ธฐ๋ฅด๊ณ , ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋์ด ๋ด
์๋ค! โจ