[Project/4th] ๋ฒ•์ •๋™, ์ขŒํ‘œ๊ฐ’ ๋ฐ์ดํ„ฐ DB์— ์ €์žฅํ•˜๊ธฐ(2)
ยท
Project
์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ ๋ฒ•์ •๋™ ์—‘์…€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ๊ฐ€๊ณตํ•˜์—ฌ DB์— ์ €์žฅํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์ผ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฒ•์ •๋™์˜ ์ขŒํ‘œ๊ฐ’(์œ„๋„, ๊ฒฝ๋„)๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด ์“ฐ๊ณ ์ž ํ•œ๋‹ค!     1. ๋ฒ•์ •๋™ ์ฝ”๋“œ์™€ ๋™์ด๋ฆ„ ์ €์žฅํ•˜๊ธฐ -> ์ง€๋‚œ ํฌ์ŠคํŒ…2. ๋ฒ•์ •๋™์˜ ์ขŒํ‘œ๊ฐ’(์œ„๋„, ๊ฒฝ๋„) ์ €์žฅํ•˜๊ธฐ -> ํ˜„์žฌ ํฌ์ŠคํŒ…           ๋จผ์ € ํ›„๊ธฐ๋ฅผ ๋งํ•˜์ž๋ฉด, ๋ฒ•์ •๋™ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด ์ €์žฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ขŒํ‘œ๊ฐ’์„ ์–ป์–ด ์ €์žฅํ•˜๋Š” ๊ณผ์ •์ด ํ›จ์”ฌ ์–ด๋ ค์› ๋‹ค. ๋ฒ•์ •๋™ ๋ฐ์ดํ„ฐ์ฒ˜๋Ÿผ ์ž๋ฃŒ๊ฐ€ ์—‘์…€๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ์ง€ ์ •๋ง ๋งŽ์ด ์ฐพ์•„๋ณด๊ณ  ๊ณ ๋ฏผ์„ ํ•ด์•ผ ๋์—ˆ๋‹ค.  ์—ฌ๋Ÿฌ ์‹œํ–‰์ฐฉ์˜ค ๋์— ๊ฒฐ๊ตญ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค!    ํ•œ๋™์•ˆ ์ž๋ฐ” ์Šคํ”„๋ง์œผ๋กœ๋งŒ ๊ฐœ๋ฐœํ•˜๋‹ค๊ฐ€ ์˜ค๋žœ๋งŒ์— ํŒŒ์ด์ฌ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ..
[Project/4th] ๋ฒ•์ •๋™, ์ขŒํ‘œ๊ฐ’ ๋ฐ์ดํ„ฐ DB์— ์ €์žฅํ•˜๊ธฐ(1)
ยท
Project
์ตœ๊ทผ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ ๊ธฐ๋Šฅ์€ '์ง€์—ญ ๊ธฐ๋ฐ˜ ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰'์ด๋‹ค. ๋„ˆ๋ฌด๋‚˜๋„ ์œ ๋ช…ํ•œ ์„œ๋น„์Šค์ธ ๋‹น๊ทผ๋งˆ์ผ“์˜ ํ™ˆํ™”๋ฉด์—์„œ ๋‚ด๊ฐ€ ์‚ด๊ณ  ์žˆ๋Š” ๋™๋„ค ๊ทผ์ฒ˜์— ์žˆ๋Š” ์ค‘๊ณ ๊ฑฐ๋ž˜ ๊ฒŒ์‹œ๊ธ€์„ ๋ณด๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๋‚ด๊ฐ€ ํ”„๋กœ์ ํŠธ์—์„œ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ ๊ธฐ๋Šฅ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ์ง€์—ญ์˜ ๊ทผ์ฒ˜ ์ง€์—ญ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€๋“ค์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.  ์›๋ž˜๋Š” ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค(์‚ฌ์šฉ์ž ์ฃผ์†Œ ๋“ฑ๋ก, ๊ณต์‚ฌ ๋‚ด์—ญ ๋“ฑ๋ก)์€ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ select box๋ฅผ ํ†ตํ•ด ๋ฒ•์ •๋™ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๋„, ์‹œ๊ตฐ๊ตฌ, ์๋ช…๋™์„ ์ž…๋ ฅ์„ ํ•˜๋ฉด, ์ฃผ์†Œ๋ช…์œผ๋กœ ์š”์ฒญ์ด ์™€์„œ DB์— ์ฃผ์†Œ๋ช… ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค.  ํ•˜์ง€๋งŒ, '์ง€์—ญ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ'์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—๋„ ๋ฒ•์ •๋™ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์‹œ๋„๋ช…, ์‹œ๊ตฐ๊ตฌ๋ช…, ์๋ฉด๋™๋ช…์„ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, '๊ทผ์ฒ˜..
[Spring] DTO ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์—๋Ÿฌ : com.fasterxml.jackson.databind.exc.InvalidDefinitionException : No serializer found for class
ยท
Backend/Spring Boot
๐Ÿ’ป ์—๋Ÿฌ ๋ฉ”์‹œ์ง€com.fasterxml.jackson.databind.exc.InvalidDefinitionException : No serializer found for class com.xxxxxxx.xxxxx.dto.user.ProfileDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.xxxxxxx.xxxxx.api.response.xxxxxxxxxx["ProfileDto"])     ๐Ÿ”Ž ์›์ธ Jackson์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.  Jack..
[Spring Boot] Spring Boot์— Swagger ์ถ”๊ฐ€ํ•˜๊ธฐ
ยท
Backend/Spring Boot
Swagger๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž๋™์œผ๋กœ REST API๋ฅผ ๋ฌธ์„œํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.  ๋ฐฑ์—”๋“œ์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋ฒ„ API๋ฅผ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋ฌธ์„œํ™”๋ฅผ ํ•ด๋‘๋ฉด API๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ํ˜‘์—…ํ•˜๋Š” ๋ฐ ์ข‹๋‹ค. ๊ทธ๋ฆฌ๊ณ  Swagger ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” UI๋„ ์ œ๊ณตํ•˜์—ฌ API ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ์—๋„ ์ข‹๋‹ค.      ๊ทธ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, ์„œ๋ฒ„ API๋ฅผ ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด Swagger๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ์ž‘๋…„์— Spring Boot 2.X ๋ฒ„์ „์—์„œ ๊ฐœ๋ฐœํ•˜๋ฉฐ Springfox๋ฅผ ์ ์šฉํ•ด Swagger๋ฅผ ์ถ”๊ฐ€ํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์— Spring 3.X ๋ฒ„์ „์—์„œ ๊ฐœ๋ฐœํ•˜๋ฉฐ Springfox๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.  Springdoc์„ ์ ์šฉํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š”๋ฐ, ๋‘ ๋ผ์ด๋ธŒ..
[Project/4th] 4. ํ…Œ์ŠคํŠธ ์„œ๋ฒ„ ์ธํ”„๋ผ ๊ตฌ์ถ• - SSH ์ ‘์†, Docker๋กœ ์ˆ˜๋™๋ฐฐํฌ
ยท
Project
[ํ”„๋กœ์ ํŠธ ์ผ์ง€] 4๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - 1. ์„œ๋ฒ„ ์„ค๊ณ„ํ•˜๊ธฐ[ํ”„๋กœ์ ํŠธ ์ผ์ง€] 4๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - 2. ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ[ํ”„๋กœ์ ํŠธ ์ผ์ง€] 4๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - 3. JPA Entity ๊ด€๊ณ„ ์„ค์ •ํ•˜๊ธฐ    ์ €๋ฒˆ์ฃผ์— ์ง„ํ–‰ํ–ˆ๋˜ ์ผ์ด์ง€๋งŒ, ๋’ค๋Šฆ๊ฒŒ ์ž‘์„ฑ์„ ํ•œ๋‹ค. ๊ทธ๋™์•ˆ ์ง„ํ–‰ํ•œ ๊ฒŒ ๋งŽ์€๋ฐ ๋ฐ€๋ ธ๋‹ค๐Ÿฅฒ     ํ˜„์žฌ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ API ๊ฐœ๋ฐœ์ด ์กฐ๊ธˆ์”ฉ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์™€์˜ API ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋ฅผ ๋”ฐ๋กœ ๋ฐฐํฌํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค. ์‹ค์ œ ์„œ๋น„์Šค๋Š” EC2์—์„œ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ํ–ˆ์ง€๋งŒ, ์•„์ง ์ถœ์‹œ ์ „์ด๋ผ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ ์„œ๋ฒ„๋Š” 5์›”๊นŒ์ง€ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ ์ž ๊น ์“ธ ๊ฑฐ๋ผ์„œ ๋‹ค๋ฅธ ํŒ€์›์˜ GCP 1๋…„ ๋ฌด๋ฃŒ ์„œ๋น„์Šค๋กœ ๊ตฌ๋™ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.  ํŒ€์— ์ธํ”„๋ผ๋ฅผ ์ „๋‹ดํ•˜๋Š” ์‚ฌ๋žŒ์ด ์—†๋‹ค๋ฉด, ๋ฐฑ์—”๋“œ์—์„œ ์ธ..
[Project/4th] 3. JPA Entity ๊ด€๊ณ„ ์„ค์ •ํ•˜๊ธฐ
ยท
Project
[ํ”„๋กœ์ ํŠธ ์ผ์ง€] 4๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - 1. ์„œ๋ฒ„ ์„ค๊ณ„ํ•˜๊ธฐ[ํ”„๋กœ์ ํŠธ ์ผ์ง€] 4๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ - 2. ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ     ์ €๋ฒˆ์ฃผ์— ์ง„ํ–‰ํ•œ ๋‚ด์šฉ์ด์ง€๋งŒ ์ด์ œ์„œ์•ผ ๊ธฐ๋กํ•˜๋Š” JPA Entity ๊ด€๊ณ„ ์„ค์ •ํ•œ ์ด์•ผ๊ธฐ!         ๊ธฐ์กด์— ๋‹ค๋ฅธ DB(Firebase)์— ์ €์žฅํ•˜๋˜ ๋ฐ์ดํ„ฐ๋ฅผ RDB๋กœ ์ด๊ด€ํ•˜๊ณ , ์•ž์œผ๋กœ ๊ฐœ๋ฐœ๋  ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ธฐ์กด์˜ ๊ธฐ๋Šฅ๊ณผ ์—ฐ๊ณ„ํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค. ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋Œ€๋žต์ ์ธ ๊ธฐํš์— ๋งž๊ฒŒ DB๋ฅผ ์„ค๊ณ„ํ–ˆ์—ˆ๋‹ค. ์•„์ง ๊ธฐํš์˜ ์„ธ๋ถ€์ ์ธ ๋‚ด์šฉ์ด ํ”ฝ์Šค๋œ๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ํ•„์š”ํ•œ ํ…Œ์ด๋ธ”์„ ๋‚˜์—ดํ•ด๋ณด๊ณ , ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋งŒ ๋”ฐ์ ธ๋ดค์—ˆ๋‹ค.  ํ›„์— ๋Œ€๋Œ€์ ์ธ ๋ณ€๊ฒฝ์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋Œ€๋žต ์„ค๊ณ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์Šคํ”„๋ง์—์„œ DB์™€ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด JPA ๊ฐ์ฒด์˜ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด๋ณด๊ธฐ..
giraffe_
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)