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

[Java] ์ž๋ฐ” ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๊ฐ€ ๋ญ˜๊นŒ?ObjectMapper ํด๋ž˜์Šค

by ์šฐ์ฃผ๋ฌผ๊ณ ๊ธฐ 2025. 5. 4.
๋ฐ˜์‘ํ˜•

ObjectMapper ํด๋ž˜์Šค๊ฐ€ ๋“ค์–ด๊ฐ„ ์‹ค์Šต ์ฝ”๋“œ๊ฐ€ ์žˆ๊ธธ๋ž˜ ๊ถ๊ธˆํ•ด์„œ ์•Œ์•„๋ด„

โ€‹

โ€‹

โ€‹

ObjectMapper ํด๋ž˜์Šค ํ†ตํ•ด์„œ ๋งŒ๋“  ๊ฐ์ฒด๋Š”,

โ€‹

์ž๋ฐ” ๊ฐ์ฒด -> Json๊ฐ์ฒด (์ง๋ ฌํ™”)

Json๊ฐ์ฒด -> ์ž๋ฐ” ๊ฐ์ฒด (์—ญ์ง๋ ฌํ™”)

ํ• ๋•Œ ์“ฐ์ž„

 

 


 

HTTP์—์„œ๋Š” JSON์„ ์“ฐ๊ณ 

JAVA์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•จ

โ€‹

๊ทธ๋ ‡๋‹ค๋ฉด ์„œ๋กœ ํ˜•์‹์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์ˆ˜์ ์ž„.

โ€‹

๊ทธ๋Ÿฐ ์ž‘์—…์„ ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” ๋ผ๊ณ  ํ•˜๋Š”๊ฑฐ์ž„

(์ด๋ฆ„์ด ๊ดœํžˆ ์–ด๋ ค์›Œ..)

โ€‹

โ€‹

์˜ˆ๋ฅผ๋“ค์–ด

โ€‹

์ž๋ฐ” ๊ฐ์ฒด๊ฐ€ ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ์ด ๊ฐ์ฒด ์•ˆ์—๋Š”

"title"์—๋Š” "์ œ๋ชฉ1"์ด๋ผ๋Š” ๊ฐ’์ด,

"content"์—๋Š” "๋‚ด์šฉ1"์ด๋ผ๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๊ณ  ์น˜์ž.

โ€‹

---> (JSON์œผ๋กœ ์ง๋ ฌํ™”) --->

{
"title" : "์ œ๋ชฉ1",
"content": "๋‚ด์šฉ1"
}

 

์ด๋ ‡๊ฒŒ ๋ณ€ํ™˜๋˜๋Š”๊ฑฐ์ž„!!!!

โ€‹

โ€‹

์—ญ์ง๋ ฌํ™”๋Š” ๊ฑ ๋ฐ˜๋Œ€

โ€‹

 


ObjectMapper ํด๋ž˜์Šค?

์ง๋ ฌํ™” ์—ญ์ง๋ ฌํ™”๋Š” ์ด์ œ ์•Œ์•˜๋Š”๋ฐ, ๊ทธ๋ ‡๋‹ค๋ฉด ObjectMapperํด๋ž˜์Šค๋Š” ๋ญ˜๊นŒ?

โ€‹

ํ•œ๋งˆ๋””๋กœ ์ง๋ ฌ, ์—ญ์ง๋ ฌํ™” ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž„

โ€‹

๋งจ ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด ObjectMapper ํด๋ž˜์Šค๋กœ ๋งŒ๋“  ๊ฐ์ฒด๋Š”

์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”๋ฅผ ํ•ด์คŒ.

โ€‹

โ€‹

โ€‹

JAVA ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ๋ถ€๋ชจ ํด๋ž˜์Šค๋Š” Object์ž„ ๐Ÿคฐ๐Ÿป

= ์ž๋™์œผ๋กœ ๋ชจ๋“  ์ž๋ฐ”์˜ ํด๋ž˜์Šค๋Š” Object๋ฅผ ์ƒ์†๋ฐ›์Œ

โ€‹

(์•Œ์“ธ์‹ ์žก)

๊ทผ๋ฐ ์ข€ ๊ถ๊ธˆํ–ˆ๋˜๊ฒŒ json์ด๋ž‘ ์ž๋ฐ”๊ฐ์ฒด ์‚ฌ์ด๋ฅผ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š”๊ฑฐ๋ผ๋ฉด์„œ

์ด๋ฆ„์ด ์™œ ObjectMapper? JsonMapper์ผ์ˆ˜๋„ ์ž‡์ž”์•„....

โ€‹

์ด๊ฑด ์ฑ—์ง€ํ”ผํ‹ฐํ•œํ…Œ ๋ฌผ์–ด๋ดค๋Š”๋ฐ

โ€‹

ObjectMapper๋Š” JSON๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ํฌ๋ฉง ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•จ.

(XML๋“ฑ)

์• ์ดˆ์— ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ํฌ๋งท์ด๋ž‘ ๋งคํ•‘์‹œํ‚ค๊ณ  ์‹ถ์–ด์„œ ๋งŒ๋“ ๊ฑฐ๋ผ

์ด๋ฆ„์ด ์ €๋Ÿฐ๊ฑฐ์ž„

 

 

 


๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ๋‚˜์ฒ˜๋Ÿผ ๋˜ ๊ถ๊ธˆํ•œ๊ฒŒ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์„๊ฑฐ์ž„....

โ€‹

์„œ๋ฒ„๊ฐ€ ํ”„๋ก ํŠธ๋กœ ์‘๋‹ต ์ค„๋•Œ

ํ”„๋ก ํŠธ๋Š” json์œผ๋กœ ์‘๋‹ต ๋ฐ›์ž”์Šด?

โ€‹

๋‚œ json์œผ๋กœ ๋ณ€ํ™˜ ์•ˆํ•ด์คซ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ JSON์œผ๋กœ ์ž˜๋ฐ›๋Š”๊ฑฐ์ž„?!?!

ObjectMapper๊ตณ์ด ์•ˆ์จ๋„ ์ž˜ ๋ณ€ํ™˜๋˜๋Š”๋ฐ!?! ์–ด๋–ป๊ฒŒ ๋œ๊ฑฐ์ง€

โ€‹

์ด๊ฒŒ ๊ถ๊ธˆํ–ˆ์Œ

โ€‹

์•Œ๊ณ ๋ณด๋‹ˆ๊นŒ ๋‚ด๊ฐ€ ์•ˆํ•ด๋„ ์Šคํ”„๋ง์ด ์•Œ์•„์„œ ์ง๋ ฌํ™” ํ•ด์ค€๋‹ค๊ณ ํ•จ

 

@PostMapping("/api/articles")
public ResponseEntity<Article> addArticle(@RequestBody AddArticleRequest request) {
    Article savedArticle = blogService.save(request);
    return ResponseEntity.status(HttpStatus.CREATED)
                         .body(savedArticle);
}

๋‚ด๊ฐ€ ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ ์งœ์„œ ๋ณด๋ƒˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ,

๋‚œ Article๊ฐ์ฒด๋ฅผ ๊ฑ ResponseEntity์— ๋‹ด์•„์„œ returnํ–ˆ์„ ๋ฟ์ž„.

โ€‹

๊ทผ๋ฐ ํฌ์ŠคํŠธ๋งจ์ด๋ผ ์Šค์›จ๊ฑฐ ๋Œ๋ ค๋ณด๋ฉด ์‘๋‹ต์€ JSON์ž„.

โ€‹

์Šคํ”„๋ง๋ถ€ํŠธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์žˆ๋Š” HttpMessageConverter์ค‘์—

MappingJackson2HttpMessageConverter๋ผ๋Š” ์• ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•จ.

โ€‹

์–˜๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ Jackson์˜ ObjectMapper์จ์„œ ์ง๋ ฌํ™” ํ•ด์ค€๋‹ค๊ณ ํ•จ.

โ€‹

๋‚œ ๋ชฐ๋ž์ง€๋งŒ ๋งค๋ฒˆ ObjectMapper์˜ ํž˜์„ ๋นŒ๋ฆฌ๊ณ  ์žˆ๋˜๊ฒƒ์ด์—ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค..

๋ฐ˜์‘ํ˜•

'JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] StringBuffer๊ณผ BufferedWriter์˜ ์ฐจ์ด์   (2) 2025.07.11
[Java] stream()ํ•จ์ˆ˜๋ž€(map, toList ํ™œ์šฉ ์˜ˆ์ œ)  (0) 2025.05.04