Java

[Effective Java] ์•„์ดํ…œ 70. ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—๋Š” ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฅ˜์—๋Š” ๋Ÿฐํƒ€์ž… ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.

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

๐ŸŽฏ ์•„์ดํ…œ 70. ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—๋Š” ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฅ˜์—๋Š” ๋Ÿฐํƒ€์ž… ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.

  • ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ ๋ณต๊ตฌํ•˜๋ฆฌ๋ผ ์—ฌ๊ฒจ์ง€๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ.
/**
 * ๋ฉ”๋‰ด ๋“ฑ๋ก
 * @param menuVO
 * @throws Exception
 */
public void insertMenu(MenuVO menuVO) throws SQLException{
    menuVO.setMenuSn(menuSnIdService.getNextStringId());
    int dept = 1;
    if(CommonConstants.INNO_ROOT_SN.getValue().equals(menuVO.getSupiMenuSn())){
        menuVO.setDept(dept);
    } else {
        menuVO.setDept(menuMapper.selectDeptBySupiMenuSn(menuVO)+1);
    }
    menuMapper.insertAdminMenu(menuVO);
}

์œ„ ์ฝ”๋“œ๋Š” ๋ฉ”๋‰ด๋ฅผ ๋“ฑ๋กํ•˜๋Š” ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•˜๋Š”์ชฝ์—์„œ ๋ณต๊ตฌ(ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ)๋ฅผ ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์‚ฌ ์˜ˆ์™ธ์ธ SQLException์„ ์‚ฌ์šฉํ–ˆ๋‹ค.


  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” ๋Ÿฐํƒ€์ž„ ์˜ˆ์™ธ๋ฅผ ์‚ฌ์šฉํ•˜์ž.
private void validateDuplicateMember(Member member) {
    List<Member> findMembers = memberRepository.findByName(member.getName());
    if (!findMembers.isEmpty()){
        throw new IllegalStateException("์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํšŒ์›์ž…๋‹ˆ๋‹ค.");
    }
}

์œ„ ์ฝ”๋“œ๋Š” ํšŒ์› ์ค‘๋ณต ๊ฒ€์‚ฌ๋ฅผ ํ•˜๋Š” ํ•จ์ˆ˜๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ API ๋ช…์„ธ์˜ ๊ทœ์•ฝ์„ ์ง€ํ‚ค์ง€ ๋ชปํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ด๋ฏ€๋กœ ์ ์ ˆํ•œ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ค‘๋‹จ์‹œํ‚จ๋‹ค.


๊ฒ€์‚ฌ ์˜ˆ์™ธ๋„ ์•„๋‹ˆ๊ณ  ๋Ÿฐํƒ€์ž„ ์˜ˆ์™ธ๋„ ์•„๋‹Œ throwable์€ ์ •์˜ํ•˜์ง€๋„ ๋ง์ž. ์˜คํžˆ๋ ค ๊ฐœ๋ฐœ์ž๋“ค์„ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒํ•  ๋ฟ์ด๋‹ค. ๊ฒ€์‚ฌ ์˜ˆ์™ธ๋ผ๋ฉด ๋ณต๊ตฌ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋„ ์ œ๊ณตํ•˜์ž.


์ฐธ๊ณ  ์ž๋ฃŒ

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
๋ฐ˜์‘ํ˜•