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

๋ฐฑ์—”๋“œ12

[ํšŒ๊ณ ] 2024๋…„์„ ๋งˆ์น˜๋ฉฐ ํ–‡์ˆ˜๋กœ ๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ์ด ๋ฒŒ์จ 2๋…„์ด ๋˜์—ˆ๋‹ค.์—Š๊ทธ์ œ ์—ฐ๋ง ํšŒ๊ณ ๋ฅผ ์ž‘์„ฑํ–ˆ์„ ๋•Œ๊ฐ€ 1๋…„์ฐจ์˜€๋Š”๋ฐ, ์‹œ๊ฐ„ ์ฐธ ๋น ๋ฅด๊ฒŒ ํ๋ฅด๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ˜‚ ์˜ฌํ•ด๋Š” ์ฐธ ๋‹ค์–‘ํ•œ ์ผ๋“ค์ด ์žˆ์—ˆ๋‹ค.์ด์ง ์ด๋ผ๋Š” ๋น… ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์—ˆ๊ธฐ๋„ ํ–ˆ๊ณ , ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ต๋ฅ˜ํ•˜๋ฉฐ ์œ ์ตํ•œ ๊ฒฝํ—˜์„ ์–ป๊ธฐ๋„ ํ–ˆ๋‹ค. 2024๋…„์€ ์‹œ์ž‘๋ถ€ํ„ฐ ์ด์ง์„ ์œ„ํ•ด ์ค€๋น„ํ–ˆ๋˜ ๊ธฐ๊ฐ„๋“ค์ด์—ˆ๋‹ค.์ด์ง์„ ๊ฒฐ์‹ฌํ•˜๊ฒŒ ๋œ ์ด์œ ๋กœ ๊ฐ€์žฅ ๊ฐˆ์ฆ์ด ๋‚ฌ๋˜ ์š”์†Œ๋“ค์€๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์„œ๋น„์Šค์˜ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋” ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค์„ ์œตํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•ด๋ณด๋Š” ์ž์œ ๋กœ์šด ํ™˜๊ฒฝ,๊ทธ๋ฆฌ๊ณ  ๋” ์ฒด๊ณ„์ ์ธ ๊ธฐ์ˆ  ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ๊ณผ ์„ ๋ฐฐ๋“ค์„ ์›ํ–ˆ๋‹ค. ์Šคํ„ฐ๋””๋ฅผ ๋งค์ฃผ ์ง„ํ–‰ํ–ˆ์ง€๋งŒ, ์ด๋ฒˆ ๋งŒํผ์€ ์ด์ง์— ๋Œ€ํ•œ ํฌ์ปค์Šค๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ฃผ์ œ๋ฅผ ์„ ์ •ํ–ˆ์—ˆ๋‹ค.๋ฐฑ์—”๋“œ ์—”์ง€๋‹ˆ์–ด๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌํ˜„ ์‹ค๋ ฅ์€ ๊ธฐ๋ณธ์ด๊ณ , CS ์ง€์‹ & ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋Šฅ๋ ฅ๊ณผ DB์—.. 2024. 12. 25.
์ผ์ฃผ์ผ์˜ ํœด์‹๊ณผ ์ƒˆ๋กœ์šด ์ทจ๋ฏธ ๊ฐœ์‹œ ํ‡ด์‚ฌ ํ›„ ์ž…์‚ฌ ์ „ ์ผ์ฃผ์ผ์˜ ํœด์‹ ๊ธฐ๊ฐ„์ด ์ฃผ์–ด์กŒ๋‹ค.๋ฌด์—‡์„ ํ•˜๊ณ  ์‰ฌ์–ด์•ผ ํ• ๊นŒ ํ•˜๋‹ค, ์ฃผ๋ณ€ ์ง€์ธ๋“ค ๊ถŒ์œ ์— ๋ฌด๊ณ„ํš์œผ๋กœ 2๋ฐ• 3์ผ ์ œ์ฃผ๋„ ์—ฌํ–‰์„ ๋‹ค๋…€ ์™”๋‹ค.์ฐจ๊ฐ€ ์—†์–ด์„œ ๋ถˆํŽธํ–ˆ์ง€๋งŒ, ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋‚œ ์ธ์—ฐ๋“ค์„ ํ†ตํ•ด ์ฐจ๋„ ์–ป์–ดํƒ€๊ฐ€๋ฉด์„œ ๋œปํ•˜์ง€ ์•Š๊ฒŒ ์žฌ๋ฐŒ๊ฒŒ ๊ตฌ๊ฒฝํ•˜๊ณ  ๋จน๊ณ  ์‰ฌ์—ˆ๋‹ค.์„ธ์ƒ์ด ์ •๋ง ์ข๋‹ค๊ณ  ๋Š๋‚€๊ฒŒ, ๊ณ ๋“ฑํ•™๊ต ์นœ๊ตฌ๋ฅผ ์•„๋Š” ์ธ์—ฐ์„ ๋งŒ๋‚ฌ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ฐธ ์„ธ์ƒ ์ข๊ณ  ์‹ ๊ธฐํ–ˆ๋‹ค.์—ฌํ–‰์— ํฐ ๊ฐํฅ์€ ์—†์–ดํ•˜๋Š” ์„ฑ๊ฒฉ์ด์ง€๋งŒ, ์ด๋ฒˆ์—๋Š” ์งง๊ฒŒ๋ผ๋„ ๋‹ค๋…€์˜ค๊ธธ ์ž˜ํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.(๋ฉดํ—ˆ ์ด๋ฒˆ ๋…„๋„ ์•ˆ์— ๋ฌด์กฐ๊ฑด ๋”ฐ์•ผ๊ฒ ๋‹ค.) ์ฃผ์ง“์ˆ˜๋„ ์‹œ์ž‘ํ–ˆ๋‹ค.์ฒซ ํšŒ์‚ฌ ๋™์ผ ์ง๊ตฐ ๊ฐœ๋ฐœ์ž ํ˜•๊ณผ ์ง€์†์ ์œผ๋กœ ์—ฐ๋ฝํ•˜๋ฉฐ ์ง€๋‚ด๋Š”๋ฐ, ๊ทธ ํšŒ์‚ฌ ๋‹ค๋‹ ๋•Œ๋ถ€ํ„ฐ ํ•ญ์ƒ ์ฃผ์ง“์ˆ˜๋ฅผ ๊ฐ™์ด ํ•˜์ž๊ณ  ๊ถŒ์œ ํ–ˆ์—ˆ๋‹ค๐Ÿ˜…์ด์ง๋„ ํ–ˆ๊ฒ ๋‹ค ์ €๋ฒˆ ์ฃผ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ, ์ƒˆ๋กญ๊ฒŒ ์šด๋™์„ ๋ฐฐ์›Œ๋ณด๋Š” ๊ฑด ์‚ด๋ฉด์„œ ์ฒ˜์Œ์ด๋‹ค... 2024. 8. 19.
๋ˆ„์  ๋ฐฉ๋ฌธ 3๋งŒ๋ช… ๋‹ฌ์„ฑ ์†ŒํšŒ ์ž‘๋…„ 8์›” ์ฆˆ์Œ 2๋งŒ ๋ช… ๋‹ฌ์„ฑ, 1๋…„์ด ์ฑ„ ์•ˆ ๋˜์–ด์„œ ๋ฒŒ์จ ๋ฐฉ๋ฌธ์ž ์ˆ˜ 3๋งŒ ๋ช…์ด๋‹ค. ๋ฐฉ๋ฌธ์ž ์ˆ˜ ์˜ค๋ฅด๋Š” ์†๋„๊ฐ€ ๋ถ™๋Š” ๊ฒƒ ๊ฐ™๊ธฐ๋„? ใ…Žใ…Ž 1๋…„ ์ „ ๋‚œ ์–ด๋–ค ์ƒ๊ฐ์„ ํ•˜๊ณ  ์žˆ์—ˆ์„๊นŒ? ์—ด์‹ฌํžˆ ์ฝ”๋”ฉ ์ค‘์ด์—ˆ๊ตฌ๋‚˜ ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ๐Ÿ˜…๐Ÿ˜… ์‹œ๊ฐ„๋„ ์ฐธ ๋น ๋ฅด๋‹ค. 1๋…„์ด ๋ฒŒ์จ ๋„˜์—ˆ์œผ๋‹ˆ ๋ง์ด๋‹ค. ๊ทธ๋• ํ•ญ์ƒ ์ƒˆ๋ฒฝ๊นŒ์ง€ ์•ผ๊ทผํ•˜๋ฉด์„œ, ๊ฐœ๋ฐœ์— ๋ชฐ์ž…ํ–ˆ์—ˆ๋Š”๋ฐ ๋ง์ด์ง€. ๊ทธ ๋‹น์‹œ ๋งˆ์ผ์Šคํ†ค๋„ ์ฐธ ์งง๊ธฐ๋„ ํ–ˆ๋‹ค. ์ฃผ๋ง ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์ƒˆ๋ฒฝ 1, 2์‹œ ์•ผ๊ทผ ํ›„ ๊ท€๊ฐ€, ์ง‘ ๊ฐ€์„œ ์ž๊ณ  ๋ฐ”๋กœ ์ถœ๊ทผ์˜ ๋ฐ˜๋ณต. ๊ทธ๋ž˜๋„ ๋ณด๋žŒ์ฐผ๋‹ค. ์˜จ์ „ํžˆ ๋‚˜๋งŒ์˜ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค. DB ๊ตฌ์กฐ ์„ค๊ณ„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ, ๋ฐฐํฌ ํ™˜๊ฒฝ ๊ตฌ์„ฑ๊นŒ์ง€ ๋‹ค ํ–ˆ์œผ๋‹ˆ ๋ง์ด๋‹ค. ์˜†์—์„œ ๋„์›€ ์ฃผ์‹  ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ถ„๋“ค๊ป˜๋„ ์ฐธ ๊ฐ์‚ฌ๋“œ๋ฆฐ๋‹ค. ์ด ํšŒ์‚ฌ์—์„œ ์ฐธ ๋งŽ์ด๋„ ๋ฐฐ์› ๋‹ค. ์ธํ”„๋ผ ๊ตฌ์„ฑ, ๋ฐฐํฌ ํ™˜๊ฒฝ ๋ชจ๋‹ˆํ„ฐ๋ง, ๊ฐ.. 2024. 7. 27.
Mark until December ๊ทธ๋ ‡๊ฒŒ ์‚ด์•„๊ฐ€๋‹ค ๋ณด๋‹ˆ ์–ด๋Š์ƒˆ ์—ฐ๋ง์ด๋‹ค. ๊ณง 2024๋…„์ด๋‹ค. ์„ธ์›”์ด๋ž€ ๊ฑด ์ˆœ์‹๊ฐ„์ด๊ตฌ๋‚˜. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์–ผ๋งˆ ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์€๋ฐ, ์–ด๋Š์ƒˆ 1๋…„ ๊ฒฝ๋ ฅ์„ ์•ž๋‘๊ณ  ์žˆ๋‹ค. ์–ด๋Š์ƒˆ. ์ฒซ ๋…๋ฆฝ์„ ์‹œ์ž‘ํ•œ 2022๋…„ 12์›” 31์ผ, ์ฒซ ์ปค๋ฆฌ์–ด๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋‚˜๋Š”, ์–ด๋–ค ์•ผ๋ง์„ ํ’ˆ๊ณ  ์žˆ์—ˆ์„๊นŒ. 1๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ, ๋‚˜๋Š” ๋™์ผํ•œ ์•ผ๋ง์„ ํ’ˆ๊ณ  ์žˆ์„๊นŒ? ์• ๋งคํ•œ ๊ฒƒ์€ ํ•ญ์ƒ ์‹ซ๋‹ค. ํ‰๋ฒ”ํ•œ ๊ฑด ๋”๋”์šฑ ์‹ซ๋‹ค. ์‚ถ์€ ๊ฒฝ์Ÿ์ด๊ธฐ์—, ์ตœ๊ณ ๊ฐ€ ๋˜๊ณ  ์‹ถ๋‹ค. ์ ์–ด๋„ ๋‚ด๊ฐ€ ์†ํ•œ ๋ฌด๋ฆฌ ๋‚ด์—์„œ๋Š” ๋ˆ„๊ตฌ๋ณด๋‹ค ๋งŽ์ด ์•„๋Š” ๊ฒƒ์ด ๋‚˜์˜ start line์ด๋‹ค. ๋Š˜ ๊ธฐ์ค€์„ ๋†’๊ฒŒ ์„ธ์›Œ์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ๋งŒ ํ•œ๋‹ค. ํšŒ์‚ฌ์— ๋“ค์–ด์˜ค๊ณ  ๋‚˜์„œ, ์ •๋ง ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ์žˆ๋‹ค. ์ฝ”๋“œ ๋ ˆ๋ฒจ์—์„œ์˜ ์ง€์‹๋ถ€ํ„ฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜, ์ธํ”„๋ผ ๋ฐ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ, DevOps ๋“ฑ๋“ฑ.. 2023. 12. 10.
๋ˆ„์  ๋ฐฉ๋ฌธ ์ˆ˜ 2๋งŒ๋ช… ๋‹ฌ์„ฑ~! ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ์‹œ์ž‘ํ•œ์ง€ 2๋…„ ์ข€ ์•ˆ ๋˜์—ˆ๋‹ค. 2021๋…„ ๊ฒจ์šธ ์ •๋„์— ์‹œ์ž‘ํ–ˆ์œผ๋‹ˆ ๋ง์ด๋‹ค. ๋ฒŒ์จ (์•„๋‹ˆ ์ด์ œ์•ผ..) 2๋งŒ๋ช… ๋‹ฌ์„ฑ์ด๋ผ๋‹ˆ.. ์กฐํšŒ ์ˆ˜๋Š” ์ฐธ ๋Š˜๋ฆฌ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๊ตฌ๋‚˜.. ์–‘์งˆ์˜ ๊ธ€์„ ์จ๋ณด๋„๋ก ๋…ธ๋ ฅํ•˜์ž. ์š”์ƒˆ ๋ญํ•˜๊ณ  ์ง€๋‚ด๋‹ˆ? ํšŒ์‚ฌ์—์„œ ์—ด์‹ฌํžˆ ์ฝ”๋”ฉ ์ค‘์ด๋‹ค. ์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋งˆ์ผ์Šคํ†ค์ด ์ƒ๋‹นํžˆ ์งง์€ ๊ฐ์ด ์—†์ง€ ์•Š์ง€๋งŒ, ์งง๋‹ค๊ณ  ๋Š๋ผ๋Š” ๊ฒƒ๋„ ๊ฒฐ๊ตญ ๋‚ด ์‹ค๋ ฅ ๋ถ€์กฑ์ด๋ž€ ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ์ด์ „์—๋Š” CRUD ์— ์ง„์ ˆ๋จธ๋ฆฌ ๋‚˜์„œ, ์›ฌ๋งŒํ•œ ๊ฑด ์ •๋ง ํด๋ฆฐํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ๋” ํฐ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ํšŒ์‚ฌ์— ์˜ค๋‹ˆ, ์ด๋Ÿฐ? ํฐ ์˜ค์‚ฐ์ด์—ˆ๋‹ค.. ๊ฐœ๋ฐœ ์†๋„ VS ํ€„๋ฆฌํ‹ฐ ์ด์ „๊ณผ ๊ฐ™์ด ์ง€๊ธˆ๋„ ๋ณ€ํ•จ ์—†๋Š” ์ƒ๊ฐ์ด์ง€๋งŒ, ํ€„๋ฆฌํ‹ฐ๋Š” ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ๋ณธ ์—ญ๋Ÿ‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์—ญ๋Ÿ‰์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ์˜ค๋กœ์ง€ ๋ณธ์ธ์˜ ๋ชซ์ด๋ฉฐ, 2๊ฐ€์ง€.. 2023. 8. 27.
์ฒซ ์ด์ง ์ตœ๊ทผ, ์ด์ง์„ ํ–ˆ๋‹ค. ๊ฒฐ์ œ ์นด๋“œ ๋‹จ๋ง๊ธฐ, ํฌ์Šค ๋“ฑ ํด๋ผ์šฐ๋“œ ํฌ์Šค ์•„์ดํ…œ์œผ๋กœ B2B ์‚ฌ์—…์„ ํ•˜๋Š” ์Šคํƒ€ํŠธ์—…์ด๋‹ค. ๊ฝค ์งง์€ ๊ธฐ๊ฐ„ ์•ˆ์— ์ด์ง์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด์ „ ํšŒ์‚ฌ์—์„œ 5๊ฐœ์›” ๋งŒ์˜ ์ด์ง์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ ๋ง์ด๋‹ค. (์‚ฌ์‹ค ์ƒ ๊ฒฝ๋ ฅ์ด ์•„๋‹Œ ์‹ ์ž… ํฌ์ง€์…˜์ด๋ผ ๋ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค..ใ…Žใ…Ž) ํ•œ๋ฒˆ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ์€ ๋์„ ๋ณด์ž๋Š” ์„ฑ๊ฒฉ์ด๊ธฐ์—, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน๊ณ  ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ, ์–ธ์  ๊ฐ€ ๋๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๋ณด์ž ํ•˜๋Š” ์š•๊ตฌ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๋งค์ผ ๊ทธ์— ๋ถ€ํ•ฉํ•˜๋Š” ํ™˜๊ฒฝ๊ณผ ์ƒํ™ฉ์„ ์ฐพ์•„๊ฐ„๋‹ค๊ณ  ์ƒ๊ฐ์„ ํ•œ๋‹ค. ์ƒˆ๋กญ๊ฒŒ ํ•ฉ๋ฅ˜ํ•˜๊ฒŒ ๋œ ์ด ๊ณณ์€, ๊ฟˆ ๊พธ๋˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๊ทผ์ ‘ํ•˜๋‹ค. PR merge ๋ฅผ ์œ„ํ•œ ์ถฉ๋ถ„ํ•œ ์Šน์ธ ์กฐ๊ฑด, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์˜ ์ฒ ํ•™์— ๋งž๋Š” ์ถฉ๋ถ„ํ•œ ๊ณ ๋ฏผ๊ณผ ๊ทธ๋ฅผ ๋…น์—ฌ๋‚ธ ๊ฒฐ๊ณผ๋ฌผ, ํ™•์žฅ์„ฑ ์žˆ๋Š” ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ๋ฏผ์˜ ํ”์ ๋“ค.. 2023. 6. 12.
[Spring data JPA] N+1 ๋ฌธ์ œ ํ•ด๊ฒฐ ์ด๋ ‡๊ฒŒ ์ด๋ฃจ์–ด์ง„ ERD ๋ชจ๋ธ์ด ์žˆ๋‹ค. (์˜ˆ์‹œ) ์กฐ๊ฑด์— ๋งž์ถฐ ๋ถˆ๋Ÿฌ์˜ค๊ณ ์ž ํ•˜๋Š” Data๋Š” ์„ธ ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ํ•„์š”๋กœ ํ•œ๋‹ค. ์ด๋•Œ Fetch join์„ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. Permission ์ž…์žฅ์—์„œ user์™€ document๋ฅผ ๋‘๋ฒˆ ๋‹ค fetch join ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋Šฅ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ์ƒ ์—„์ฒญ๋‚œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ, ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋‚˜๋ˆ ์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ์—”ํ‹ฐํ‹ฐ๋“ค์€ ๋ชจ๋‘ FetchType.LAZY ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค. ๊ธฐ์กด ์ฟผ๋ฆฌ : val documents = documentQueryService.findDocumentsByIdFetchJoinPermissions(projectId) return Response.UserPe.. 2023. 2. 28.
2022.05.03 ใ€Œ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• & Back ์ค‘์‹ฌ ๊ฐœ๋ฐœ ์ˆ˜์ • ๋ฐ ์‹œ์ž‘ใ€ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ง€ ์ผ์ฃผ์ผ์ด ์ข€ ๋˜์–ด๊ฐ„๋‹ค. ์ž˜ ๋˜์–ด๊ฐ€๊ณ  ์žˆ๋‚˜ ์ƒ๊ฐ์„ ํ•ด๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์•„๋ฌด๋ฆฌ ์ƒ๊ฐํ•ด๋„ ์ด์ƒํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๊ณ„์† ๋“ค์—ˆ๋‹ค. 1. ๋ถ„๋ช… Backend ๊ฐœ๋ฐœ์ด ๋ชฉ์ ์ธ๋ฐ ์™œ ๋‚˜๋Š” Front(Thymeleaf, CSS ๋“ฑ๋“ฑ)์— ์‹œ๊ฐ„์„ ๋” ์Ÿ๊ณ  ์žˆ๋Š” ๊ฒƒ์ธ๊ฐ€? 2. ์ฃผ์„ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ๋‚œ์žกํ•˜๋‹ค? ์ด๋ฅผ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ๊ฐœ๋ฐœ์ž๋ถ„์˜ ์กฐ์–ธ์„ ๋“ฃ๊ณ  ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ ๋‹จ์œ„์˜ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•, Back ์ค‘์‹ฌ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. ์ฃผ์„์„ ๋‹ค๋Š” ๋ฐฉ๋ฒ•? ๊ธฐ์กด์— ๋‚˜๋Š” ๊ธฐ์ค€ ์—†์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ์ •๋„๋ฉด ์•Œ์•„๋ณด๊ฒ ์ง€๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๋‚˜๋ฆ„ ์ฃผ์„์„ ์ž˜ ์ž‘์„ฑํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๊ฑด ๋‚˜๋งŒ์˜ ์ฐฉ๊ฐ์ด์—ˆ๋‹ค. ์•„๋ฌด๋ฆฌ ์ž˜ ์ž‘์„ฑํ–ˆ๋‹ค ์ƒ๊ฐํ•œ ์ฃผ์„๋„ ๋‚จ์ด ๋ณผ ๋• ๊ทธ์ € ๋‚œ์žกํ•˜๊ณ  ์˜๋ฏธ ์—†์ด ๋‹ฌ๋ฆฐ ์ฃผ์„์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ.. 2022. 5. 3.
2022.04.16 ์˜ ๊ธฐ๋ก โ–ถ ์ฃผ๋ง ๊ณ„ํš 1. SpringMVC ์™„๊ฐ• 2. Gradle test ํ”„๋กœ์ ํŠธ intellij๋กœ ๊นƒ ์—ฐ๋™ 3. ์Šคํ”„๋ง ๋Œ€๋‹ต ๋ชปํ•œ ์งˆ๋ฌธ ์ •๋ฆฌ 4. ์ž๊ธฐ์†Œ๊ฐœ์„œ ์† ๋ณด๊ธฐ โ–ถ ์˜ค๋Š˜ ํ•  ์ผ 1. SpringMVC 8,90ํผ์„ผํŠธ 2. ๊นƒ ํ—ˆ๋ธŒ ์—ฐ๋™ 3. ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ 3์ฐจ ์ˆ˜์ •๋ณธ war ํŒŒ์ผ ๊ฐ•์‚ฌ๋‹˜๊ป˜ ๋ฉ”์ผ ์ „์†ก 4. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 3๊ฐœ ํ’€๊ธฐ 2022. 4. 16.
2022.02.21์˜ ๊ธฐ๋ก โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ => ๊ณต๋ถ€ ๊ด€๋ จ 1) ๋žŒ๋‹ค์™€ ์ŠคํŠธ๋ฆผ 2) ๋Œ€๋‹ต ๋ชปํ•œ ์งˆ๋ฌธ ๋‹ต ์ •๋ฆฌ 3) ์ž๋ฐ” ๋ฆฌํŒฉํ† ๋ง 4) ๊ธˆ์ผ ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ 1) ํ™”๋ฉด ์„ค๊ณ„์„œ ํšŒ์˜ โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉ EL ํ•จ์ˆ˜ ํ•จ์ˆ˜ : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ์ œ๊ณต ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฐ˜ํ™˜ ๋ฉ”์„œ๋“œ : ํ•„๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ ⇒ EL ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ static ๋ฉ”์„œ๋“œ๋กœ ์„ ์–ธ TLDํŒŒ์ผ function EL ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์œ„ ์—˜๋ฆฌ๋จผํŠธ name EL ํ•จ์ˆ˜๋ช…์„ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ function-class EL ํ•จ์ˆ˜์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ function-signature EL ํ•จ์ˆ˜์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ์—˜๋ฆฌ๋จผํŠธ short-name TLD ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ธฐ.. 2022. 2. 21.
2022.1.17์˜ ๊ธฐ๋ก โ–ถ ๋‚˜๋Š” ์–ด๋–ค ์‚ฌ๋žŒ(๋ชฉํ‘œ)์ด ๋˜๊ณ  ์‹ถ์€๊ฐ€> ๋‚ด ๊ฐœ์ธ์ ์ธ ์ทจ๋ฏธ๋ฅผ ์ฆ๊ธธ ์—ฌ์œ (๋ˆ, ์‹œ๊ฐ„)๋ฅผ ๊ฐ€์ง€๊ณ  ์‹ถ๋‹ค.(40์„ธ ๋ถ€ํ„ฐ ์ผ๊ณผ ๋ณ‘ํ–‰ํ•˜์—ฌ ์–ด๋Š์ •๋„ ์ทจ๋ฏธ๋ฅผ ์ฆ๊ธฐ๋ฉฐ ๋‚˜๋ฅผ ์ฑ™๊ธฐ๋Š” ์‚ถ์„ ์‚ด๊ณ  ์‹ถ๋‹ค) โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ=> ์„ธ๋ฏธํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) 2์ฐจ ์ˆ˜์ • pdf ์ œ์ถœ2) ์ˆ˜์ • ์‚ฌํ•ญ ์žˆ์„ ์‹œ ๋””์ฝ”ํšŒ์˜ ๋งˆ๋ จ1. ํŒ€์› ๋„ํ•ฉ ๋ชฉํ‘œ ์ •ํ•ด์„œ ํด๋” ์ •๋ฆฌ 2. ์ˆ˜์ • ์‚ฌํ•ญ ๊ณต์œ   => ๊ณต๋ถ€ ๊ด€๋ จ1) ํ™•์‹คํžˆ ๋ณต์Šต(์ˆ˜์ •ํ•˜์—ฌ ์•ˆ ๋ณด๊ณ  ๋งŒ๋“ค์–ด๋ณด๊ธฐ) => ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ1) ๋‚จ๊ถ์„ฑ ๊ฐ•์‚ฌ ํŒŒ์ด๋„ ์˜์ƒ 1๊ฐœ ๋ณด๋ฉฐ ๋…ธ์…˜์— ์ •๋ฆฌํ•˜๊ธฐ (์‹œ๊ฐ„๋˜๋ฉด ํ•˜์ž) โ–ถ ๊ณต๋ถ€ ๋‚ด์šฉuseBeanuseBean ํƒœ๊ทธ : ๋‚ด์žฅ๊ฐ์ฒด์— ์ €์žฅ๋œ ์†์„ฑ๊ฐ’์„ ์ธ์Šคํ„ด์Šค๋กœ ๋ฐ˜ํ™˜๋ฐ›์•„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋‚ด์žฅ๊ฐ์ฒด์˜ ์†์„ฑ๊ฐ’์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํƒœ๊ทธ - ์ธ์Šคํ„ด์Šค.. 2022. 1. 17.
2022. 1 . 11 ์˜ ๊ธฐ๋ก - ํ•˜๋ฃจ ์ •๋ฆฌ - ์„ธ๋ฏธ ํŒ€ ํšŒ์˜ ๋‚ ์งœ ์ •ํ•˜๊ธฐ (๋ญ˜ ํ•ด์•ผ ํ• ์ง€ ์ƒ๊ฐํ•ด์„œ ์•Œ๋ ค์ฃผ์ž)JSP ์™„๋ฒฝ ๋ณต์Šต ๋ฐ ์˜ˆ์ œ ๋งŒ๋“ค๊ธฐ- ์˜ค๋Š˜ ๊ณต๋ถ€ ๋‚ด์šฉ - JSPJSP๋Š” ์›น ๋ฌธ์„œ์ด์ง€๋งŒ WAS์— ์˜ํ•ด์„œ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์›น ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.directive์ง€์‹œ์–ด(Directive)page Directive : JSP ๋ฌธ์„œ(์›นํ”„๋กœ๊ทธ๋žจ)์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์ง€์‹œinclude Directive : JSP ๋ฌธ์„œ์— ์™ธ๋ถ€ ํŒŒ์ผ์˜ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ง€์‹œtagLibrary Directive : JSP ๋ฌธ์„œ์— ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์˜ Java ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ง€์‹œpage Directive : JSP ๋ฌธ์„œ๋ฅผ ์š”์ฒญํ•˜์—ฌ ์‘๋‹ต ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ(ํŒŒ์ผ)์˜ ์œ ํ˜•(MimeType)๊ณผ ์บ๋ฆญํ„ฐ์…‹(CharterSet - Enco.. 2022. 1. 11.
๋ฐ˜์‘ํ˜•