• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

2022.06.15

15 Jun 2022

Exception ์€ ์–ธ์ œ ๋‚ด์•ผ ํ• ๊นŒ?

์•„๋ž˜๋Š” ๋‚˜์˜ ์›๋ž˜ ์ฝ”๋“œ.

public static boolean isAxx(String code) {
    if(code == null) {
        throw new Excpetion("code is null");
    }
    return code.startsWits("A");
    }

๊ฐ„๋‹จํ•œ ์œ ํ‹ธ์„ฑ ๋ฉ”์†Œ๋“œ์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ null์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ์— ๋ณ„๋„๋กœ ์ต์…‰์…˜์„ ๋‚ด์ฃผ์—ˆ๋‹ค๊ฐ€, ์‚ฌ์ˆ˜๋‹˜์ด null์ด๋ฉด Emtpy ๊ฐ์ฒด๋ผ๋˜๊ฐ€, false ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•˜๋ผ๊ณ  ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‹ฌ์•„์ฃผ์…จ๋‹ค.

์ด๋ฅผ ๋ณด๊ณ  ํ•œ์ฐธ ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š”โ€ฆ ์ด ๋กœ์ง์„ ์‚ฌ์šฉํ•  ๊ฐœ๋ฐœ์ž๋“ค๋„, ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ null์ด๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ฑธ ๋ฐ˜๋“œ์‹œ โ€œ์•Œ์•„์•ผ ํ•œ๋‹คโ€๊ณ  ์ƒ๊ฐํ–ˆ์–ด์„œ ์˜€๋‹ค. ์• ์ดˆ์— null์ด ๋“ค์–ด์˜ค๋ฉด ์ •๋ง ์ด์ƒํ•œ ๋กœ์ง์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ฐ€๋ น status code๊ฐ€ null๋กœ ์˜ค๋Š” ๋А๋‚Œ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์‚ฌ์ˆ˜๋‹˜๊ป˜ ์—ฌ์ญˆ์–ด๋ดค๋Š”๋ฐ, ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๊ณ  ๊ธด ๋กœ์ง์—์„œ๋Š” Exception์„ ๋‚ด์ฃผ๋Š” ๊ฒŒ ๋งž๊ฒ ์ง€๋งŒ, ์ด๋Ÿฐ ์งง๊ณ  ๋‹จ์ˆœํ•œ ์œ ํ‹ธ์„ฑ ํด๋ž˜์Šค์—์„œ๋Š” (1) Exception ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒŒ ๋” ๋น„์šฉ์ด ๋งŽ์ด ๋“ค ๊ฒƒ ๊ฐ™๊ณ  (2) ๋ฉ”์†Œ๋“œ์˜ ๋ชฉ์  ์ž์ฒด๊ฐ€ Axx ์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๊ฑฐ๊ณ , null์ด ๋“ค์–ด์™”๋‹ค๊ณ  ํ•ด์„œ Axx์ธ ๊ฑด ์•„๋‹ˆ๋‹ˆ false๋กœ ๋ฆฌํ„ดํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋‹ต๋ณ€ ์ฃผ์…จ๋‹ค.

์ฝ”๋“œ ํ•œ ์ค„ ํ•œ ์ค„์— ๋‚ด๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ์งฐ๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ณ  ํ•ฉ๋ฆฌ์ ์ธ ์ด์œ ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋Š” ๋“ฏ ํ•˜๋‹ค. ์ด๋ฏธ โ€œ์ด๊ฑด ์™œ ์ด๋ ‡๊ฒŒ ์งฐ์–ด์š”?โ€ ๋ผ๋Š” ์งˆ๋ฌธ์„ ์ˆ˜๋„ ์—†์ด ๋ฐ›์•˜์ง€๋งŒโ€ฆ ๊ทธ๋ž˜๋„ ์ด์ œ๋Š” ์กฐ๊ธˆ ๋” ์ƒ๊ฐ์„ ํ•˜๋ฉด์„œ ์งค ์ˆ˜ ์žˆ๊ฒ ์ง€! ๋ชฐ๋ผ๋„ ๋˜๋Š” ์ •๋ณด์ธ์ง€ ์•„๋‹Œ์ง€ ๋“ฑ๋“ฑ, ๊ฒฝํ—˜๊ณผ ๊ฐ๊ฐ์ด ๋ฐœํœ˜๋˜๋Š” ๋ถ€๋ถ„(?)์€ ๋ญ”๊ฐ€ ๋ฒ”์ ‘ํ•˜๊ธฐ๊ฐ€ ํž˜๋“  ๋А๋‚Œ์ด๋‹ค

Spring Security

๊ณง ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์˜ˆ์ •์ด์–ด์„œ, ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ์—์„œ OAuth 2.0 ์ด ๋™์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋“ค์—ฌ๋‹ค๋ณด์•˜๋‹ค. ์ด์ „์— ํ•œ ๋ฒˆ ๊ณต๋ถ€๋ฅผ ํ•˜๊ธด ํ–ˆ์—ˆ๋Š”๋ฐ, ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด์ง€ ์•Š๋Š” ์ด์ƒ ๋จธ๋ฆฟ์†์— ์˜ ๋“ค์–ด์˜ค์งˆ ์•Š์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ธ์ฆ ๋ชจ๋“ˆ์„ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ๋‹ค๋ฅธ ํ”Œ์ ์—์„œ ์“ฐ๋˜ ์ธ์ฆ ๋ชจ๋“ˆ pom ํŒŒ์ผ์„ ์—ด์–ด๋ณด์•˜๋Š”๋ฐ, parent ๋“ค์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ตฌ์กฐ์ด๋‹ค๋ณด๋‹ˆ ๋ณผ ๋งŒํ•œ๊ฒŒ ๋งŽ์ง€๋Š” ์•Š์•˜๋‹ค.

pom ํŒŒ์ผ ํ•˜๋‹ˆ๊นŒ ์ƒ๊ฐ๋‚œ๊ฑด๋ฐ, ๋ช‡๋ช‡ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์œ ์šฉํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด ์žˆ๋‹ค๋Š” ๊ฑธ ๋ฐฐ์› ์—ˆ๊ณ ,
๊ธฐ์–ต์— ๋‚จ๋Š” ๊ฑด guava๋ž‘ apache common ์ด๋˜๊ฐ€? ์ •๋„๊ฐ€ ์žˆ์„ ๋“ฏ ์‹ถ๋‹ค. ํŠนํžˆ apache common์€ ๋‹ค๋“ค ๊ธฐ๋ณธ์œผ๋กœ ๋“ค๊ณ  ๊ฐ€๋Š” ๋“ฏโ€ฆ

์•„๋ฌดํŠผ ์ธ์ฆ ์„œ๋ฒ„๊ฐ€ ํ•˜๋Š” ์ผ์€ ํ†ต์ƒ JWT ํ† ํฐ ๋ฐœ๊ธ‰์„ ํ•ด์ฃผ๋Š”๋ฐ, ๊ทธ๊ฒŒ ๋‚ด๋ถ€์ ์œผ๋กœ grant type์ด ๋‚˜๋‰˜์–ด์„œ
client credential ์ด๋ฉด ์ด๋Ÿฐ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ฐ›๊ณ , password๋ฉด ์ €๋Ÿฐ ์ธ์ฆ ์ •๋ณด๋ฅผ ๋ฐ›๊ณ  ํ•˜๋Š” ์‹์ด๋‹ค.
OAuth 2.0 ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์˜จ ๊ฑด, OAuth 2.0์ด โ€œ์ธ์ฆ ๋ฐฉ์‹โ€์ธ๋ฐ, ์นด์นด์˜ค OAuth 2.0์„ ์“ฐ๋ฉด ์นด์นด์˜ค ์ธ์ฆ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” redirect uri ๋ฅผ ํƒ€๊ณ  ์œ ์ €๊ฐ€ ๊ฑฐ๊ธฐ์— ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•œ ํ›„, ์ธ์ฆ์„œ๋ฒ„๋Š” ์ธ์ฆ์„ ํ•ด์ฃผ๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ† ํฐ์„ ์ฃผ๋Š” ๋ฐฉ์‹!
์ง์ ‘ ์ ์–ด๋ณด๋‹ค๋ณด๋‹ˆ๊นŒ ๊ต‰์žฅํžˆ ํ—ท๊ฐˆ๋ฆฌ๋Š”๊ตฐโ€ฆ



TIL Share Tweet +1