-
JSON์ด๋ ๋ฌด์์ ๋๊น?
JSON(JavaScript Object Notation)์ JavaScript ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ์ ์งํฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฐ๋จํ ๋ฐ์ดํฐ ๊ตํ ํ์์ ๋๋ค.
-
์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ด๋ฆ์ด ์ ์ฌํจ์๋ ๋ถ๊ตฌํ๊ณ ๋ ๊ฐ์ง ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ๋ ๋ค C์ ์ ์ฌํ ๊ตฌ๋ฌธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Java๋ ํ๋กํ ํ์ ์ ํด๋์ค, JavaScript๋ฅผ ๊ธฐ๋ฐ์ผ๋ก OOP ์ ๊ทผ ๋ฐฉ์์ ๊ตฌํํฉ๋๋ค.
- Java์๋ ์ ์ ํ์ดํ์ด ์๊ณ JavaScript์๋ ๋์ ํ์ดํ์ด ์์ต๋๋ค.
- Java๋ ์ปดํ์ผ๋ ๋ฐ์ดํธ์ฝ๋์์ ๋ก๋๋ฉ๋๋ค. JavaScript๋ ํ์ผ์์ ์ง์ ํด์๋ฉ๋๋ค.
-
JSON๊ณผ XML์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
JSON์ ๋ฐ์ดํฐ ๊ตํ ํ์์ ๋๋ค.
XML์ ๊ตฌ๋ฌธ, ๊ตฌ์กฐ, ๋ฐ์ดํฐ ์ ํ ๋ฐ ํด๋น ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ผ๋ก ์ง์ ํ ์ ์๋ ๋งํฌ์ ์ธ์ด์ ๋๋ค.
๋ ๋ค ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋น์ฐํ ๋ ํ์ค์ ๋ชจ๋ ์ฌ์ฉํ๋ ค๋ฉด ์๋ก ๋ค๋ฅธ ํ๋ ์์ํฌ๊ฐ ์ฌ์ฉ๋๋ฉฐ ๊ตฌ๋ฌธ๋ ๋ค๋ฆ ๋๋ค.
-
JSON ์์ ์ ์ํ ์ด๋ค ํ๋ ์์ํฌ๋ฅผ ์๊ณ ์๋์?
๋ ๋ฒจ 33์์๋ jackson ํ๋ ์์ํฌ๋ฅผ ์๊ฐํ์ต๋๋ค. ๋ํ 3๊ฐ๋ฅผ ๋ ์ ๊ณตํ๊ณ ์ด๋ฅผ ๋น๊ตํ๋ ๊ธฐ์ฌ์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- FasterXML์ ์ญ์จ
- Yidong Fang์ JSON.simple
- Google์ GSON
- ์ค๋ผํด์ JSONP
JSON ์์ ์ ์ํ Java ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๊ต: JSON.simple, GSON, Jackson ๋ฐ JSONP
-
XML ์์ ์ ์ํ ์ด๋ค ํ๋ ์์ํฌ๋ฅผ ์๊ณ ์์ต๋๊น?
XML์ ๋ฐ์ดํฐ ํํ ํ์์ด๋ฏ๋ก ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ๊ธฐ์ ์ด ๋์ฑ ๋ค์ํด์ก์ต๋๋ค. Java ๊ฐ์ฒด๋ฅผ XML๋ก ์ง๋ ฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
- JAXB(JDK์ J์ ํฌํจ๋จ)
- ์์ค์คํธ๋ฆผ
XML ์์ ์ ์ํ ๋ค์ํ ํ๋ ์์ํฌ์ ๋ํ ๊ฐ๋ตํ ๊ฐ์ ๋งํฌ: JAVA + XML
-
์ด๋ค Jackson ์ฃผ์์ ์๊ณ ์๋์?
๊ฐ์์ ์ฌ์ฉ๋ ๋ด์ฉ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- @JsonAutoDetect - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. ๊ธ์ ์ฐ๊ฑฐ๋ ์ฝ์ ๋ ์ด ํด๋์ค์ ํ๋๋ฅผ ์ฌ์ฉํ๋๋ก Jackson์๊ฒ ์ง์ํฉ๋๋ค. ๊ดํธ ์์ ๋งค๊ฐ๋ณ์(fieldVisibility = JsonAutoDetect.Visibility.ANY)๋ฅผ ์ค์ ํ์ฌ ์ฌ์ฉ๋ ํ๋์ ๊ฐ์์ฑ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก ๊ณต๊ฐ ํ๋๋ง ์ฌ์ฉ๋จ).
- @JsonIgnore - ํ๋ ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ์ด ํ๋๋ฅผ ๋ฌด์ํ๋๋ก Jackson์๊ฒ ์ง์ํฉ๋๋ค.
- @JsonProperty - ํ๋, getter ๋๋ setter ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ง๋ ฌํ ์ค์ ๋ค๋ฅธ ํ๋ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค.
- @JsonWriteNullProperties - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. null์ธ ๊ฐ์ฒด ํ๋๋ ๋ฌด์๋์ง ์์ต๋๋ค.
- @JsonPropertyOrder - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. Java ๊ฐ์ฒด์ ํ๋๊ฐ JSON์ผ๋ก ์ง๋ ฌํ๋๋ ์์๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
- @JsonDeserialize - ํ๋ ์์ ๋ฐฐ์น๋ฉ๋๋ค. JSON ๊ฐ์ฒด๊ฐ ์ญ์ง๋ ฌํ๋๋ ํด๋์ค๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Java์์๋ ๋ฐฐ์ด๊ณผ ๋ชฉ๋ก์ด ๋ฐฐ์ด๋ก ์ง๋ ฌํ๋๊ณ ์ญ์ง๋ ฌํ ์ค์ ์ ํํ ์์ ํ๋ ค๋ ํญ๋ชฉ์ ์ ํํ ์ ์์ต๋๋ค.
๋ค์์ ๋ช ๊ฐ์ง ์ฃผ์์ด ํฌํจ๋ ์ฌ์ดํธ์ ๋ํ ๋งํฌ์ ๋๋ค: Jackson Annotations
-
์ด๋ค JAXB ์ฃผ์์ ์๊ณ ์๋์?
๋ํ ๊ฐ์์ ์ฌ์ฉ๋ ๋ด์ฉ๋ง ๋ถ์ํ๊ฒ ์ต๋๋ค.
- @XmlRootElement - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ด ๊ฐ์ฒด๊ฐ ์ต์์ ์์์ผ ์ ์์์ ๋ํ๋ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์์๋ ๊ทธ ์์ ์์ต๋๋ค.
- @XmlType - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. XML ์คํค๋ง์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์์ ์์, ์ด๋ฆ ๋ฑ๊ณผ ๊ฐ์ ์ผ๋ถ ์์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
- @XmlElement - ํ๋ ์์ ๋ฐฐ์น๋ฉ๋๋ค. XML ์์ ์ด๋ฆ, ๊ธฐ๋ณธ๊ฐ ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
- @XmlElementWrapper - ํ๋ ๋๋ getter ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์์ ๊ทธ๋ฃน์ ๋ํ ํ ๋๋ฆฌ ํ๊ทธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- @XmlJavaTypeAdapter - ํด๋์ค ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ด ํด๋์ค๋ฅผ ๋ง์ฌ๋ง/์ญ๋ง์ฌ๋งํ๋ ๋ฐ ํ์ํ ๋ณด์กฐ ์ด๋ํฐ ํด๋์ค๋ ๊ดํธ ์์ ํ์๋ฉ๋๋ค.
- @XmlEnum - ์ด๊ฑฐํ ์์ ๋ฐฐ์น๋ฉ๋๋ค. ๊ดํธ ์์ ์ด๊ฑฐํ ๊ฐ์ด ํ์๋ ์ ํ์ ์ง์ ํ ์ ์์ต๋๋ค.
- @XmlEnumValue โ ์ด๊ฑฐํ ๊ฐ ์์ ๋ฐฐ์น๋ฉ๋๋ค. ์ฃผ์ด์ง ์ด๊ฑฐํ ๊ฐ์ ๋ํด ํน๋ณํ ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
@XmlAttribute - ํ๋ ์์ ๋ฐฐ์น๋ฉ๋๋ค. ํ๋๋ XML ์์ฑ์ผ๋ก ํ์๋ฉ๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ฃผ์์ด ์๋ ์ฌ์ดํธ์ ๋ํ ๋งํฌ์ ๋๋ค(์ฃผ์์ ๋ํ ์ฌ๋ฐ๋ฅธ ๋ฒ์ญ์ ๋ง๋ค ์ ์์ด์ ์ฃ์กํฉ๋๋ค. ์ ๋ณด๋ ์ดํดํ ์ ์์ง๋ง ๋ฌ์์์ด๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋งํ๋ ๋ฐฉ๋ฒ์ ์ ํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค): https:// jaxb.java.net/tutorial/index.html
-
JSON์์ ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?
์ง๋ฌธ์ ๋ณธ์ง์ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ๋ ๊ฐ์ง ์ํธ ํ๋ก์ธ์ค๋ฅผ ๋น๊ตํ๋ ๋ฐ ์๋ฌด๋ฐ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์๋ง๋ ์ด๋ JSON๊ณผ XML์ ๋น๊ตํ๊ธฐ ์ํ ๊ฒ์ด์์ ๊ฒ์ ๋๋ค. ์ด ์ฃผ์ ์ ๋ํ ๋งํฌ๋ ๋ค์ ์ง๋ฌธ์ ์ ๊ณต๋ฉ๋๋ค.
-
JSON๊ณผ XML ์ค ์ด๋ ๊ฒ์ด ๋ ์ข๋์? ์?
๋ค์์ JSON๊ณผ XML(JSON๊ณผ XML)์ ๋น๊ตํ๋ ํ๋ฅญํ ๊ธฐ์ฌ์ ๋๋ค . ๋ฌด์์ด ๋ ์ข๋์?
์๋ง๋ ์ด๋ค ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค. ์ ํํ ๋ ์์ ์์ฒด๋ฅผ ์ดํด๋ณด๊ณ ์ฌ์ฉ ์ ๋ ํจ๊ณผ์ ์ธ ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํด๋ด์ผ ํฉ๋๋ค. ๋ํ ์ ํ์ ๊ฐ๋ฐ์์ ๊ฐ์ธ์ ์ ํธ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
-
DTO ๋ ๋ฌด์์ ๋๊น?
DTO(Data Transfer Object)๋ ์์ ์ ์ํ ๋ ผ๋ฆฌ ์์ด ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋์์ธ ํจํด์ ๋๋ค. DTO๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋๋ ๋์ผํ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ ๊ณ์ธต ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ๋ณด๋ฅผ ์์ ์์๊ฒ ์ ๋ฌํ๋ ๊ฒ์ด ์ ์ผํ ๋ชฉ์ ์ธ ์ ๋ณด ์ ์ฅ์๋ก ์๊ฐํ ์ ์์ต๋๋ค.
๋๊ธ์ ๋ฐ๋ผ ์ง๋ฌธ 2๋ฒ, 3๋ฒ์ด ์์ ๋์์ต๋๋ค.
GO TO FULL VERSION