Java

8์ฃผ์ž ๊ณผ์ œ: ์ธํ„ฐํŽ˜์ด์Šค(ํ”ผ๋“œ๋ฐฑ)

ํ–ฅ์ฐก 2021. 1. 28. 16:28

๐Ÿ“Œ ์ฑ… ์ถ”์ฒœ (๋น„ ๊ธฐ์ˆ  ๋„์„œ)

 

๐Ÿ“Œ default ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์žฅ์œผ๋กœ ์ธํ•œ ๊ตฌ์กฐ์˜ ๋ณ€ํ™” (handler interceptor๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ)

 

 

๐Ÿ“Œ ๋‹ค์ค‘ ๊ตฌํ˜„์—์„œ ์ค‘๋ณต๋˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ๋Š”?

JoinGroup.interface

JoinMember.interface

 

HelloJoinMember.java - ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋‚œ๋‹ค 

 

๐Ÿ’ก ํ•ด๊ฒฐ์ฑ… - ๊ทธ๋ƒฅ ์žฌ์ •์˜ ํ•˜๋ฉด ๋จ

1. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ์“ฐ๊ฑฐ๋‚˜

2. ๋‘˜ ๋‹ค ์“ฐ๊ฑฐ๋‚˜

3. ์ƒˆ๋กญ๊ฒŒ ์žฌ์ •์˜ ํ•˜๊ฑฐ๋‚˜

 

 

๐Ÿ“Œ static ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์œผ๋ฉด?

-> ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์œผ๋กœ ์ถœ๋ ฅํ•˜๋ฉด default๊ฐ€ ์ถœ๋ ฅ

-> static๋ฉ”์†Œ๋“œ๋Š” StaticJoinMember.preJoin()์œผ๋กœ ์ถœ๋ ฅ

(๋‹ค๋ฅธ ์˜์—ญ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ)

- ๋ฎ์–ด ์”Œ์šฐ๋Š” ๊ฐœ๋…์ด ์•„๋‹ˆ๋‹ค.

 

StaticJoinMember.interface

 

JoinMember.interface (StaticJoinMember๋ฅผ ์ƒ์†, ๋ฉ”์†Œ๋“œ ์ค‘๋ณต ๋ฐœ์ƒ)

 

๐Ÿ“Œ ์ž๋ฐ” 8 ์ดํ›„๋กœ interface์™€ abstract์˜ ์กด์žฌ ์ด์œ 

์ถ”์ƒ ํด๋ž˜์Šค ๊ธฐ๋Šฅ๋“ค์ด ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์˜ฎ๊ฒจ์ง„ ๊ฒƒ์€ ์‚ฌ์‹ค์ด์ง€๋งŒ, ์ถ”์ƒ ํด๋ž˜์Šค์—์„œ๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค.

์—) ์ธํ„ฐํŽ˜์ด์Šค๋Š” private String message์™€ ๊ฐ™์€ ํ•„๋“œ๋ฅผ ์„ ์–ธ ๋ชปํ•œ๋‹ค, ์ƒ์ˆ˜๋งŒ ๊ฐ€๋Šฅ

 

 

๐Ÿ“Œ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ vs ๋А์Šจํ•œ ๊ฒฐํ•ฉ - ํ† ๋น„์˜ ์Šคํ”„๋ง3, ๊น€์˜ํ•œ ๋‹˜ ๊ฐ•์˜ ๋ณด๊ธฐ

interface๋Š” ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์ธํ„ฐํŽ˜์ด์Šค์˜ ์กด์žฌ ์ด์œ  ์ค‘ ํ•˜๋‚˜)

 

๊ฐ•ํ•œ ๊ฒฐํ•ฉ : ๋ณ€๊ฒฝํ•˜๊ธฐ ์–ด๋ ค์šด ์˜์กด๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋А์Šจํ•œ ๊ฒฐํ•ฉ : ์œ ์—ฐํ•œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

์—) service - repository๋Š” ๋А์Šจํ•œ ๊ฒฐํ•ฉ์œผ๋กœ ๊ฐ€์ ธ๊ฐ€์•ผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฝ๋‹ค