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

๐Ÿ’ปStudy/Spring

๋ฐ์ดํ„ฐ ํ˜•ํƒœ / JSON ์ถœ๋ ฅํ•˜๊ธฐ

์„œ๋ฒ„์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ทธ ๊ฐ์ฒด ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ’์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ๋ฌธ์ž์—ด๋กœ ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋Š” xml, csv, json ๋“ฑ์ด ์žˆ๋‹ค.

 

csv๋Š” ์‰ผํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„์—์„œ ๊ณต์ง€์‚ฌํ•ญ์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ๋ฅผ ๊ฐ€์ •ํ•ด๋ณด์ž. csv ํƒ€์ž…์€ ๊ตฌ๋ถ„์ž๊ฐ€ ์‰ผํ‘œ ๋ฟ์ด๋ฏ€๋กœ ์–ด๋–ค ๊ฒŒ ์ œ๋ชฉ์ด๊ณ  ๋‚ด์šฉ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

 

csv์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ์ด xml์ด๋‹ค. xml์„ ์ด์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ๋ฐ์ดํ„ฐ, ์ฆ‰ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์ฒฉํ•ด์„œ ๋” ํฐ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋น„๋Œ€ํ•ด์ง€๊ณ  ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

 

์š”์ฆ˜์—๋Š” csv์™€ xml์˜ ์žฅ์ ์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” json์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ๋Ÿ‰ํ™”๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์›๋ž˜ json์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด ํ‘œ๊ธฐ๋ฒ•์ด์ง€๋งŒ ์ง€๊ธˆ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„˜์–ด์„œ์„œ ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.

 

 

NoticeController.java

@RestController("apiNoticeController")
@RequestMapping("/api/notice/")
public class NoticeController {
	
	@Autowired
	private NoticeService service;

	@RequestMapping("list")
	public List<Notice> list() throws ClassNotFoundException, SQLException {
		
		List<Notice> list = service.getList(1, "title", "");
		
		return list;
	}
}

 

 

pom.xml

	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>2.11.2</version>
	</dependency>

 

 

pom.xml์— jackson-databind ๋””ํŽœ๋˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. NoticeController์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ ‘์†์— ์‚ฌ์šฉํ•  NoticeService ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๊ณ  ๋ฆฌํ„ด ํƒ€์ž…์„ select ๊ฒฐ๊ณผ๋ฌผ์ธ List<Notice>์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋ฆฌํ„ดํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰ํ•ด ๋ณธ๋‹ค.

 

 

 

๋ฆฌํ„ดํ•˜๋Š” List<Notice>๊ฐ€ json ํƒ€์ž…์œผ๋กœ ํ™”๋ฉด์— ์ถœ๋ ฅ๋œ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„์—์„œ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋ฅผ json์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๋Š”๋ฐ, ์Šคํ”„๋ง์—์„œ๋Š” ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜๊ฐ’์„ ๋˜์ง€๋ฉด ์•Œ์•„์„œ json์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์ค€๋‹ค. ๊ณต์ง€์‚ฌํ•ญ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™”์„ ๋•Œ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์ผ์ผ์ด ๋ฌธ์ž์—ด๋กœ ํฌ๋งทํ•˜๋Š” ๊ฒƒ์€ ์•„์ฃผ ๊ท€์ฐฎ์€ ์ผ์ธ๋ฐ ์Šคํ”„๋ง์ด ์ด๊ฒƒ์„ ๋Œ€์‹ ํ•ด์ฃผ๋‹ˆ ํŽธํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.