Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

rabbit97 님의 블로그

8일 일지 본문

개발 일지

8일 일지

rabbit97 2024. 8. 8. 20:08

오늘은 4주차로 시작해서 5주차 숙제까지 쭉 나갔다!

 

그런데 5주차 숙제만 4시간째 건드려도 잘 안돼서 일단 여기까지 하고 내일 마무리 하는걸로.....

 

 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
<title>나만의 추억앨범</title>
<link
rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous"
/>

<style>
.mytitle {
color: white;

height: 250px;

display: flex;
flex-direction: column;
align-items: center;
justify-content: center;

background-position: center;
background-size: cover;
}

.mytitle > button {
width: 150px;
height: 50px;
background-color: transparent;
border: none;
color: white;
font-size: 18px;
font-weight: bold;
border-radius: 5px;

border: 1px solid white;
margin-top: 20px;
}

.mycards {
margin: 20px auto 20px auto;
width: 1200px;
}

.mypostingbox {
width: 500px;
margin: 20px auto 20px auto;
padding: 20px 20px 20px 20px;
border-radius: 5px;
box-shadow: 0px 0px 3px 0px orangered;
}

.mybtn {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;

margin-top: 10px;
}

.mybtn > button {
margin-right: 10px;
}
</style>
<script type="module">
// Firebase SDK 라이브러리 가져오기
import {
collection,
addDoc,

const firebaseConfig = {
apiKey: "AIzaSyD1So78REEFVV2h0s6vyoDLyQFwPefQt5s",
authDomain: "sparta-a8d79.firebaseapp.com",
projectId: "sparta-a8d79",
storageBucket: "sparta-a8d79.appspot.com",
messagingSenderId: "40126519475",
appId: "1:40126519475:web:b86500499f00990234b8c6",
measurementId: "G-5V3C8EN91M",
};

// 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();
});

$("#savebun").click(async function () {
$("#postingbox").toggle();
});

fetch(url)
.then((res) => res.json())
.then((data) => {
let mise = data["RealtimeCityAir"]["row"][0]["IDEX_NM"];
$("#msg").text(mise);
});

let docs = await getDocs(collection(db, "albums"));
docs.forEach((doc) => {
let row = doc.data();
console.log(row);

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);
});
</script>
</head>

<body>
<div class="mytitle">
<h1>나만의 추억 앨범</h1>
<p>현재 서울의 미세먼지 : <span id="msg">나쁨</span></p>
<button id="savrbun">추억 저장하기</button>
</div>
<div class="mypostingbox" id="postingbox">
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="image"
placeholder="name@example.com"
/>
<label for="floatingInput">앨범 이미지</label>
</div>
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="title"
placeholder="name@example.com"
/>
<label for="floatingInput">앨범 제목</label>
</div>
<div class="form-floating">
<input
type="email"
class="form-control"
id="content"
placeholder="name@example.com"
/>
<label for="floatingTextarea">앨범 내용</label>
</div>
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="date"
placeholder="name@example.com"
/>
<label for="floatingInput">앨범 날짜</label>
</div>
<div class="mybtn">
<button id="postingbtn" type="button" class="btn btn-warning">
기록하기
</button>
<button type="button" class="btn btn-outline-dark">닫기</button>
</div>
</div>

<div class="mycards">
<div id="card" class="row row-cols-1 row-cols-md-4 g-4">
<div class="col">
<div class="card h-100">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">앨범 제목</h5>
<p class="card-text">앨범 내용</p>
</div>
<div class="card-footer">
<small class="text-muted">앨범 날짜</small>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">앨범 제목</h5>
<p class="card-text">앨범 내용</p>
</div>
<div class="card-footer">
<small class="text-muted">앨범 날짜</small>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">앨범 제목</h5>
<p class="card-text">앨범 내용</p>
</div>
<div class="card-footer">
<small class="text-muted">앨범 날짜</small>
</div>
</div>
</div>
<div class="col">
<div class="card h-100">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">앨범 제목</h5>
<p class="card-text">앨범 내용</p>
</div>
<div class="card-footer">
<small class="text-muted">앨범 날짜</small>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

파이어베이스 연동하고 깃허브에 잘 올렸다! 저 5번째 카드 기욤은 여자친구가 링크타고 들어와서 적고 도망갔다.

 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>스파르타플릭스</title>
<link
rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous"
/>
<style>

* {
font-family: "Gowun Dodum", sans-serif;
}

.main {
background-color: green;
color: white;

background-position: center;
background-size: cover;
}

body {
background-color: black;
}

.mycards {
width: 1200px;
margin: 20px auto 20px auto;
}

.mypostingbox {
width: 500px;
margin: 20px auto 20px auto;
border: 1px solid white;
padding: 20px;
border-radius: 5px;
}

.form-floating > input {
background-color: transparent;
color: white;
}

.form-floating > label {
color: white;
}

.input-group > label {
background-color: transparent;
color: white;
}

.mypostingbox > button {
width: 100%;
}
</style>
<script type="module">
// Firebase SDK 라이브러리 가져오기
import {
collection,
addDoc,

const firebaseConfig = {
apiKey: "AIzaSyD1So78REEFVV2h0s6vyoDLyQFwPefQt5s",
authDomain: "sparta-a8d79.firebaseapp.com",
projectId: "sparta-a8d79",
storageBucket: "sparta-a8d79.appspot.com",
messagingSenderId: "40126519475",
appId: "1:40126519475:web:b86500499f00990234b8c6",
measurementId: "G-5V3C8EN91M",
};

// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

let docs = await getDocs(collection(db, "movies"));
docs.forEach((doc) => {
let row = doc.data();
let image = row["image"];
let title = row["title"];
let comment = row["comment"];
let star = row["star"];

let temp_html = `
<div class="col">
<div class="card">
<img src="${image}"
class="card-img-top" alt="...">
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text">${star}</p>
<p class="card-text">${comment}</p>
</div>
</div>
</div>`;
$("#card").append(temp_html);
});

$("#postingbtn").click(async function () {
let image = $("#image").val();
let title = $("#title").val();
let star = $("#star").val();
let comment = $("#comment").val();

let doc = {
image: image,
title: title,
star: star,
comment: comment,
};
await addDoc(collection(db, "movies"), doc);
alert("저장 완료");
window.location.reload();
});

$(document).ready(function () {
fetch(url)
.then((res) => res.json())
.then((data) => {
let temp = data["temp"];
$("#tem").text(temp);
});
});

$("#savebun").click(async function () {
$("#postingbox").toggle();
});
</script>
</head>

<body>
<header class="p-3 text-bg-dark">
<div class="container">
<div
class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start"
>
<a
href="/"
class="d-flex align-items-center mb-2 mb-lg-0 text-white text-decoration-none"
>
<svg
class="bi me-2"
width="40"
height="32"
role="img"
aria-label="Bootstrap"
>
<use xlink:href="#bootstrap"></use>
</svg>
</a>

<ul
class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0"
>
<li>
<a href="#" class="nav-link px-2 text-danger">spartaflix</a>
</li>
<li><a href="#" class="nav-link px-2 text-white"></a></li>
<li><a href="#" class="nav-link px-2 text-white">시리즈</a></li>
<li><a href="#" class="nav-link px-2 text-white">영화</a></li>
<li>
<a href="#" class="nav-link px-2 text-white">내가 찜한 콘텐츠</a>
</li>
<li>
<a href="#" class="nav-link px-2 text-white"
>현재 기온 <span id="tem">20.00</span></a
>
</li>
</ul>

<form class="col-12 col-lg-auto mb-3 mb-lg-0 me-lg-3" role="search">
<input
type="search"
class="form-control form-control-dark text-bg-dark"
placeholder="Search..."
aria-label="Search"
/>
</form>

<div class="text-end">
<button type="button" class="btn btn-outline-light me-2">
Login
</button>
<button type="button" class="btn btn-danger">Sign-up</button>
</div>
</div>
</div>
</header>

<div class="main">
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
<div class="container-fluid py-5">
<h1 class="display-5 fw-bold">킹덤</h1>
<p class="col-md-8 fs-4">
병든 왕을 둘러싸고 흉흉한 소문이 떠돈다. 어둠에 뒤덮인 조선, 기이한
역병에 신음하는 산하. 정체 모를 악에 맞서 백성을 구원할 희망은 오직
세자뿐이다.
</p>
<button id="savebtn" type="button" class="btn btn-outline-light">
영화 기록하기
</button>
<button type="button" class="btn btn-outline-light">상세정보</button>
</div>
</div>
</div>

<div class="mypostingbox" id="postingbox">
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="image"
placeholder="영화 이미지 주소"
/>
<label for="floatingInput">영화 이미지 주소</label>
</div>
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="title"
placeholder="영화 제목"
/>
<label for="floatingInput">영화 제목</label>
</div>
<div class="input-group mb-3">
<label class="input-group-text" for="inputGroupSelect01">별점</label>
<select class="form-select" id="star">
<option selected>별점선택</option>
<option value="⭐"></option>
<option value="⭐⭐">⭐⭐</option>
<option value="⭐⭐⭐">⭐⭐⭐</option>
<option value="⭐⭐⭐⭐">⭐⭐⭐⭐</option>
<option value="⭐⭐⭐⭐⭐">⭐⭐⭐⭐⭐</option>
</select>
</div>
<div class="form-floating mb-3">
<input
type="email"
class="form-control"
id="comment"
placeholder="추천 이유"
/>
<label for="floatingInput">추천 이유</label>
</div>
<button id="postingbtn" type="button" class="btn btn-danger">
기록하기
</button>
</div>

<div class="mycards">
<div id="card" class="row row-cols-1 row-cols-md-4 g-4">
<div class="col">
<div class="card">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">영화 제목</h5>
<p class="card-text">⭐⭐⭐</p>
<p class="card-text">영화 코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">영화 제목</h5>
<p class="card-text">⭐⭐⭐</p>
<p class="card-text">영화 코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">영화 제목</h5>
<p class="card-text">⭐⭐⭐</p>
<p class="card-text">영화 코멘트</p>
</div>
</div>
</div>
<div class="col">
<div class="card">
<img
class="card-img-top"
alt="..."
/>
<div class="card-body">
<h5 class="card-title">영화 제목</h5>
<p class="card-text">⭐⭐⭐</p>
<p class="card-text">영화 코멘트</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

스파르타 플릭스도 마무리 하고 최종으로 숙제!!

 

는 아직 실패.... 기록하기를 누르면 파이어베이스로 기록이 되기는 하는데 내용도 똑바로 안오고 불러오기도 안된다.

 

고민만 4시간째 하고있는데 잘 안돼서 내일도 아침에 잘 안되면 튜터님 강의 들으면서 해봐야겠다.

 

내일 마저 하고! html 마무리 하고 알고리즘으로 넘어가야지

 

----------------------------------------------------------------------------------------------------------------------

오늘의 학습 요약

 

오늘은 서버와 관련돼서 많은 공부를 했다. 파이어베이스부터 깃허브까지 체험하기방식으로 했는데 깃허브로 링크 만들어서 다른 사람도 같이 기록하는거에 엄청 신기했다. 내일은 마무리 하고 알고리즘으로 다시 넘어가야겠다.

'개발 일지' 카테고리의 다른 글

12일 일지  (0) 2024.08.12
9~11일 일지  (0) 2024.08.11
7일 공부  (1) 2024.08.07
6일 일지  (0) 2024.08.06
본 캠프 시작!  (1) 2024.08.05