Study/CleanCode

[Study][CleanCode - 2] 7. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

youn12 2022. 7. 16. 21:27
๐Ÿ“‹ ๋ชฉ์ฐจ.

7. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ
    .์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
    .Try-Catch-Finally ๋ฌธ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋ผ
    .๋ฏธํ™•์ธ(unchecked) ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ
    .์˜ˆ์™ธ์— ์˜๋ฏธ๋ฅผ ์ œ๊ณตํ•˜๋ผ
    .ํ˜ธ์ถœ์ž๋ฅผ ๊ณ ๋ คํ•ด ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ผ
    .Null์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ๋ผ
    .Null์„ ์ „๋‹ฌํ•˜์ง€ ๋งˆ๋ผ
    .๊ฒฐ๋ก 



โœ”๏ธ ๋‚ด์šฉ.

 

7. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

 

 ๊นจ๋—ํ•œ ์ฝ”๋“œ์™€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์—ฐ๊ด€์„ฑ์ด ์žˆ๋‹ค. ์ƒ๋‹น์ˆ˜ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์€ ์ „์ ์œผ๋กœ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ์— ์ขŒ์šฐ๋œ๋‹ค.
์—ฌ๊ธฐ์ €๊ธฐ ํฉ์–ด์ง„ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ ๋•Œ๋ฌธ์— ์‹ค์ œ ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์„ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 

 ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์ค‘์š”ํ•˜๋‹ค.
ํ•˜์ง€๋งŒ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ ๋…ผ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค๋ฉด ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ผ ๋ถ€๋ฅด๊ธฐ ์–ด๋ ต๋‹ค.

.์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณด๋‹ค ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

 

 if/else๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ๋ณด๋‹ค๋Š” try/catch๋ฅผ ์‚ฌ์šฉํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋„๋ก ํ•˜์ž.

 


.Try-Catch-Finally ๋ฌธ๋ถ€ํ„ฐ ์ž‘์„ฑํ•˜๋ผ

 

 try ๋ธ”๋ก์€ ํŠธ๋žœ์žญ์…˜๊ณผ ๋น„์Šทํ•˜๋‹ค. try์—์„œ ๋ฌด์Šจ ์ผ์ด ์ƒ๊ธฐ๋“  catch๋Š” ํ”„๋กœ๊ทธ๋žจ ์ƒํƒœ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ๋Š” try-catch-finally ๋ฌธ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŽธ์ด ๋‚ซ๋‹ค.

 

 ๋จผ์ € ๊ฐ•์ œ๋กœ ์˜ˆ์™ธ๋ฅผ ์ผ์œผํ‚ค๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ถŒ์žฅํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ try ๋ธ”๋ก์˜ ํŠธ๋žœ์žญ์…˜ ๋ฒ”์œ„๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ๋ฒ”์œ„ ๋‚ด์—์„œ ํŠธ๋žœ์žญ์…˜ ๋ณธ์งˆ์„ ์œ ์ง€ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

 


 

.๋ฏธํ™•์ธ(unchecked) ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

 

  ๋งŽ์€ ์‹œ๊ฐ„ ๋™์•ˆ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ํ™•์ธ๋œ(checked) ์˜ˆ์™ธ์˜ ์žฅ๋‹จ์ ์„ ๋†“๊ณ  ๋…ผ์Ÿ์„ ๋ฒŒ์—ฌ์™”๋‹ค.

 

 ํ™•์ธ๋œ ์˜ˆ์™ธ๋Š” OCP(Open Closed Principle)๋ฅผ ์œ„๋ฐ˜ํ•œ๋‹ค.

๋ฉ”์„œ๋“œ์—์„œ ํ™•์ธ๋œ ์˜ˆ์™ธ๋ฅผ ๋˜์กŒ๋Š”๋ฐ catch ๋ธ”๋ก์ด ์„ธ ๋‹จ๊ณ„ ์œ„์— ์žˆ๋‹ค๋ฉด ๊ทธ ์‚ฌ์ด ๋ฉ”์„œ๋“œ ๋ชจ๋‘๊ฐ€ ์„ ์–ธ๋ถ€์— ํ•ด๋‹น ์˜ˆ์™ธ๋ฅผ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ํ•˜์œ„ ๋‹จ๊ณ„์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ƒ์œ„ ๋‹จ ๊ฒŒ ๋ฉ”์„œ๋“œ ์„ ์–ธ๋ถ€๋ฅผ ์ „๋ถ€ ๊ณ ์ณ์•ผ ํ•œ๋‹ค๋Š” ๋ง์ด๋‹ค.

 

 ํ™•์ธ๋œ ์˜ˆ์™ธ๋Š” ์บก์Šํ™”๋ฅผ ๊นจํŠธ๋ฆฐ๋‹ค.

๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ํ˜ธ์ถœ ๊ณผ์ •์€. ์ตœ์ƒ์œ„ ํ•จ์ˆ˜๊ฐ€ ์•„๋ž˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹จ๊ณ„๊ฐ€ ๋‚ด๋ ค๊ฐˆ์ˆ˜๋ก ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ ์ˆ˜๋Š” ๋Š˜์–ด๋‚œ๋‹ค. ์ด์ œ ์ตœํ•˜์œ„ ํ•จ์ˆ˜์—์„œ ์ƒˆ๋กœ์šด ์˜ค๋ฅ˜๋ฅผ ๋˜์ง„๋‹ค๋ฉด? ํ•จ์ˆ˜ ์„ ์–ธ๋ถ€์— throws ์ ˆ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ณ€๊ฒฝํ•œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋‘๊ฐ€ 1. catch ๋ธ”๋ก์—์„œ ์ƒˆ๋กœ์šด ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, 2. ์„ ์–ธ๋ถ€์— trhow ์ ˆ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‡„์ž‘์šฉ์ด ์ตœํ•˜์œ„ ๋‹จ๊ณ„์—์„œ ์ตœ์ƒ์œ„ ๋‹จ๊ณ„๊นŒ์ง€ ์ผ์–ด ๋‚œ๋‹ค. throw ๊ฒฝ๋กœ์— ์œ„์น˜ํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๊ฐ€ ์ตœํ•˜์œ„ ํ•จ์ˆ˜์—์„œ ๋˜์ง€๋Š” ์˜ˆ์™ธ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋ฏ€๋กœ ์บก์Šํ™”๊ฐ€ ๊นจ์ง„๋‹ค.

 

 ๋•Œ๋กœ๋Š” ํ™•์ธ๋œ ์˜ˆ์™ธ๋„ ์œ ์šฉํ•˜๋‹ค. ์•„์ฃผ ์ค‘์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ์žก์•„์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์˜์กด์„ฑ์ด๋ผ๋Š” ๋น„์šฉ์ด ์ด์ต๋ณด๋‹ค ํฌ๋‹ค.


.์˜ˆ์™ธ์— ์˜๋ฏธ๋ฅผ ์ œ๊ณตํ•˜๋ผ

 

 ์˜ˆ์™ธ๋ฅผ ๋˜์งˆ ๋•Œ๋Š” ์ „ํ›„ ์ƒํ™ฉ์„ ์ถฉ๋ถ„ํžˆ ๋ง๋ถ™์ธ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์›์ธ๊ณผ ์œ„์น˜๋ฅผ ์ฐพ๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ์ž๋ฐ”๋Š” ๋ชจ๋“  ์˜ˆ์™ธ์— ํ˜ธ์ถœ ์Šคํƒ์„ ์ œ๊ณตํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹คํŒจ ์ฝ”๋“œ์˜ ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜ธ์ถœ ์Šคํƒ๋งŒ์œผ๋กœ ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ์ •๋ณด๋ฅผ ๋‹ด์•„ ์˜ˆ์™ธ์™€ ํ•จ๊ป˜ ๋˜์ง„๋‹ค. ์‹คํŒจํ•œ ์—ฐ์‚ฐ ์ด๋ฆ„, ์‹คํŒจ ์œ ํ˜• ๋“ฑ์„ ๋‹ด์•„์ค€๋‹ค. ๋กœ๊น… ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด catch ๋ธ”๋ก์—์„œ ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค.

 


.ํ˜ธ์ถœ์ž๋ฅผ ๊ณ ๋ คํ•ด ์˜ˆ์™ธ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ผ

 

 

 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ด€์‹ฌ์‚ฌ๋Š” ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

 ๋‹ค์Œ์€ ์˜ค๋ฅ˜๋ฅผ ํ˜•ํŽธ์—†์ด ๋ถ„๋ฅ˜ํ•œ ์‚ฌ๋ก€์ด๋‹ค. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” try-catch-finally ๋ฌธ์„ ํฌํ•จํ•œ ์ฝ”๋“œ๋กœ, ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋˜์งˆ ์˜ˆ์™ธ๋ฅผ ๋ชจ๋‘ ์žก์•„๋‚ธ๋‹ค.

 

ACMEPort port = new ACMEPort(12);

try{
	port.open();
} catch (DeviceResponseException e){
	reportPortError(e);
    logger.log("Device response exception", e);
} catch (ATM1212UnlockedException e){
	reportPortError(e);
    logger.log("Unlock exception", e);
} catch (GMXError e){
	reportPortError(e);
    logger.log("Device response exception", e);
} finally {
	...
}

 

 ์œ„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์— ๋Œ€์‘ํ•˜๋Š” ๋ฐฉ์‹์ด ์˜ˆ์™ธ ์œ ํ˜•๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ฑฐ์˜ ๋™์ผํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ณ ์น˜๊ธฐ ์‰ฝ๋‹ค.

ํ˜ธ์ถœํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API๋ฅผ ๊ฐ์‹ธ๋ฉด์„œ ์˜ˆ์™ธ ์œ ํ˜• ํ•˜๋‚˜๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฉด ๋œ๋‹ค.

 

LocalPort port = new LocalPort(12);

try{
	port.open();
} catch (PortDeviceFailure e){
	reportPortError(e);
    logger.log("e.getMessage()" e);
} finally {
	...
}

 

 ์—ฌ๊ธฐ์„œ LocalPort ํด๋ž˜์Šค๋Š” ๋‹จ์ˆœํžˆ ACMEPort ํด๋ž˜์Šค๊ฐ€ ๋˜์ง€๋Š” ์˜ˆ์™ธ๋ฅผ ์žก์•„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ์‹ธ๊ธฐ(Wrapper) ํด๋ž˜์Šค์ผ ๋ฟ์ด๋‹ค.

 

public class LocalPort {
	
    private ACMEPort innerPort;
    
    public LocalPort(int portNumber){
    	innerPort = new ACMEPort(portNumber);
    }
    
    public void open(){
    	try {
        	innerPort.open();
		} catch (DeviceResponseException e){
        	throw new PortDeviceFailure(e);
        } catch (ATM1212UnlockedException e){
        	throw new PortDeviceFailure(e);
        } catch (GMXError e) {
        	throw new PortDeviceFailure(e);
        }
        ...
    }
}

 

LocalPort ํด๋ž˜์Šค์ฒ˜๋Ÿผ ์™ธ๋ถ€ API(ACMEPort)๋ฅผ ๊ฐ์‹ธ๋Š” ํด๋ž˜์Šค๋Š” ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. ์‹ค์ œ๋กœ ์™ธ๋ถ€ API๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ฐ์‹ธ๊ธฐ ๊ธฐ๋ฒ•์ด ์ตœ์„ ์ด๋‹ค. ์™ธ๋ถ€ API๋ฅผ ๊ฐ์‹ธ๋ฉด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์—์„œ ์˜์กด์„ฑ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค. ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ต์ฒดํ•  ๋•Œ ๋น„์šฉ์ด ์ ๊ฒŒ ๋“ ๋‹ค. ๋˜ํ•œ ๊ฐ์‹ธ๊ธฐ(Wrapper) ํด๋ž˜์Šค์—์„œ ์™ธ๋ถ€ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ๋„ ์‰ฌ์›Œ์ง„๋‹ค.

 


 

.Null์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ๋ผ

 

 ๋ฉ”์„œ๋“œ์—์„œ null์„ ๋ฐ˜ํ™˜ํ•˜๊ณ ํ”ˆ ์œ ํ˜น์ด ๋“ ๋‹ค๋ฉด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ฑฐ๋‚˜ ํŠน์ˆ˜ ์‚ฌ๋ก€ ๊ฐ์ฒด(ex. Collections.emptyList())๋ฅผ ๋ณ€ํ™˜ํ•œ๋‹ค.

๋˜๋Š” ์™ธ๋ถ€ API์˜ ๊ฒฝ์šฐ ๊ฐ์‹ธ๊ธฐ(Wrapper)์„ ๊ตฌํ˜„ํ•ด ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ฑฐ๋‚˜ ํŠน์ˆ˜ ์‚ฌ๋ก€ ๊ฐ์ฒด๋ฅผ ๋ณ€ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์˜ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ๋Š” ํŠน์ˆ˜ ์‚ฌ๋ก€ ๊ฐ์ฒด๊ฐ€ ์†์‰ฌ์šด ํ•ด๊ฒฐ์ฑ…์ด๋‹ค

 


.Null์„ ์ „๋‹ฌํ•˜์ง€ ๋งˆ๋ผ

 

 ๋ฉ”์„œ๋“œ์—์„œ null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹๋„ ๋‚˜์˜์ง€๋งŒ ์ „๋‹ฌํ•˜๋Š” ๊ฑด ๋” ๋‚˜์˜๋‹ค. 

์ •์ƒ์ ์ธ ์ธ์ˆ˜๋กœ null์„ ๊ธฐ๋Œ€ํ•˜๋Š” API๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ฉ”์„œ๋“œ๋กœ null์„ ์ „๋‹ฌํ•˜๋Š” ์ฝ”๋“œ๋Š” ์ตœ๋Œ€ํ•œ ํ”ผํ•œ๋‹ค.

 

๋Œ€๋‹ค์ˆ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ํ˜ธ์ถœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๋„˜๊ธฐ๋Š” null์„ ์ ์ ˆํžˆ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์• ์ดˆ์— null์„ ๋„˜๊ธฐ์ง€ ๋ชปํ•˜๋„๋ก ๊ธˆ์ง€ํ•˜๋Š” ์ •์ฑ…์ด ํ•ฉ๋ฆฌ์ ์ด๋‹ค. ์ฆ‰, ์ธ์ˆ˜๋กœ null์ด ๋„˜์–ด์˜ค๋ฉด ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค. ์ด๋Ÿฐ ์ •์ฑ…์„ ๋”ฐ๋ฅด๋ฉด ๊ทธ๋งŒํผ ๋ถ€์ฃผ์˜ํ•œ ์‹ค์ˆ˜๋ฅผ ์ €์ง€๋ฅผ ํ™•๋ฅ ๋„ ์ž‘์•„์ง„๋‹ค.

 


. ๊ฒฐ๋ก 

 

 ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ์ฝ๊ธฐ๋„ ์ข‹์•„์•ผ ํ•˜์ง€๋งŒ ์•ˆ์ •์„ฑ๋„ ๋†’์•„์•ผ ํ•œ๋‹ค.

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ๋…ผ๋ฆฌ์™€ ๋ถ„๋ฆฌํ•ด ๋…์ž์ ์ธ ์‚ฌ์•ˆ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉด ํŠผํŠผํ•˜๊ณ  ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋…ผ๋ฆฌ์™€ ๋ถ„๋ฆฌํ•˜๋ฉด ๋…๋ฆฝ์ ์ธ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•ด ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜์„ฑ๋„ ํฌ๊ฒŒ ๋†’์•„์ง„๋‹ค.

 

 


๐Ÿ“ ๋Š๋‚€ ์ .

 - OCP์™€ ์บก์Šํ™”๋ฅผ ๊นจํŠธ๋ฆฌ๋Š” Checked ์˜ˆ์™ธ๋ณด๋‹ค๋Š” Unchecked ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜์ž!
 - Exception์— ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์•„ ๋ณด๋‚ด์ž
 - ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์˜ค๋ฅ˜์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋„๋ก ํ•œ๋‹ค! (Wrapper ์‚ฌ์šฉ)
 - Null์„ ๋ฐ˜ํ™˜/์ „๋‹ฌํ•˜์ง€ ๋ง์ž
 - ๊นจ๋—ํ•œ ์ฝ”๋“œ๋Š” ์•ˆ์ •์„ฑ ๋˜ํ•œ ๋†’์•„์•ผ ํ•œ๋‹ค!