๐Ÿง 2์ฃผ์ฐจ

์˜ค๋Š˜์˜ ์ง„๋„
1~5jQuery
6์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ํ†ต์‹ 
7~10aJax

์ˆ˜์—… ๋ชฉํ‘œ
1. Javascript๋ฌธ๋ฒ•์— ์ต์ˆ™ํ•ด์ง„๋‹ค
2. jQuery๋กœ ๊ฐ„๋‹จํ•œ HTML์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
3. Ajax๋กœ ์„œ๋ฒ„ API(์•ฝ์†)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.

โžก ๋‹ค์Œ ์ˆ˜์—…๋ชฉํ‘œ์— ๋”ฐ๋ผ ์ž˜ ๋”ฐ๋ผ๊ฐ”๋Š”์ง€ ๋’ค์— ํšŒ๊ณ ํ•ด๋ณผ ์˜ˆ์ •์ด๋‹ค!

(1) ~ (5) jQuery

jQuery

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ~
  • HTML์š”์†Œ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ํŽธ๋ฆฌํ•œ Javascript ๋ฏธ๋ฆฌ ์ž‘์„ฑํ•ด๋‘” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

jQuery ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•

<head>์— ์ถ”๊ฐ€!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    
  • jQuery๋Š” css์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ "๊ฐ€๋ฆฌ์ผœ์•ผ" ์กฐ์ž‘๊ฐ€๋Šฅ!!

jQuery ๋‹ค๋ฃจ๊ธฐ

  • ๋ชจ๋“  jQuery๋ฅผ ์™ธ์šธ ํ•„์š”๋Š” ์—†์Œ. ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ ๊ตฌ๊ธ€๋งํ•˜๊ธฐ

1. input ๋ฐ•์Šค ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ

$('#url').val()
//css์—์„œ class๋ฅผ ์ง€์นญํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ jQuery์—์„œ๋Š” id๋กœ ์ง€์นญ
//์˜ˆ์‹œ
$('#url').val('์ž…๋ ฅ์„ ํ•˜๊ณ  ์‹ถ๋‹ค')

2. div ๋ณด์ด๊ธฐ / ์ˆจ๊ธฐ๊ธฐ
div๋ถ€๋ถ„์— id="post-box" ์ง€์นญ ํ›„
์ฝ˜์†”์ฐฝ์—์„œ

$('#post-box').hide()	//์ˆจ๊ธฐ๊ธฐ
$('#post-box').show()	//๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๊ธฐ

3. ํƒœ๊ทธ ๋‚ด html ์ž…๋ ฅํ•˜๊ธฐ
์ฝ˜์†”์ฐฝ--
--let temp_html = <button> ๋‚˜๋Š” ๋ฒ„ํŠผ์ด๋‹ค </button> //html์ด ์•„๋‹˜ ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด

//htmlํ™” ์‹œ์ผœ์ฃผ๋Š” jQuery ๊ธฐ๋Šฅ ์‚ฌ์šฉ
$('#cards-box').append(temp_html)

jQuery ์—ฐ์Šตํ•˜๊ธฐ

<!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;
        }
    </style>

    <script>
        function q1() {
            // 1. input-q1์˜ ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
            let value = $('#input-q1').val();
            // 2. ๋งŒ์•ฝ ์ž…๋ ฅ๊ฐ’์ด ๋นˆ์นธ์ด๋ฉด if(์ž…๋ ฅ๊ฐ’=='')
            if (value == '') {
                // 3. alert('์ž…๋ ฅํ•˜์„ธ์š”!') ๋„์šฐ๊ธฐ
                alert('์ž…๋ ฅํ•˜์„ธ์š”!');
            } else {
                // 4. alert(์ž…๋ ฅ๊ฐ’) ๋„์šฐ๊ธฐ
                alert(value);
            }
        }

        function q2() {
            // 1. input-q2 ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
            let email = $('#input-q2').val();
            // 2. ๋งŒ์•ฝ ๊ฐ€์ ธ์˜จ ๊ฐ’์— @๊ฐ€ ์žˆ์œผ๋ฉด (includes ์ด์šฉํ•˜๊ธฐ - ์ฐพ์•„๋ณด์ž!)
            if (email.includes('@')) {
                // 3. info@gmail.com -> gmail ๋งŒ ์ถ”์ถœํ•ด์„œ
                // 4. alert(๋„๋ฉ”์ธ ๊ฐ’);์œผ๋กœ ๋„์šฐ๊ธฐ
                let domainWithDot = email.split('@')[1];
                let onlyDomain = domainWithDot.split('.')[0];
                alert(onlyDomain);
            } else {
                // 5. ๋งŒ์•ฝ ์ด๋ฉ”์ผ์ด ์•„๋‹ˆ๋ฉด '์ด๋ฉ”์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.' ๋ผ๋Š” ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ
                alert('์ด๋ฉ”์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค.');
            }
        }

        function q3() {
            // 1. input-q3 ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.
            let newName = $('#input-q3').val();
            if (newName == '') {
                alert('์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”');
                return;
            }
            // 2. ๊ฐ€์ ธ์˜จ ๊ฐ’์„ ์ด์šฉํ•ด names-q3์— ๋ถ™์ผ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ ๋‹ค. (let temp_html = `<li>${๊ฐ€์ ธ์˜จ ๊ฐ’}</li>`)
            let temp_html = `<li>${newName}</li>`;
            // 3. ๋งŒ๋“ค์–ด๋‘” temp_html์„ names-q3์— ๋ถ™์ธ๋‹ค.(jQuery์˜ $('...').append(temp_html)์„ ์ด์šฉํ•˜๋ฉด ๊ตฟ!)
            $('#names-q3').append(temp_html);
        }

        function q3_remove() {
            // 1. names-q3์˜ ๋‚ด๋ถ€ ํƒœ๊ทธ๋ฅผ ๋ชจ๋‘ ๋น„์šด๋‹ค.(jQuery์˜ $('....').empty()๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ตฟ!)
            $('#names-q3').empty();
        }

    </script>

</head>

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

    <div class="question-box">
        <h2>1. ๋นˆ์นธ ์ฒดํฌ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ</h2>
        <h5>1-1. ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ž…๋ ฅํ•œ ๊ธ€์ž๋กœ ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ</h5>
        <h5>[์™„์„ฑ๋ณธ]1-2. ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์นธ์— ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด "์ž…๋ ฅํ•˜์„ธ์š”!" ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ</h5>
        <input id="input-q1" type="text" /> <button onclick="q1()">ํด๋ฆญ</button>
    </div>
    <hr />
    <div class="question-box">
        <h2>2. ์ด๋ฉ”์ผ ํŒ๋ณ„ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ</h2>
        <h5>2-1. ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์ž…๋ ฅ๋ฐ›์€ ์ด๋ฉ”์ผ๋กœ ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ</h5>
        <h5>2-2. ์ด๋ฉ”์ผ์ด ์•„๋‹ˆ๋ฉด(@๊ฐ€ ์—†์œผ๋ฉด) '์ด๋ฉ”์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค'๋ผ๋Š” ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ</h5>
        <h5>[์™„์„ฑ๋ณธ]2-3. ์ด๋ฉ”์ผ ๋„๋ฉ”์ธ๋งŒ ์–ผ๋Ÿฟ ๋„์šฐ๊ธฐ</h5>
        <input id="input-q2" type="text" /> <button onclick="q2()">ํด๋ฆญ</button>
    </div>
    <hr />
    <div class="question-box">
        <h2>3. HTML ๋ถ™์ด๊ธฐ/์ง€์šฐ๊ธฐ ์—ฐ์Šต</h2>
        <h5>3-1. ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ</h5>
        <h5>[์™„์„ฑ๋ณธ]3-2. ๋‹ค์ง€์šฐ๊ธฐ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค๊ธฐ</h5>
        <input id="input-q3" type="text" placeholder="์—ฌ๊ธฐ์— ์ด๋ฆ„์„ ์ž…๋ ฅ" />
        <button onclick="q3()">์ด๋ฆ„ ๋ถ™์ด๊ธฐ</button>
        <button onclick="q3_remove()">๋‹ค์ง€์šฐ๊ธฐ</button>
        <ul id="names-q3">
            <li>์„ธ์ข…๋Œ€์™•</li>
            <li>์ž„๊บฝ์ •</li>
        </ul>
    </div>
</body>

</html>

(1) ~ (5) ๋Š๋‚€ ์ ๐Ÿค”๐Ÿ’ญ

jQuery ์—ฐ์Šตํ•˜๊ธฐ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์› ๋‹ค...

๋ฌธ์ œ 1.
๋‹ค ํ’€๊ณ ๋‚˜์„œ ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ ๊ฐ•์˜์ž๋ฃŒ์— ์žˆ๋Š” ๋‹ต์•ˆ ์ฐธ๊ณ ํ•˜๋ ค๋‹ค๊ฐ€ ๋‹ต์•ˆ์—๋Š” ๋ฌธ์žฅ๋งˆ๋‹ค ;์ด ๋ถ™์–ด์žˆ๊ธธ๋ž˜ ๊ทธ๊ฑธ ์ณค๋”๋‹ˆ ์ œ๋Œ€๋กœ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์•˜๋‹ค.
์ฒ˜์Œ์—” ๋˜๋˜ ํ•จ์ˆ˜๊ฐ€ ๊ทธ ์ดํ›„๋ถ€ํ„ฐ ์•ˆ ๋๋Š”๋ฐ, ๋‚˜๋Š” ๋ฌด์—‡ ๋•Œ๋ฌธ์ธ์ง€ ์•Œ์ง€ ๋ชปํ•ด ์„ ์ƒ๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ค์–ด์•ผ ํ–ˆ๋‹ค. ๋“ค์œผ๋ฉด์„œ ์„ ์ƒ๋‹˜์ด ์“ด ์ฝ”๋“œ์™€ ๋‚˜์˜ ์ฝ”๋“œ์˜ ์ฐจ์ด์ ์ด ; ๋ฟ์ด๋ผ๋Š” ๊ฑธ ์•Œ๊ณ  ์ง€์› ๋”๋‹ˆ ํ•ด๊ฒฐ.... ์˜ ํ—ˆ๋ฌด..

๋ฌธ์ œ 2.
์›ฌ๋งŒํ•œ ๊ฑด ํ˜ผ์ž ์™„์„ฑ์„ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 3๋ฒˆ๋งŒ ์•„์˜ˆ ํ•ด๊ฒฐ์ด ์•ˆ ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ฐ•์˜์ž๋ฃŒ ๋‹ต์•ˆ๊ณผ๋„ ๋‹ต๋„ ๊ฐ™์•˜๊ณ , ์„ ์ƒ๋‹˜๊ณผ์˜ ๋‹ต๋„ ๊ฐ™์•˜๋Š”๋ฐ ๋„๋Œ€์ฒด ๋ญ๊ฐ€ ๋ฌธ์ œ์ผ๊นŒ ๋จธ๋ฆฌ๋ฅผ ์ฅ์–ด์‹ธ๋งธ๋‹ค. ๋ฌธ์ œ๋Š” function q3() {} ์—์„œ ๋Œ€๊ด„ํ˜ธ }๊ฐ€ ๋‹ซํžŒ ์ƒํƒœ์—์„œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ–ˆ๋˜ ๊ฒƒ์ด์—ˆ๋‹ค. function q3() { } ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์ž‘์„ฑํ•ด์•ผ ํ•  ๊ฒƒ์„ ๋ฐ–์— ์ž‘์„ฑํ•˜๋‹ˆ ๋‹น์—ฐํžˆ ์‹คํ–‰์ด ์•ˆ ๋œ๋‹ค. ์œ ์˜ํ•˜์ž

๋ฆฌ๋งˆ์ธ๋“œ 1. split() ํ•จ์ˆ˜
์ €๋ฒˆ์ฃผ ์ˆ˜์—…์‹œ๊ฐ„์—๋„ ํ–ˆ์—ˆ์ง€๋งŒ split()์œผ๋กœ ๋˜ ์ชผ๊ฐœ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ!!

ex. ์ด๋ฉ”์ผ ์ž…๋ ฅ๋ฐ›์€ ๊ฒƒ(myemail)์—์„œ ๋„๋ฉ”์ธ๊ฐ’๋งŒ ์ถ”์ถœ

myemail.split('@')[1].split('.')[0]

๋ฆฌ๋งˆ์ธ๋“œ 2. includes() ํ•จ์ˆ˜ ์‚ฌ์šฉ

๋ณ€์ˆ˜๋ช….includes('์ฐพ๊ณ  ์‹ถ์€ ๋ฌธ์ž')



(6) ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ํ†ต์‹  ์ดํ•ดํ•˜๊ธฐ

  • JSON : ๋”•์…”๋„ˆ๋ฆฌ + ๋ฆฌ์ŠคํŠธ ํ•ฉ์ณ์ง„ ํ˜•ํƒœ ์ •๋„๋กœ ์ดํ•ดํ•˜๊ธฐ

    ํด๋ผ์ด์–ธํŠธโ†’์„œ๋ฒ„: GET ์š”์ฒญ
    ํ†ต์ƒ์ ์œผ๋กœ! ๋ฐ์ดํ„ฐ ์กฐํšŒ(Read)๋ฅผ ์š”์ฒญํ•  ๋•Œ

GET ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

? : ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž‘์„ฑ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
& : ์ „๋‹ฌํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ) google.com/search?q=์•„์ดํฐ&sourceid=chrome&ie=UTF-8

์œ„ ์ฃผ์†Œ๋Š” google.com์˜ search ์ฐฝ๊ตฌ์— ๋‹ค์Œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค!
         q=์•„์ดํฐ                        (๊ฒ€์ƒ‰์–ด)
         sourceid=chrome        (๋ธŒ๋ผ์šฐ์ € ์ •๋ณด)
         ie=UTF-8                      (์ธ์ฝ”๋”ฉ ์ •๋ณด)
         

(7) ~ (10) Ajax


Ajax ๊ธฐ๋ณธ ๊ณจ๊ฒฉ

$.ajax({
  type: "GET",
  url: "์—ฌ๊ธฐ์—URL์„์ž…๋ ฅ",
  data: {},
  success: function(response){
  console.log(response)
  }
})
  • $ajax ์ฝ”๋“œ ์„ค๋ช…
    - type : "GET" -> GET ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ
    • url : ์š”์ฒญํ•  url
    • data : ์š”์ฒญํ•˜๋ฉด์„œ ํ•จ๊ผ ์ค„ ๋ฐ์ดํ„ฐ (GET์š”์ฒญ์‹œ์—” ๋น„์›Œ์•ผ ํ•จ)

ajax 01 - ๋ฏธ์„ธ๋จผ์ง€ ์ˆ˜์น˜ 70์ด์ƒ์ธ ๊ณณ ๋นจ๊ฐ›๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ
ajax 02 - ์‹ค์‹œ๊ฐ„ ๋”ฐ๋ฆ‰์ด ํ˜„ํ™ฉ ์ด์šฉํ•˜๊ธฐ
ajax 03 - ๋žœ๋ค ๋ฅดํƒ„์ด API ์ด์šฉํ•˜๊ธฐ

  • ์ด๋ฏธ์ง€ ๋ฐ”๊พธ๊ธฐ : $("#์•„์ด๋””๊ฐ’").attr("src", ์ด๋ฏธ์ง€URL);
  • ํ…์ŠคํŠธ ๋ฐ”๊พธ๊ธฐ : $("#์•„์ด๋””๊ฐ’").text("๋ฐ”๊พธ๊ณ  ์‹ถ์€ ํ…์ŠคํŠธ");

(7) ~ (10) Ajax ๋Š๋‚€ ์  ๐Ÿค”๐Ÿ’ญ

jQuery๊ฐ€ ์–ด๋ ค์šด ์ค„ ์•Œ์•˜๋Š”๋ฐ ajax๊ฐ€ ๋” ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค. ์ผ์ฃผ์ผ์ด ์ง€๋‚ฌ๋Š”๋ฐ ๋ฒŒ์จ ajax์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊นŒ๋จน์—ˆ๋‹ค. ์ง€์†์ ์ธ ๋ณต์Šต์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ž˜์„  ๋‚ด๊ฐ€ ์ œ๋Œ€๋กœ ๋œ ์›นํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„์ง€์กฐ์ฐจ๋„ ์˜๋ฌธ์ด ๋“ ๋‹ค. (3/31)


๊ณผ์ œ

1์ฃผ์ฐจ์— ์™„์„ฑํ•œ ํŒฌ๋ช…๋ก์— ๋‚ ์”จ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”!
๋กœ๋”ฉ์ด ์™„๋ฃŒ๋˜๋ฉด,๋‚ ์”จAPI์„ ์ด์šฉํ•ด์„œ ๋‚ ์”จ๋ฅผ ํ‘œ์‹œํ•ด์ฃผ์„ธ์š”.


โ–ถ๊ณผ์ œ ํŽ˜์ด์ง€ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋“œ

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

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
          integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
            integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
            crossorigin="anonymous"></script>

    <title>ํŒฌ๋ช…๋ก ๋งŒ๋“ค๊ธฐ</title>
    <link href="https://fonts.googleapis.com/css2?family=Gowun+Dodum&display=swap" rel="stylesheet">

    <style>
         * {
           font-family: 'Gowun Dodum', sans-serif;
        }

        .mytitle {

            height: 250px;
            width: 100%;

            /* ๋ฐฐ๊ฒฝ ์–ด๋‘ก๊ฒŒ ํ•˜๊ธฐ :: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)) */
            background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://pbs.twimg.com/media/DdzGr4dVwAMbc4M?format=jpg&name=4096x4096");
            background-position: center;
            background-size: cover;

            color: white;

            /*display: flex ๋‚ด์šฉ๋ฌผ์„ ๊ฐ€์šด๋ฐ๋กœ! 4์ค„์ด ์„ธํŠธ*/
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }

        .mypost {
            max-width : 500px;
            width: 95%;

            margin: 20px auto 0px auto;

            box-shadow: 0px 0px 3px 0px grey;
            padding: 20px;
        }

        .mybtn {
            margin-top: 10px;
        }

        .mycards {
            max-width : 500px;
            width: 95%;
            margin: 20px auto 0px auto;
        }
        .mycards > .card {
           margin-top: 10px;
        }

    </style>

    <script>
        $(document).ready(function () {

            $.ajax({
                type: "GET",
                url: "http://spartacodingclub.shop/sparta_api/weather/seoul",
                data: {},
                success: function (response) {

                    let temp = response['temp']
                    $('#temp').text(temp)

                }
            })
        });


    </script>
</head>

<body>

    <div class="mytitle">
        <h1>ํƒœ์—ฐ ํŒฌ๋ช…๋ก</h1>
        <p> ํ˜„์žฌ ๊ธฐ์˜จ : <span id="temp">00.0</span>๋„</p>
    </div>

    <div class="mypost">
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="floatingInput" placeholder="name@example.com">
            <label for="floatingInput">๋‹‰๋„ค์ž„</label>
        </div>


        <div class="form-floating">
            <textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea" style="height: 100px"></textarea>
            <label for="floatingTextarea">์‘์› ๋Œ“๊ธ€</label>
        </div>

        <div class="mybtn">
            <button type="button" class="btn btn-dark">์‘์› ๋‚จ๊ธฐ๊ธฐ</button>
        </div>
    </div>
    <div class="mycards">
        <div class="card">
            <div class="card-body">
                <blockquote class="blockquote mb-0">
                    <p>์ƒˆ๋กœ์šด ์•จ๋ฒ” ๋„ˆ๋ฌด ์ข‹์•„์š”!</p>
                    <footer class="blockquote-footer"> ๋ฐ๊ตฌ</footer>
                </blockquote>
            </div>
        </div>
        <div class="card">
            <div class="card-body">
                <blockquote class="blockquote mb-0">
                    <p>์ƒˆ๋กœ์šด ์•จ๋ฒ” ๋„ˆ๋ฌด ์ข‹์•„์š”!</p>
                    <footer class="blockquote-footer"> ๋ฐ๊ตฌ</footer>
                </blockquote>
            </div>
        </div>
        <div class="card">
            <div class="card-body">
                <blockquote class="blockquote mb-0">
                    <p>์ƒˆ๋กœ์šด ์•จ๋ฒ” ๋„ˆ๋ฌด ์ข‹์•„์š”!</p>
                    <footer class="blockquote-footer"> ๋ฐ๊ตฌ</footer>
                </blockquote>
            </div>
        </div>
    </div>
</body>
</html>

์ˆ˜์—… ๋งˆ๋ฌด๋ฆฌ

๐Ÿ‘์ข‹์•˜๋˜ ์ 

๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๋กœ ์‹ค์Šตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•˜๋‹ค. ๊ฐ•์˜๊ฐ€ ์ปดํŒฉํŠธํ•˜๋‹ค! ๋‹ค์Œ์ฃผ์— ํŒŒ์ด์ฌ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‘˜ ๋‹ค ๋ฐฐ์šด๋‹ค๋Š” ์ ์ด ์ข‹์œผ๋ฉด์„œ๋„ ๋‹จ์ ์ด๋‹ค.
๋น ๋ฅธ ๋งŒํผ ์ƒˆ๋กœ์šด ๊ฑธ ๋ฐ”๋กœ๋ฐ”๋กœ ์Šต๋“ํ•˜๋‹ˆ๊นŒ ์•Œ์•„๊ฐ„๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ค์–ด ์ข‹์•˜๋‹ค.

๐Ÿ‘Ž์•„์‰ฌ์› ๋˜ ์ 

  • ๊ฐ•์˜๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ž๋‹ค. ๋‹ค์Œ์ฃผ์—๋Š” ํŒŒ์ด์ฌ์„ ํ•œ๋‹ค๋Š”๋ฐ, html๋ถ€๋ถ„์„ ์ œ๋Œ€๋กœ ์ตํžˆ์ง€ ๋ชปํ•œ ๋Š๋‚Œ์ด๋ผ ์•„์‰ฝ๋‹ค. ๋ณต์Šต์„ ๋งŽ์ด ํ•ด๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
    jQuery์™€ Ajax๋ฅผ ์ข€ ๋” ์—ฐ์Šตํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™๋‹ค. ๊ตฌ๊ธ€๋ง์„ ๊ฐ•์กฐํ•˜์‹œ๋Š”๋ฐ ์•„์ง์€ ์ž˜ ๊ฐ์ด ์˜ค์ง€ ์•Š๋Š”๋‹ค...
  • ์ด ๊ฐ•์˜๋ฅผ ๋ณต์Šตํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๋ณ„๋กœ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ•์˜๋ฅผ 4์ฃผ๋™์•ˆ๋ฐ–์— ๋ชป ๋“ค์œผ๋‹ˆ ๋‹ค๋ฅธ ์ผ์„ ๋ณ‘ํ–‰ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒŒ ์‰ฝ์ง€๊ฐ€ ์•Š๋‹ค! ๋ณต์Šต ์‹œ๊ฐ„์šฉ๋„๋กœ ๊ธฐ๊ฐ„์„ 2์ฃผ์ •๋„๋กœ ๋Š˜๋ ค์ฃผ๋ฉด ๋” ์ข‹์„ ๋“ฏํ•˜๋‹ค.

์ถ”์ฒœ? โญโญโญโญโ˜†


profile
To be "irreplaceable"

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด