profile
๐ŸŒฑ ๋ฐฑ์—”๋“œ ๐ŸŒฑ
post-thumbnail

HttpMessageConverters๋ž€?

์Šคํ”„๋ง ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ด์ „์— ์ •๋ฆฌํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค...!HttpMessageConverters๋Š” ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ž…๋‹ˆ๋‹ค.HttpMessageConverters๋Š” ์š”์ฒญ๋ณธ๋ฌธ(Request body)์—์„œ ๋„˜์–ด์˜จ json,xmlํ˜•์‹

2022๋…„ 5์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Setter ์‚ฌ์šฉ์„ ์™œ ์ง€์–‘ํ•ด์•ผํ• ๊นŒ

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Lombok์˜ ๋„์›€์„ ๋ฐ›์•„ Getter, Setter ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค๋ฌด์—์„œ๋Š” Setter๋ฅผ ๋‚จ๋ฐœํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. setter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด์œ ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.Setter ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ’์„

2022๋…„ 2์›” 13์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท

1. ์ปฌ๋ ‰์…˜ ์กฐํšŒ ์ตœ์ ํ™”(OneToMany)

OneToOne์ด๋‚˜ ManyToOne ์˜ ๊ฒฝ์šฐ๋Š” ํŒจ์น˜์กฐ์ธ์ด๋‚˜ ํ•œ๋ฐฉ์ฟผ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์™€๋„ ํฌ๊ฒŒ ์„ฑ๋Šฅ์— ๋ฌด๋ฆฌ๋ฅผ ์ฃผ์ง€ ์•Š์ง€๋งŒ ์ปฌ๋ ‰์…˜ ์กฐํšŒ์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ˆœ๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋Š˜์–ด๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— OneToOne์ด๋‚˜ ManyToOne ์™€ ๋‹ฌ๋ฆฌ ํ•ด๋‹น

2022๋…„ 2์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Optional์€ ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ + ์‚ฌ์šฉ์‹œ ์ฃผ์˜์‚ฌํ•ญ

Optional์€ NPE ๋ฐœ์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฐ˜ํ™˜ํ•  ๊ฒฐ๊ณผ๊ฐ’์ด โ€˜์—†์Œโ€™์„ ๋ช…๋ฐฑํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ํ•„์š”๊ฐ€ ์žˆ๊ณ , null์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ์œ ๋ฐœํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ์ƒํ™ฉ์—์„œ ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ Optional์„ ์‚ฌ์šฉํ•˜์ž๋Š” ๊ฒƒ์ด Optional์„ ๋งŒ๋“  ์ฃผ๋œ

2022๋…„ 1์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์ง€์—ฐ๋กœ๋”ฉ๊ณผ ์ฆ‰์‹œ๋กœ๋”ฉ

์ฐธ๊ณ ์ง€์—ฐ๋กœ๋”ฉ ์ฆ‰์‹œ๋กœ๋”ฉn+1์—”ํ‹ฐํ‹ฐ๋ฅผ ์กฐํšŒํ• ๋•Œ ์—ฐ๊ด€๊ด€๊ณ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๋ชจ๋‘ ๋กœ๋”ฉํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.์ฆ‰์‹œ๋กœ๋”ฉ( EAGER )์€ ์˜ˆ์ธก์ด ์–ด๋ ต๊ณ , ์–ด๋–ค SQL์ด ์‹คํ–‰๋ ์ง€ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŠนํžˆ JPQL์„ ์‹คํ–‰ํ•  ๋•Œ N+1๋ฌธ์ œ(์™œ ์–ด๋–ค SQL์ด ์‹คํ–‰๋ ์ง€ ์ถ”์ ์ด ์–ด๋ ต๋ƒ

2022๋…„ 1์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์กฐํšŒ์„ฑ๋Šฅ ์ตœ์ ํ™”

์—”ํ‹ฐํ‹ฐ๋ฅผ DTO๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ N+1๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์„๋•Œ ์ฝ”๋“œ๋กœ๋งŒ ๋ณด๋ฉด order์™€ member, Delivery์ฟผ๋ฆฌ๋ฅผ ํ•œ๋ฒˆ์”ฉ ๋‚ ๋ฆฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•ด๋ณด๋ฉด ๊ทธ๋ ‡์ง€ ์•Š์€ ๋ฌธ์ œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผฐ์„์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€

2022๋…„ 1์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

@PostMapping, @RequestBody

@RestController๋Š” @Controller์— @ResponseBody๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„๋™๊ธฐํ†ต์‹ ์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ, ๋ณธ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด์•ผ ํ•˜๊ณ , ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ต์„ ๋ณด๋‚ผ๋•Œ์—๋„ ๋ณธ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ

2022๋…„ 1์›” 18์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

๋ณ€๊ฒฝ ๊ฐ์ง€์™€ ๋ณ‘ํ•ฉ

๋ณ€๊ฒฝ๊ฐ์ง€์™€ ๋ณ‘ํ•ฉ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ์ค€์˜์† ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.JAP๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์ €์žฅํ•˜๊ณ  ์˜์†์ƒํƒœ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ์กด์žฌํ•˜๋Š” ์—”ํ‹ฐํ‹ฐ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด JPA๊ฐ€ ํŠธ๋žœ์ ์…˜ ์ปค๋ฐ‹ ์‹œ์ ์— ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ DB์— ๋ฐ˜์˜ํ•˜๋Š” ์ž‘

2022๋…„ 1์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

@PostMapping ํšŒ์›๊ฐ€์ž… ํ•„์ˆ˜๊ฐ’ ๋ฏธ์ž…๋ ฅ์‹œ ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ

ํšŒ์›๊ฐ€์ž…์„ ํ• ๋•Œ ํ•„์ˆ˜๊ฐ’ ๋ฏธ์ž…๋ ฅ์‹œ ํ˜„์žฌํŽ˜์ด์ง€์—์„œ ์—๋Ÿฌ๋ฉ”์„ธ์ง€๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๋ ค๋ฉด @NotEmpty@ValidBindingResult result ์„ ์ด์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋จผ์ € Member Form์— @NotEmpty๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ๋Š” null ๊ณผ "" ์ด๋ผ๋ฉด ํ—ˆ

2022๋…„ 1์›” 12์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

JPA์™€ ๋™์ ์ฟผ๋ฆฌ

์‹ค์ „ ์Šคํ”„๋ง๋ถ€ํ„ฐ jpaํ™œ์šฉ Order ๋ผ๋Š” ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์„ ๋‹ด๊ณ ์žˆ๋Š” ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ƒํ’ˆ์˜ ์ƒํƒœ์™€ ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•œ ํšŒ์›์ด๋ฆ„์œผ๋กœ ์ƒํ’ˆ์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๋กœ์ง์„ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.select 0 fro

2022๋…„ 1์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ

์Šคํ”„๋ง์„ ๊ณต๋ถ€ํ•˜๋ฉฐ Setter๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ผ์ง€ ๊ถ๊ธˆํ•ด ์ฐพ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.ํ•ด๋‹น์‚ฌ์ดํŠธ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.https://johngrib.github.io/wiki/pattern/static-factory-method/ht

2022๋…„ 1์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท