๋ฐ˜์‘ํ˜•
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) ๋ณธ๋ฌธ

[WEB & AI] (feat. ์ทจ์ค€)/์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ_์›น๊ฐœ๋ฐœ์ข…ํ•ฉ๋ฐ˜

2-10_Quiz_Ajax ์—ฐ์Šตํ•˜๊ธฐ(2)

๋ถ€์‹œ๋งค๋‚˜_HA 2023. 10. 6. 07:03
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>
    

<br>

- ๊ฒฐ๊ณผ๋ฌผ 

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

- ์ด step by step ์ด ํ•œ๊บผ๋ฒˆ์— ์‹คํ–‰์ด ๋จ. โญโญโญ 
- ์ด๋ฏธ ํ•ด๋‹น api ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒŒ ์ „์ œ๋˜์–ด ์žˆ์Œ. โญโญโญ 
![](https://i.imgur.com/jsjtGls.png)

<br>
<br>

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

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

![](https://i.imgur.com/FVeJd5h.png)

<br>
<br>

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

``` js
$.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