ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2강 정리] Javascript, 리스트, 딕셔너리 , JQuery, forEach, append, JSON, Fetch, API
    웹개발 종합반 2023. 8. 3. 23:35
    728x90
    더보기

    배운것

     

    1. Javascript의 동작과 리스트, 딕셔너리 사용법

    2. JQuery의 사용형태 : $(’#아이디값’)

    3. forEach의 기본형태 및 사용방법

    4. append의 기본형태 및 사용방법

    5. Fetch 의 기본형태 및 사용방법

    6. Fetch의 단건, 다건 조회 및 변경방법 

     


    [목표]

    1. Javascript의 사용방식에 대해 이해하고 문법에 익숙해진다.
    2. JQuery로 HTML을 조작할 수 있다.
    3. Fetch로 서버 API에 데이터를 주고, 결과를 받아온다.

     

    1강을 토대로 움직이는 웹을 만들어 보자!

     

     

    HTML : 뼈대
    CSS:꾸미기
    javascript: 움직이기

     

    Javascript: 웹을 움직이게 하는 코드(동작을 명령함)
    jQuery: html를 간편하게 수행할 수 있도록 도와주는 도구
    Fetch: 웹 브라우저와 서버 간의 HTTP 요청을 처리하기 위한 메소드로 클라이언트와 서버간의 통신을 관리함

     

     

     


     

     

    🔷 1.  Javascript

    : 프로그래밍 언어 중 하나로, 브라우저가 알아들을 수 있는 언어이다.

     


     

    ✅ 실습(1) - 버튼을 클릭하면 경고창이 뜨게하기

     <head>

       (......)

        <script>

            function hey() {

                alert('안녕하세요')

            }

        </script>

    </head>

     

    <body>

        <div class="mytitle">

            <h1>내 생애 최고의 영화들</h1>

            <button onclick="hey()">영화 기록하기</button>

        </div>



    <head> </head> 안에 <script> </script> 내용을 입력하고 함수를 설정한다.

    부여한 함수를 원하는 태그에 onclick로 부여해준다.

     

    👉 해석하자면

    (1) 버튼을 클릭하면(onclick) 

    (2) hey()를 불러서

    (3) alert(’안녕’)을 실행하라는 의미가 된다.

     


     


    🔻 리스트란?
    : 자바스크립트에서 "리스트"는 여러 개의 항목을 저장하고 관리하는 자료구조를 의미한다.

    일반적으로 배열(Array)이 자바스크립트에서 리스트의 역할을 수행하며,

    배열은 순서가 있는 항목들의 집합으로, 각 항목은 인덱스를 통해 접근할 수 있다.

     

    let a_list = []  // 리스트를 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let a = ['사과','수박','딸기','감'] // 로 선언 가능
    
    console.log(a[1]) // 수박
    console.log(a[0]) // 사과
    
    //리스트 길이 구하기
    console.log(a.length) //4

     

     

    값을 불러올때는 선언된 변수의 명에 인덱스값을 입력한다
    ex) 변수명[인덱스값]

     

     

     



    🔻 딕셔너리란?

    : 자바스크립트에서 "딕셔너리"는 키-값 쌍을 저장하고 관리하는 자료구조를 의미한다.

    딕셔너리는 특정 키(key)에 대응하는 값(value)을 저장하며, 각 키는 고유해야 한다.

     

    let a_dict = {}  // 딕셔너리 선언. 변수 이름은 역시 아무렇게나 가능!
    
    // 또는,
    
    let a = {'name':'영수','age':27} // 로 선언 가능
    
    console.log(a)
    console.log(a['name']) // 영수
    console.log(b_dict['age']) // 27

     

     

     

     

    값을 불러올때는 선언된 변수의 명에 '키값'을 입력한다
    ex) 변수명['키 값']
    반드시 ' '(작은 따옴표)를 사용한다.

     

     


    📌 리스트와 딕셔너리의 조합

    : 순서를 표시할 수 있고 정보를 묶을수 있기 때문에 자주 사용되는 조합이다.

     

     

    <기존정보>
    let customer_1_name = '김대한';
    let customer_1_phone = '010-1234-1234';
    let customer_2_name = '박민국';
    let customer_2_phone = '010-4321-4321';
    ....

    ⏬ 딕셔너리로 변환시 ⏬

    let customer_1 = {'name': '김스파', 'phone': '010-1234-1234'};
    let customer_2 = {'name': '박르탄', 'phone': '010-4321-4321'};

    ⏬⏬ 리스트로 변환시 ⏬⏬

    let customer = [
               {'name': '김스파', 'phone': '010-1234-1234'},
               {'name': '박르탄', 'phone': '010-4321-4321'}
    ]

     

    위의 코드를 통해 리스트와 딕셔너리의 장점을 모두 활용할 수 있는것을 확인했다.

    추후에 데이터의 추가등록이 필요할 경우 .push를 통해 간단하게 조작이 가능하다.

     

     

     

     

     

    실습(2) - 리스트와 딕셔너리의 혼합형

     

    let a = [
    	{'name':'영수','age':27},
    	{'name':'철수','age':15},
    	{'name':'영희','age':20}
    ]
    console.log(a[0]['name']) //영수
    console.log(a[1]['age']) //15

     

     

     

    리스트와 딕셔너리의 성질을 그대로 이어서
    값을 불러올때 변수명[인덱스]['키 값']을 사용한다.

     

     

     

     

     


     

     

    🔷 2.  JQuery

    : jQuery는 JavaScript 기반의 빠르고 강력한 라이브러리로, HTML 문서의 요소 선택, 조작, 이벤트 처리 등을 간편하게 수행할 수 있도록 도와주는 도구이다. jQuery는 웹 개발자들에게 다양한 기능과 유용한 도구를 제공하여 웹 애플리케이션 개발을 더욱 쉽고 효율적으로 만들어 준다.

     

     

     

    🔍 javascript도 웹을 움직이게 할 수 있는데 굳이 jQuery를 사용하는 이유가 무엇일까❓
    👉 javascript를 사용해도 되지만 jQuery을 사용하면 코드를 더 편리하게 쓸 수 있다는 장점이 있다.

     

    // Javascript 코드
    document.getElementById("element").style.display = "none";
    // jQuery 코드
    $('#element').hide();

     

     

     

     

    주의할 점

    : jQuery로 사용할 경우 보다 직관적으로 쓸 수 있지만 jQuery는 미리 작성된 Javascript 코드를 가져오는 것이라서 반드시 임포트를 하고 사용해야된다.

    // jQuery CDN 임포트
    //사이트: https://www.w3schools.com/jquery/jquery_get_started.asp
    
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
    </head>

     

     


     

    실습(3) - jQuery 사용해보기

     

     

     

    ① id로 지칭해준다. (<div id="q1"></div>)

     

    <div class="list-part">

                <h2>2. 리스트</h2>

                <div id="q1"></div>

            </div>

     

     

     

    $(’#아이디값’) 으로 어떤 html 태그를 바꿀 것인지 지정한다.

    <script>
        function checkResult() {
        let a = '사과'
        $('#q1').text(a)
        }
    </script>

     

    $(’#아이디값’) 

    👉 $('#q1')  = q1.text(a) = a값 으로 바꿔줘

     

    즉, 사이트에서 checkResult() 를 실행했을 때 

    q1을 text(a) 로 변경하게 된다.

     


     

     

    👆 리스트형 예시

    ✔ 이렇게도 리스트로도 사용 가능하다.

    해석:<divid="q1"></div> 을 문자열 리스트의 두 번째 값으로 바꿔라.

     

     

     

     

     

    <script>

       function checkResult() {

            let a = ['사과','','','']

            $('#q1').text(a[1])

           

            $('#q1').css('color','red')

        }

     

    </script>

     

     

     

    ✔ 이렇게 색상 지정도 가능하다!

     

     

     

     

     


     

     

     

     

    딕셔너리형 예시

     

     

    let b = {
      "name" : "영수",
      "age" : 30
    }
    $('#q2').text(b['name'])

    ✔ 3. 딕셔너리의 값을 불러내서 q2라는 아이디 값이 있는 곳에 넣는다.

     

    4. 리스트 딕셔너리를 통해 q3이라는 아이디 값이 있는 곳에 넣는다.

     

     

     


     

     

    📘 Javascript & JQuery 연습하기

     

    1. 반복문 (forEach)
    2. 조건문 (if-else)

     

     

     

     

     

    🔸 1. 반복문 (forEach)

    : forEach()는 자바스크립트 배열(Array)의 메서드 중 하나로, 배열의 각 요소에 대해 주어진 함수를 순회하면서 실행하는 역할을 한다.

    forEach() 메서드는 반복문을 대체하여 간편하게 배열 요소에 접근하고 작업을 수행할 수 있도록 도와준다.

     

    형태
    : <요소>.forEach((변수) => {})

    ex)
    let fruits = ['사과', '배', '감', '귤']

    fruits.forEach((a) => {
             console.log(a)
      })

     

     



    <script>

        let fruits = ['사과', '', '', '']

        fruits.forEach((a) => {

            console.log(a)

        })

          // fruits 의 요소를 하나씩 확인하는데 이름을 a라고 함

          // a자리에는 다른 문자 b,c,zzz,fruit등등 어떤 것을 사용해도 상관없다.

    </script>

     

     

     

     

     

     

     

    📍TIP : 반복문과 자주 사용되는 append

    자바스크립트의 append()는 요소에 새로운 요소를 추가하는 기능을 한다.append() 메서드는 주어진 요소를 선택한 요소의 마지막 자식(child)으로 추가한다.

     

    parentElement.append(childElement);
    * parentElement: 새로운 요소를 추가할 부모 요소
    * childElement: 추가할 요소

     

    👉 반복문(forEach) 에 appand 쓰면 어떤 데이터를 하나씩 받아와서 붙여준다고 보면 된다.

     

     

     


     

    실습(4) appand  사용방법

     

     

        function checkResult() {
            let fruits = ['사과', '배', '감', '귤', '수박']
            $('#q1').empty()
            fruits.forEach((a) => {
                let temp_html = `<p>${a}<p>`
                $('#q1').append(temp_html)
            })

     

    ① 반복문을 실행한다.

    ② 변수 let temp_html = `` 을 선언한다

       🔍 백틱(``)안에 원하는 html의 태그를 넣어준다!!

       🔍 감싼 백틱(``)안에 변수를 넣을 경우 반드시 ${ }을 사용한다

    ③ 원하는 id 값에 .append를 해준다.

    ④ 기존값이 있는 경우 반복문(forEach)를 진행하기 전에 $('#q1').empty()를 해준다.

     

    즉, append는 외부 데이터를 가져와서 붙이는 작업이 가능하다.

     

     


     

    🔷 3.  서버-클라이언트 통신

     

    1) 서버→클라이언트: "JSON"을 이해하기

    : 서버에서 클라이언트로 데이터를 내려줄 때 딕셔너리 형태로 주는것을 말한다.

    : RealtimeCityAir라는 키 값에 딕셔너리 형 value가 들어가있고, 그 안에 row라는 키 값에는 리스트형 value가 들어있다.

     

     

     

     

    2) 클라이언트→서버: GET 요청 이해하기

    : API (Application Programming Interface) 의 약자로, 소프트웨어 애플리케이션끼리 서로 통신하기 위해 정의된 규약이나 인터페이스를 말한다. 서버와 클라이언트 간의 상호작용을 단순화하고 표준화하기 위해 사용된다.

     



     


     

    🔷 4.  Fetch

    : fetch() 함수는 클라이언트 측에서 서버에 HTTP 요청을 보내고 응답을 받는 기능을 제공한다.

    : jQuery가 임포트 된 상태인지 확인해보고 진행하기.

     

     

    <Error>
    Uncaught TypeError: $ is not a function
    → jQuery 라는 게 없다는 뜻이다.

     

     

     

        // fetch의 기본형태

        <script>

            fetch("여기에 URL을 입력")                 // 이 URL로 웹 통신을 요청한다

                .then(res => res.json())                    // 통신 요청을 받은 데이터는 res라는 이름으로 JSON화 한다

                .then(data => {

                     console.log(data)                        // 개발자 도구에 찍어보기

            })                                                          // JSON 형태로 바뀐 데이터를 data라는 이름으로 붙여 사용한다

        </script>

    - Fetch 코드 설명
        - `fetch("여기에 URL을 입력")` ← 이 URL로 웹 통신 요청을 보낸다
            - ← 이 괄호 안에 **URL밖에 들어있지 않다면** `기본상태인 GET!`
        - `.then()` ← 통신 요청을 받은 다음 이렇게 하겠다.
        - `res ⇒ res.json()`
            - ← 통신 요청을 받은 데이터는 res 라는 이름을 붙인다 (변경 가능)
            - ← res는 JSON 형태로 바꿔서 조작할 수 있게 하겠다!
        - `.then(data ⇒ {})` ←JSON 형태로 바뀐 데이터를 data 라는 이름으로 붙인다

     

     

     


     

     

    ✅ 실습(5) 미세먼지 API로 원하는 값 출력하기

     

     

        <script>
            fetch("http://spartacodingclub.shop/sparta_api/seoulair").then(res => res.json()).then(data => {
                let rows = data['RealtimeCityAir']['row']
                rows.forEach((a) => {
                    console.log(a['MSRSTE_NM'],a['IDEX_MVL'])
                })

                 
            })
        </script>
     
     

     

    🔽 fetch 부분 확인

    - URL: 서울시 미세먼지 API

    - let rows = data['RealtimeCityAir']['row'  API의 row를 rows로 지정

    - rows 요소를 하나씩 확인하는 이름을 a라고 정함

      

    구 이름과 미세먼지 수치를 찍어달라

    ㄴ> Fetch는 서버에서 데이터를 받아올게 있는 URL이라면 Fetch의 URL자리에 해당 주소를 넣으면 데이터를 받아온다.

    기존 데이터의 양식을 보고 필요한 값을 걸러낸다.

     

     

     



    ✅ 실습(6) fetch 예시

     


    👉 [if문 사용] 현재 이용가능한 자전거가 5대 미만이면 style .red를 실행( 빨간색으로 변경)

     

     

     

     

    ✅ 실습(6) fetch 예시 - 기존 HTML에서 fetch로 받아온 온도값 1개만 수정하는 방법

      $('#temp').text(number)

     

     <div>현재 서울의 날씨 : <span id="temp">20</span></div>

     

     

     

     

    728x90
Designed by Tistory.