이번 강의에서는 1주차 강의에서 만든 '추억의 앨범'을
DataBase와 연결하는 강의 였다.
DataBase에 들어가기 앞 서 꼭 JQuery를
연결해야 하는데
위의 코드를 head 부분에 넣어주면 됐다.
HTML과 DataBase 연결하기
DataBase 사용 이유 :
데이터 베이스는 저장된 데이터를 잘 찾기 위해서 사용한다.
DataBase 종류 :

관계형 데이터 베이스 : 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 데이터 베이스

비관계형 데이터 베이스 : 키(key)와 값(value)들이 관계를 맺지 않는 데이터 베이스
Firestore Database
구글 클라우드 기반 NoSQL데이터 베이스이다.
HTML에서 사용하기 위한 초기 세팅
구축된 FireBase를 바탕으로 HTML에
<script type="module">
// Firebase SDK 라이브러리 가져오기
import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
라이브러리를 가져오고
// Firebase 구성 정보 설정
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "AIzaSyDFHJXiFM2YtnoDYIYZL9tFH7fi2gSRuXA",
authDomain: "sparta-d46a3.firebaseapp.com",
projectId: "sparta-d46a3",
storageBucket: "sparta-d46a3.appspot.com",
messagingSenderId: "736869860855",
appId: "1:736869860855:web:f5e7e878753119d06f5af2",
measurementId: "G-4LND2EJ73P"
};
FireBase 구성 정보를 가져온 후
// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
인스턴스를 초기화 시켜준다.
이후 버튼 클릭에 따른 동작을
$("#postingBtn").click(async function () {
let image = $('#image').val();
let title = $('#title').val();
let content = $('#content').val();
let date = $('#date').val();
let doc = { 'image': image, 'title': title, 'content': content, 'date': date };
await addDoc(collection(db, "albums"), doc);
alert('저장 완료!');
window.location.reload();
})
$('#savebtn').click(async function () {
$('#postingbox').toggle();
})
동적으로 만들어준다. 위와 같이 작성을 하면
HTML에서 작성한 값들을 DataBase에 저장할 수 있다.
<button id="savebtn">추억 저장하기</button>
HTML에서 DataBase로 정보를 저장시킬 버튼은
으로 변경시켜줘야한다.
(onClick을 지우고 id = "사용한 id" 속성을 추가해줘야 한다.)
이후, DataBase에서 HTML로 가져오기 위해
docs.forEach((doc) => {
let row = doc.data();
let image = row['image'];
let title = row['title'];
let content = row['content'];
let date = row['date'];
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-muted">${date}</small>
</div>
</div>
</div>`;
$('#card').append(temp_html);
});
$('#card').append() 함수로 card를 추가시켜준다.
<div id="card" class="row row-cols-1 row-cols-md-4 g-4">
"#card"는 HTML 부분에서 id가 "card"인 부분이다.
'Web' 카테고리의 다른 글
3주차 Web 강의(Web 개발 강의) (0) | 2024.08.09 |
---|---|
(중요)추가 학습(HTML과 분리된 JavaScript에서 DataBase 활용법) (0) | 2024.08.07 |
2주차 강의 (Web 개발 강의) (0) | 2024.07.22 |
1주차 강의 (Web 개발 강의) (0) | 2024.07.15 |