HTML์ ๋ผ๋, CSS๋ ๊พธ๋ฏธ๊ธฐ!
HTML์ headํ๊ทธ(ํ์ด์ง์ ๋ณด ๋ฐ ํ์ด์ง๋ด์ฉ)์ bodyํ๊ทธ๋ก ๊ตฌ์ฑ๋๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ | HTML ๊ธฐ์ด</title>
</head>
<body>
<!-- ๊ตฌ์ญ์ ๋๋๋ ํ๊ทธ๋ค -->
<div>๋๋ ๊ตฌ์ญ์ ๋๋์ฃ </div>
<p>๋๋ ๋ฌธ๋จ์ด์์</p>
<ul>
<li> bullet point!1 </li>
<li> bullet point!2 </li>
</ul>
<!-- ๊ตฌ์ญ ๋ด ์ฝํ
์ธ ํ๊ทธ๋ค -->
<h1>h1์ ์ ๋ชฉ์ ๋ํ๋ด๋ ํ๊ทธ์
๋๋ค. ํ์ด์ง๋ง๋ค ํ๋์ฉ ๊ผญ ์จ์ฃผ๋ ๊ฒ ์ข์์. ๊ทธ๋์ผ ๊ตฌ๊ธ ๊ฒ์์ด ์ ๋๊ฑฐ๋ ์.</h1>
<h2>h2๋ ์์ ๋ชฉ์
๋๋ค.</h2>
<h3>h3~h6๋ ๊ฐ์์ ์ญํ ์ด ์์ฃ . ๋น์ค์ ์์ง๋ง..</h3>
<hr>
span ํ๊ทธ์
๋๋ค: ํน์ <span style="color:red">๊ธ์</span>๋ฅผ ๊พธ๋ฐ ๋ ์จ์
<hr>
a ํ๊ทธ์
๋๋ค: <a href="http://naver.com/"> ํ์ดํผ๋งํฌ </a>
<hr>
img ํ๊ทธ์
๋๋ค: <img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" />
<hr>
input ํ๊ทธ์
๋๋ค: <input type="text" />
<hr>
button ํ๊ทธ์
๋๋ค: <button> ๋ฒํผ์
๋๋ค</button>
<hr>
textarea ํ๊ทธ์
๋๋ค: <textarea>๋๋ ๋ฌด์์ผ๊น์?</textarea>
</body>
</html>
๋นจ๊ฐ์ div์์์ ์ด๋ก์ div๋ก ๋ฐ๋ก ๋ฌถ๊ฒ ๋๋ฉด ์ด๋ก์ div๋ ๊ทธ์ ์์ฑ์ ๋ฐ๋ผ๊ฐ๊ฒ๋๋ค.
css๋ head ํ๊ทธ์์์ style ํ๊ทธ๋ฅผ ์ด์ฉํด ์์ฑํ๋ค.
class๋ฅผ ๊ฐ๋ฆฌํฌ๋๋ .์ ๋ถ์ฌ ์์ฑ !!
์นํฐํธ link ํ๊ทธ๋ฅผ ๋ณต์ฌํด headํ๊ทธ ์์ ๋ฃ์ด์ฃผ๊ณ , css์์๋ฅผ styleํ๊ทธ์ ๋ฌ์์ค๋ค.
์ฃผ์์ ์ฝ๋๋ฅผ ์ ์ ์ด์ฉํ์ง์์๋๋, ์ฝ๋์ ๋ถ๊ฐ ์ค๋ช ์ ์จ๋๊ณ ์ถ์๋ ์ด์ฉํ๋ค. (์ฃผ์์ ์ปดํจํ๊ฐ ์ฝ์ง ์์)
๋ถํธ์คํธ๋ฉ์ด๋ ๋จ์ด ๋ง๋ค์ด ๋์ css๊พธ๋ฌ๋ฏธ๋ฅผ ๋งํ๋ฉฐ, ์ด๋ฅผ ๊ฐ์ ธ๋ค ์ธ ์ ์๋ค.
1) ๋ณ์ 2) ํจ์ 3) ์๋ฃํ(๋ฆฌ์คํธ & ๋์ ๋๋ฆฌ) 4) ์กฐ๊ฑด๋ฌธ 5) ๋ฐ๋ณต๋ฌธ
jQuery๋ HTML์์๋ฅผ ์กฐ์ํ๋ javascript๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ด๋ฏธ ์ง์ฌ์ง ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ '์ํฌํธ' ๋ฅผ ํด์ผํ๋ค.
javascript๋ณด๋ค ๋งค์ฐ ์ง๊ด์ ์.
EX)
$('#url').val(); // id๊ฐ url์ธ input ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ.
$('#post-box').hide(); // id๊ฐ post-box์ธ ๊ณณ์ ์จ๊ธฐ๊ธฐ
$('#post-box').show(); //id๊ฐ post-box์ธ ๊ณณ์ ๋ณด์ด๊ธฐ
API( ๋ํ์ ์ผ๋ก GET์์ฒญ, POST์์ฒญ์ด ์์)๋ ์ํ์ ์ฐฝ๊ตฌ์ ๊ฐ์!
1) GET
https://movie.naver.com/movie/bi/mi/basic.nhn?code=161967
์ ์ฃผ์์์ ? ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ถ๋ถ์ด ์๋ฒ์ฃผ์, ๋ท๋ถ๋ถ์ด ์ํ๋ฒํธ(ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฝ์ํ ๊ฐ)์.
ajax๋ก ๋ฏธ์ธ๋จผ์ง JSONํํ(๋ฆฌ์คํธ์ ๋์ ๋๋ฆฌ๊ฐ ํฉ์ณ์ง ๋ฐ์ดํฐ) openAPI๋ฅผ ์ด์ฉํด ๋ชจ๋ ๊ตฌ์ ๋ฏธ์ธ๋จผ์ง ๊ฐ์ ์ฝ์์ฐฝ์ ์ฐ์ด๋ณด๊ธฐ
$.ajax({
type: "GET",
url: "http://spartacodingclub.shop/sparta_api/seoulair",
data: {},
success: function (response) {
let mise_list = response["RealtimeCityAir"]["row"];
for (let i = 0; i < mise_list.length; i++) {
let mise = mise_list[i];
let gu_name = mise["MSRSTE_NM"];
let gu_mise = mise["IDEX_MVL"];
console.log(gu_name, gu_mise);
}
}
});
requests ์ํฌํธ ํ์! ๋ค์ฌ์ฐ๊ธฐ ์ค์!
์์์ ๋ณธ ๋ฏธ์ธ๋จผ์ง openAPI๋ฅผ ์ด์ฉํด ๋ชจ๋ ๊ตฌ์ ๋ฏธ์ธ๋จผ์ง ๊ฐ์ ์ฐ์ด๋ณด๊ธฐ
import requests
r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
gus = rjson['RealtimeCityAir']['row']
for gu in gus:
print(gu['MSRSTE_NM'], gu['IDEX_MVL'])
์น์คํฌ๋ํ์ ํ๊ธฐ์ํด requests์ bs4๋ฅผ ์ํฌํธํ์ฌ ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ํ๋ก ๋ง๋ค๊ณ , ๊ทธ ํ์ ์ฝ๋ฉ์ ํด์ ํ์ํ ๋ถ๋ถ์ ์ฐพ์๋ธ๋ค. (์ ํ์ ์ฌ์ฉ copy selector)
import requests
from bs4 import BeautifulSoup
# URL์ ์ฝ์ด์ HTML๋ฅผ ๋ฐ์์ค๊ณ ,
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
# HTML์ BeautifulSoup์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ๊ฒ์ํ๊ธฐ ์ฉ์ดํ ์ํ๋ก ๋ง๋ ๋ค
soup = BeautifulSoup(data.text, 'html.parser')
# select๋ฅผ ์ด์ฉํด์, tr๋ค์ ๋ถ๋ฌ์ค๊ณ ,
movies = soup.select('#old_content > table > tbody > tr')
# for ๋ฌธ์ ์ด์ฉํด ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ณ ,
for movie in movies:
# movie ์์ a ๊ฐ ์์ผ๋ฉด,
a_tag = movie.select_one('td.title > div > a')
if a_tag is not None:
# a์ text๋ฅผ ์ฐ์ด๋ณธ๋ค.
print (a_tag.text)
1) DB๋ฅผ ์ฐ๋ ์ด์ ๋?
๋์ค์ ์ ๋ฝ์ ์ฐ๊ธฐ ์ํด์!
2) DB์ ์ข
๋ฅ (SQL / NoSQL)
3) pymongo ์ธํ
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.55vah.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
4) ์ฌ๋ฌ๊ฐ์ง ์์
๊ธฐ๋ค๋ฆฌ๊ณ ๊ธฐ๋ค๋ฆฌ๋ ๋ด์ผ๋ฐฐ์์บ ํ 1์ฃผ์ฐจ๊ฐ ๋๋์ด ์์์ด๋ค.
๋ด์ผ๋ฐฐ์์บ ํ๋ฅผ ์งํํ๊ธฐ ํ๋ฌ์ ๋ถํฐ ์คํ๋ฅดํ์ฝ๋ฉํด๋ฝ ๋ด์ผ๋ฐฐ์๋จ๊ณผ ์น๊ฐ๋ฐ์ข ํฉ๋ฐ์ ๋ชจ๋ ๋ณต์ตํ๊ณ ๋ ๋ณต์ตํ์ฌ ์นผ์ ๊ฐ์๋ค!
๋คํํ ํ์๋ค์ด ๋๋ฌด๋ ์ฐฉํ๊ณ ์ฌ๋ฐ๋คใ ใ ๊ฒ๋์ ๋ชจ์ธ ์ฐ๋ฆฌํ์๋ค ๋ ๊ท์ฌ์ ใ
์ฒ์ ๋ง์ฃผํ ํ์(4๋ช )๋ค๊ณผ ํจ๊ป ์ผ์ฐ์ผ์ฐํด์ ๊ทธ๋๋ ํผ์ ํ๋ ๊ฒ ๋ณด๋ค๋ ๋ ํ๋ค์๋ ๊ฒ๊ฐ๋ค.
์ค๋ ๊ณต๋ถํ๋ ๋ถ๋ถ์ ์ด๋ฏธ ๋ง์ด ๋ณต์ตํ๊ณ ์จ ๋ถ๋ถ์ด์ด์ ํ๋ก์ ํธ๋ฅผ ํ๊ธฐ์ ์์ ๋ ๋ค์ ํ๋ฒ ๋ ๋ณต์ตํ ์ ์๋ ์๊ฐ์ด์๋ค.
๋ฐ๋ณตํด์ ๊ณต๋ถํ๋ ๋ถ๋ถ์ด์ด์ ์ค๋์ ํฐ ์ด๋ ค์์์ด ๊ณต๋ถํ ์ ์์๋ค.
์์ง ํ์๋ค๊ณผ ์ด์ํ๊ธดํ์ง๋ง ๊ณง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ ์นํด์ง๋ฉฐ ๊ณต๋ถํ ์ ์์๊ฒ๊ฐ๋ค๋ ์๊ฐ์ด๋ ๋ค ~~!
๋ด์ผ์ ๋ ์ด๋ค ์ด์ผ๊ธฐ๋ฅผ ๋๋์ง ๊ธฐ๋๋๋น
์ค๋น๋ ์ํด์ค์๊ณ ์ด์ ๋ ๋์น์๋๊ตฌ์!! ์ ๋ ๊ฐ์ด ์ผ์ฐ์ผ์ฐ~