๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š์ฝ์€ ์ฑ… ์ •๋ฆฌ/์ž๋ฐ” ์ฝ”๋”ฉ์˜ ๊ธฐ์ˆ 

[์ž๋ฐ” ์ฝ”๋”ฉ์˜ ๊ธฐ์ˆ ] 1์žฅ : ์šฐ์„  ์ •๋ฆฌ๋ถ€ํ„ฐ

1.1 ๋ถˆํ•„์š”ํ•œ ๋น„๊ต ํ”ผํ•˜๊ธฐ

microscope.isInorganic(sample) ์ด Bool์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด ๋ถˆํ•„์š”ํ•˜๊ฒŒ True, False๋กœ ๋น„๊ตํ•ด์„œ ์กฐ๊ฑด๋ฌธ์„ ์ฒดํฌํ•˜์ง€ ๋ง๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์—†์• ์ž.

if(microscope.isInorganic(sample) == true) 
if(microscope.isInorganic(sample) == false)

๋ณด๋‹จ

if(microscope.isInorganic(sample))
if(!microscope.isInorganic(sample)) ๋ฅผ ์‚ฌ์šฉํ•˜์ž.

1.2 ๋ถ€์ • ํ”ผํ•˜๊ธฐ

1. ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ False(๋ถ€์ •)์„ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋ฉด ํ•œ๋ฒˆ ๋” ์ƒ๊ฐํ•˜๋ฉฐ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

2. ๋ฐ˜ํ™˜ ๊ฐ’์ด ๊ธ์ •์ธ ๊ฒƒ์„ ๊ตณ์ด `!`์„ ์ด์šฉํ•ด์„œ ๋ถ€์ •์œผ๋กœ ๋ฐ”๊พธ๋ฉด ํ•œ๋ฒˆ ๋” ์ƒ๊ฐํ•˜๋ฉฐ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ, 1๋ฒˆ์˜ ๊ฒฝ์šฐ์—๋Š” ๊ธ์ • ํ‘œํ˜„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  2๋ฒˆ ๊ฒฝ์šฐ๋Š” `!`๋ฅผ ์‚ญ์ œํ•˜๊ณ  if์™€ else์˜ ์œ„์น˜๋ฅผ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉํ•˜์ž.

 

์ผ๋ฐ˜์ ์ธ ๊ฒฝํ—˜์— ๋”ฐ๋ฅด๋ฉด ๋ถ€์ •์  ๋ฉ”์„œ๋“œ๋Š” ํ—ท๊ฐˆ๋ฆฐ๋‹ค.

๋˜ํ•œ ์ฝ”๋“œ ํ™•์žฅ์‹œ์—๋„ ๊ธ์ •ํ‘œํ˜„์ด ํ›จ์”ฌ ์ข‹๋‹ค!!

 

์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๊ธ์ • ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž. (๊ธ์ • ๋ฐ˜ํ™˜๊ฐ’)

 

1.3 ๋ถˆ ํ‘œํ˜„์‹์„ ์ง์ ‘ ๋ฐ˜ํ™˜

๋ถˆ ํ‘œํ˜„์‹์„ ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” if๋ฌธ์„ ๋•์ง€๋•์ง€ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ๊ทธ๋ƒฅ ์กฐ๊ฑด ์ž์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ž.
boolean isValid() {
	return mission >= 0 && name != null;
}

1.4 ๋ถˆ ํ‘œํ˜„์‹ ๊ฐ„์†Œํ™”

2.1์˜ ๊ทœ์น™์„ ์ง€ํ‚ค๊ฒŒ ๋˜๋ฉด ์กฐ๊ฑด๋ฌธ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“  ์ˆ˜์ค€์ด ๋œ๋‹ค.

 

์กฐ๊ฑด์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž.

 

๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์กฐ๊ฑด์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์˜๋ฏธ์žˆ๋Š” ์ด๋ฆ„์„ ์ง€์œผ๋ฉด ์ข‹๋‹ค.

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ์˜ ์ค„์ด ์ฆ๊ฐ€ํ• ์ง€๋ผ๋„ ์ฝ”๋“œ ์ดํ•ด๋„๋Š” ํ›จ์”ฌ ํ–ฅ์ƒ๋œ๋‹ค.

 

๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ถˆ ํ‘œํ˜„์‹์— ์˜๋ฏธ๋ฅผ ์ œ๊ณตํ•˜์ž!!

 

1.5 ์กฐ๊ฑด๋ฌธ์—์„œ NullPointerException ํ”ผํ•˜๊ธฐ

๋ฉ”์„œ๋“œ์˜ ์ธ์ˆ˜๋ฅผ ๊ฒ€์ฆํ•  ๋•Œ๋Š” ์ˆœ์„œ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค.

 

๋ฐ˜๋“œ์‹œ null์„ ๋จผ์ € ํ™•์ธํ•œ ํ›„ ๋„๋ฉ”์ธ์— ๋”ฐ๋ผ "์œ ํšจํ•˜์ง€ ์•Š์€" ๊ฐ’์„ ๊ฒ€์‚ฌํ•˜๋„๋ก ํ•˜์ž.

 

-> JAVA8์˜ Optional์„ ์‚ฌ์šฉํ•˜๋ฉด NULL์ฒ˜๋ฆฌํ•˜๊ธฐ ์ข‹๋‹ค.

 

1.6 ์Šค์œ„์น˜ ์‹คํŒจํ•˜๊ธฐ

์Šค์œ„์น˜ ๋ฌธ์˜ Case์— ์˜๋„์ ์œผ๋กœ break๋ฅผ ๋บ๋‹ค๋ฉด ์ฃผ์„์„ ํ†ตํ•ด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์•Œ๋ ค์ฃผ์ž.

 

์ด๊ฒƒ์€ ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

1.7 ํ•ญ์ƒ ๊ด„ํ˜ธ ์‚ฌ์šฉํ•˜๊ธฐ

์ž๋ฐ”๋Š” ํŒŒ์ด์ฌ์ด ์•„๋‹ˆ๋‹ค!!!

ํ•ญ์ƒ ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด๋ฌธ์˜ ๋ฒ”์œ„๋ฅผ ํ™•์‹คํžˆ ์ง€์ •ํ•˜์ž! (๋ฒ„๊ทธ ๋ฐœ์ƒ ํ™•๋ฅ ์„ ์ €ํ•˜์‹œํ‚จ๋‹ค)

 

์˜ค๋ฅ˜๋ฅผ ์ฐพ๊ธฐ๋„ ๊ฐ€๋…์„ฑ๋„ ํ›จ์”ฌ ์ข‹์•„์ง„๋‹ค.

1.8 ์ฝ”๋“œ ๋Œ€์นญ ์ด๋ฃจ๊ธฐ

if, else if, else if ์‚ฌ์šฉ ์‹œ ๊ฐ๊ฐ์˜ ์กฐ๊ฑด์ด ์„œ๋กœ ๋น„์Šทํ•œ ๊ด€์‹ฌ์‚ฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

 

๋งŒ์•ฝ, ํ•˜๋‚˜์˜ ๋ถ„๊ธฐ๋Š” "๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ"์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” "๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ฝ”๋“œ"๋ผ๋ฉด
๋‘ ๊ฐ€์ง€๋ฅผ ๋‹ค๋ฅธ ์กฐ๊ฑด๋ฌธ์„ ๋‚˜๋ˆ ์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์ž -> if {} // if {} else if{}

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ์˜ ๋Œ€์นญ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

1.9 1์žฅ์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ

๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ํ”ผํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค.