솔직히 말해서 너무 어렵다. 1과목 2과목은 듣고 따라오기만 하면 이해도 어느정도 되곤 했는데 3과목부터는 이해의 영역을 넘어서 어려운 부분이 너무 많아 힘들다. 꼭 자격증을 따고싶은데 쉬운일이 아님을 직시하게 된다.
5주차 강의 진행
지난주 금요일에 했던 앨범을 데이터 베이스에 저장하는 방법대로
Yull's Cinema 만들어둔거 복습하기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Yull's Cinema</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<style>
@import url('https://fonts.googleapis.com/css2?family=Black+Han+Sans&display=swap');
* {
font-family: 'Black Han Sans', sans-serif;
}
.main {
color: white;
background-image: url('https://velog.velcdn.com/images/jinyr1128/post/31110016-44f2-4b83-ad30-4433a1c60ff4/image.png');
background-position: center;
background-size: cover;
}
.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;
}
.input-group>select {
background-color: transparent;
color: white;
}
.mypostingbox>button {
width: 100%;
}
body {
background-color: black;
}
</style>
<script type="module">
// Firebase SDK 라이브러리 가져오기
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { getDocs } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "AIzaSyB689lhpqDwNEcOFTT9-mm43dvu2Kij2qo",
authDomain: "yull-s-a-to-z-html.firebaseapp.com",
projectId: "yull-s-a-to-z-html",
storageBucket: "yull-s-a-to-z-html.appspot.com",
messagingSenderId: "170098996749",
appId: "1:170098996749:web:7cfe2e2c8c7d4167350744",
measurementId: "G-BRS72YJJX5"
};
// Firebase 인스턴스 초기화
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
$("#postingbtn").click(async function () {
let images = $('#images').val();
let title = $('#title').val();
let star = $('#star').val();
let comment = $('#comment').val();
let doc = {
'images': images,
'title': title,
'star': star,
'comment': comment
};
await addDoc(collection(db, "Yull's Cinema"), doc);
alert("⭐️저장 완료⭐️");
window.location.reload();
})
$("#savebtn").click(async function () {
$('#postingbox').toggle();
})
$("#memobtn").click(async function () {
alert("누구보다 위트 있고 호기심 많은 매력 부자 ‘어기'(제이콥 트렘블레이). 하지만 남들과 다른 외모로 태어난 ‘어기'는 모두가 좋아하는 크리스마스 대신 얼굴을 감출 수 있는 할로윈을 더 좋아한다. 10살이 된 아들에게 더 큰 세상을 보여주고 싶었던 엄마 ‘이사벨’(줄리아 로버츠)과 아빠 ‘네이트’(오웬 윌슨)는 ‘어기'를 학교에 보낼 준비를 하고, 동생에게 모든 것을 양보해왔지만 누구보다 그를 사랑하는 누나 ‘비아'도 ‘어기'의 첫걸음을 응원해준다. 그렇게 가족이 세상의 전부였던 ‘어기'는 처음으로 헬멧을 벗고 낯선 세상에 용감하게 첫발을 내딛지만 첫날부터 ‘남다른 외모'로 화제의 주인공이 되고, 사람들의 시선에 큰 상처를 받는다. 그러나 ‘어기'는 27번의 성형(?)수술을 견뎌낸 긍정적인 성격으로 다시 한번 용기를 내고, 주변 사람들도 하나둘 변하기 시작하는데...")
})
let url = "http://spartacodingclub.shop/sparta_api/weather/seoul";
fetch(url).then(res => res.json()).then(data => {
let temp = data['temp'];
$('#msg').text(temp)
})
let docs = await getDocs(collection(db, "Yull's Cinema"));
docs.forEach((doc) => {
let row = doc.data();
let images = row['images'];
let title = row['title'];
let comment = row['comment'];
let star = row['star'];
let temp_html = `
<div class="col">
<div class="card">
<img src="${images}"
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);
});
</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">Yull's Cinema</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="msg"></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">Wonder</h1>
<p class="col-md-8 fs-4">"힘겨운 싸움을 하는 모든 이들에게 친절하라" 옳음과 친절함 중 하나를 선택할 땐 친절함을 선택하라</p>
<button id="savebtn" type="button" class="btn btn-outline-light">영화기록하기</button>
<button id="memobtn"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="images" 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>
</div>
</body>
</html>
결과값
복습한 내용들을 배포하기
http// , https//
여기서 S란 보안을 좀더 강화해둔것이다.
도메인과 경로!!!
코드를 저장하고 공유!!!
코드관리, 협업, 웹호스팅, 지식공유
배포한 링크!!!!!
파이어 베이스로 하면 구글에 대한 의존이 생기기에 좋지 않다.
조금 더 완벽한 개발을 위해서 파이썬 맛보기!!!!
☑️ 파이썬은 다양한 웹 애플리케이션 개발 가능성을 제공하며, 개발자가 원하는 방식으로 서버를 구축하고 관리할 수 있게 해줍니다.
☑️ 파이썬은 서버에 대한 완전한 컨트롤을 갖게 됩니다. 주인은 자신만의 고유한 방식으로 서버를 구축하고 관리할 수 있죠.
☑️ 파이썬을 사용하는 경우, 서버의 확장성을 조절할 수 있으며, 필요에 따라 리소스를 추가하거나 조정할 수 있습니다. 이는 대규모 기업이나 많은 트래픽을 처리해야 하는 프로젝트에서 중요한 요소입니다.
☑️ 파이썬을 사용하는 경우, 다른 서비스와의 통합이나 원하는 기능을 더욱 유연하게 구현할 수 있습니다
import requests
from bs4 import BeautifulSoup
URL = "https://movie.daum.net/ranking/reservation"
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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
title = soup.select_one('#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_cont > strong > a')
print(title)
결과값
5주차 강의 까지 완료!!!!!!!!!!!!!
앞으로 다시 복습을 할 예정이다 대략 3번에서 4번정도는 들으면 완벽히 나의 것이 되지 않을까?
아직은 정확하게 모르지만 본캠프가 들어가기전 내가 할수있는 최대한으로 해볼것이다!!!1
잘 이해가 되지 않았던 코드들로 복습을 진행했다.
연산자의 완벽한 이해가 필요해서 나도코딩님의 쳅터 2강을 다시금 듣고
퀴즈를 풀어보았다
해답영상을 보는것이 아닌 스스로 풀어보며 이해를 통해서 내것으로 만드는 과정을 거쳤다.
package chap02;
//예제 문제
// 어린이 키에 따른 놀이 기구 탑승 가능 여부를 확인하는 프로그램을 작성하시오
//조건 키가 120 cm 이상인 경우에만 탑승 가능
//삼항 연산자 이용
public class _06_Quiz {
public static void main(String[] args) {
int height1 = 115;
int height2 = 125;
String result = (height1 >= 120) ? "탑승 가능합니다" : "탑승 불가능 합니다";
String result2 = (height2 >= 120) ? "탑승 가능합니다" : "탑승 불가능 합니다";
System.out.println("키가 "+ height1 + "cm 이므로 " + result);
System.out.println("키가 "+ height2 + "cm 이므로 " + result2);
}
}
문자열 비교!!
package chap03;
public class _03_StringCompare {
public static void main(String[] args) {
//문자열 비교
String s1 = "Java";
String s2 = "Python";
System.out.println(s1.equals("Java"));//문자열 내용이 같으면 true 다르면 false
System.out.println(s2.equals("python")); //대소문자를 구별하기 때문에 false
System.out.println(s2.equalsIgnoreCase("python"));
//대소문자 구분없이 문자만 같으면 되게끔
//문자열 비교 심화
s1 ="1234"; //if 비밀 번호의 정보 (참조)
s2 ="1234";
System.out.println(s1.equals(s2));//true (내용비교)
System.out.println(s1 == s2); //true (참조비교)
s1 = new String("1234"); //이것과 밑에것은 다른 메모리를 사용
s2 = new String("1234"); //new가 붙었기 때문에!!!
System.out.println(s1.equals(s2));//true (내용은 같지만)
System.out.println(s1 == s2); //false (참조가 다르기 때문에)
//그렇기에 문자열 내용 비교시에는 .equals 를 사용
}
}
(참조)조금 어렵다
특수문자 ( 이스케이프 문자)
public class _04_EscapeSequence {
public static void main(String[] args) {
//특수문자, 이스케이프 문자 (Escape Sequence, Escape Character, Special Character)
//예제 \n \t \\ \" \'
System.out.println("Java");
System.out.println("so");
System.out.println("hard");
//\n : 줄바꿈
System.out.println("Java\nso\nhard");
//\t : 탭의 기능
//해물파전 9000원
//김치전 8000원
System.out.println("해물파전\t9000원");
System.out.println("김치전\t8000원");
// \\ : \ 를 표현 (역슬래시)
System.out.println("C:\\Program Files \\Java");
// \" : 큰 따옴표를 출력
// 먼지가 "야옹"이라고 했어요
System.out.println("먼지가 \"야옹\"이라고 했어요");
// \' : 작은 따옴표 출력
// 먼지가 '뭐!!!' 라는 표정을 지었어요
System.out.println("먼지가 \'뭐!!!\' 라는 표정을 지었어요 ");
char c ='A';
c = '\'';
System.out.println(c);
}
}
연습퀴즈 풀기
package chap03;
// 주민등록 번호헤서 생년월일 및 성별까지만 출력하는 프로그램을 작성하시오
// 참고 :주민등록번호는 13자리 숫자
// 앞6자리는 생년월일 뒷 7자리 중 첫번째 수는 성별
// 입력데이터는 -을 포함한 14자리의 문자열 형태
//예시: 901231-12345676 인경우 901231-1까지 출력
public class _05_QuizJava {
public static void main(String[] args) {
String id = "901231-1234567"; //주민번호 13자리
System.out.println(id.substring(0,8)); //0위치 부터 8위치 직전까지
id = "030708-4567890";
System.out.println(id.substring(0, id.indexOf("-")+2)); //0 위치부터 하이픈 위치 + 2직전까지
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("주민등록번호를 입력하세요 (예: 901231-1234567): ");
String juminNumber = scanner.nextLine();
// '-' 제거
juminNumber = juminNumber.replace("-", "");
// 생년월일 추출 (앞 6자리)
String birthDate = juminNumber.substring(0, 6);
// 성별 추출 (7번째 숫자)
int genderNum = Integer.parseInt(juminNumber.substring(6, 7));
String gender = (genderNum % 2 == 1) ? "남성" : "여성";
// 결과 출력
System.out.println("생년월일: " + birthDate);
System.out.println("성별: " + gender);
}
}
이것은 완전한 프로그래밍이다.
오늘 자바에서는 문자열에 대한 전반적인 내용과 복습을 진행하며 퀴즈도 풀어보며 3챕터를 마쳤다.
이제 슬슬 외워야하는 것들이 생기는것 같아 조금 두렵지만 조금씩 나아간다면 금방 다 할수 있지 않을까 한다!!!!!!!!!!!!!!!!!!