어찌저찌 정신없는 한 주가 지났다. 3주차 강의는 23일부터 수강 시작해서 27일 오늘 마무리했다. 이번 주는 왠지 특히 정신이 없었다. 업무 마감이 겹치기도 했고, 주문했던 서피스가 오면서 새로운 기기에 적응하느라 그랬을까? 가장 빡빡하게 느껴졌던 3주차였다.

 

[이전 글] 웹개발 종합_풀스택: 개발일지 2주차

 

3주차-완주-알림
3주차-완주-알림

다행인 것은~ 숙제가 꼭 100% 정답이 아니어도 될 뿐만 아니라, 스파르타 측에서 숙제 답안 코드와 해설 영상을 제공하기 때문에 아무리 바빠도 기간 안에 수료할 수 있겠다는 점이다. 꼭 한번에 100퍼센트 전부 이해할 필요도 없다. 튜터님 말마따나 코딩은 외우는 분야도 아닐 뿐더러, 작동 원리와 구조 위주로 이해했다면 그걸로 충분하다고 생각한다(그 이후 나머지는 본인의 몫인 것 같다).

 

물론 모든 일정을 강의에 할당한다면 더 할 나위 없겠지만 필자처럼 다른 일로 바쁘거나 직장이 있어서 집중력을 온전히 할애할 수 없는 분들도 계실 거다. 그런 분들도 본 강의를 부담 없이 수료할 수 있을 것 같다. 기간 안에 수강 완료하면 강의와 자료를 평생 소장할 수 있으니 언제든지 복습하면 된다. 필자의 경우 꼭 크롤링을 해보고 싶었던 부분이 개인적으로 있었는데, 조만간 그 부분을 직접 실행하면서 제대로 내 것으로 만들 예정이다.

 

코딩을 배우면 아이스크림을 먹을 수 있다

코딩 공부를 했더니 카페 쿠폰을 받았다. 밴드에 하루하루 수강 인증샷을 업로드하는 미션이 있는데, 필자가 1주차 미션 최다 인증자 중 한명으로 선정된 것이다!

 

미션-선물
미션-선물

1주일동안 6일, 하루도 빠짐 없이 수강 인증을 올리니까 선정되었다. 매니저님으로부터 SMS로 바닐라라떼 기프티콘을 선물받았고 거기에 500원 보태어 소프트 아이스크림을 구매했다. 나는 코딩을 배웠을 뿐인데 이렇게 선물도 받고 즐거운 시간을 보내게 되다니, 소소한 행복이 따로 없다😊

 

이번에도 서론이 길어졌다. 아래에서 이번 주 배운 핵심 내용들을 개인적으로 정리해본다.

 

 

Python 설치의 의미

• Python을 왜 쓰는가? 컴퓨터한테 명령을 내리기 위해서.

• 컴퓨터에 python을 설치한다는 것은 컴퓨터가 python을 알아들을 수 있도록 번역 팩을 설치한다는 의미이다. (그래서 설치할 때 해석 어쩌구~ 하는 단어가 나왔었구나.)

• 컴퓨터는 0과 1로 이뤄진 전기 신호만을 읽을 수 있는데, Python을 전기 신호로 번역해주는 팩을 설치했다고 보면 되는 것.

• 파이썬을 쓸 때는 VSCode에서 Terminal을 켜줘야 한다. (Terminal > New Terminal)

ㅤㄴ HTML에서는 브라우저의 콘솔을 이용해서 확인했다면, 파이썬은 vscode의 터미널을 이용하는 것임!

• 윈도우라면 Git Bash를 같이 설치해준 다음 terminal setting에서 default profile을 Git Bash로 설정해주자.


 

Python 기초 문법

파이썬 문법은 기본적으로 자바스크립트와 굉장히 유사하다. 그래서 훨씬 수월하게, 빠르게 습득할 수 있었다.

 

- 변수, 자료형은 자바스크립트와 원리가 흡사하다. ▼

 

변수선언법
변수선언법
자료형-list
자료형-list
자료형-dictionary
자료형-dictionary

 

- 함수는 모양이 조금 다르다. ▼

 

Javascript Python
function hey(){
ㅤalert('ㅎㅎ')
}
def hey():
ㅤprint('ㅎㅎ')
함수 내용을 중괄호{}로 표현. 뜻함수를 선언할게(def). 이름은 hey. 얘를 부르면 어떤 일이 일어나냐면:

 

• 파이썬에서는 함수의 내용을 콜론(:)과 탭(들여쓰기)으로 표기한다. 이 두가지 요소가 파이썬이 내용물을 인식하는 방법이다.

• 자바스크립트에서 들여쓰기는 선택적 요소였지만 파이썬에서는 들여쓰기 자체를 하나의 문법으로 인식한다.

• 파이썬의 주석: # 이렇게 쓰면 주석입니다.

 파이썬의 console = print. 자바스크립트에서 console을 쓴다면 파이썬에서는 print를 쓴다!! 예: print(a)


 

파이썬의 진가, 라이브러리(Library)

파이썬의 라이브러리: 프로젝트별로 라이브러리를 따로 관리한다 -> 그래야 관리가 쉽고 업그레이드 다운그레이드가 수월하다 = 그래서 있는 것이 '가상환경' = 라이브러리를 담아두는 '폴더'와 같은 느낌.

↑ 어렵게 설명하면 어려운 개념인데 튜터님이 이해를 돕기 위해 직관적으로 설명해준다. 그래서 가상 환경에 대해 이해가 쏙쏙 되었다.

 

1. 가상 환경 만들기

• 라이브러리 가상 환경 만드는 법: 터미널에 python -m venv venv 입력, 맥은 python3 -m venv venv

아래처럼 인터프리터를 venv로 선택해준다. 그 다음 새 터미널을 실행하면 이전과는 다르게 (venv) 가 붙는데, 이게 무슨 뜻이냐면 "자, 지금부터는 이 폴더에서 라이브러리를 가져다 쓰는 거야~" "라이브러리를 venv 폴더에가 깔 거야~" 이런 뜻임.

 

인터프리터-설정하기
인터프리터-설정하기

 

2. 라이브러리 설치하기

터미널에 pip install (라이브러리 이름) 이렇게 입력한다. 아래처럼 주루룩 뜨면 설치가 완료된 것이다. 아래는 requests를 설치한 모습이다. 설치가 참 쉽고 편하다ㅎ

라이브러리-설치하기
라이브러리-설치하기

 

3. requests 라이브러리 사용하기

requests 라이브러리를 사용해보자. requests는 javascript에서의 Fetch와 같은 역할을 한다. (Fetch가 뭔지는 2주차 개발일지에 적어두었다.)

 

JS : Fetch = Python : requests

 

⬇️ 자바스크립트에서 연습했던 미세먼지 데이터를 파이썬으로 가지고와본 모습. (list를 돌렸다. row가 있으면 리스트를 돌리고 싶어지는 본능이 있다. 참고로 파이썬에서 리스트를 돌리는 코드는 for a in rows 임.)

 

requests-사용하기
requests-사용하기

requests 라이브러리 사용법을 토대로 위처럼 코딩하면 파이썬을 이용해서 API 데이터를 가져올 수 있다. 코드를 외울 필요는 당연히 없다. 튜터님도 외우고 있지 않다. 이 requests라고 하는 라이브러리를 만든 사람의 doc에 가보면 코드 사용 가이드가 다 쓰여있다. requests말고도 무수한 라이브러리가 존재하며 각각 그때그때 사용법을 찾아 쓰면 되는 것이다.

 

 

4. 파이썬 본격 써먹기: 크롤링(웹스크래핑)

Python 문법을 알아보았으니 본격적으로 써먹어 보자. '크롤링(웹스크래핑)'을 이용해서 인터넷에 있는 여러 가지 데이터를 가지고 와 정리해 보겠다. (내가 너무 하고싶어하던 것ㅠ)

 

크롤링을 위한 기본 코드 뼈대는 아래와 같다. 이는 구글링을 통해서나 Doc을 통해서 구현할 수 있지만, 강의에서 코드스니펫을 항상 준비해주기 때문에 찾는 수고로움 없이 그대로 사용했다.

 

크롤링-기본-세팅
크롤링-기본-세팅

(위 사진에 오타가 있다. URL부분은 api address가 아니라 크롤링을 원하는 페이지의 URL이다!)

 

크롤링은 웹에 접속해서 데이터를 솎아내어 가지고 오는 것. 이를 위해서는 두 개의 라이브러리가 필요하다. 

1. 웹에 접속하는 애: requests

2. 솎아내는 애: beautifulsoup4 (bs4)

 

네이버-영화-크롤링하기
네이버-영화-크롤링하기

가상환경에 라이브러리를 전부 설치하고 뼈대 코드를 넣어준 뒤, 네이버 영화 페이지에서 크롤링을 원하는 tr과 td를 찾아 가져와주었다. 그리고 차례로 print하면 사진에서 보이는 것처럼 깔끔하게 영화 순위와 제목, 평점만 텍스트로 깔끔하게 추출된다. 크롤링은 항상 관심있었지만 시도해보지 못했는데 이번 기회에 이렇게 접하게 되니 좋았다.


 

데이터베이스: MongoDB 사용하기

크롤링에 이어 데이터베이스에 관해서도 배웠다. 크롤링한 데이터들을 MongoDB에 올려두는 작업을 했다. 크롤링까지 너무나 재미나게 진행했던 필자는 여기서부터 조금씩 멍해지기 시작했다. 그 이유인 즉슨, 평소에 데이터베이스에 대한 이해가 없었기 때문에 결정적으로 '내 사업(앞날)에 데이터베이스가 필요한가?' 에 대해 확신이 없는 상태였다. 한마디로 데이터베이스의 필요성과 목적성을 잘 모른다는 소리다.

 

데이터베이스-데이터올리기
데이터베이스-데이터올리기

강의에서 설명해주는 대로 따라가기는 당연히 어렵지 않았다. 클라우드형 데이터베이스 사용법을 하나하나 짚어 가며 알려주기 때문에 어렵지 않게 따라갈 수 있고, 결과적으로 파이썬과 데이터베이스를 연결하여 데이터를 올리고, 가져오고, 수정하는 등 다룰 수는(?) 있게 되었다. 그런데 결정적으로 내가 데이터베이스를 왜 사용해야 하며 어떤 용도로 어떻게 쓰게될 지를 모르는 상태이니 강의를 듣는 내내 왠지 뜬구름 잡는 느낌이 들었다. 그래도, 성실하게 따라가고 숙제까지 마쳐주었다. 비록 지금은 개념이 없는 상태지만 내가 실용적으로 데이터베이스를 다뤄야할 때가 언제 올 지 모르는 일이니까 말이다.

 

**위 의문은 4주차 강의를 진행하며 바로 해소되었다. 데이터베이스가 웹 서비스에 꼭 필요한 이유!👇

[이어지는 글] 웹개발 종합_풀스택: 개발일지 4주차

 

▼ 아래는 3주차 숙제를 제출한 모습. 100% 정답이 아니어도 되며, 틀렸다고 점수 깎이는 팍팍한 강의가 아니니 안심하시라. 성심성의껏 직접 코드를 작성해보았다는 지점이 중요한 것 같다. 필자는 먼저 스스로 시도해보고 막히는 부분은 해설 영상을 보며 고쳐나가는 식으로 이번 3주차 과제를 진행했다.

 

숙제-제출하기
숙제-제출하기

 

3주차는 뭐니뭐니해도 그렇게 하고싶었던 크롤링을 내 힘으로 할 수 있게 되어 좋았다! 이런저런 일정으로 정신 없는 마당에 파이썬 웹스크래핑이랑 데이터베이스를 연달아 배우니 두 개가 섞여서 조금 정신이 없는 상태였는데 이렇게 일지를 작성하면서 내 머릿속에도 다시 한 번 정리가 된다. 그럼 앞으로도 부지런히 4, 5주차까지 달려보자!

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기