[DAY10] 멋쟁이사자처럼부트캠프 그로스마케팅_Today I Learned
오늘의 학습 내용
- WEB Integration
- 웹 크롤링 (다음 수업 블로그에 함께 작성)
크롤링은 실습 진행시 실습파트와 함께 정리하는게 기억하기 더 좋을 것 같아서 따로 적어보겠습니다
드디어 금요일,,..!! 금요일 블로그 포스팅 시작해볼게요☆
Review ( SQL과 Python 연동 )
어느덧 익숙해진 SQL과 Python 연동 예제 복습을 시작으로 본격적인 수업을 시작했다.
[ 오늘의 미션 ] SQL과 Python 연동 하여 다음 테이블 만들고, csv파일로 저장하기_전환율계산
solution
date visitors conversions CVR (%) 2025-02-01 1200 150 12.5 2025-02-02 1350 180 13.3333333 2025-02-03 1100 130 11.8181818 2025-02-04 1400 160 11.4285714 2025-02-05 1250 190 15.2
- 처음 테이블 생성 컬럼은 date, visitors, conversions
- key : CVR(전환율) 값은 계산을 통해 새로 열을 추가하도록 지정
- CSV 저장df_result["CVR (%)"] = (df_result["conversions"] / df_result["visitors"]) * 100
오늘 새로 알게 된 것df_result.to_csv("growth_marketing_cvr.csv", index=False, encoding="utf-8-sig")
: encoding="utf-8" 대신 "utf-8-sig"을 사용하면 엑셀에서 한글 사용으로 인해 발생하는 오류를 없앨 수 있다 !
WEB Integration
1. GCP 세팅_VPC 방화벽 규칙 만들기
2. Flask 설치
vm인스턴스의 ssh 클릭하여 콘솔로 이동
cd / --- 루트로 이동
cd var
sudo mkdir gm-lab5 --- 새로운 디렉토리 gm-lab5 생성
sudo chmod -R 777 gm-lab5 ---gm-lab5에 모든 권한 부여
# pip 으로 파이썬 설치 여부 확인
pip
#설치 되어 있지 않을시 다음 코드로 설치
pip install mysql-connector-python
플라스크 설치하기
pip install flask
3. web연동_게시판 만들기
1) MySQL 데이터베이스의 테이블 구조 정의
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
author VARCHAR(255) NOT NULL,
created_at VARCHAR(255),
image VARCHAR(255)
);
2) 웹 연동을 위한 Flask 디렉토리 구조 설정
lab/site1 # 프로젝트의 루트 디렉토리
│
├── app.py # 플라스크 앱의 키 파일
├── templates/ # HTML 템플릿 파일을 저장하는 디렉토리
│ ├── index.html # 게시글 목록을 보여주는 메인 페이지
│ ├── view.html # 게시글 상세보기 페이지
│ └── write.html # 새 게시글 작성 페이지
├── static/ # 정적 파일을 저장하는 디렉토리
│ ├── common.css
│ └── styles.css
│
└── uploads/ # 업로드된 이미지 파일을 저장하는 디렉토리
3) 디렉토리 생성
설정한 Flask 구조에 맞게 Mariadb에 디렉토리 생성
cd /
cd var
cd gm-lab5
sudo mkdir board --- 상위 디렉토리 board 생성
sudo chmod -R 777 board
cd board --- board로 이동
sudo mkdir templates --- board안에 templates 파일
sudo mkdir static --- board안에 static 파일
sudo mkdir uploads --- board안에 uploads 파일
cd .. --- board 에서 나가 gm-lab5로 이동
sudo chmod -R 777 board --- board디렉토리 내부 모든 파일에 읽기,쓰기, 수정 등 권한 부여
4) 파일저장
각 코드를 에디터(예 : 서브라임 텍스트에 작성해 위의 파일 명들로 저장한다
5) FTP를 이용해 각 디렉토리 구조에 해당 파일 업로드
6) PYTHON연결하여 실행
python3 app.py
7) WEB에 연결해 게시판 열기
브라우저에 http://(사용한 vm인스턴스의 외부 아이피):(port) 입력
- 예시
위의 이미지의 경우 : http://34.64.227.75:5002 입력
- 게시판
" 오늘의 회고 "
오늘은 어렵기도 했지만 재밌기도 했던 수업..!
우선 지난 수업 고생하던 sql 과 python 연동에 익숙해진 나를 보며 놀랐고
웹 서버 연결은 환경 세팅이나 개념이 이해하기 힘들었지만 결과물은 그 어떤 수업보다 재밌었다
내가 이런걸 만들다니..!! 이런느낌.. ㅎ
크롤링은 ..그저 어려웠던 것 같다 그 와중에 이해하시고 척척 해내시는 분들을 보면 그저 대단...
혼자 주말 동안 개념 이해를 위해 추가 학습을 해보고
다음주 수업땐 크롤링에 대해 말씀하시고 실습하는 것들을 잘 이해하고 따라갈 수 있길
또 한주가 이렇게 빨리 갔네요,, 다들 너무 고생하셨어요 ㅜㅜ 모두 박수,,,☆☆☆
담주에 봬요 즐거운 주말 보내시구요,,!!
