자바스크립트는 import 키워드를 통해 외부에 있는 자바스크립트 파일을 가져올 수 있습니다.
자바스크립트는 2가지 방법으로 파일을 내보낼 수 있습니다.
이름을 따로 지정하지 않은 내보내기 방식입니다.
// module.js
export default function(){...}
// app.js
import defaultFunc from 'module'
이름을 지정해서 내보내는 방식입니다.
{}
을 사용해 데이터를 가져와야 합니다.// module.js
export const named = () => {...}
export const named2 = () => {...}
// app.js
import { named, named2 } from 'module'
import { named as something } from 'module' // 임의 이름 지정
import {* as All } from 'module' // 와일드카드
JSON은 JavaScript Object Notation의 약어로 자바스크립트의 데이터를 표현하는 하나의 데이터 포맷입니다. 객체와 같이 key: value 쌍을 이루고 있습니다.
JSON의 공식 인터넷 미디어 타입은 application/json
이며, 확장자는 .json
입니다.
❗ 주로 비동기 통신에 사용됩니다.
// JSON 기본 문법
// myData.json
{
"string": "seokji", // key 값을 ""를 이용해 작성해야 합니다.
"number": 123,
"boolean": true,
"null": null,
"array": [],
"object": {}
// udefined는 사용 불가합니다.
}
// app.js
import myData from "./myData.json";
console.log(myData); // 자동적으로 객체로 변환됩니다.
❗ JSON 데이터는 하나의 문자 데이터입니다.
문자 데이터인 이유 - 객체는 mutable 하기 때문에 가벼운 통신에 사용되는 JSON 데이터 포맷에 적합하지 않기 때문입니다.
JSON.stringify는 JSON 데이터를 문자열(JSON 표기법)로 변환합니다.
// myData.json
{
"string": "seokji", // key 값을 ""를 이용해 작성해야 합니다.
"number": 123,
"boolean": true,
"null": null,
"array": [],
"object": {}
// udefined는 사용 불가합니다.
}
// app.js
import myData from "./myData.json";
const str = JSON.stringify(myData);
console.log(str); // {"string":"seokji","number":123,"boolean":true,"null":null,"array":[],"object":{}}
console.log(typeof str); // string
JSON.parse는 JSON 데이터를 자바스크립트에서 사용할 수 있는 객체 데이터로 변환합니다.
const obj = JSON.parse(str); // string → object
console.log(obj);
스토리지란 데이터를 브라우저에 저장할 수 있는 저장소입니다. 브라우저에서 사용할 수 있는 스토리지는 localStorage와 sessionStorage가 있습니다.
// localStorage 기본문법
// 아이템 지정
localStorage.setItem("key", "value"); // value 값은 string으로 지정해야합니다.
// 아이템 읽기
localStorage.getItem("key"); // key 값으로 아이템을 읽어옵니다.
// 아이템 제거
localStorage.removeItem("key"); // key 값으로 아이템을 제거합니다.
예시
// localStorage 데이터 지정 및 읽기
const data = {
name: "seokji",
age: 123,
};
// 데이터 지정
localStorage.setItem("data", JSON.stringify(data)); // stringify() 메서드를 이용해 객체를 문자로 변환합니다.
// 데이터 읽기
const str = localStorage.getItem("data");
console.log(str); // {"name":"seokji","age":123}
console.log(JSON.parse(str)); // {name: 'seokji', age: 123} parse() 메서드로 문자를 객체로 변환합니다.
// 데이터 제거
localStorage.removeItem("data"); // key값으로 데이터를 제거합니다.
// localStorage 데이터 수정
const data = {
name: "seokji",
age: 123,
};
// 데이터 지정
localStorage.setItem("data", JSON.stringify(data));
// 데이터 읽기
const str = localStorage.getItem("data");
const obj = JSON.parse(str);
obj.age = 9999; // 데이터 수정
localStorage.setItem("data", JSON.stringify(obj)); // 데이터 지정
지정
삭제
수정
Query String이란 사용자가 입력 데이터를 전달하는 방법 중 하나로, URL 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 의미합니다.
Query는 하나의 검색, String은 문자 데이터로 문자 데이터를 가지고 검색을 한다고 생각하면 이해하는 데 도움이 됩니다.
❗ Query String의 형식 : 주소?key=value&key=value&key=value
ex) https://localhost:5000/?apiKey=123&data=name...
Axios는 HTTP요청을 처리해주는 프로미스 기반 자바스크립트 패키지입니다.
OMDB Api를 이용해 데이터를 가져와 보는 실습을 진행하겠습니다.
📤 요청 보낼 url : https://www.omdbapi.com/?apikey=\[apiKey]&s=notting+hill
❗ 데이터를 요청할 시 http 보다 https를 사용해 오류를 방지합니다.
Query String 검색 시 나오는 JSON 데이터
1. HTTP로 데이터 가져오기(GET)
import axios from "axios";
// async/await를 이용해 비동기 처리
const fetchMovies = async () => {
const res = await axios.get(
"http://www.omdbapi.com/?apikey=7035c60c&s=notting+hill"
);
const data = res.data;
};
fetchMovies();
2. GET 요청의 결과
3. 요청 결과 화면에 그려주기
import axios from "axios";
const fetchMovies = async () => {
const res = await axios.get(
"http://www.omdbapi.com/?apikey=7035c60c&s=notting+hill"
);
const data = res.data; // 응답 결과의 data를 변수로 담아줍니다.
console.log(data);
const h1El = document.querySelector("h1");
const h2El = document.querySelector("h2");
const imgEl = document.querySelector("img");
h1El.textContent = data.Search[0].Title; // data안 Search의 첫 번째 객체의 Title 값을 h1 요소에 그려줍니다.
h2El.textContent = data.Search[0].Year; // data안 Search의 첫 번째 객체의 Year 값을 h2 요소에 그려줍니다.
imgEl.src = data.Search[0].Poster; // data안 Search의 첫 번째 객체의 Poster 값을 img 요소에 그려줍니다.
};
fetchMovies();
결과