๐Ÿ”ฅ TIL - Day 7

Kim Dae Hyunยท2021๋…„ 9์›” 20์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
8/93

๐Ÿ“Œ EntityListener - ์—”ํ‹ฐํ‹ฐ ์ƒ์„ฑ์‹œ๊ฐ„, ์ˆ˜์ •์‹œ๊ฐ„ ๊ด€๋ฆฌ

์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์ƒ์„ฑ์‹œ๊ฐ„, ์ˆ˜์ •์‹œ๊ฐ„์€ ํ”„๋กœ์ ํŠธ์—์„œ ๊ต‰์žฅํžˆ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ํ•„๋“œ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๋ฝ์—†์ด ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ƒ์„ฑ์€ ๊ทธ๋ ‡๋‹ค ํ•ด๋„ ์ˆ˜์ •์‹œ๊ฐ„์˜ ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋‘ ์‹ ๊ฒฝ์จ์ค˜์•ผ ํ•œ๋‹ค๋ฉด ์กฐ๊ธˆ ๊ณจ์น˜ ์•„ํ”„๋‹ค.. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” EntityListener๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

[ Listner๋ฅผ ์ ์šฉ์‹œํ‚ค๊ณ ์ž ํ•˜๋Š” ํ•„๋“œ๋ฅผ ๊ฐ–๋Š” ์—”ํ‹ฐํ‹ฐ์— ์ถ”๊ฐ€ ]
@EntityListener(AuditingEntityListener.class)

		+ 

@CreatedDate
private LocalDateTime createdAt;

@LastModifiedDate
private LocalDateTime updatedAt;

		+ 

@EnableJpaAuditing

๐Ÿ“Œ Stringํƒ€์ž… Json์„ Json๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‘๋‹ต์„ String ํƒ€์ž…์œผ๋กœ ๋ฐ›์•˜๋‹ค๊ณ  ํ•  ๋•Œ ์ด๋Š” String ํƒ€์ž…์ด์ง€๋งŒ Jsonํฌ๋ฉง์„ ๊ฐ–๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

Jsonํƒ€์ž… ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด์•ผ ์‘๋‹ต๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์ • (์˜์กด์„ฑ ์„ค์ •)
Maven Repository - Json In Java ๊ฒ€์ƒ‰

implementation group: 'org.json', name: 'json', version: '20160810'

JSONObject ๋กœ ๋ณ€ํ™˜

  • String ํƒ€์ž… Jsonํฌ๋ฉง ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•˜๋Š” JSONObject ์ƒ์„ฑํ•œ๋‹ค.
JSONObject jsonObject = new JSONObject(data)
  • ๋ณ€ํ™˜ํ•œ JSONObject์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ??
  JSONArray items = jsonObject.getJSONArray("key");
  • ๋ฆฌ์ŠคํŠธ ์•ˆ์˜ Json์„ ๋‹ค์‹œ ํ•˜๋‚˜์”ฉ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด์•ผ ํ•จ
for (int i=0;i<items.length;i++) {
	items.getJSONObject(i).getString("key1");
    	items.getJSONObject(i).getInt("key2");
        ...
}

๐Ÿ“Œ Spring์—์„œ api ํ˜ธ์ถœ

Spring์€ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ์˜ ์š”์ฒญ์„ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฐฉ์‹์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ์ค‘ ํ•˜๋‚˜์ธ RestTemplate๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค.

์ดˆ๊ธฐํ™” ๋ฐ ํ—ค๋” ๊ตฌ์„ฑ

RestTemplate client = new RestTemplate();

// ๋ณดํ†ต api ํ˜ธ์ถœ์— ํ•„์š”ํ•œ ํ‚ค ๊ฐ’์„ ๊ตฌ์„ฑ
HttpHeaders headers = new HttpHeaders();
headers.add("key1", "value1");
headers.add("key2", "value2");

์š”์ฒญ ๊ฐ์ฒด๊ตฌ์„ฑ - HttpEntity

HttpEntity<๋ฆฌํ„ดํƒ€์ž…> request = new HttpEntity<>(์š”์ฒญbody, ์š”์ฒญheader);

ํ˜ธ์ถœ

request.exchange(์š”์ฒญurl, ์š”์ฒญ๋ฉ”์„œ๋“œ, ์š”์ฒญ๊ฐ์ฒด, ๋ฆฌํ„ดํƒ€์ž…);


1์ฃผ์ฐจ์— ์›น ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์„ ์•Œ์•„๋ณด์•˜๊ณ  ์ด์ œ ์ด๋ฒˆ ์บ ํ”„์—์„œ ๊ฐˆ๊ณ  ๋‹ฆ์„ ๋ฌด๊ธฐ๊ฐ€ ๋  ์Šคํ”„๋ง์— ๋Œ€ํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด์•˜๋‹ค.

๊ทธ๋ž˜๋„ ๊ฒฝํ—˜์ด ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ผ์„œ ํ‘œ์ •์„ ์ฐก๊ทธ๋ฆฌ์ง€ ์•Š๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค ๐Ÿ˜

profile
์ข€ ๋” ์ฒœ์ฒœํžˆ ๊นŒ๋จน๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๐Ÿง

0๊ฐœ์˜ ๋Œ“๊ธ€