๋ฐ˜์‘ํ˜•
250x250
Recent Posts
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hello creators ๐Ÿ™Œ

2-10_Quiz_Ajax ์—ฐ์Šตํ•˜๊ธฐ(2) (feat. ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ ๋ฐ”๊ฟ”์น˜๊ธฐ, ajax, attr, text, api ์—ฐ๊ฒฐ) ๋ณธ๋ฌธ

[WEB & AI] (feat. ์ทจ์ค€)/ํ”„๋ก ํŠธ&๋ฐฑ์—”๋“œ

2-10_Quiz_Ajax ์—ฐ์Šตํ•˜๊ธฐ(2) (feat. ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ ๋ฐ”๊ฟ”์น˜๊ธฐ, ajax, attr, text, api ์—ฐ๊ฒฐ)

๋ถ€์‹œ๋งค๋‚˜_HA 2023. 1. 28. 15:52
728x90
๋ฐ˜์‘ํ˜•

 

โ… . ์ด๋ฒˆ ํšŒ์ฐจ ํ•™์Šต ๋ชฉํ‘œ (goal)


1. ๋ฐฐ์šฐ๊ณ ์ž ํ•˜๋Š” ๊ฒƒ

  • ๋ฅดํƒ„์ด ๋‚˜์™€ ํด๋ฆญํ•˜๋ฉด -> ์ด๋ฏธ์ง€ & ํ…์ŠคํŠธ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ
  • ํ•ต์‹ฌ์€ ๋ฉ”์‹œ์ง€๋ž‘ URL ์„ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•ด์„œ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๊ฒƒ! โญโญโญโญโญ

โ…ก. ๊ธฐ๋ณธ ์ฝ”๋“œ ๋ฐ api ํ™•์ธ


1. ajax code ํ€ด์ฆˆ ํ’€๊ธฐ ์ด์ „ ์ œ๊ณต ์ฝ”๋“œ

<!doctype html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <title>JQuery ์—ฐ์Šตํ•˜๊ณ  ๊ฐ€๊ธฐ!</title>
    <!-- JQuery๋ฅผ import ํ•ฉ๋‹ˆ๋‹ค -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <style type="text/css">
        div.question-box {
            margin: 10px 0 20px 0;
        }

        div.question-box>div {
            margin-top: 30px;
        }
    </style>

    <script>
        function q1() {
            // ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
        }
    </script>

</head>

<body>
    <h1>JQuery+Ajax์˜ ์กฐํ•ฉ์„ ์—ฐ์Šตํ•˜์ž!</h1>

    <hr />

    <div class="question-box">
        <h2>3. ๋ฅดํƒ„์ด API๋ฅผ ์ด์šฉํ•˜๊ธฐ!</h2>
        <p>์•„๋ž˜๋ฅผ ๋ฅดํƒ„์ด ์‚ฌ์ง„์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”</p>
        <p>์—…๋ฐ์ดํŠธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ์ง€์› ๋‹ค ์ƒˆ๋กœ ์”Œ์—ฌ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.</p>
        <button onclick="q1()">๋ฅดํƒ„์ด ๋‚˜์™€</button>
        <div>
            <img id="img-rtan" width="300" src="http://spartacodingclub.shop/static/images/rtans/SpartaIcon11.png" />
            <h1 id="text-rtan">๋‚˜๋Š” ใ…‡ใ…‡ใ…‡ํ•˜๋Š” ๋ฅดํƒ„์ด!</h1>
        </div>
    </div>
</body>

</html>

  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ด
  • 450


2. ๋ฅดํƒ„์ด API ์ฃผ์†Œ

http://spartacodingclub.shop/sparta_api/rtan
  • ์ด๋ ‡๊ฒŒ ๋‚˜์˜ด




โ…ข. ํ•ด๋ณด๊ธฐ


1. ์ด์ „ ๋‹จ๊ณ„๋ž‘ ๋‹ค๋ฅธ ์  : '์ด๋ฒˆ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๋Š” ajax๋Š”?'

  • ์ด์ „์—๋Š” ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” html ์„ ํ™•์ธํ–ˆ์Œ.
  • ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ทธ ์ด์œ ๋Š” ์‚ฌ์šฉํ•˜๋Š” ajax ๊ฐ€ append ์˜€๊ธฐ ๋•Œ๋ฌธ. ์ฆ‰, append ๋Š” ์ž„์‹œ html ์„ ์ง„์งœ html ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” html ์„ ํ™•์ธํ•˜๋Š”๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ์—ˆ์Œ.
  • ๊ทธ๋Ÿฌ๋ฉด, ์ด๋ฒˆ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๋Š” ajax ๋Š”? โญโญโญโญโญ

1) ajax ์ค‘ ํ•„์š”ํ•œ ํ•จ์ˆ˜ ์ฐพ๊ธฐ (์ฐพ์•˜๋‹ค๊ณ  ๊ฐ€์ •)

  • ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ์ˆ ์ด ๋ญ”๋ฐ?
    • ํด๋ฆญํ•˜๋ฉด -> ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ”๋€Œ๊ณ ,
    • ํด๋ฆญํ•˜๋ฉด -> ํ…์ŠคํŠธ๊ฐ€ ๋ฐ”๋€Œ๋Š”๊ฑธ ํ•˜๊ณ  ์‹ถ์Œ.
    • ์ฆ‰, ์—ฌ๊ธฐ url ์ด๋ž‘, ํ…์ŠคํŠธ๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ์Œ.
  • ๐Ÿ˜ฅ ์•„์ง ์ด๊ฒŒ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฑด์ง€ ๋ชฐ๋ผ์„œ, ๋ญ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•ด์•ผ ํ• ์ง€๋„ ๋ชจ๋ฅด๊ฒ ์Œ. ์ด ๊ธฐ๋Šฅ์„ ์ข€ ์•Œ๋ฉด, ajax ํ•ด๋‹น ๊ธฐ์ˆ  ์ด๋ ‡๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Œ.
  • ajax ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์•Œ๊ณ , ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•˜๊ฒ ๋„ค โญโญโญ
  • ์šฐ์„ ์€ ์ฒ˜์Œ ๋ฐฐ์šฐ๋‹ˆ๊นŒ, ํ•„์š”ํ•œ ajax ๊ธฐ์ˆ ์„ ๋‚ด๊ฐ€ ์ฐพ์•˜๋‹ค! ๊ณ  ๊ฐ€์ •ํ•˜๊ณ ! ์ง„ํ–‰

2) attr, text ์‚ฌ์šฉํ•ด์„œ, url ์ด๋ž‘ text ๋ฐ”๊ฟ”์น˜๊ธฐ

  • ์ด๊ฑธ ์‚ฌ์šฉํ•  ์˜ˆ์ •


2. ajax ํ™œ์šฉํ•ด์„œ, ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ response ๋ฅผ console ์— ์ฐ์–ด๋ณด๊ธฐ

#ajax_์„œ๋ฒ„response_console์ฐ๊ธฐ_์˜ˆ์ œ์ฝ”๋“œ


  • ajax ์„œ๋ฒ„response_console์ฐ๊ธฐ ์˜ˆ์ œ์ฝ”๋“œ โญโญโญ
<script>
	function q1() {
		// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
		$.ajax({
			type: "GET",
			// api ์ฃผ์†Œ โœ… 
			url: "http://spartacodingclub.shop/sparta_api/seoulbike",
			data: {},
			success: function (response) {
				console.log(response['getStationList']['row'])
			}
		})
	}
</script>


  • ๊ฒฐ๊ณผ๋ฌผ
  • ๋ฒ„ํŠผ ํด๋ฆญ -> q1 ํ•จ์ˆ˜ ์‹คํ–‰ -> ์„œ๋ฒ„ api ์— ๊ฐ€์„œ, (์ด๋ฏธ ์˜ฌ๋ ค์ ธ ์žˆ๋Š”) ๋ฐ์ดํ„ฐ๋ฅผ response ์— ๋ฐ›์Œ -> ๋ฐ›์•„์˜จ ๊ฑธ console ์— ๋ณด์—ฌ์คŒ!
  • ์ด step by step ์ด ํ•œ๊บผ๋ฒˆ์— ์‹คํ–‰์ด ๋จ. โญโญโญ
  • ์ด๋ฏธ ํ•ด๋‹น api ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒŒ ์ „์ œ๋˜์–ด ์žˆ์Œ. โญโญโญ


3. ๋ฉ”์‹œ์ง€ & URL ๋ฐ”๊ฟ”์น˜๊ธฐ

1) ์ฐธ์กฐ ์‚ฌํ•ญ



2) ๋ฉ”์‹œ์ง€๋ž‘ url ์ด console ์— ์ž˜ ์ฐํ˜€๋‚˜์™”๋Š”์ง€ ํ™•์ธ โญโญโญ

$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/rtan",
data: {},
success: function (response) {
	let url = response['url']
	let msg = response['msg']

	console.log(msg, url)
}
})
  • ์ด ๊ณผ์ •์„ ์ถ”์ƒํ™” ์‹œ์ผœ๋ณด๋ฉด?
    • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€์ˆ˜์— ๋‹ด์•˜์„ ๋•Œ -> ์ฐ์–ด์„œ ํ™•์ธํ•ด๋ณด๋ผ?

  • ๊ฒฐ๊ณผ๋ฌผ 500


3) console ์—์„œ ์ž˜ ๋‚˜์˜ค๋Š”๊ฑธ -> attr, text ajax ํ•จ์ˆ˜ ํ™œ์šฉํ•ด์„œ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•˜๊ธฐ

#ajax_attr_textํ™œ์šฉ_๋ฐ”๊ฟ”์น˜๊ธฐ_์˜ˆ์ œ์ฝ”๋“œ


  • ์˜ˆ์ œ ์ฝ”๋“œ ๐Ÿ”—
function q1() {
	// ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”
	$.ajax({
	type: "GET",
	url: "http://spartacodingclub.shop/sparta_api/rtan",
	data: {},
	success: function (response) {
		let url = response['url']
		let msg = response['msg']

		$('#img-rtan').attr('src', url)
		$('#text-rtan').text(msg)
	}
})
}

- ๊ฒฐ๊ณผ๋ฌผ



๐Ÿ’ญ What i learned


  • '๊ทธ๋Ÿฌ๋ฉด, ์ด๋ฒˆ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๋Š” ajax ๋Š”? โญโญโญโญโญ' ์ด๋Ÿฐ ๊ด€์ ์—์„œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ํ•ด๋ณด๋ฉด ๋œ๋‹ค.
    • '๋ฐ”๊ฟ”์น˜๊ธฐ' ๋ฅผ ํ•˜๋ ค๋ฉด
  • ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์˜ˆ์ œ์ฝ”๋“œ -> ์ฐธ์กฐ์ฝ”๋“œ ์ด๋ ‡๊ฒŒ ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•˜๋‚˜?
    • ์ฐธ์กฐํ•  ๋•Œ๋Š”,
      1. ์–ด๋””๋ฅผ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š”์ง€ ๋“ฑ์„ ๊น”๋”ํ•˜๊ฒŒ ๊ธฐ์žฌํ•˜๋ฉด ์ข‹์„๊ฑฐ ๊ฐ™์€๋ฐ?
      2. ํƒœ๊ทธ ๋‹ฌ ๋•Œ ๊ทœ์น™์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๋“ฏ. ex) ๊ธฐ์ˆ  hierarchy ์ง๊ด€์ ์ธ์„ค๋ช…์˜ˆ์ œํƒœ๊ทธor์ฐธ์กฐํƒœ๊ทธor์ด๋ฆ„ํ†ต์ผ?
728x90
๋ฐ˜์‘ํ˜•
Comments