3주차가 되어서야 2주차 수업을 완주했다. 말로만 듣던 API 사용법을 배워 신이 났던 한 주였다. 확실히 Javascript 는 약간 장벽 같다. 하지만 모든 웹 프로그래밍 언어의 기본이라고 하니 익숙해져야겠지. 😢 Javascript 가 아무리 어려워도 현재 나의 퇴사하고 싶은 마음보다 강적이 되지는 못할 것이다. 👻
onclick
함수 만들기let count = 1;
function hey() {
if (count % 2 == 0) {
alert('짝수입니다!');
} else {
alert('홀수입니다!');
}
count += 1;
}
count += 1
는 count = count + 1
와 같다전역 변수
라고 한다Javascript
코드들을 모아 라이브러리로 만든 것import
해야 JQuery 코드를 사용할 수 있다document.getElementById("element").style.display = "none";
$('#element').hide();
우리가 사용한 Bootstrap 템플릿에는 이미 import 되어 있다
input box 의 값을 가져오기
1. input box 의 id 를 article-url 로 지정한다
2. input box 에 '세종대왕'을 입력한다
3. Console 탭에 $('#article-url').val(); 을 입력한다
1. input box 의 id 를 article-url 로 지정한다
2. Console 탭에 $('#article-url').val('장영실'); 을 입력한다
$('#post-box').hide()
$('#post-box').show()
$('#post-box').css('width')
'500px'
$('#post-box').css('width','700px')
$('#post-box').css('display')
'block'
$('#post-box').hide()
$('#post-box').css('display')
'none'
$('#btn-posting-box').text('포스팅박스 닫기')
$('#btn-posting-box').text('포스팅박스 열기')
백틱
을 사용하여 문자열로 HTML 코드를 입력하면 HTML 코드를 추가할 수 있다let temp_html = `<button>나는 버튼이다</button>`
$('#cards-box').append(temp_html)
${변수}
형태로 HTML 코드 안에 입력한다let title = '아무거나 제목!!!'
let temp_html = `<a href="https://www.naver.com/" class="card-title">${title}</a>`
코드를 작성할 때는 alert
이나 console.log
함수로 코드가 잘 실행 되는지 확인하면서 진행하면 좋다
버튼을 누르면 form 이 나타났다가 사라지는 toggle 버튼 만들기
function openclose() {
let status = $('#post-box').css('display');
if (status == 'block') {
$('#post-box').hide();
$('#btn-posting-box').text('포스팅박스 열기');
} else {
$('#post-box').show();
$('#btn-posting-box').text('포스팅박스 닫기');
}
}
✔️ 코드를 정확하게 작성해놓고 괄호 }
를 안 닫아서 계속 헤맸다 😢
function q2() {
let txt = $('#input-q2').val();
if (txt.includes('@')) {
let domain = txt.split('@')[1].split('.')[0]
alert(domain)
} else {
alert('이메일이 아닙니다')
}
}
✔️ 나와 다르게 깔끔하고 간결한 강사님의 코드
✔️ 괄호 쓰는 법도 익숙하지 않아 어렵고 문장 끝에 기호 ;
를 붙여야 하는지 안 붙여도 되는지가 많이 헷갈린다
API
는 서버에서 클라이언트가 데이터를 요청할 수 있도록 열어둔 창구JSON
은 서버가 클라이언트에게 데이터를 주는 포맷JSON
형식은 어려워 보이지만 List 에 Dictionary 가 많이 들어 있는 것 뿐이다GET
은 보통 데이터 조회 (Read) 를 요청할 때 사용POST
는 보통 데이터 생성 (Create) / 변경 (Update) / 삭제 (Delete) 를 요청할 때 사용GET
요청이다naver.com/aaa?code=00000
서버의 주소/파일/받는 데이터
code=
뒤의 숫자를 바꾸면 코드값 오류라고 뜬다naver.com/aaa?code=00000&name=sparta
기호 &
을 사용한다name=sparta
를 추가해도 코드값 오류라고 뜨지 않는다?
는 전달할 데이터 작성을 시작할 때 사용&
는 전달할 데이터가 더 있을 때 AND
의 의미로 사용$.ajax({
type: "GET",
url: "여기에 URL을 입력",
data: {},
success: function(response){
console.log(response)
}
})
url
에 API 주소를 입력하면 API 데이터가 response
로 들어온다$.ajax({
type: "GET",
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
data: {},
success: function(response){
console.log(response['RealtimeCityAir']['row'][0])
}
})
GET
이고 data 는 현재 가져오는 것이 없는 상태이다data
는 POST 요청을 할 때 사용하는 것response
는 변수라 다른 단어로 대체 가능하지만 통상적으로 response 를 사용한다for
문을 사용하여 미세먼지 수치가 70 미만인 지역의 데이터만 가져오기$.ajax({
type: "GET",
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
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']
if (gu_mise < 70) {
console.log(gu_name, gu_mise)
}
}
}
})
function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
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 = `<li>${gu_name} : ${gu_mise}</li>`
$('#names-q1').append(temp_html)
}
}
})
}
red
로 표시하기function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99",
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 = ``
if (gu_mise > 70) {
temp_html = `<li class="bad">${gu_name} : ${gu_mise}</li>`
} else {
temp_html = `<li>${gu_name} : ${gu_mise}</li>`
}
$('#names-q1').append(temp_html)
}
}
})
}
function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function(response){
let rows = response['getStationList']['row']
for (let i = 0; i < rows.length; i++) {
let station_location = rows[i]['stationName']
let station_number = rows[i]['rackTotCnt']
let bike_number = rows[i]['parkingBikeTotCnt']
let temp_html = `<tr>
<td>${station_location}</td>
<td>${station_number}</td>
<td>${bike_number}</td>
</tr>`
$('#names-q1').append(temp_html)
}
}
})
}
red
로 표시하기function q1() {
$('#names-q1').empty()
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulbike",
data: {},
success: function(response){
let rows = response['getStationList']['row']
for (let i = 0; i < rows.length; i++) {
let station_location = rows[i]['stationName']
let station_number = rows[i]['rackTotCnt']
let bike_number = rows[i]['parkingBikeTotCnt']
let temp_html = ``
if (bike_number > 5) {
temp_html = `<tr>
<td>${station_location}</td>
<td>${station_number}</td>
<td>${bike_number}</td>
</tr>`
$('#names-q1').append(temp_html)
} else {
temp_html = `<tr>
<td class="red-td">${station_location}</td>
<td class="red-td">${station_number}</td>
<td class="red-td">${bike_number}</td>
</tr>`
$('#names-q1').append(temp_html)
}
}
}
})
}
function q1() {
$.ajax({
type: "GET",
url: "https://api.thecatapi.com/v1/images/search",
data: {},
success: function(response){
let url = response[0]['url']
$("#img-cat").attr("src", url)
}
})
}
$(“#id”).attr(“src”, url)
이제 제법 예제 코드의 길이가 길어졌다. 퇴근하고 필라테스 수업도 듣고 웹 개발 수업도 들으니 하루하루가 정말 빠르게 지나간다. 해야 할 일은 많은데 24시간은 너무 짧다. 하지만 개발자로서의 새로운 인생을 시작하기 위해서 더 열심히 해야지! 💪