๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL, WIL/WIL๐Ÿ“—

3์›” ๋„ท์งธ ์ฃผ : 50์ œ ์ •๋ฆฌ

728x90

1) ๋ฐฐ์—ด๊ณผ ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„๊ตํ•ด์„œ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

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

 

2) CORS๋ž€ ๋ฌด์—‡์ด๊ณ  ์–ด๋–ป๊ฒŒ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

-> CORS๋ž€ ์›นํŽ˜์ด์ง€๊ฐ€ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋„๋ฉ”์ธ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ ์š”์ฒญ์„ ์ „์†กํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ตฌํ˜„๋˜๋Š” ๋ณด์•ˆ ๊ธฐ๋Šฅ์ด๋ฉฐ, ์š”์ฒญ ์ „์†ก ์ „ ๋ณ„๋„์˜ ์‹คํ–‰ ์ „ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” preflighted request ๋ฐฉ์‹๊ณผ ๋ณ„๋„์˜ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๋Š” simple request ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ ์ด๋ฅผ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ „์†กํ•˜๋Š” ์š”์ฒญ CORSํ—ค๋”์˜ ํ˜•์‹์— ์•Œ๋งž๊ฒŒ ๊ฐ ์„œ๋ฒ„์˜ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งž๊ฒŒ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

3) ์‹œ๊ฐ„๋ณต์žก๋„์™€ ๊ณต๊ฐ„๋ณต์žก๋„๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

-> ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‹คํ–‰๋˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ณ , ๊ณต๊ฐ„๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‹คํ–‰๋˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์ด ๊ฐ€์žฅ ํฌ๊ฑฐ๋‚˜ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘๊ฐ€์ง€์˜ ์ฒ™๋„๋Š” ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

4) ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ „์†กํ•˜๊ณ  ๋ณด๊ด€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

-> ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž…๋ ฅ๋ฐ›์€ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์„œ๋ฒ„์— ์ „์†กํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณด๊ด€ํ•˜๊ธฐ ์œ„ํ•ด ์•”ํ˜ธํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” ํ•ด์‹ฑ์œผ๋กœ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์•”ํ˜ธ๋ฅผ ํ•ด์‹œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. sha-256 ๋˜๋Š” bcrypt๊ฐ™์€ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋ณด์•ˆ์„ ๋” ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์†”ํŒ…์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์‹ฑ ์ „์— ์†”ํŠธ๋ผ๋Š” ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ํ…์ŠคํŠธ ์•”ํ˜ธ์— ์ถ”๊ฐ€ํ•ด ๊ณต๊ฒฉ์ž๊ฐ€ ์•”ํ˜ธ๋ฅผ ํ•ด๋…ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์•”ํ˜ธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด์‹œ๋กœ ์ €์žฅ๋˜๊ณ  ์ดํ›„ ๋กœ๊ทธ์ธ ํ•  ๋•Œ ๋‹ค์‹œ ์ž…๋ ฅํ•œ ํ…์ŠคํŠธ ์•”ํ˜ธ๋ฅผ ํ•ด์‹ฑํ•˜์—ฌ ์ €์žฅ๋œ ํ•ด์‹œ ์•”ํ˜ธ์™€ ๋น„๊ต ํ›„ ๋กœ๊ทธ์ธ ํ†ต๊ณผ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

5) ์Šคํƒ, ํ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

-> ์Šคํƒ์€ ํ›„์ž…์„ ์ถœ ์›์น™์„ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ฐ์ดํ„ฐ ์ €์žฅ ์‹œ, ๋ฐ˜๋“œ์‹œ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์ˆœ์„œ๋กœ ์ €์žฅ๋˜๊ณ  ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ ์‹œ์—๋Š” ์ฒซ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€ํ•œ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์ œ๊ฑฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž๋ฃŒ๊ตฌ์กฐ ํ๋Š” ์„ ์ž…์„ ์ถœ ์›์น™์„ ๊ฐ€์ ธ ๋ฐ์ดํ„ฐ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ œ๊ฑฐ ๋˜ํ•œ ๋จผ์ € ์ž…๋ ฅํ•ด์„œ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์ œ๊ฑฐ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

 

6) DI์™€ IoC์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฐ ๊ฐ์ฒด์—์„œ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ๋งค ๋ฒˆ ์ƒ์„ฑํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๊ณ  ๊ฐ ๊ณ„์ธต ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋†’์ด๋Š” ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•์˜ ํ•˜๋‚˜๋กœ IoC๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์ œ์–ด๋ฅผ ์—ญ์ „์‹œ์ผœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์–‘ํ•œ ์ข…์†์„ฑ ๋˜๋Š” ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์Šคํ”„๋ง์—์„œ DI๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ฐ์ฒด๋ฅผ ๋งค๋ฒˆ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฐ์ฒด์—์„œ ํ•ด๋‹น ๊ฐ์ฒด์— ๋Œ€ํ•œ ์˜์กด์„ฑ์„ ๋ถ€์—ฌํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งค ๋ฒˆ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ƒ์„ฑ์ž ์ฃผ์ž…, ์„ธํ„ฐ ์ฃผ์ž…, ์ธํ„ฐํŽ˜์ด์Šค ์ฃผ์ž… ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

7) Call by reference๋ž€ ๋ฌด์—‡์ด๊ณ  ๋ณดํ†ต ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋‚˜์š”? ~ ์Šคํ”„๋ง ๋ฉด์ ‘์—์„  ๋‚˜์˜ค์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค

-> ์ฐธ์กฐ ํ˜ธ์ถœ๋ฐฉ์‹์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์ธ์ˆ˜๋กœ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ทธ ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ์ค‘์— ์ธ์ˆ˜์ธ ๋ณ€์ˆ˜์— ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋กœ๋Š” ๋ฐฐ์—ด์ด๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์›๋ณธ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ์—์„œ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด, ๊ทธ๋ฆฌ๊ณ  ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ’ ํ˜ธ์ถœ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ณ„๋„์˜ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ด ์ ์šฉํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋น„์šฉ์ด ๋” ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

8) Override ์™€ Overload ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ์˜ค๋ฒ„๋ผ์ด๋“œ๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋™์ผํ•œ ์ด๋ฆ„, ๋ฆฌํ„ด ํƒ€์ž…, ๊ทธ๋ฆฌ๊ณ  ์ธ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์‹ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์ž์‹ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๋ฉด์„œ๋„ ์ž์‹ ํด๋ž˜์Šค๋งŒ์˜ ๊ณ ์œ ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฒ„๋กœ๋”ฉ์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ์•ˆ์—์„œ ์ด๋ฆ„์ด ๊ฐ™์ง€๋งŒ ์ธ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ๋งค๋ฒˆ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•  ํ•„์š”์—†์–ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

9) MVC ๋ชจ๋ธ์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

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

 

10) ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋ณธ์ธ์˜ ์žฅ๋‹จ์ ๊ณผ ๊ทธ ๊ทผ๊ฑฐ๊ฐ€ ๋˜๋Š” ๊ฒฝํ—˜(ํ˜‘์—… ๋Šฅ๋ ฅ ์ œ์™ธ)๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

11) JPA๊ฐ€ ํ•„์š”ํ•œ ๋•Œ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๋•Œ๋Š” ์–ธ์ œ์ธ์ง€ ์„ค๋ช…ํ•˜์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•  ๋•Œ JPA๋Š” JAVA์˜ ORM ํ‘œ์ค€์œผ๋กœ ์ด ์ƒํ˜ธ ์ž‘์šฉ์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ˜๋ณต๋˜๊ณ  ์˜ˆ์ƒ๊ฐ€๋Šฅํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JPA๊ฐ€ ์ž๋ฐ”์˜ ํ‘œ์ค€ ORM API์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๊ฐ„๋‹จํ•œ SQL ์ฟผ๋ฆฌ๋งŒ์œผ๋กœ ๋ชจ๋‘ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ,

๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” JPA ๋ณด๋‹ค๋Š” JDBC๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JPA๋ฅผ ์‚ฌ์šฉํ•ด SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” Native SQL Query ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€๋งŒ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด JPA์—์„œ๋Š” SQL๊ณผ ์œ ์‚ฌํ•œ ๊ธฐ์ˆ ์ธ JPQL์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์„ค๊ณ„ ์‹œ ์ฆ‰์‹œ ๋กœ๋”ฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ N+1 ๋ฌธ์ œ๋กœ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

12) JPA์˜ ๋”ํ‹ฐ ์ฒดํ‚น์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

-> ๋”ํ‹ฐ ์ฒดํ‚น์ด๋ž€ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์ €์žฅํ•˜๋Š” JPA์˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์—”ํ‹ฐํ‹ฐ์— ์˜์†์„ฑ์„ ๋ถ€์—ฌํ•˜๊ฒŒ ๋  ๋•Œ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ณต์‚ฌํ•œ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ด 1์ฐจ ์บ์‹œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ํŠธ๋žœ์žญ์…˜๋™์•ˆ ์—”ํ‹ฐํ‹ฐ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ 1์ฐจ ์บ์‹œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ณต์‚ฌ๋ณธ(์Šค๋ƒ…์ƒท)์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜๋ฉฐ, ์ดํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์ „, ์ปค๋ฐ‹ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ”Œ๋Ÿฌ์‹œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉฐ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์—…๋ฐ์ดํŠธ ์ฟผ๋ฆฌ๋ฅผ ์“ฐ๊ธฐ์ง€์—ฐ SQL ์ €์žฅ์†Œ์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ํ›„ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋“ค๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ปค๋ฐ‹๋˜๋ฉด์„œ ๊ทธ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์›๋ณธ์— ๋ฐ˜์˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

13) @Annotation์ด๋ž€ ๋ฌด์—‡์ด๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ฃผ์„์€ ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ํ•„๋“œ ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐํ™”, ํ‘œ์ค€ํ™”ํ•œ ๋ฐ์ดํ„ฐ)๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์„์„ ํ†ตํ•ด ๋Ÿฐํƒ€์ž„ ์‹œ ์ฝ”๋“œ์— ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์˜ˆ์‹œ๋กœ @Autowired ์ฃผ์„์„ ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์„์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ์ฃผ์„์ด ๋‹ฌ๋ ค์žˆ๋Š” ๋ฉค๋ฒ„๋ณ€์ˆ˜ ๋“ฑ์— Spring container์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” Bean๊ณผ ๋งคํ•‘ ์‹œ์ผœ์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ž…๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ์ˆ˜ ๋งŽ์€ ์ฃผ์„์ด ์žˆ์–ด ์ด๋ฅผ ์ ์žฌ์ ์†Œ์— ํ™œ์šฉํ•ด ์ฝ”๋“œ์˜ ํ’ˆ์งˆ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

14) ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ๋กœ ํ•œ ์ด์œ ์— ๋Œ€ํ•ด ๋ง์”€ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

15) ์ธ๋ฑ์Šค๋ž€ ๋ฌด์—‡์ด๊ณ  ์ผ๋ฐ˜์ ์ธ ์›๋ฆฌ๋Š” ์–ด๋– ํ•œ์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์—์„œ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ˆซ์ž ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉฐ ์ธ๋ฑ์Šค๋„ ํ•จ๊ป˜ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์Œ์ˆ˜ ์ธ๋ฑ์Šค๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ๋ณดํ†ต -1์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๋ชจ์Œ์˜ ๋งจ ๋งˆ์ง€๋ง‰์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์œ ํšจํ•˜์ง€ ์•Š์€ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋Ÿฐํƒ€์ž„ ์‹œ index out of bounds error๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ์ „์ฒด ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ํ•  ํ•„์š”์—†์ด ํ•ด๋‹น ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋˜๊ธฐ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ…Œ์ด๋ธ”์— ์ปฌ๋Ÿผ์— ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ธ๋ฑ์Šค๋„ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ์“ฐ๊ธฐ ์ž‘์—…์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์–ด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ๊ณผ ์ €์žฅ๊ณต๊ฐ„ ํšจ์œจ์˜ ๊ท ํ˜•์„ ์ž˜ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

16) ์ด๋ถ„ํƒ์ƒ‰์ด ๋ฌด์—‡์ด๊ณ  ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋ฉฐ ๊ทธ ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

-> ์ด๋ถ„ํƒ์ƒ‰์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฐฐ์—ด ๋‚ด์—์„œ ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(log n)์ด๋ฉฐ n์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒฝ์šฐ์˜ O(n)๋ณด๋‹ค ์ž‘์€ ์ด์œ ๋Š” ์ด๋ถ„ํƒ์ƒ‰์€ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚œ ํ›„ ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ถ„ํƒ์ƒ‰์€ ์š”์†Œ๋ฅผ ์ฐพ๊ธฐ์œ„ํ•ด ๋งค์šฐ ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ, ์š”์†Œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ์–ด์•ผ๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

17) ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„๋ฅผ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ํŠธ๋ฆฌ์™€ ๊ทธ๋ž˜ํ”„๋Š” ์š”์†Œ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ์š”์†Œ๋ฅผ ๋…ธ๋“œ๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋ฉฐ, ๋ถ€๋ชจ ๋…ธ๋“œ์™€ ์ž์‹ ๋…ธ๋“œ๋กœ ์ด๋ฃจ์–ด์ง€๊ณ , ๋ถ€๋ชจ๊ฐ€ ์—†๋Š” ๋…ธ๋“œ๋Š” ๋ฃจํŠธ, ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ๋Š” ๋ฆฌํ”„์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” 2๊ฐœ ์ด์ƒ์˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๊ฐ ํ•ญ๋ชฉ์„ ๋…ธ๋“œ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ๊ฐ ํ•ญ๋ชฉ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์—ฃ์ง€๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜์„ ๋น„๊ตํ•ด๋ณด๋ฉด, ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ๋ž˜ํ”„๋Š” ๋ถ€๋ชจ-์ž์‹์œผ๋กœ ํ‘œํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠธ๋ฆฌ์—๋Š” ๋ฃจํŠธ๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ์—์„œ๋Š” ๊ด€๊ณ„์˜ ๋ฐฉํ–ฅ์ด ๋ถ€๋ชจ์—์„œ ์ž์‹์œผ๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์ง€๋งŒ, ๊ทธ๋ž˜ํ”„๋Š” ๋ฐฉํ–ฅ์ด ์—†๊ฑฐ๋‚˜ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ํ•ญ์ƒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜ํ”„๋Š” ๊ผญ ๊ทธ๋Ÿด ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฐ€ ๊ทธ๋ž˜ํ”„์— ๋น„๊ตํ•ด ๋” ์ œํ•œ๋œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ˜๋ฉด, ๊ทธ๋ž˜ํ”„๋Š” ๋‹ค์–‘ํ•œ ์‹ค์ œ ์‹œ์Šคํ…œ์„ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

18) ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ๊ฒŒ ์ฝ์—ˆ๋˜ ์ฑ…๊ณผ ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 

 

19) ์ฆ๊ฒจ ๋ณด๋Š” ํ…Œํฌ ์œ ํŠœ๋ฒ„๋‚˜ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

20) ๋ชจ๋“  ์š”์†Œ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?-> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ธ๋ฑ์‹ฑํ•œ๋‹ค๋ฉด ์ €์žฅ๊ณต๊ฐ„์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ๋ณต์žก์„ฑ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฃผ ์ฟผ๋ฆฌํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•˜๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์‹ฑ์„ ํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ ๊ฐœ์„  ๊ด€์ ์—์„œ ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ์ธ๋ฑ์‹ฑ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ์—” ์ธ๋ฑ์Šค๋„ ๊ฐ™์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ•„์š”ํ•œ ์š”์†Œ์—๋งŒ ์ธ๋ฑ์‹ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

21) ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ž€ ๋ฌด์—‡์ธ์ง€ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?-> ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋ž€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ปฌ๋Ÿผ์„ ํ•ฉ์ณ์„œ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ where์ ˆ์—์„œ and์กฐ๊ฑด์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ๋“ค์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์€ ๊ฒฐํ•ฉ ์ธ๋ฑ์Šค์˜ ์ฒซ ๋ฒˆ์งธ ์ปฌ๋Ÿผ์˜ ์กฐ๊ฑด์‹์ด ์—†๋‹ค๋ฉด B tree ๊ตฌ์กฐ์ธ ๊ฒฐํ•ฉ ์ธ๋ฑ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†๋Š” ์ ์„ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

22) ์‚ถ์—์„œ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋Š” ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฌด์—‡์ธ๊ฐ€์š”?

-> 

 

23) ํŠธ๋žœ์žญ์…˜์ด๋ž€ ๋ฌด์—‡์ด๊ณ  ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๊ณ ๋ฆฝ์„ฑ, ์ง€์†์„ฑ์ด๋ž€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

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

 

24) ์ •๊ทœํ™”๋ž€ ๋ฌด์—‡์ด๊ณ , ๋Œ€ํ‘œ์ ์ธ ์žฅ์ ๊ณผ ๋‹จ์ ์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

-> ์ •๊ทœํ™”๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์‹œ ์ค‘๋ณต ๋˜๋Š” ๋ถˆ์ผ์น˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์ค€ํ™”, ๊ตฌ์กฐํ™”๋œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์ •๊ทœํ™” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ ํ…Œ์ด๋ธ”์„ ~ ์ •๊ทœํ˜•์ด๋ผ๊ณ  ํ†ต์นญํ•˜๋ฉฐ, ์ œ 1 ์ •๊ทœํ™”๋Š” ๊ฐ๊ฐ์˜ ์ปฌ๋Ÿผ์€ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๋„๋ก ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์กฐํšŒ ์‹œ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ 2 ์ •๊ทœํ™”(Partial dependency๋ฅผ ์ œ๊ฑฐํ•œ ํ…Œ์ด๋ธ”)๋Š” ํ…Œ์ด๋ธ”์˜ ์ฃผ์ œ์™€ ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ์€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ๊ฐ’์„ ๋ณผ ์ˆ˜ ์—†๋‹ค๋Š” ๋‹จ์ ์ด ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. + composite primary key ~ partial dependency๋ž€ ๋ณตํ•ฉํ‚ค์— ์ข…์†๋˜๋Š”(๋ณตํ•ฉ ํ‚ค์— ๋”ฐ๋ผ ๊ฐ’์ด ๊ฒฐ์ •๋˜๋Š”) ์ปฌ๋Ÿผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ œ 3 ์ •๊ทœํ™”๋ž€ ๋ณตํ•ฉ ํ‚ค๊ฐ€ ์•„๋‹Œ ์ผ๋ฐ˜ ์ปฌ๋Ÿผ์— ์ข…์†๋œ ์ปฌ๋Ÿผ์„ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ •๊ทœํ™”๋Š” ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์—ฌ ์ผ๊ด€์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๊ณ  ์ €์žฅ๊ณต๊ฐ„์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ ์œผ๋กœ๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ณ  ๋ณด๋‹ค ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

25) HTTP์— ๋น„ํ•ด HTTPS๊ฐ€ ๋” ์•ˆ์ „ํ•œ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 1. ์•”ํ˜ธํ™” : HTTPS๋Š” TLS ๋˜๋Š” SSL๊ณผ ๊ฐ™์€ ๋ณด์•ˆ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ œ 3์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๋กœ์ฑ„๋”๋ผ๋„ ์ฝ๋Š” ๊ฒƒ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

2. ์ธ์ฆ : HTTPS๋Š” ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์ธ์ฆ๋˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ๊ธฐ๊ด€์ด ๋ฐœ๊ธ‰ํ•œ ์œ ํšจํ•œ ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์›น์‚ฌ์ดํŠธ๊ฐ€ ๊ฐ€์งœ์ธ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ณ  ์˜๋„ํ•œ ์›น์‚ฌ์ดํŠธ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋ฌด๊ฒฐ์„ฑ : HTTPS๋Š” ๋ฉ”์„ธ์ง€ ์ธ์ฆ ์ฝ”๋“œ(MAC)๋ฅผ ์‚ฌ์šฉํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ณ€์กฐ ๋˜๋Š” ์ˆ˜์ •์„ ๊ฐ์ง€ํ•ด ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ์—†์–ด์ ธ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

26) TCP 3 way handshake๋ž€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> TCP 3 way handshake๋Š” TCP(์ „์†ก ์ œ์–ด ํ”„๋กœํ† ์ฝœ)์—์„œ ๋„คํŠธ์›Œํฌ์˜ ๋‘ ์žฅ์น˜ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋ฉฐ, ์ด 3๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

1. SYN(๋™๊ธฐํ™”) : ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— SYN ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” SYN/ACK ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” SYN_SENT ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” SYN์š”์ฒญ์„ ๋ฐ›๊ณ  ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•œ๋‹ค๋Š” ACK(์‘๋‹ต ๋ฌธ์ž, ๊ธ์ • ์‘๋‹ต ๋ฌธ์ž)์™€ SYN flag๊ฐ€ ์„ค์ •๋œ ํŒจํ‚ท์„ ๋ฐœ์†กํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ACK๋กœ ์‘๋‹ตํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฐ๋‹ค. ์„œ๋ฒ„๋Š” SYN_RECEIVED ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์—๊ฒŒ ACK๋ฅผ ๋ณด๋‚ด๊ณ  ์ดํ›„ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„๋Š” ESTABLISHED ์ƒํƒœ๊ฐ€ ๋œ๋‹ค.

TCP 3 way handshake๋Š” ์—ฐ๊ฒฐ๋งŒ ์„ค์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•ด์ฃผ๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

27) ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ˜ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค๋ฉด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

28) ์ตœ๊ทผ์— ๋ณธ ๊ธฐ์ˆ  ์•„ํ‹ฐํด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 

 

29) TCP ์™€ UDP ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ฐธ๊ณ  : https://coding-factory.tistory.com/614

 

[Network] TCP / UDP์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•, ์ฐจ์ด์ 

์ „์†ก ๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ (TCP / UDP) TCP์™€ UDP๋Š” OSI ํ‘œ์ค€๋ชจ๋ธ๊ณผ TCP/IP ๋ชจ๋ธ์˜ ์ „์†ก๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ „์†ก๊ณ„์ธต์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  IP

coding-factory.tistory.com

-> TCP์™€ UDP๋Š” OSI ํ‘œ์ค€๊ณผ TCP/IP ๋ชจ๋ธ์˜ ์ „์†ก๊ณ„์ธต์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.  ์ „์†ก๊ณ„์ธต์€ ์†ก์ˆ˜์‹ ์ž ๊ฐ„ ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ํŒจํ‚ท ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉฐ ์žฌ์ „์†ก์š”๊ตฌ ์ œ์–ด ๋“ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๋‘ ํ”„๋กœํ† ์ฝœ์€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•ด ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๊ณผ ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ์œผ๋‚˜, ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์„ ์šฐ์„ ํ• ์ง€, ์‹ ์†์„ฑ์„ ์šฐ์„ ํ•  ์ง€์— ๋”ฐ๋ผ ๊ทธ ์—ญํ• ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TCP๋ž€ ์—ฐ๊ฒฐ ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ๋กœ์จ, ๋ฐ์ดํ„ฐ ํ†ต์‹  ์ „ ๋‘ ์žฅ์น˜ ๊ฐ„ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต์‹ ๋˜๋Š” ๋™์•ˆ ์œ ์ง€๋˜๊ณ , ๋งŒ์•ฝ ํŒจ๋ฐ‹์ด ์ค‘๊ฐ„์— ์œ ์‹ค๋˜๋Š” ๊ฒฝ์šฐ ACK๋ฅผ ๋ณด๋‚ด์ง€ ์•Š์Œ์œผ๋กœ ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๋„๋ก ์žฌ์ „์†ก ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์›น, ๋ฉ”์ผ, ํŒŒ์ผ ๊ณต์œ  ๋“ฑ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

UDP๋ž€ ์ „์†ก๊ณ„์ธต์˜ ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์žฅ์น˜ ์—ฐ๊ฒฐ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋ฏ€๋กœ TCP๋ณด๋‹ค ๋น ๋ฅธ ์ „์†ก์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ UDP๋Š” ์ค‘๊ฐ„์— ํŒจํ‚ท์ด ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์ˆ˜์ •๋˜์–ด๋„ ์žฌ์ „์†ก์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VoIP ๋“ฑ์˜ ์‹œ๊ฐ„ ๋™๊ธฐ๊ฐ€ ์ค‘์š”ํ•œ ์„œ๋น„์Šค์—์„œ UDP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

30) Base64 ์ธ์ฝ”๋”ฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

-> Base64 ์ธ์ฝ”๋”ฉ์€ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์Šคํ‚ค ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์•„์Šคํ‚ค ๋ฌธ์ž ํ•˜๋‚˜๊ฐ€ 64์ง„๋ฒ• ์ˆซ์ž ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 8๋น„ํŠธ ๋ฐ”์ดํŠธ 3๊ฐœ๋ฅผ 6๋น„ํŠธ์”ฉ 4๊ฐœ๋กœ ์ชผ๊ฐœ Base64 ์ฝ”๋“œ 4๊ฐœ๋กœ ๋ฐ”๊ฟ” ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. base 64๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋กœ๋Š” ์•„์Šคํ‚ค ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•˜๋ฏ€๋กœ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋งŒ ํ—ˆ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ๊ณผ๋„ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•œ ์ ๊ณผ URL์—์„œ ์‚ฌ์šฉ์ด ์–ด๋ ค์šด ํŠน์ˆ˜๋ฌธ์ž ๋“ฑ์„ URL ์•ˆ์ „ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์—์„œ base64๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

31) ์ฆ๊ฒ๊ณ  ํ–‰๋ณตํ–ˆ๋˜ ๊ฒฝํ—˜์„ ํ•˜๋‚˜ ์ด์•ผ๊ธฐํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

32) ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ฐธ๊ณ  : https://velog.io/@raejoonee/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ์ฐจ์ด๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ, ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์ˆ ๋ฉด์ ‘์—์„œ ๋‹จ๊ณจ ์งˆ๋ฌธ ์‚ฌํ•ญ์œผ๋กœ ๋‚˜์˜จ๋‹ค.

velog.io

https://12bme.tistory.com/68

 

[๋ณ‘๋ ฌํ”„๋กœ๊ทธ๋ž˜๋ฐ] ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ๋™๊ธฐํ™”

๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ์™€ ๋™๊ธฐํ™” ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ํ•„์—ฐ์ ์œผ๋กœ ๋งŒ๋‚˜๊ฒŒ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐ”๋กœ ๋™๊ธฐํ™”(Synchronization)์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณผ์ •์„ ๋„์‹ํ™”ํ•œ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ์˜ ์Šค๋ ˆ

12bme.tistory.com

-> ํ”„๋กœ์„ธ์Šค๋ž€ ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด ์ž‘์—…์‹คํ–‰ ๋‹จ์œ„๋กœ์จ, ํ”„๋กœ์„ธ์Šค๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค์™€ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ๊ฐ๊ฐ์˜ ์ฝ”๋“œ/๋ฐ์ดํ„ฐ/์Šคํƒ/ํž™์„ ํ• ๋‹น๋ฐ›๊ฒŒ ๋˜๊ณ , ์Šค๋ ˆ๋“œ๋Š” ์Šคํƒ๋งŒ ๋ณ„๋„๋กœ ํ• ๋‹น๋ฐ›๊ณ , ๊ทธ์™ธ ๋‚˜๋จธ์ง€ ์˜์—ญ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์Šค๋ ˆ๋“œ ํ•˜๋‚˜์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋„ ๋ชจ๋‘ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์˜ ๊ฒฝ์šฐ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์–ด ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฝ ๋ฐ ๋ฎคํ…์Šค, ์„ธ๋งˆํฌ์–ด ๋“ฑ์˜ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ™œ์šฉํ•ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ๊ณต์œ  ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

33) ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ๋Š” ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ๊ฐ„ ํ†ต์‹ ์— ๊ด€๋ จ๋œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋™๊ธฐํ™”๋Š” ์ƒํ˜ธ ํ•ฉ์˜๋œ ์ˆœ์„œ๋Œ€๋กœ ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ์Šค๋ ˆ๋“œ์˜ ์‹คํ–‰์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™”๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋จผ์ € ์ž‘์—… ์ค‘์ด๋˜ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฝ, ์„ธ๋งˆํฌ์–ด ๋ฐ ๋ชจ๋‹ˆํ„ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ด ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

 

34) ํž˜๋“ค๊ณ  ์‰ฝ์ง€ ์•Š์•˜์ง€๋งŒ ๊ทน๋ณตํ•œ ๊ฒฝํ—˜์„ ํ•˜๋‚˜ ์ด์•ผ๊ธฐํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

35) ๋™์‹œ์„ฑ๊ณผ ๋ณ‘๋ ฌ์„ฑ์„ ๋น„๊ตํ•˜์—ฌ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๋™์‹œ์„ฑ์€ ์—ฌ๋Ÿฌ ์ž‘์—… ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ์ž‘์—…๋งˆ๋‹ค ์‹œ๊ฐ„์„ ๋ถ„ํ• ํ•ด ์ ์ ˆํ•˜๊ฒŒ context swiching์„ ํ†ตํ•ด ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” "๊ฒƒ์ฒ˜๋Ÿผ" ๋ณด์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ ๋ชฉํ‘œ๋Š” ์œ ํœด ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๊ฐ€ I/O ์ž‘์—… ๋˜๋Š” DB ํŠธ๋žœ์ ์…˜ ๋“ฑ์˜ ์‹คํ–‰์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ๋Š” CPU ํ• ๋‹น์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ผ๋ จ์˜ ์ž‘์—…์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฝ”์–ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋™์‹œ์„ฑ์€ ๋‹จ์ผ ํ”„๋กœ์„ธ์„œ์—์„œ๋„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณ‘๋ ฌ์„ฑ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์„œ ๋˜๋Š” ์ฝ”์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

36) ์šฐ๋ฆฌ ํšŒ์‚ฌ์— ์ง€์›ํ•œ ๋™๊ธฐ๋ฅผ ๋ง์”€ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

->

 

37)  JVM ์ด๋ž€ ๋ฌด์—‡์ด๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> JVM์ด๋ž€ Java Virtual Machine์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ์™€ Java ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์— ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณ„์ธต์ด๋ฉฐ Java ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ปดํŒŒ์ผ๋˜๋ฉด JVM์ด ์„ค์น˜๋œ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. JVM์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
1.ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ : JVM์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ•˜๋“œ์›จ์–ด๋‚˜ ์šด์˜ ์ฒด์ œ์— ๊ด€๊ณ„์—†์ด JVM๋งŒ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2.๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ : JVM์€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘์„ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กญ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3.๋ณด์•ˆ : JVM์—๋Š” ์•…์„ฑ ์ฝ”๋“œ๊ฐ€ ๋ฏผ๊ฐํ•œ ๋ฆฌ์†Œ์Šค์— ์—‘์„ธ์Šค๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ๊ด€๋ฆฌ์ž๋ฅผ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
4.์„ฑ๋Šฅ ์ตœ์ ํ™” : JVM์—๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ ์‹คํ–‰์„ ๋™์  ์ตœ์ ํ™”ํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

38) Java๊ฐ€ ์ปดํŒŒ์ผ๋˜๋Š” ๊ณผ์ •์€ ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 1. ์†Œ์Šค์ฝ”๋“œ ์ž‘์„ฑ : java ๋ฌธ๋ฒ•์— ๋”ฐ๋ผ ํ™•์žฅ์ž๊ฐ€ .java์ธ ํŒŒ์ผ์— ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ํŒŒ์ผ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. ์ปดํŒŒ์ผ : java ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 3. ํด๋ž˜์Šค ํŒŒ์ผ ์ƒ์„ฑ : ๊ฐ ์†Œ์Šค ํŒŒ์ผ์€ ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ํŒŒ์ผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ํŒŒ์ผ์€ .class ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ์ด์ง„ ํ˜•์‹ ํŒŒ์ผ๋กœ, JVM์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. 4. ํด๋ž˜์Šค ๋กœ๋”ฉ : ํด๋ž˜์Šค ํŒŒ์ผ์€ JVM์—์„œ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ฝ์–ด JVM ๋ฉ”๋ชจ๋ฆฌ์— ํด๋ž˜์Šค ์ •์˜๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. 5. ๋ฐ”์ดํŠธ์ฝ”๋“œ ๊ฒ€์ฆ : ๋กœ๋“œ๋œ ํด๋ž˜์Šค ๊ฒ€์ฆ ๊ณผ์ •์—์„œ ์ฝ”๋“œ ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 6. JIT ์ปดํŒŒ์ผ : JVM์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•ด ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. 7. ์‹คํ–‰ : JVM์€ ์ตœ์ ํ™”๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

39) ์•ž์œผ๋กœ 3๊ฐœ์›”, 6๊ฐœ์›”, 1๋…„ ๋™์•ˆ ์–ด๋–ค ๊ฒƒ์„ ๊ณต๋ถ€ํ•  ๊ณ„ํš์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ๊ณ„ํš์„ ์„ธ์šด ์ด์œ ๋Š” ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 

 

40) JVM์˜ ์Šคํƒ๊ณผ ํž™๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ์•„๋Š” ๋งŒํผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 1. ์Šคํƒ : ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์ด ์Šคํƒ์— ์ƒ์„ฑ๋˜๋ฉฐ, ์ด ํ”„๋ ˆ์ž„์€ ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ๊ฐ’ ๋“ฑ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰์„ ๋งˆ์น˜๋ฉด ํ•ด๋‹น ํ”„๋ ˆ์ž„์ด ์Šคํƒ์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

2. ํž™ : ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” new ์—ฐ์‚ฐ์ž๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ํž™์— ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ˆ˜์ง‘ํ•  ๋•Œ๊นŒ์ง€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํž™์€ JVM์—์„œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ํž™์—์„œ ๊ณ ์œ ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋˜๋ฉฐ, ์ด ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํž™ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐ ๊ฐ์ฒด๋งˆ๋‹ค ํ•„์š”ํ•œ ํฌ๊ธฐ๋งŒํผ ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๋ฉฐ, JVM์€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋ฉด StackOverflowError, ํž™์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋ฉด OutOfMemoryError๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

41) ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ฒญ์‚ฌ์ง„, ํ‹€์ž…๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ๊ฒƒ์ด ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

42) Spring Security์˜ ๊ตฌ์กฐ์™€ JWT ๋ฐœ๊ธ‰ ๊ณผ์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋Š” ์ธ์ฆ๊ณผ ๊ถŒํ•œ๋ถ€ ๊ตฌ์กฐ๋กœ ๋‚˜๋ˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์€ AuthenticationManager๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉฐ, ๋งค๋‹ˆ์ €๋Š” ์—ฌ๋Ÿฌ AuthenticationProvider๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๊ณต๊ธ‰์ž๋Š” ๋‹ค์–‘ํ•œ ์ธ์ฆ๋ฐฉ์‹(ex: JWT, Form login, OAuth2 ๋“ฑ)์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Authorization์€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. AccessDecisionManager๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ฃผ๋ฉฐ, ๋งค๋‹ˆ์ €๋Š” ์—ฌ๋Ÿฌ AccessDecisionVoter๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , ๊ฐ Voter๋Š” ๊ถŒํ•œ์— ๋Œ€ํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค.
JWT๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ JSON ๊ฐ์ฒด์ด๋ฉฐ, Header, Payload, Signature ์„ธ ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ์ธ์ฆ ๊ณต๊ธ‰์ž๊ฐ€ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์„ฑ๊ณต ์‹œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณ€์กฐํ•  ์ˆ˜ ์—†๊ณ , ํ† ํฐ์„ HTTP ํ—ค๋”์— ๋‹ด์•„ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉฐ ํ† ํฐ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

 

43) N+1 ๋ฌธ์ œ์˜ ๋ฐœ์ƒ ์ด์œ ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”? ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€ ์ด์ƒ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

-> ์š”์ฒญ์ด 1๊ฐœ์˜ ์ฟผ๋ฆฌ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธธ ๊ธฐ๋Œ€ํ–ˆ๋Š”๋ฐ N๊ฐœ์˜ ์ถ”๊ฐ€ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ๋จผ์ € ์ฆ‰์‹œ๋กœ๋”ฉ ๋ฐฉ์‹์„ ์ง€์—ฐ๋กœ๋”ฉ ๋ฐฉ์‹์œผ๋กœ ๋ฐ”๊ฟ” ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์กฐํšŒํ•ด์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋„ ์—”ํ‹ฐํ‹ฐ์—์„œ ์—ฐ๊ด€ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์‹ค์ œ๋กœ ํ˜ธ์ถœํ•  ๋•Œ ๋‹ค์‹œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. Join Fetch ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ง„์งœ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฆ‰์‹œ๋กœ๋”ฉ๊ณผ ํŽ˜์น˜์กฐ์ธ์˜ ์ฐจ์ด์ ์€ ์ฆ‰์‹œ๋กœ๋”ฉ์˜ ๊ฒฝ์šฐ ์กฐํšŒ ๋Œ€์ƒ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚œ ํ›„ ํŽ˜์น˜ ์ „๋žต์„ ํ™•์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฆ‰์‹œ๋กœ๋”ฉํ•˜๋”๋ผ๋„ @BatchSize๋ฅผ ์‚ฌ์šฉํ•ด ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด ์ง€์ •๋œ ํฌ๊ธฐ๋งŒํผ ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ง€์—ฐ๋กœ๋”ฉ์— ํŽ˜์น˜์กฐ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

 

44) ์ฆ‰์‹œ๋กœ๋”ฉ๊ณผ ์ง€์—ฐ๋กœ๋”ฉ์€ ๊ฐ๊ฐ ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€์ง€ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ์ฆ‰์‹œ๋กœ๋”ฉ์€ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ๋„ ํ•จ๊ป˜ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•œ๋ฒˆ์˜ ์ฟผ๋ฆฌ๋กœ ์—ฐ๊ด€๋œ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์–ด, ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ์—” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ๊ด€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋„ ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์กฐํšŒ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ณ  ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 

45) JWT์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”? ๊ตฌ์ฒด์ ์œผ๋กœ JWT๋ฅผ ์–ด๋””์„œ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€, ์–ด๋– ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ฆํ•˜๋Š”์ง€, ์žฌ๋ฐœ๊ธ‰ ๋ฐฉ์‹๊ณผ ์ฃผ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€, ๋‹ค๋ฅธ API ์„œ๋น„์Šค ํ˜ธ์ถœ ์‹œ ์–ด๋–ป๊ฒŒ ์žก์•„์„œ ์ธ์ฆ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

-> JWT๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ Base64๋กœ ์ธ์ฝ”๋”ฉ๋œ JSON ๊ฐ์ฒด์ด๋ฉฐ, Header, Payload, Signature ์„ธ ๋ถ€๋ถ„์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋”์—๋Š” ํ† ํฐ์— ์„œ๋ช…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด๋กœ๋“œ์—๋Š” ์ „์†ก์ค‘์ธ ์ธ์ฆ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์„œ๋ช…์€ ํ† ํฐ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ JWT๊ฐ€ ๋ฐœ๊ธ‰๋˜๊ณ  ์‘๋‹ต์— ํฌํ•จ๋˜์–ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ์ดํ›„ JWT ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๋Š” JWT๋ฅผ ์š”์ฒญํ—ค๋”์— ๋‹ด์•„ ๋ณด๋‚ด๊ณ  ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

2. ์š”์ฒญ ์‹œ๋งˆ๋‹ค Access ํ† ํฐ๊ณผ Refresh ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ด ์‘๋‹ตํ•˜๋Š” ๊ฒฝ์šฐ์™€ ์žฌ๋ฐœ๊ธ‰ API๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋ฒ„์—์„œ Access ํ† ํฐ์ด ๋งŒ๋ฃŒ๋œ ๊ฒฝ์šฐ Refresh ํ† ํฐ์œผ๋กœ ์š”์ฒญํ•ด ์žฌ๋ฐœ๊ธ‰์„ ๋ฐ›๋Š” ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋‹ค๋ฅธ API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์š”์ฒญ ํ—ค๋”์—์„œ JWT๋ฅผ ์บก์ณํ•ด ํ•ด๋‹น ์š”์ฒญ์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ ํ† ํฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ช…์— ๋‹ด๊ธด ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

46) ์žฌ๋ฏธ์žˆ๊ฒŒ ๊ณต๋ถ€ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค๋ฉด ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> 

 

47) Garbage Collector์˜ ์—ญํ• , ์›๋ฆฌ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•„๋Š” ๋งŒํผ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํšŒ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋“ฑ ๋ฌธ์ œ๋ฅผ ๊ฑฑ์ •ํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GC๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•ด ํšŒ์ˆ˜ํ•˜์—ฌ ๋‚˜์ค‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” ํ‘œ์‹œ ๋ฐ ์Šค์œ•, ๋ณต์‚ฌ, ์ฐธ์กฐ ์นด์šดํŒ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์‹œ ๋ฐ ์Šค์œ•์€ ์‚ฌ์šฉ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์Šค์œ•ํ•ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์‚ฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋™์ผํ•œ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆˆ ๋’ค ์ ˆ๋ฐ˜์—๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ํ• ๋‹น๋œ ์ ˆ๋ฐ˜์ด ๊ฐ€๋“ ์ฐจ๋ฉด GC๋Š” ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•ด ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์— ๋ณต์‚ฌํ•˜๊ณ  ๊ธฐ์กด์˜ ์ ˆ๋ฐ˜์—๋Š” ์ƒˆ ๊ฐ์ฒด๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์นด์šดํŒ…์€ ๊ฐ ๊ฐ์ฒด์˜ ์ฐธ์กฐ ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์ˆ˜๊ฐ€ 0์ด๋ผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด์ด๋ฏ€๋กœ ํšŒ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์–ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

48) Java Map์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์„์ง€ ์ถ”์ธกํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ์ž๋ฐ” ๋งต์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด๋‚˜ ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ์— ํ‚ค-๊ฐ’ ์š”์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ๊ธฐ๋ณธ ๋ฐฐ์—ด์—์„œ ํ•ด๋‹น ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ‚ค๋ฅผ ํ•ด์‹œํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ˆœ์„œ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋…ธ๋“œ์˜ ํ‚ค๋Š” ์™ผ์ชฝ์ด ์˜ค๋ฅธ์ชฝ๋ณด๋‹ค ํ•ญ์ƒ ํฝ๋‹ˆ๋‹ค.

 

49) Spring bean container ์ƒ์„ฑ๋ถ€ํ„ฐ ์Šคํ”„๋ง ์ข…๋ฃŒ๊นŒ์ง€์˜ ์‚ฌ์ดํด์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”? @PostConstruct, @PreDestroy ์–ด๋…ธํ…Œ์ด์…˜์˜ ์—ญํ• ๋„ ํ•จ๊ป˜ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

-> ์Šคํ”„๋ง์€ ๊ตฌ์„ฑํŒŒ์ผ์— ์„ ์–ธ๋œ ๋นˆ์˜ ์ •์˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์„ ์ฝ๊ณ  ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ๋นˆ ์ •์˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๋นˆ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋นˆ์— ํ•„์š”ํ•œ ์†์„ฑ ๋˜๋Š” ์ƒ์„ฑ์ž ์ธ์ˆ˜์˜ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ์Šคํ”„๋ง์€ ๋ชจ๋“  BeanPostProcessor๋ฅผ ๋นˆ ์ธ์Šคํ„ด์Šค์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์Šคํ”„๋ง์€ ๋นˆ์— ์ง€์ •๋œ ์‚ฌ์šฉ์ž ์ •์˜ ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋ฅผ ๋งˆ์นœ ๋นˆ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™”๋œ ํ›„ @PostConstruct๊ฐ€ ๋ถ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ๋นˆ์ด ํ•„์š”ํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด ์Šคํ”„๋ง์€ ๋นˆ์— ์ง€์ •๋œ ์‚ฌ์šฉ์ž ์ •์˜ ์‚ญ์ œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์†Œ๋ฉธ๋˜๊ธฐ ์ „์— @PreDestory๊ฐ€ ๋ถ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด DB์™€ ์—ฐ๊ฒฐ๋œ ๋นˆ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

50) AOP, Interceptor, Filter ์˜ ์ฐจ์ด์ , Request๊ฐ€ ๋“ค์–ด์˜ฌ๋•Œ ๊ฑฐ์น˜๋Š” ์ˆœ์„œ, ๊ฐ ์—ญํ• ๋“ค์˜ ์žฅ์ ์„ ์„ค๋ช…ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

-> ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋“œ์˜ ์œ ์ง€๊ด€๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. AOP๋Š” ๊ต์ฐจ๋˜๋Š” ๋ฉ”์„œ๋“œ ๋“ฑ์„ ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋กœ ์บก์Šํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค. ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฏ€๋กœ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ๋“ฑ์„ ๊ฐ€๋กœ์ฑ„ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฉ”์„œ๋“œ๋‚˜ ์š”์ฒญ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ์ด์šฉํ•ด ๋กœ๊น…, ์˜ค๋ฅ˜์ฒ˜๋ฆฌ ๋ฐ ์บ์‹ฑ๊ณผ ๊ฐ™์€ ๊ธฐ์กด ๋ฉ”์„œ๋“œ์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„ํ„ฐ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ๊ฐ€๋กœ์ฑ„ ์ธ์ฆ, ์š”์ฒญ ๋ฐ ์‘๋‹ต ์••์ถ•, ์š”์ฒญ ์ œํ•œ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ์…‰ํ„ฐ์™€ ํ•„ํ„ฐ๋Š” Servlet ๋‹จ์œ„์—์„œ ์‹คํ–‰๋˜๊ณ , AOP๋Š” ๋ฉ”์„œ๋“œ ์•ž์˜ Proxy๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ˆœ์„œ๋กœ๋Š” Request๊ฐ€ ๋“ค์–ด์˜ค๋ฉด Filter -> InterCceptor -> AOP -> Intercepotr -> Filter๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. AOP๋Š” ์ฃผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค๋‹จ์˜ ๋ฉ”์„œ๋“œ์—์„œ ์กฐ๊ธˆ ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ž์œ ๋กญ๊ฒŒ ์œ„์น˜ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

728x90