오늘은 '웹개발 A to Z' 강의를 마치고, 새롭게 '엑셀보다 쉽고 빠른 SQL' 강의를 듣기 시작했다. 그리고, 새로운 SQL 퀘스트를 풀어보았다.
열심히 웹페이지를 만들었으니, 내가 만든 웹페이지를 사람들이 볼 수 있도록 인터넷에 공개하고, 업데이트를 해야한다.
그걸 바로 배포라고 한다.
웹페이지를 배포하는 데에는 여러가지 방법이 있겠지만, 이번 강의에서는 Github를 사용해서 웹페이지를 배포하였다.
먼저, Github는 인터넷에서 개발자들이 자신의 코드를 저장하고, 다른 사람들과 공유하는 공간이다.
Github를 사용한다면, 코드의 버전을 관리하기가 쉬워지고, 다른 사람들과의 협업도 가능하다.
또, 내가 작성한 코드를 인터넷에 공개적으로 호스팅을 할 수도 있고, 다른 개발자들과 그 코드와 라이브러리 등을 공유할 수도 있다.
나는 사실 내가 만든 코드를 올리기보다 다른 사람들의 코드를 긁어올 때 더 많이 사용하고 있다.
언젠가는 나도 다른 사람들이 참고할만한 게시글을 올려보고 싶다...
이번 강의를 진행하면서, 백엔드는 일절 손대지 않고 Firebase에게만 맡겼다.
Firebase를 사용한다면, 나처럼 백엔드 경험이 전무한 사람도 쉽게 사용할 수 있다는 장점이 있다.
하지만, Firebase만을 사용하기에는 단점도 분명히 있다.
Firebase는 내가 직접 서버 인프라를 컨트롤할 수 없기 때문에, 그들이 제공하는 기능과 방식에 따라야만 하고, 확장이 필요해지더라도 확장할 수 없다.
그리고, 구글에서 운영하는 서비스인만큼 외부의 다른 서비스나 기능을 활용하지 못하고, 구글의 서비스에만 의존하게 된다.
그래서 조금 더 유연하게 사용할 수 있도록 지원해주는 파이썬을 사용하기도 한다.
이번 강의에서는 아주 간단하게 파이썬을 사용해보는 실습을 진행했다.
따로 프로그램을 설치하지 않고 웹에서 간단하게 파이썬을 실행해볼 수 있도록 지원해주는 구글의 Colab을 사용했다.
파이썬은 굉장히 간결하고 쉬운 문법을 사용하고 있다.
그래서 많은 시간을 들이지 않아도 파이썬 문법을 학습하고, 사용해볼 수 있다.
print('Hello World!')
먼저, 가장 기본적인 명령어 print()를 배웠다.
괄호 안에 내가 원하는 내용들을 넣으면, 그대로 출력을 해준다.
문자를 사용하고 싶다면, 큰 따옴표 혹은 작은 따옴표를 사용하면 된다.
a=2
b=3
print(a+b)
혹은 이렇게 변수를 지정해서 사용할 수도 있다.
import requests
from bs4 import BeautifulSoup
# 가져오고 싶은 웹의 url 입력
URL = "https://bit.ly/web-movie"
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.content, 'html.parser')
# 내가 가져오고 싶은 내용 지정
title = soup.select_one('#boxoffice_list_content > ul > li:nth-child(1) > a > div.mov_name')
# 해당 내용 중 텍스트만 프린트
print(title.text)
그리고 이렇게 웹 스크래핑을 하는 방법도 배웠다.
내가 원하는 웹의 url을 입력하고, 아래에 내가 가져오고 싶은 내용을 지정해서 프린트를 해달라고 하면, 그 내용이 출력된다.
따라서 해보긴 했지만, 사실 아직 어떤 상황에 쓰는 것인지는 잘 모르겠다.
자세한 내용은 노션을 통해 정리해두었다.
Notion 확인하기
웹 개발 강의를 끝내고, '엑셀보다 쉽고 빠른 SQL' 강의를 시작했다.
먼저, SQL이란 데이터베이스와 대화를 하기 위한 언어이다.
그리고, 쿼리(Query)는 데이터베이스에 요청을 하는 질의를 말한다.
내가 사용하는 한국어가 SQL이라면, 내가 말하는 문장이 쿼리인 셈이다.
JQuery를 사용하면서는 그냥 그게 이 친구의 이름인가보다 하고 넘어갔지만, 이제야 JQuery가 JavaScript의 Query라는 것을 알게되었다.
앞서 Firebase를 사용하기 전에 데이터베이스에 대해 간단하게 정리했었다.
데이터베이스란 데이터가 저장되어 있는 폴더를 뜻하고, 그 안에는 '테이블'이라는 파일들이 있다.
이 테이블은 엑셀과 같은 구조로 저장이 되어 있는데, 이때 각 열을 '컬럼'이라고 부른다.
이번 강의에서는 sql에서 가장 기초적인 문법인 select와 from을 배웠다.
select [원하는 내용] from [테이블 이름]
select는 테이블을 가져오는 기본 명령어이고, from은 데이터를 가져올 테이블을 특정해주는 것이다.
select * from [테이블 이름]처럼 사용해서 해당 테이블 내의 모든 컬럼(*)을 가져오게 사용할 수도 있고,
select [컬럼1], [컬럼2] from [테이블 이름]처럼 사용해서 원하는 컬럼만 가져오게 사용할 수도 있다.
컬럼 이름이 너무 길거나 어렵다면, 컬럼을 지정할 때 오탈자가 생기기 쉽다.
그래서 컬럼에는 별명(alias)를 지정할 수 있는데, 2가지의 방법이 있다.
방법 ① : 컬럼1 as 별명1
방법 ② : 컬럼1 별명1
둘 중에 어떤 방법을 사용하더라도 상관없다.
별명을 지정할 때 주의할 점이 있다.
영문이나 언더바를 사용해서 별명을 지정한다면 상관이 없지만,
한글이나 특수문자를 사용해서 별명을 지정한다면 "별명"으로 ""(큰 따옴표) 안에 별명을 작성해야 한다.
이때, 띄어쓰기도 특수문자로 포함되기에 띄어쓰기를 사용할 것이라면 반드시 "" 안에 별명을 작성해야 한다.
데이터의 양이 적다면 상관이 없겠지만, 방대한 데이터 속에서 내가 필요한 정보를 찾는 것은 쉽지 않을 것이다.
그래서 where을 사용해 내가 원하는 조건을 붙여줄 수 있다.
select [원하는 내용] from [테이블 이름] where [필터링 조건]
기본적인 골격은 이렇다.
select from 뒤에 where을 붙여서 내가 원하는 조건을 걸어주면 된다.
이때, 조건에는 '=(같다)', '<>(같지 않다)', '>(크다)', '>=(크거나 같다)' 등의 비교연산자를 사용할 수 있다.
비교연산자를 사용할 때, 문자를 사용할 수도 있는데,
select * from customers where gender = 'male'
위 예시처럼 ''(작은 따옴표) 안에 문자를 기입해주면 된다.
또, where [컬럼] between A and B로 A와 B 사이의 값을 찾을 수도 있고,
where [컬럼] in (A, B, C)로 A, B, C를 포함하는 것을 찾을 수도 있다.
그리고, where [컬럼] like ‘시작문자%’로 특정 문자로 시작하는 것을 찾을 수도 있고,
where [컬럼] like ‘%포함문자%’로 특정 문자를 포함하는 것을 찾을 수도 있고,
where [컬럼] like ‘%끝나는문자’로 특정 문자로 끝나는 것을 찾을 수도 있다.
만약 여러가지 조건을 사용하고 싶다면, and, or, not 등을 사용할 수도 있다.

SQL의 에러 화면은 위 이미지와 같이 구성이 되어있는데, 에러 코드가 아닌 에러가 난 이유를 보면 된다.
자세한 실습 내용은 노션을 통해 정리해두었다.
Notion 확인하기
지난 퀘스트는 강의를 듣지 않고 진행해서 이것저것 검색해보며 진행을 했었다.
그런데, 이번에는 강의를 듣고 퀘스트를 진행하니 막힘없이 문제를 풀 수 있었다.
다만, 아직 내 머리에 모든 내용이 다 들어온 것이 아니라 강의 내용을 정리해둔 것을 보면서 퀘스트를 풀어야 했었다.
앞서 정리한 where에 관한 내용들이기에 따로 작성하지는 않겠다.
문제와 환경 세팅, 풀이 내용은 노션을 통해 정리해두었다.
Notion 확인하기
벌써 사전캠프의 첫주차가 끝났다.
오랜만에 공부를 하려고 하니 처음에는 너무너무 집중이 안됐는데, 이제 점점 재미를 붙여가고 있다.
이제 웹개발 강의를 끝냈다.
코딩이 처음이어도 쉽게 배운다길래 나는 그래도 몇번 경험이 있으니 쉽게 따라갈 수 있겠지 생각을 했었다.
그런데,, 강의를 생각만큼 쉽지는 않았다.
전에는 웹 디자인만 잡아놓고 ChatGPT를 굴려가며 화면 구성을 했었다.
그런데 하나씩 내가 직접 작업을 하려니 머리가 복잡해졌다.
그래도 뭔가 한 단계 진화한 것 같은 느낌이라 뿌듯하다.
하루에 4시간 공부하는 것에도 겨우 적응을 했는데, 하루 12시간 공부를 해야한다니..
남은 2주 동안은 일찍 일어나는 습관을 만들어봐야겠다.