[내일배움캠프-사전캠프 07일차] Web 3주차

2025. 6. 17. 17:44·백엔드 부트캠프[사전캠프]/TIL

jQuery + fetch 로 웹페이지 제어

 

'fetch'는 인터넷을 통해 데이터를 요청하고 받아오는 과정

 

1. togle

html 태크에 display:none 속성을 부여하여 보이거나 안보이도록 해주는 것

<script>
    function openclose() {
        $('#postingbox').toggle();
    }
</script>

 

 

2. Input 값 가져오기

  • $('#id').val() 을 통해 값을 가져온다.
  • html 코드 원하는 부분에 ${image} 와 같이 값을 동적으로 설정
  • $('#id').append() 을 통해 원하는 영역에 html 코드 추가
function makeCard() {
    let image = $('#image').val();
    let title = $('#title').val();
    let content = $('#content').val();
    let date = $('#date').val();

    let temp_html = `
    <div class="col">
      <div class="card h-100">
        <img
          src="${image}"
          class="card-img-top"
          alt="..."
        />
        <div class="card-body">
          <h5 class="card-title">${title}</h5>
          <p class="card-text">${content}</p>
        </div>
        <div class="card-footer">
          <small class="text-body-secondary">${date}</small>
        </div>
      </div>
    </div>`;
    $('#card').append(temp_html);
  }

 

 

 

클라이언트 - 서버

API는 은행 창구와 같은 것!

 

같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 가져와야 하는 것 / 처리해주는 것이 다른 것처럼, 클라이언트가 요청 할 때에도, "타입"이라는 것이 존재한다.

  • GET        
    • 통상적으로! 데이터 조회(Read)를 요청할 때
    • 예) 영화 목록 조회
  • POST 
    • 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    • 예) 회원 가입, 회원 탈퇴, 비밀번호 수정

 

GET 방식으로 데이터를 전달하는 방법

  • ?  : 여기서부터 전달할 데이터가 작성된다는 의미
  • & : 전달할 데이터가 더 있다는 뜻
    • 예시) google.com/search?q=아이폰&sourceid=chrome&ie=UTF-8

위 주소는 google.com의 search 창구에 다음 정보를 전달

  • q=아이폰(검색어)
  • sourceid=chrome (브라우저 정보)
  • ie=UTF-8 (인코딩 정보)

 

 

 

Fetch 시작

  • JQuery import 가 필요함
fetch("여기에 URL을 입력") // 이 URL로 웹 통신을 요청한다. 이 괄호 안에 URL밖에 들어있지 않다면 기본상태인 GET!
	.then(res => res.json()) // 통신 요청을 받은 데이터는 res라는 이름으로 JSON화 한다
	.then(data => { 
		console.log(data) // 개발자 도구에 찍어보기
	}) // JSON 형태로 바뀐 데이터를 data라는 이름으로 붙여 사용한다

 

 

반복문으로 구 데이터를 출력

function hey() {
    let url = 'http://spartacodingclub.shop/sparta_api/seoulair';

    fetch(url).then(res => res.json()).then(data => {
        let rows = data['RealtimeCityAir']['row'];
        rows.forEach(a => {
            let gu_name = a['MSRSTE_NM'];
            let gu_mise = a['IDEX_NM'];
            console.log(gu_name, gu_mise);
        })

    })
}

 

 

조건문으로 미세먼지 수치가 40을 넘긴 값만 빨간색으로 표시

<style>
    div.question-box {
        margin: 10px 0 20px 0;
    }
    .bad {
        color: red;
    }
</style>

<script>
        function q1() {
    fetch("http://spartacodingclub.shop/sparta_api/seoulair").then((response) => response.json()).then((data) => {
        $('#names-q1').empty()
                    let rows = data['RealtimeCityAir']['row']
        rows.forEach((a) => {
            let gu_name = a['MSRSTE_NM']
                            let gu_mise = a['IDEX_MVL']
                            let temp_html = ``
                            if (gu_mise > 40) {
                                temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`
                            } else {
                                temp_html = `<li>${gu_name} : ${gu_mise}</li>`
                            }
            $('#names-q1').append(temp_html)
        });
      })
  }
</script>

 

 

 

Reload 될 때 마다 데이터 업데이트

버튼과 같은 특정 이벤트가 아닌 페이지가 Reload 될 때마다 이벤트를 발생시키고 싶다면?

$(document).ready(function() { ... })
$(document).ready(function () {
    let url = "http://spartacodingclub.shop/sparta_api/weather/seoul";
    fetch(url).then(res => res.json()).then(data => {
        let temp = data['temp'];
        $('#msg').text(temp);
    })
})

 

 

 

 

 

 

 

'백엔드 부트캠프[사전캠프]/TIL' 카테고리의 다른 글
  • [내일배움캠프-사전캠프 09일차] Web 5주차
  • [내일배움캠프-사전캠프 08일차] Web 4주차
  • [내일배움캠프-사전캠프 06일차] Web 2주차
  • [내일배움캠프-사전캠프 05일차] Web 1주 차
s_y_130
s_y_130
  • s_y_130
    About SY
    s_y_130
  • 전체
    오늘
    어제
    • 분류 전체보기 (437) N
      • JAVA (54)
        • 더 자바 8 (0)
        • JAVA (41)
        • JAVA (JVM) (13)
      • Computer Science (86)
        • CS Basic (7)
        • OOP (11)
        • Design Pattern (16)
        • Network (8)
        • HTTP (6)
        • WEB (22)
        • OS (16)
      • DataBase (29)
        • DB theory (15)
        • MySQL (14)
        • Redis (0)
      • Collection Framework (1)
        • 구현 (1)
      • Data Structure (14)
        • Linear (9)
        • Non-Linear (5)
      • Algorithm (19)
        • Basic (12)
        • 응용 (2)
        • 완전 탐색(Brute Force) (1)
        • 다익스트라 (1)
        • Algorithm Problem (3)
      • Spring (104)
        • 스프링 핵심 원리 - 기본편 (9)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (7)
        • 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 (11)
        • 스프링 DB 1편 - 데이터 접근 핵심 원리 (6)
        • 스프링 DB 2편 - 데이터 접근 활용 기술 (10)
        • 스프링 핵심 원리 - 고급편 (13)
        • 스프링 부트 - 핵심 원리와 활용 (9)
        • Spring Security 6.x (2)
        • Spring Batch (2)
        • Spring Cloud로 개발하는 MSA (1)
        • 재고시스템으로 알아보는 동시성이슈 해결방법 (4)
        • 개념 (27)
        • 테스트 (0)
        • Annotation (1)
        • Error Log (2)
      • TEST (0)
        • 부하 테스트 (0)
        • Practical Testing: 실용적인 테스트.. (0)
      • JPA (40)
        • 자바 ORM 표준 JPA 프로그래밍 (12)
        • 1편- 실전! 스프링 부트와 JPA 활용 (7)
        • 2편- 실전! 스프링 부트와 JPA 활용 (4)
        • 실전! 스프링 데이터 JPA (6)
        • 실전! Querydsl (6)
        • 개념 (5)
      • 백엔드 부트캠프[사전캠프] (35)
        • TIL (12)
        • 문제풀이 (23)
      • 백엔드 부트캠프 (5)
        • Calculator (3)
        • Kiosk (2)
      • Open Source (0)
      • Book Study (1)
        • Morden Java in Action (1)
        • Real MySQL 8.0 Vol.1 (0)
        • TDD : By Example (0)
      • AWS (0)
        • EC2 (0)
      • git (2)
      • AI (22)
        • Machine Learning (17)
        • Deep Learning (0)
        • TensorFlow (1)
        • PyTorch (1)
        • YOLO (1)
        • Data Analysis (0)
        • Ai code Error (1)
        • Numpy (1)
      • MY (0)
      • WEB (15)
        • Django (3)
        • WEB 개념 (1)
        • React (1)
        • Maven (10)
      • Python (6)
      • 기초수학 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_y_130
[내일배움캠프-사전캠프 07일차] Web 3주차
상단으로

티스토리툴바