์˜ค๋ฅ˜ ํ•ด๊ฒฐ 4

์Šคํ”„๋ง + MongoDB) @JsonProperty @JsonNaming ์ธ์‹ ์•ˆ๋จ

์ž๋ฐ”๋Š” ๋ณ€์ˆ˜๋ช…์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์นด๋ฉœ์ผ€์ด์Šค๋กœ ์ž‘์„ฑํ•˜๊ณ , JSON/BSON ๊ธฐ๋ฐ˜์˜ ๋ชฝ๊ณ ๋””๋น„๋Š” ์Šค๋„ค์ดํฌ์ผ€์ด์Šค๊ฐ€ ๊ธฐ๋ณธ ์ปจ๋ฒค์…˜์ด๋‹ค. ๋”ฐ๋ผ์„œ ์Šคํ”„๋ง์˜ ๋ชฝ๊ณ ๋””๋น„ document์—์„œ ํ•„๋“œ๋ช…์„ ์„ ์–ธํ•  ๋•Œ ์ž๋ฐ” ๋ณ€์ˆ˜๋ช…๊ณผ ๋ชฝ๊ณ ๋””๋น„ ํ•„๋“œ๋ช…์„ ๋งตํ•‘ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์–ด์ฐจํ”ผ ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ JSON ํ˜•์‹์œผ๋กœ ๋„˜์–ด์˜ฌํ…Œ๋‹ˆ ๊ทธ๋ƒฅ jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ @JsonProperty ์–ด๋…ธํ…Œ์ด์…˜์„ ์จ์„œ ๋ฐ›์•„์ฃผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋„ํ๋จผํŠธ ํŒŒ์ผ์„ ๋Œ€์ถฉ ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์คฌ๊ณ , GET API๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋‚ ๋ ค๋ดค๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋”ฑํžˆ ์˜ค๋ฅ˜๋Š” ์—†์ง€๋งŒ ๋ฆฌํ„ด๊ฐ’์—์„œ JsonProperty๋ฅผ ๋จน์—ฌ์ค€ ๋†ˆ๋“ค๋งŒ null๊ฐ’์œผ๋กœ ๋“ค์–ด์™”๋‹ค. ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ์ž˜ ๋“ค์–ด์˜ค๋Š” ๊ฒƒ์œผ๋กœ ๋ด์„œ DB ์ ‘์†์ด๋‚˜ ์ฟผ๋ฆฌ ์˜ค๋ฅ˜๋Š” ์•„๋‹ˆ๊ณ , ์Šค๋„ค์ดํฌ์ผ€์ด์Šค ์ด๋ฆ„์„ ์ธ์‹์„ ๋ชปํ•ด์„œ ..

ERESOLVE unable to resolve dependency tree - npm install ์˜ค๋ฅ˜

React ๊ณต๋ถ€ ์ค‘์— npm install์„ ํ†ตํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. "ERESOLVE unable to resolve dependency tree"๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฑ‰๋Š”๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด๋ณด๋ฉด ์ง€๊ธˆ ์‚ฌ์šฉ ์ค‘์ธ ๋ฆฌ์•กํŠธ ๋ฒ„์ „๊ณผ ๋‚ด๊ฐ€ ์„ค์น˜ํ•˜๋ ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์˜์กด ์ค‘์ธ ๋ฆฌ์•กํŠธ ๋ฒ„์ „์ด ์„œ๋กœ ๋งž์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. --force๋‚˜ --legacy-peer-deps๋ฅผ ๋ถ™์—ฌ์„œ ์‹œ๋„ํ•ด ๋ณด๋ฉด ํ•ด๊ฒฐ์ด ๋  ๊ฑฐ๋ผ๊ณ  ํ•œ๋‹ค. npm์ด ์•Œ๋ ค์ค€ ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•ด์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ์„œ๋„ˆ ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. 1. ์‚ฌ์šฉ ์ค‘์ธ npm, ํ”„๋ ˆ์ž„์›Œํฌ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋งž๋Š” ๋ฒ„์ „์„ ์ฐพ์•„ ์„ค์น˜ํ•˜๊ธฐ ์ง„์งœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋ฉด ์ด๋ ‡๊ฒŒ ํ•ด์•ผ๊ฒ ์ง€๋งŒ.. ์ฐพ์•„๋ณด๋‹ˆ ๋˜ ์ง€์›๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค...

401 Unauthorized ์˜ค๋ฅ˜ - IntelliJ, eclipse ํ†ฐ์บฃ

์‚ฌ์šฉํ•˜๋˜ ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„๋ฅผ ์ผœ๊ณ  ๋กœ์ปฌํ˜ธ์ŠคํŠธ ํŽ˜์ด์ง€ ์ ‘์†์„ ํ•ด๋ดค๋Š”๋ฐ, ๋œฌ๊ธˆ์—†์ด ๋กœ๊ทธ์ธ์„ ํ•˜๋ผ๊ณ  ํ•œ๋‹ค. ๋ฌด์‹œ๋ฅผ ํ–ˆ๋”๋‹ˆ 401 unauthorized ์˜ค๋ฅ˜์ฐฝ์ด ๋‚˜์™”๋‹ค. ์ „์— ๋ณธ ์ ์ด ์žˆ๋Š” ์˜ค๋ฅ˜์ด๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ์˜ค๋ผํด๊ณผ ํ†ฐ์บฃ์ด ๋‘˜ ๋‹ค 8080 ํฌํŠธ๋ฅผ ์จ์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์ด์—ˆ๋‹ค. ์˜ค๋ผํด ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ”์ค˜๋„ ๋˜๊ณ , ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ 8080 ํฌํŠธ๋ฅผ ์ฃฝ์ด๊ณ  ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ(์ง€๊ธˆ ํ”„๋กœ์ ํŠธ์— ์˜ค๋ผํด ์•ˆ ์”€) ๊ท€์ฐฎ์•„์„œ ํ†ฐ์บฃ ํฌํŠธ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค. - IntelliJ 1. ์ƒ๋‹จ ๋ง์น˜ ์˜†์— ํ˜„์žฌ ๊ตฌ์„ฑ(configuration)์„ ํด๋ฆญํ•˜๋ฉด ๊ตฌ์„ฑ ํŽธ์ง‘(edit configuration...) ๋ฒ„ํŠผ์ด ๋‚˜์˜จ๋‹ค. ์ด๊ฑธ ํด๋ฆญํ•ด ์ค€๋‹ค. ์ตœ์ƒ๋‹จ์— ์‹คํ–‰(run) > ๊ตฌ์„ฑ ํŽธ์ง‘(edit configuration)์„ ํด๋ฆญํ•ด๋„ ๋™..

์Šคํ”„๋ง๋ถ€ํŠธ mustache ํ•œ๊ธ€ ๊นจ์ง

์Šคํ”„๋ง๋ถ€ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ mustache view ํŽ˜์ด์ง€์™€ ์—ฐ๊ฒฐํ•ด๋ณด์•˜๋‹ค. ํ•œ?๊ธ€?์ด??๊นจ?์ง„?๋‹ค?? ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ์Šคํ”„๋ง๋ถ€ํŠธ 3.7.x๋ฒ„์ „ + mustache ์กฐํ•ฉ์—์„œ๋Š” ํ•œ๊ธ€ ๊นจ์ง์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. build.gradle ํŒŒ์ผ์—์„œ ์Šคํ”„๋ง๋ถ€ํŠธ ๋ฒ„์ „๋งŒ 3.6.x ๋ฒ„์ „์œผ๋กœ ๋‚ด๋ ค์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. 1. ํ”„๋กœ์ ํŠธ > build.gradle 2. ์Šคํ”„๋ง๋ถ€ํŠธ ๋ฒ„์ „์„ 2.7.6์—์„œ 2.6.7๋กœ ๋‚ด๋ ค์คฌ๋‹ค. 3. ์ˆซ์ž ๋ฐ”๊พธ๋ฉด ์˜ค๋ฅธ์ชฝ์— [์ฝ”๋ผ๋ฆฌ + ์ƒˆ๋กœ๊ณ ์นจ] ๋ฒ„ํŠผ ๋‚˜์˜จ๋‹ค. ํด๋ฆญํ•˜๋ฉด ๋‹ค์‹œ ๋นŒ๋“œ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค. 4. ์„œ๋ฒ„ ์žฌ์‹คํ–‰ ํ›„ ๋‹ค์‹œ ์ ‘์†ํ•ด๋ณด๋‹ˆ๊นŒ ์ž˜ ๋‚˜์˜จ๋‹ค. ++) ๋ฒ„์ „์„ ๋ฐ”๊ฟ€ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด application.properties(or yml)์— ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. 1. project > src > main >..