mysql(AWS aurora aurora_version,2.07.1, innodb_version,5.7.12)์—์„œ json ํƒ€์ž… ์ปฌ๋Ÿผ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๊ณ  json string์„ ์ €์žฅํ•ด์•ผํ•  ์ผ์ด ์ƒ๊ฒจ ์˜ค๋žœ๋งŒ์— ํ•ด๋‹น ํƒ€์ž…์œผ๋กœ ์ปฌ๋Ÿผ์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ ์ปฌ๋Ÿผ์˜ ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ๊ฐ€ ์•ˆ๋˜๋Š” ํ˜„์ƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๋ฐ์ดํ„ฐ๋Š” double ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ์ขŒํ‘œ๋ฐ์ดํ„ฐ์˜€๋‹ค.

 

{"latitude": 24.4436779, "longitude": 116.35241670000043}

 

์ด๋Ÿฐ ๋ฐ์ดํ„ฐ์˜€๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๋ถ€๋ถ„์€ longitude ์˜€๋‹ค.

 

์œ ๋‹›ํ…Œ์ŠคํŠธ(java correto 11)์—์„œ ํ™•์ธ ์‹œ์— ์—…๋ฐ์ดํŠธ๋œ ๊ฐ’์ด ์ œ์ผ ๋์— ํ•œ์ž๋ฆฌ๊ฐ€ ๋ฐ”๋€Œ์–ด์„œ 116.35241670000045 ๋กœ ์ฝ˜์†”์— ์ถœ๋ ฅ๋˜์—ˆ๋Š”๋ฐ jpa ์—…๋ฐ์ดํŠธ ์‹œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.

 

update์ผ์‹œ ์ปฌ๋Ÿผ(timestamp)์— on update current_timestamp ์„ค์ •์ด ๋˜์–ด์žˆ์Œ์—๋„ ์—…๋ฐ์ดํŠธ ์ผ์‹œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค.

 

์ฟผ๋ฆฌ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง์ ‘ ๋‚ ๋ ค๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€๋‹ค -_-; ์—ฌ๊ธฐ์„œ ์ข€ ๋ฉ˜๋ถ•;;

update location set coordinate = '{"latitude": 24.4436779, "longitude": 116.35241670000045}' where id=1;

jpa๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ธ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ง์ ‘ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฐ ๊ฒƒ๊ณผ ๋™์ผํ–ˆ๋‹ค.

 

์• ์ดˆ์— ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ์•ˆ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์„ ๋•Œ ์–ด์ฐจํ”ผ string์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— double precision์ด ๋ฌธ์ œ๊ฐ€ ๋ ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ์€ ์—†์—ˆ์œผ๋‚˜, ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉด ํ•  ์ˆ˜๋ก ๋ฌธ์ œ๊ฐ€ ๋ ๋งŒํ•œ๊ฑด double precision ๋ฐ–์— ์—†์–ด๋ณด์˜€๋‹ค.

 

๊ฒ€์ƒ‰์–ด๋ฅผ ์ข€ ๋ฐ”๊ฟ”์„œ double precision ๊ด€๋ จํ•ด์„œ ์ฐพ์•„๋ณด๋‹ˆ double precision์˜ ๊ฒฝ์šฐ 16์ž๋ฆฌ๊นŒ์ง€ ( . ์ œ์™ธํ•˜๊ณ  ์ˆซ์ž๋งŒ ์…‹์„ ๋•Œ) ์ •ํ™•ํžˆ ํ‘œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ๋˜ ์ผ€์ด์Šค๋Š” ์ด 17์ž๋ฆฌ์˜ ์†Œ์ˆ˜์ ์ด์—ˆ๊ณ  ๋”ฐ๋ผ์„œ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ์ˆ˜์— ๋Œ€ํ•œ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค.

 

ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด value์˜ ํƒ€์ž…์„ double์ด ์•„๋‹Œ string์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด๋ณด์˜€์œผ๋‚˜, ์ขŒํ‘œ์— ๋Œ€ํ•œ ์ž๋ฆฌ์ˆ˜๊ฐ€ ์ €๋ ‡๊ฒŒ ๊ธด๊ฒŒ ๋งž๋Š” ๊ฒƒ์ธ์ง€ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ขŒํ‘œ ๋ฐ์ดํ„ฐ ์ €์žฅ์‹œ 8์ž๋ฆฌ ์ด์ƒ์€ ๋…ธ์ด์ฆˆ๊ฐ’์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์„๊ฒƒ ๊ฐ™์•˜๋‹ค. -> ์œ„ํ‚ค ์ฐธ๊ณ 

 

๋”ฐ๋ผ์„œ ํ•ด๋‹น ์ด์Šˆ๋Š” ์ €์žฅํ•˜๋Š” ์ชฝ์€ ์ด์Šˆ๊ฐ€ ์—†๊ณ  ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ์ชฝ์—์„œ ์ž˜ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ฉด ๋  ๋ฌธ์ œ์˜€๋‹ค.

 

์˜ค๋žœ๋งŒ์— ์•ผ๊ทผํ–ˆ์œผ๋‚˜ ๋˜ํ•˜๋‚˜ ์•Œ๊ฒŒ๋œ ๊ฒƒ์ด ์žˆ์–ด ๊ธฐ์œ ํ•˜๋ฃจ์˜€๋‹ค~

 

 

[์ฐธ๊ณ ๋‚ด์šฉ]

stackoverflow.com/questions/49119871/mysql-json-stores-different-floating-point-value