Java

[Effective Java] ์•„์ดํ…œ 71. ํ•„์š” ์—†๋Š” ๊ฒ€์‚ฌ ์˜ˆ์™ธ ์‚ฌ์šฉ์€ ํ”ผํ•˜๋ผ.

quedevel 2023. 4. 2. 13:22
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์•„์ดํ…œ 71. ํ•„์š” ์—†๋Š” ๊ฒ€์‚ฌ ์˜ˆ์™ธ ์‚ฌ์šฉ์€ ํ”ผํ•˜๋ผ.

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

public class Main {
    public static void main(String[] args) {
        try {
            extracted();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private static void extracted() throws IOException {
        byte[] bytes = {'a','b','c'};
        System.out.write(bytes);
    }
}



๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ํšŒํ”ผํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์ ์ ˆํ•œ ๊ฒฐ๊ณผ ํƒ€์ž…์„ ๋‹ด์€ ์˜ต์…”๋„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฐฉ์‹์˜ ๋‹จ์ ์ด๋ผ๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ ์ด์œ ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ๋ฉ”์„œ๋“œ๋ฅผ 2๊ฐœ๋กœ ์ชผ๊ฐœ ๋น„๊ฒ€์‚ฌ ์˜ˆ์™ธ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ ๋˜ํ•œ ๋ชจ๋“  ์ƒํ™ฉ์— ์ ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ทธ๋ž˜๋„ ์ ์šฉํ•  ์ˆ˜๋งŒ ์žˆ๋‹ค๋ฉด ๋” ์“ฐ๊ธฐ ํŽธํ•œ API๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ

Joshua Bloch, ใ€ŽEffective Java 3/Eใ€, ๊ฐœ์•ž๋งต์‹œ ์˜ฎ๊น€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ์‚ฌ์ดํŠธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
๋ฐ˜์‘ํ˜•