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

Study/Spring9

[Spring] UUID๋ž€ ๐Ÿ™๐Ÿป UUID : Universally Unique Identifier UUID๋ž€ ์ •๋ณด ์‹๋ณ„์„ ์œ„ํ•˜์—ฌ 128 bit ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์‹๋ณ„์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋“ค์ด ๋‚˜์ค‘์— ๋‹จ์ผ DB๋กœ ํ†ตํ•ฉ๋˜๊ฑฐ๋‚˜ ๊ฐ™์€ ์ฑ„๋„์—์„œ ์ „์†ก๋˜๋”๋ผ๋„ ์‹๋ณ„์ž๊ฐ€ ์ค‘๋ณต๋  ํ™•๋ฅ ์ด ๋งค์šฐ ๋‚ฎ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. โœ… ์ •๋ณด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. โœ”๏ธ ์ฒซ ๋ฒˆ์งธ, UUID - 128 bit ์ˆซ์ž๋กœ ์ •๋ณด ์‹๋ณ„์— ์‚ฌ์šฉ๋จ - Microsoft์—์„œ๋Š” GUID๋ผ๊ณ  ๋ถˆ๋ฆผ - Standard Method๋กœ ์ƒ์„ฑ์‹œ ์‹ค์šฉ์ ์ธ ์šฉ๋„๋กœ ์ถฉ๋ถ„ํžˆ ๊ณ ์œ ํ•จ - ์ค‘์•™๋“ฑ๋ก๊ธฐ๊ด€(ex. DB์„œ๋ฒ„) ๋“ฑ์— ์˜์กด๋˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ - ๋ณ„๋„๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋˜ ๋ฐ์ดํ„ฐ๋“ค์„ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ์ฑ„๋„์—์„œ ์ „์†กํ•˜๋”๋ผ๋„ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ โœ”๏ธ ๋‘ ๋ฒˆ์งธ, Prim.. 2022. 11. 22.
[Spring] Mapper์™€ Repository ๐Ÿ™๐Ÿป Mapper์™€ Repository mapper์™€ repository๋ฅผ ๋น„๊ตํ•  ๋•Œ๋Š” mapper๊ฐ€ ์ž‘์€ ๋‹จ์œ„์— ์†ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, repository๋Š” mapper๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. โœ… Backend Business Logic ์ „์ฒด ๊ตฌ์กฐ โ‘  Model : controller, service, mapper, repository์™€ ์ƒํ˜ธ์ž‘์šฉ โ‘ก RestController : service์™€ ์ƒํ˜ธ์ž‘์šฉ โ‘ข Service : mapper, repository์™€ ์ƒํ˜ธ์ž‘์šฉ โ‘ฃ Mapper, Repository : SqlSession ๋ฐ DB์™€ ์ƒํ˜ธ์ž‘์šฉ ๐Ÿ“ Mapper ๋Œ€๋ถ€๋ถ„ ***.xml๊ณผ ๊ฐ™์ด SQL๋ฌธ์„ ์ •์˜ํ•ด๋†“์€ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. SQL๋ฌธ์„ ์ •์˜ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ •์˜ํ•ด๋†“์€ ๋ชจ๋ธ์— ๋งคํ•‘์‹œํ‚ค๋Š” Mybatis .. 2022. 11. 21.
[Spring] @Controller์™€ @RestController ๐Ÿ™๐Ÿป @Controller์™€ @RestController์˜ ์ฐจ์ด์ ์€ HTTP Response Body๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹ 1) @Controller๋Š” View๊ฐ€ ๋ฐ˜ํ™˜๋จ 2) @RestController๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋Š” JSON ๋˜๋Š” XML๋กœ HTTP ์‘๋‹ต์— ์ž‘์„ฑ๋จ ๐Ÿ”บ @Controller - Client ์š”์ฒญ์œผ๋กœ๋ถ€ํ„ฐ View๋ฅผ ๋ฐ˜ํ™˜ - Controller๋Š” ViewResolver ์„ค์ •์— ๋งž๋Š” View๋ฅผ ๋ฐ˜ํ™˜ โ‘  Controller๋กœ View ๋ฐ˜ํ™˜ํ•˜๊ธฐ โ‘ก Controller๋กœ Data ๋ฐ˜ํ™˜ํ•˜๊ธฐ - RESTful ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ Spring MVC์˜ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด @ResponseBody ์‚ฌ์šฉ - ๋‚ด๋ถ€์ ์œผ๋กœ Spring์€ HTTPMessageConverter ๋ฆฌ.. 2022. 11. 21.
[Spring] DAO / DTO / VO / Entity ๐Ÿ™๐Ÿป DAO / DTO / VO / Entity โœ”๏ธ Java ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ 1) ์ปจํŠธ๋กค๋Ÿฌ Controller ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์ด ๋“ค์–ด์˜ฌ ๋•Œ ํ•ด๋‹น ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ œ์–ด ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์„ธ๋ถ€์ ์œผ๋กœ ์„œ๋น„์Šค ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“ค์–ด ํ•ด๋‹น ์š”์ฒญ ์‚ฌํ•ญ์„ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 2) ์„œ๋น„์Šค Service ์„œ๋น„์Šค ๋ ˆ์ด์–ด์—์„œ ์„ธ๋ถ„ํ™”๋œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. 3) DAO : Data Access Object DB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ „๋‹ดํ•˜๋„๋ก ๋งŒ๋“  ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. 4) VO : Value Object / DTO : Data Transfer Object ๊ฐ ๊ณ„์ธต๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ์ž๋ฐ” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ๐Ÿ“ DAO : Data Access Object DB์˜ ๋ฐ์ดํ„ฐ์— .. 2022. 11. 21.
[Spring] ModelAndView ๊ฐ์ฒด ๐Ÿ™๐Ÿป ModelAndView ๊ฐ์ฒด : ํŽ˜์ด์ง€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ €์žฅ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ View๋กœ ๊ฐ์ฒด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ Model์ด๋‚˜ ModelAndView๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ’ก MVC ํŒจํ„ด - Model, View, Controller์˜ ์•ฝ์ž - ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ๊ทธ ๊ตฌ์„ฑ์˜ ์š”์†Œ๋ฅผ ์„ธ๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ํŒจํ„ด - ์„œ๋กœ์—‘ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด์žˆ์Œ ๐Ÿ‘‰๐Ÿป Model ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ •๋ณด, ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ฒ˜์Œ์˜ ์ •์˜ํ•˜๋Š” ์ƒ์ˆ˜, ์ดˆ๊ธฐํ™” ๊ฐ’, ๋ณ€์ˆ˜ ๋“ฑ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘‰๐Ÿป View input ํ…์ŠคํŠธ, ์ฒดํฌ๋ฐ•์Šค ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ ๊ฐ์ฒด์˜ ์ž…๋ ฅ, ์ถœ๋ ฅ ๋“ฑ์„ ๋‹ด๋‹นํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๋“ค์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค... 2022. 11. 18.
[Spring] Annotation ์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ™๋ฏผ์ •์ž…๋‹ˆ๋‹น ๐Ÿ™Œ๐Ÿป๐Ÿซง ์˜ค๋Š˜์€ ์Šคํ”„๋ง์˜ ๊ธฐ๋ณธ์ธ ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ์ข…๋ฅ˜์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค ! ๐Ÿ“ž ์–ด๋…ธํ…Œ์ด์…˜ (@, Annotation) ์€ Java 5๋ถ€ํ„ฐ ๋“ฑ์žฅํ•œ ๊ฐœ๋…์œผ๋กœ ์‚ฌ์ „์  ์˜๋ฏธ๋กœ๋Š” ์ฃผ์„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ”๋“œ ์‚ฌ์ด์—์„œ ์ฃผ์„์ฒ˜๋Ÿผ ์“ฐ์ด๋ฉฐ ํŠน๋ณ„ํ•œ ์˜๋ฏธ์™€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์„ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๊ณ  ์ฝ”๋“œ๋ฅผ ์ข€ ๋” ๊น”๋”ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋…ธํ…Œ์ด์…˜์€ ์†Œ์Šค์ฝ”๋“œ์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ก ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ? ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์ง„์— ์žˆ๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ โœ… ์–ด๋…ธํ…Œ์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. โ‘  ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ฝ”๋“œ ๋ฌธ๋ฒ• ์—๋Ÿฌ๋ฅผ ์ฒดํฌํ•˜๋„๋ก ์ •๋ณด ์ œ๊ณต โ‘ก ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ.. 2022. 10. 24.
[Spring] JDBC์™€ JPA ์•ˆ๋…•ํ•˜์„ธ์š” ! ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ™๋ฏผ์ •์ž…๋‹ˆ๋‹ค :) ๐Ÿซง ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์ˆ  ๋ฐ ๋™์ž‘์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์ด๋“ค์˜ ์ฐจ์ด์ ์ด ๊ถ๊ธˆํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์˜ค๋Š˜์€ JDBC์™€ JPA์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ์ด ๋‘˜์˜ ์ฐจ์ด์ ์„ ์•Œ๊ธฐ์œ„ํ•ด ์˜์†์„ฑ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค ! ๐Ÿ’ก ์˜์†์„ฑ(Persistence) ? - ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ - Persistence Layer๋Š” ํ”„๋กœ๊ทธ๋žจ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ฐ์ดํ„ฐ์— ์˜์†์„ฑ์„ ๋ถ€์—ฌํ•ด์ฃผ๋Š” ๊ณ„์ธต์„ ๋งํ•˜๋ฉฐ, Persistence framework๋ฅผ ์ฃผ๋กœ ์ด์šฉํ•จ - Persistence Framework๋Š” JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ณต์žกํ•จ์ด๋‚˜ ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์ด ๊ฐ„๋‹จํ•œ ์ž‘์—…๋งŒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™๋˜๋Š”.. 2022. 10. 23.
[Spring] Spring Data JPA์™€ QueryDSL ์•ˆ๋…•ํ•˜์„ธ์š” (์˜ˆ๋น„)๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ™๋ฏผ์ •์ž…๋‹ˆ๋‹ค. ๐Ÿซง Spring Data JPA์™€ QueryDSL์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ ์žํ•ฉ๋‹ˆ๋‹ค ! โ˜‘๏ธ Spring Data JPA โ–ช๏ธ Spring Data JPA ์ง€๋ฃจํ•˜๊ฒŒ ๋ฐ˜๋ณต๋˜๋Š” CRUD๋ฌธ์ œ๋ฅผ ์„ธ๋ จ๋œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ž‘์„ฑํ•˜๋ฉด ๋จ Spring data JPA๊ฐ€ ๊ตฌํ˜„ ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์ฃผ์ž…ํ•จ JpaReapository ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ด๋ฅผ ์ƒ์†๋ฐ›์•„ ์šฐ๋ฆฌ๊ฐ€ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  API๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ public interface CartDetailRepository extends JpaRepository { } โ–ช๏ธ Spring Data JPA์˜ ์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ ๊ธฐ๋Šฅ ๊ธฐ๋ณธ์ ์œผ๋กœ CRUD ๋ฉ”์„œ๋“œ ๋ฐ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•จ @Query ์• ๋„ˆ.. 2022. 10. 8.
[Spring] DTO, Entity, Mapper ์•ˆ๋…•ํ•˜์„ธ์š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ™๋ฏผ์ •์ž…๋‹ˆ๋‹ค ๐Ÿซง ์˜ค๋Š˜์€ DTO, Entity๊ฐ€ ๋ฌด์—‡์ด๋ฉฐ Mapper๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ถ”๊ฐ€์ ์œผ๋กœ @Mapper ์• ๋„ˆํ…Œ์ด์…˜๊นŒ์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ! ์•Œ์•„๋ณด๊ธฐ์— ์•ž์„œ, ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ด๋˜๊ธฐ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. โœ๐Ÿป Entity - ์‹ค์ œ DB์˜ ํ…Œ์ด๋ธ”๊ณผ ๋งค์นญ๋œ ํด๋ž˜์Šค - ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ๋  ํด๋ž˜์Šค์ž„์„ ๋‚˜ํƒ€๋ƒ„ - DB ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์ปฌ๋Ÿผ๋“ค์„ ํ•„๋“œ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด๋ฅผ ๋งํ•จ ์ฆ‰, ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์„œ๋Š” ์•ˆ๋จ โœ๐Ÿป DTO - Data Transfer Object, ๋ฐ์ดํ„ฐ ์ „์†ก ๊ฐ์ฒด - ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฐ์ฒด - DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด Service๋‚˜ Controller ๋“ฑ์œผ๋กœ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด - ๋กœ์ง์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ  Getter/S.. 2022. 9. 6.