πŸ‘¦ 내일배움캠프/TIL(Today I Learned)

TIL_220419_1

  • -

ν•œ 번 μ •μ£Όν–‰ ν–ˆλ˜ μ›Ήκ°œλ°œ κ°•μ˜λ₯Ό λ‹€μ‹œ λ³΅μŠ΅ν•˜λŠ” μ£Όκ°„.

 

μ–΄μ œ μ˜€λŠ˜μ„ κΈ°μ€€μœΌλ‘œ 완강을 λͺ©ν‘œλ‘œ ν•œλ‹€.

 

λ°°μ› λ˜ λ‚΄μš©μ΄κΈ΄ ν•˜μ§€λ§Œ, λ‹€μ‹œκΈˆ λ“€μœΌλ©΄μ„œ λ‚΄ κ²ƒμœΌλ‘œ λ§Œλ“€μ–΄ κ°€λŠ” 쀑.

 

νœ˜λ‘˜λ¦¬μ§€ 말고 λ‚˜μ˜ 페이슀λ₯Ό μœ μ§€ν•˜λ©° λ‚˜μ•„κ°€λ³΄μž.

 


 

무엇을 λŠκΌˆλŠ”κ°€.

 

λ³΅μŠ΅μ„ ν•˜λ©΄ ν•  수둝 λ‚˜μ˜ ν˜„μž¬ μ§€ν‘œλ₯Ό μ•Œ 수 μžˆμ—ˆλ‹€.

λ°°μ› λ˜ λ‚΄μš©μž„μ—λ„ λΆˆκ΅¬ν•˜κ³  μ—°μŠ΅λ¬Έμ œ μ‘°μ°¨ μ‹œκ°„μ„ λ“€μ—¬ ν•΄κ²°ν•  수 μžˆμ—ˆλ‹€.

μ‹œκ°„μ΄ 무슨 λ¬Έμ œμΈκ°€ ν•˜κ² μ§€λ§Œ, 그만큼 λ‚˜λŠ” 아직 이 μ½”λ“œμ— μˆ™λ‹¬λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€.

κ·Έλž˜λ„ ν˜„μ €ν•˜κ²Œ μ΄ν•΄ν•˜κ³  μ“°κ³  λ„˜μ–΄κ°€λŠ” 과정이 짧아지고 2μ£Όμ°¨ 과정이 λλ‚˜λ©΄μ„œ 빠짐없이 ν˜Όμžμ„œ ν•΄κ²°ν•  수 μžˆμ—ˆλ‹€.

 

μ²˜μŒμ—λŠ” 되렀 λ©˜λ•…μ— ν•΄λ”©ν•˜λŠ” 것이 무λͺ¨ν•˜λ‹€κ³  μƒκ°ν–ˆμ§€λ§Œ, 되렀 쒋은 κ²½ν—˜μ΄ λ˜μ—ˆλ‹€λŠ” 것을 λͺΈμ†Œ 증λͺ…ν–ˆλ‹€.

λͺ¨λ₯΄λ”라도 일단 μ½”λ“œ ν•˜λ‚˜ ν•˜λ‚˜λ₯Ό μž…ν˜€κ°€λ©° 였λ₯˜λ₯Ό λ°œκ²¬ν•˜κ³  κ·Έ 였λ₯˜λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ΅¬κΈ€λ§μœΌλ‘œ μ‹œκ°„μ„ νˆ¬μžν–ˆλ˜ κΈ°μ–΅.

μ½”λ“œμ˜ ν˜•νƒœλ₯Ό 보며 μ–΄λ–€ μ‹μ˜ 흐름인지 눈으둜 읡히고, μ™„μ „νžˆ 이해가 μ•ˆλ˜λ”λΌλ„ μ–΄λ–€ 뢀뢄이 λ¬Έμ œμ˜€μŒμ„ λ°œκ²¬ν–ˆλ˜ κΈ°μ–΅.

그리고 μ§€κΈˆ 이 μˆœκ°„ λ³΅μŠ΅ν•˜λ©° λ‹€μ‹œ μ΄ν•΄ν•˜λŠ” 이 κ³Όμ • μ†μ—μ„œ λ‚˜λŠ” μ œλŒ€λ‘œ μ΄ν•΄ν•˜λŠ” κ²½ν—˜μ„ ν•˜κ³  μžˆλ‹€.

 

λ°°μš°λŠ” 방법이 λ‹¬λžμ§€λ§Œ, λ‚΄ κ²ƒμœΌλ‘œ λ§Œλ“œλŠ” 데 큰 도움을 μ€€ κ²½ν—˜λ“€

ν•΄λ³΄κ³ μž ν–ˆλ˜ 마음으둜 λΉ„λ‘―λœ μžμ‹ κ°

μžŠμ§€ 말고 μ΄μ–΄κ°€μž.

 

 


 

[였늘 ν•˜λ£¨ 필기식 배운 λ‚΄μš© κΈ°λ‘ν•˜κΈ°]

 

jQuery, Ajax

jQuery λ₯Ό μ΄μš©ν•΄ Javascript 둜 html 을 μ‰½κ²Œ μ œμ–΄

Ajax λ₯Ό μ΄μš©ν•΄ λ‹€μ‹œ μ„œλ²„μ— 데이터λ₯Ό μš”μ²­

 

κ°„λ‹¨ν•œ 홀짝 λ²„νŠΌ

<!--    count κ°€ 0 μΌλ•Œ    -->
let count = 0
// 클릭 μ‹œ count κ°€ 1μ”© μ¦κ°€ν•œλ‹€
function hey(){
    count += 1
    // 쑰건 : count 값에 2둜 λ‚˜λˆ„μ–΄ 0일 λ•Œ 짝수이면 짝수
    if (count % 2 == 0) {
        alert('μ§μˆ˜μž…λ‹ˆλ‹€!')
    // 쑰건 : 그렇지 μ•ŠμœΌλ©΄ ν™€μˆ˜
    } else {
        alert('ν™€μˆ˜μž…λ‹ˆλ‹€!')
    }
}

 

jQuery λž€?

HTML의 μš”μ†Œλ₯Ό μ‘°μž‘ν•˜λŠ”, νŽΈλ¦¬ν•œ Javascript λ₯Ό 미리 μž‘μ„±ν•΄λ‘” 것. 라이브러리!

- CSS 의 라이브러리. λΆ€νŠΈμŠ€νŠΈλž©!!

jQuery λŠ” μ „λ¬Έ κ°œλ°œμžλ“€μ΄ 미리 μ§œλ‘” μ½”λ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 것이기 λ•Œλ¬Έμ— μ‚¬μš©ν•˜κΈ° μ „ 항상 μž„ν¬νŠΈκ°€ ν•„μˆ˜!!

 

jQuery 와 Javascript 비ꡐ

Javascript

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

jQuery

$('#element').hide();

Javascript 의 κΈΈκ³  λ³΅μž‘ν•œ λ°˜λ©΄μ— jQuery λ₯Ό 톡해 μ§κ΄€μ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 것을 λ³Ό 수 μžˆλ‹€.

 

 

jQuery CDN μž„ν¬νŠΈ

https://www.w3schools.com/jquery/jquery_get_started.asp

 

jQuery Get Started

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

<head> 와 </head> 사이에 script μΆ”κ°€

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

 

jQuery CSS 차이

CSS λŠ” μ„ νƒμžλ₯Ό class 둜 지정

jQuery λŠ” id 값을 톡해 νŠΉμ • λ²„νŠΌ/μΈν’‹λ°•μŠ€/div/.. 등을 지정

 

jQuery μ§œλ¦¬λͺ½λ•…

- μΈν’‹λ°•μŠ€

id 값을 뢈러였고[ .val(); ] μž…λ ₯ν•˜κΈ°[ .val('_λ‚΄μš©μž…λ ₯_'); ] μœ„ν•œ λͺ…λ Ήμ–΄ $('#_id κ°’_')

- λ°•μŠ€ 숨기기/보이기

$('#_id κ°’_').hide() / $('#_id κ°’_').show()

- μΆ”κ°€

$('#_id κ°’_').append('_κ°’_')

-- let temp_html 의 λ³€μˆ˜μ— λ°±ν‹±( ` ) 값을 μΆ”κ°€ `<button>λ‚˜λŠ” λ²„νŠΌμ΄λ‹€</button>`

-- let temp_html = `<button>λ‚˜λŠ” λ²„νŠΌμ΄λ‹€</button>`

-- λ°±ν‹± μ•ˆμ˜ 값은 아직 html의 역할을 ν•  μˆ˜κ°€ μ—†λ‹€. jQuery 둜 λΆˆλŸ¬μ™€(.append) 쀌으둜써 역할을 λΆ€μ—¬ν•œλ‹€.

-- $('#_id κ°’_').append(temp_html)

 

.includes()

λ¬Έμžμ—΄μ΄ νŠΉμ • λ¬Έμžμ—΄μ„ ν¬ν•¨ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ§€μ„œλ“œ

string.includes( searchString, length )

searchString : 검색할 λ¬Έμžμ—΄λ‘œ ν•„μˆ˜ μš”μ†Œ. λŒ€μ†Œλ¬Έμžλ₯Ό ꡬ뢄

length : 검색을 μ‹œμž‘ν•  μœ„μΉ˜. 선택 μš”μ†Œλ‘œ, 값이 μ—†μœΌλ©΄ 전체 λ¬Έμžμ—΄μ„ λŒ€μƒμœΌλ‘œ 함

 

.split()

λ¬Έμžμ—΄μ„ λΆ„ν• ν•˜λŠ” λ©”μ„œλ“œ

string.split( separator, limit )

separator : λΆ„ν• μ˜ κΈ°μ€€ 예λ₯Ό λ“€μ–΄ @ λ₯Ό κΈ°μ€€μœΌλ‘œ λΆ„ν• ν•  λ•ŒλŠ” '_@_'

limit : μ΅œλŒ€ λΆ„ν•  개수. 선택 μ‚¬ν•­μœΌλ‘œ, 값을 μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 전체λ₯Ό λ‹€ λΆ„ν• 

 

JQuery μ—°μŠ΅ λ‚΄ κ²ƒμœΌλ‘œ λ§Œλ“€κΈ° 성곡적

-- λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ μž…λ ₯ν•œ κΈ€μžλ‘œ μ–ΌλŸΏ λ„μš°κΈ°

function q1() {
    if ($('#input-q1').val() == '') {
        alert('μž…λ ₯ν•˜μ„Έμš”!')
    }
    else {
        alert($('#input-q1').val())
    }
}

 

-- λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ '@' 와 '.' 을 μƒλž΅ν•œ λ„λ©”μΈλ§Œ λ„μš°κΈ°

function q2() {
    if ($('#input-q2').val().includes('@')){
        let email = $('#input-q2').val().split('@')
        alert(email[1].split('.', 1))
    }
    else {
        alert('이메일이 μ•„λ‹™λ‹ˆλ‹€!')
    }
}

 

-- 이름을 μž…λ ₯ν•˜λ©΄ μ•„λž˜ μΆ”κ°€ν•˜κΈ°

function q3() {
    let name_text = $('#input-q3').val()
    let temp_html = `<li>${name_text}</li>`
    if ($('#input-q3').val() == ''){
        alert('이름을 μž…λ ₯ν•˜μ„Έμš”!')
    }
    else {
        $('#names-q3').append(temp_html)
    }
}

 

-- μž…λ ₯ν•œ λ‚΄μš© μ§€μš°κΈ°

function q3_remove() {
    $('#names-q3').empty()
}

 

JSON : JavaScript Object Notation

데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ 전솑할 λ•Œ 많이 μ‚¬μš©λ˜λŠ” κ²½λŸ‰μ˜ DATA κ΅ν™˜ ν˜•μ‹

-- javascriptμ—μ„œ 객체λ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©ν•˜λŠ” ν‘œν˜„μ‹μ„ 의미

-- JSON ν‘œν˜„μ‹μ€ μ‚¬λžŒκ³Ό 기계 λͺ¨λ‘ μ΄ν•΄ν•˜κΈ° μ‰¬μš°λ©° μš©λŸ‰μ΄ μž‘μ•„μ„œ, μ΅œκ·Όμ—λŠ” JSON이 XML을 λŒ€μ²΄ν•΄μ„œ 데이터 전솑 등에 많이 μ‚¬μš©

-- JSON은 데이터 포맷일 뿐이며 μ–΄λ– ν•œ 톡신 방법도, ν”„λ‘œκ·Έλž˜λ° 문법도 μ•„λ‹Œ λ‹¨μˆœνžˆ 데이터λ₯Ό ν‘œμ‹œν•˜λŠ” ν‘œν˜„ 방법

좜처: https://usefultoknow.tistory.com/15 [UsefulToKnow]

 

JSON 의 νŠΉμ§•

-- μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈ κ°„μ˜ κ΅λ₯˜μ—μ„œ μΌλ°˜μ μœΌλ‘œ λ§Žμ΄ μ‚¬μš©

-- μžλ°”μŠ€ν¬λ¦½νŠΈ κ°μ²΄ ν‘œκΈ°λ²•κ³Ό μ•„μ£Ό μœ μ‚¬

-- μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ΄μš©ν•˜μ—¬ JSON ν˜•μ‹μ˜ λ¬Έμ„œλ₯Ό μ‰½κ²Œ μžλ°”μŠ€ν¬λ¦½νŠΈ κ°μ±„λ‘œ λ³€ν™˜ν•  μˆ˜ μžˆλŠ” μ΄μ 

-- JSON λ¬Έμ„œ ν˜•μ‹μ€ μžλ°”μŠ€ν¬λ¦½νŠΈ κ°μ²΄μ˜ ν˜•μ‹μ„ κΈ°λ°˜

-- μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ¬Έλ²•κ³Ό κ΅‰μž₯히 μœ μ‚¬ν•˜μ§€λ§Œ ν…μŠ€νŠΈ ν˜•μ‹

-- λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μ΄μš©ν•΄μ„œλ„ μ‰½κ²Œ λ§Œλ“€ μˆ˜ μžˆμŒ

-- νŠΉμ • μ–Έμ–΄μ— μ’…μ†λ˜μ§€ μ•ŠμœΌλ©°, λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ JSON ν¬λ§·μ˜ λ°μ΄ν„°λ₯Ό ν•Έλ“€λ§ ν•  μˆ˜ μžˆλŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ₯Ό μ œκ³΅

좜처: https://usefultoknow.tistory.com/15 [UsefulToKnow]

 

JSON 의 문법

좜처: https://usefultoknow.tistory.com/15 [UsefulToKnow]

 

GET / POST μš”μ²­ μ΄ν•΄ν•˜κΈ°

ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”μ²­ν•˜λŠ” νƒ€μž…

- GET : ν†΅μƒμ μœΌλ‘œ 데이터 쑰회(Read)λ₯Ό μš”μ²­ν•  λ•Œ

-- 예) μ˜ν™” λͺ©λ‘ 쑰회

- POST : ν†΅μƒμ μœΌλ‘œ 데이터 생성(Create), λ³€κ²½(Update), μ‚­μ œ(Delete) μš”μ²­ν•  λ•Œ

-- 예) νšŒμ›κ°€μž…, νšŒμ›νƒˆν‡΄, λΉ„λ°€λ²ˆν˜Έ μˆ˜μ •

 

Ajax μ—°μŠ΅ν•˜κΈ°

function q1() {
    $('#names-q1').empty(); // ꡬ문이 맀번 λŒμ•„κ°ˆ λ•Œ λ‚΄μš©μ„ μ§€μ›Œμ€€λ‹€.
    $.ajax({
        type: "GET", // 뢈러였기 뭐λ₯Ό?
        // url 데이터 정보λ₯Ό!
        url: "<http://spartacodingclub.shop/sparta_api/seoulair>http://spartacodingclub.shop/sparta_api/seoulair>",
        data: {},
        success: function (response) {
            let rows = response["RealtimeCityAir"]["row"]; // 데이터 μ •λ³΄μ˜ λ³€μˆ˜λ₯Ό 지정해쀀닀.
            for (let i = 0; i < rows.length; i++) {
                let gu_name = rows[i]['MSRSTE_NM'];
                let gu_mise = rows[i]['IDEX_MVL'];

                let temp_html = '' // μΆ”κ°€ν•  데이터λ₯Ό html 둜 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜ 지정

                if (gu_mise > 70) { // 쑰건을 κ±Έμ–΄ ν•΄λ‹Ήν•˜λŠ” κ°’λ§Œ 효과λ₯Ό μ μš©μ‹œν‚¨λ‹€.
                    temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>` // bad ν΄λž˜μŠ€μ— 폰트 색깔 빨간색 적용
                } else {
                    temp_html = `<li>${gu_name} : ${gu_mise}</li>`
                }

                $('#names-q1').append(temp_html); // html 둜 μΆ”κ°€
            }
        }
    })
}

 

Ajax ν™œμš©

let url = response['url'] // κ°€μ Έμ˜¬ 지정값 이름, λ³€μˆ˜ 지정
let msg = response['msg']

$('#img-rtan').attr('src',url) // 이미지 λ°”κΎΈκΈ°
$('#text-rtan').text(msg) // ν…μŠ€νŠΈ λ°”κΎΈκΈ°

이미지 λ°”κΎΈκΈ° : $("#아이디값").attr("src", 이미지URL);

ν…μŠ€νŠΈ λ°”κΎΈκΈ° : $("#아이디값").text("λ°”κΎΈκ³  싢은 ν…μŠ€νŠΈ");

 

 

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.