23.11.28 TIL(Today I Learned) - firestore, Github 배포, SQL(Sakila, 문법)

Innes·2023년 11월 28일
0

TIL(Today I Learned)

목록 보기
6/147
post-thumbnail

DATABASE

💡 Firestore란?

1. Firestore Database

1) 파이어스토어란?

  • 구글의 클라우드 기반 NoSQL 데이터베이스!
  • 데이터베이스 서비스로 데이터를 저장하고 관리할 수 있는 기능을 제공

(데이터 모아두는 꾸러미)

2) 시작방법

Firebase > 빌드 > Firestore Database > 데이터베이스 만들기
asia Seoul선택 > 프로덕션 모드에서 시작

  • 기존 작성했던 추억앨범 index파일에
    script 태그 안에 type="module"
    파이어스토어 세팅코드 script 맨위에 복붙
    파이어스토어 구성 코드 복붙 > firebase 구성 정보 설정 부분에 바꿔넣기



?? 하란대로 한거같은데 아무리해도 파이어스토어에 데이터가 계속 저장이 안돼서 질의응답 남김ㅠㅠ

    <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: "AIzaSyB1tjxcuZ4tI0U6-g9rPn6BXJNnF8fbbuE",
            authDomain: "sparta-6b0cf.firebaseapp.com",
            projectId: "sparta-6b0cf",
            storageBucket: "sparta-6b0cf.appspot.com",
            messagingSenderId: "171045291921",
            appId: "1:171045291921:web:18d6cd3c1b07dd7637bc30",
            measurementId: "G-LWW3YFHF3D"
        };


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

        $("#postingbtn").click(async function () {
            let image = $('#image').val();
            let title = $('#title').val();
            let date = $('#date').val();
            let content = $('#content').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 () {
            $('#postbox').toggle();
        })

-> 결국 컴퓨터도 껐다켜고 작성한거 다 지우고 강의 다시 시작해서 처음부터 다시 작성하니까 되긴 됐다...
아직도 왜 안됐는지 원인은 못찾음...



2. 파이어베이스의 한계점

  • 누군가가 만들어놓은 데이터베이스임 -> 커스터마이징 하기 어려움
  • 구글서비스에 의존하게됨

-> 파이썬같은 언어를 통해 백엔드처럼 여러 기능을 추가해볼 수 있음


3. 배포해보기!

1) 배포란?

  • http, https : 프로토콜
  • 자료를 요청하고 자료를 받는것에 대한 형식

2) Github란?

  • 개발자들이 자기 코드 저장하고 공유하는 공간
  • 간단한 코드 배포하기도 가능

3) Github에서 배포하기

-Settings > Pages > Branch > None에서 main으로 바꾸고 Save


3-1. 파이썬 체험해보기

https://colab.research.google.com

  • Google colab : 구글에서 제공하는 클라우드 기반의 무료 Python 실행 환경
    (명령문 작성 후 실행 단축기 Ctrl+Enter)
    Ctrl+클릭 > 하이퍼링크 접속




SQL

💡 SQL 문법 익히기

1. 현업처럼 데이터 유추 & 추출해보기

  • LIMIT문법
    데이터 10만건 막 이럴때 전부다 조회하면 조회도 오래걸리고 읽기도 힘드니까


1) LIMIT문법 활용한 테이블 데이터 추론

  • 컬럼별로 맨 첫줄만 뜨게 해서 이게 어떤 데이터가 담겨있는 테이블인지 추론해보자

EX)
SELECT * FROM 테이블이름 LIMIT1

❓❓error) 위처럼 하니까 테이블에 데이터는 없고 컬럼값만 쭉 나옴
-limit 줄 수 때문인가 해서 2로 3으로 해도 마찬가지
-schema와 data 다 열어놨는데 뭐가 문제지?
강의 다시 보기 시작
=> schema와 data 모두 파일만 연다고 끝이 아니라 '실행'(번개아이콘)까지 해야 불러오는거였다!!!
data파일에서 실행까지 하고 나니
limit1 문법이 제대로 작동함

2) COUNT문법

-결과 수가 몇개인지 세는 문법
(행의 수 세기)

EX)
SELECT COUNT()FROM 테이블이름
-> 테이블 전체 데이터 수 세기(전체 행의 수)
SELECT COUNT(
)FROM 테이블이름 WHERE 조건문
-> 특정 조건에 맞는 테이블 데이터 수 세기

3) DISTINCT 문법

-중복된 값을 출력하지 않게끔 함

EX)
SELECT DISTINCT



💡 개인적인 오류 해결


오류 1. Sakila 다운받아서 SQL> open SQL script로 열었는데 사진처럼 실행버튼이 활성화가 안됨
- 인터넷 껐다 켜보기, 컴퓨터 껐다 켜보기, 파일 지웠다가 다시 설치해보기 등 혼자 이것저것 해봐도 안돼서 질의응답 올림

  • 답변 : 파일 열었을때 위에 'unconnected' 떠있으면 SQL local 창을 새로 열어서 거기서 다시 열어보라함
    • local창 다시 열어서 파일 여니 해결!!

오류 2. schema에 있는 테이블이 컬럼만 열리고 데이터가 조회가 안됨

  • 해결 : schema, data 파일 모두 열기만 해서 되는게 아니라 실행까지 마친 다음에 테이블 데이터를 조회해야 하는 것이었음!
profile
꾸준히 성장하는 우상향 개발자

0개의 댓글