항해 99 5기

항해99 5기 시작전 웹개발 종합반 2주차 리뷰

65살까지 코딩 2021. 12. 11. 19:14
728x90
반응형

2주차 역시 중요하다고 생각하는 것만 다시 한번 복기

  • jQery는 미리 javascript 코드로 작성된 라이브러리로 쉽고 직관적으로 코드를 줄여준다.

예시

//라이브러리 import
<script src="jquery-3.5.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

//javascript
document.getElementById("element").style.display = "none";

//jQuery
$('#element').hide();
  • Json은 데이터 교환 형식으로 dictionary와 유사한 형태로 key와 value로 이루어져 있다. 예로http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99가있다.
  • 요청방식은 여러가지가 있는데 GET과 POST 방식이 주로 사용된다. 
  • GET 방식은 클라이언트가 서버측 데이터에 대해서 무언가를 변경하지 않고 단순히 가져오거나 보는데 사용된다. (Read)
  • Post는 무언가를 변경하는 데 사용된다.(Create, Update, Delete)
  • 즉 GET은 원격 데이터를 검색하는데 사용되며 POST는 원격 데이터를 삽입/업데이트/삭제하는데 사용된다.
  • GET 방식으로 데이터를 전달하는 방법 url의 ?부터 시작하여 &는 전달할 데이터가 더 있다는 것이다.예를 들어https://codingstudytrace.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F여기서 tpye이라는 키값과 post라는 벨류, returnURL이라는 key값과 %2Fmanage%2Fposts%2F라는 벨류값이 있는 것이다.
  • Ajax는 Jquery가 import되야 하며 기본적인 골격은 다음과 같다.
    $.ajax({
      type: "GET", // GET 방식으로 요청한다.
      url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
      data: {}, // 요청하면서 함께 줄 데이터 (GET 요청시엔 비워두세요)
      success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
        console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
      }
    })
    
    $.ajax({
      type: "POST", // POST 방식으로 요청한다.
      url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
      data: {param: 'value', param2: 'value2'}, // 요청하면서 함께 줄 데이터 
      success: function(response){ // 서버에서 준 결과를 response라는 변수에 담음
        console.log(response) // 서버에서 준 결과를 이용해서 나머지 코드를 작성
      }
    })​

2주차 과제 결과물

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

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

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Black+Han+Sans&display=swap" rel="stylesheet">
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
          integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
            integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
            crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
            integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
            crossorigin="anonymous"></script>
    <style>
        * {
            font-family: 'Black Han Sans', sans-serif;
        }

        .wrap {
            width: 500px;
            margin: auto;
        }

        .image {
            width: 500px;
            height: 400px;
            background-image: url("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSEBRVdDHxxmfslbKBP1zErGvWZIlQ83Fj0VQ&usqp=CAU");
            background-size: cover;
            background-position: center;
        }

        h1 {
            display: inline;
        }

        .mybtn {
            text-align: center;
            width: 500px;
            margin: auto;

        }
    </style>
    <title>스파르타코딩클럽 | 부트스트랩 연습하기</title>

    <script>
                $(document).ready(function(){
	                q1();
                });
                function q1(){
                    $.ajax({
                        type: "GET",
                        url : "http://spartacodingclub.shop/sparta_api/rate",
                        data: {},
                        success: function (response){
                            let change = response['rate'];
                            $('.content').append(`<p style="color: blue">달러/원 환율:${change}</p>`);
                        }
                    })
                }
    </script>
</head>

<body>
    <div class="wrap">

        <div class="image">

        </div>
        <div class="content">
            <h1>아이맥을 팝니다</h1>
            <span>가격:100만원/대</span>
            <p>
                이 컴퓨터는 어마무시한 성능을 가지고 있으며 디자인도 탁월해 많은 사람들이 사용하는 컴퓨터입니다.
            </p>
        </div>

        <div class="form">
            <div class="input-group input-group-sm mb-3">
                <div class="input-group-prepend">
                    <span class="input-group-text" id="inputGroup-sizing-sm">주문자 이름</span>
                </div>
                <input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
            </div>
            <div class="input-group mb-3">
                <div class="input-group-prepend">
                    <label class="input-group-text" for="inputGroupSelect01">수량</label>
                </div>
                <select class="custom-select" id="inputGroupSelect01">
                    <option selected>--수량을 선택하세요--</option>
                    <option value="1">One</option>
                    <option value="2">Two</option>
                    <option value="3">Three</option>
                </select>
            </div>
            <div class="input-group input-group-sm mb-3">
                <div class="input-group-prepend">
                    <span class="input-group-text" id="inputGroup-sizing-sm">주소</span>
                </div>
                <input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
            </div>
            <div class="input-group input-group-sm mb-3">
                <div class="input-group-prepend">
                    <span class="input-group-text" id="inputGroup-sizing-sm">전화번호</span>
                </div>
                <input type="text" class="form-control" aria-label="Small" aria-describedby="inputGroup-sizing-sm">
            </div>
        </div>
        <div class="mybtn">
            <button type="button" class="btn btn-primary">주문하기</button>
        </div>
    </div>
</body>

</html>

 

728x90
반응형