카테고리 없음

[DAY10] 멋쟁이사자처럼부트캠프 그로스마케팅_Today I Learned

hachaenii 2025. 2. 14. 21:01
오늘의 학습 내용
- WEB Integration
- 웹 크롤링 (다음 수업 블로그에 함께 작성)

 

크롤링은 실습 진행시 실습파트와 함께 정리하는게 기억하기 더 좋을 것 같아서 따로 적어보겠습니다

드디어 금요일,,..!! 금요일 블로그 포스팅 시작해볼게요☆


Review ( SQL과 Python 연동 )
어느덧 익숙해진 SQL과 Python 연동 예제 복습을 시작으로 본격적인 수업을 시작했다.

[ 오늘의 미션 ] SQL과 Python 연동 하여 다음 테이블 만들고, csv파일로 저장하기_전환율계산

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
solution
- 처음 테이블 생성 컬럼은 date, visitors, conversions
- key : CVR(전환율) 값은 계산을 통해 새로 열을 추가하도록 지정
df_result["CVR (%)"] = (df_result["conversions"] / df_result["visitors"]) * 100​
- CSV 저장
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) 파일저장

각 코드를 에디터(예 : 서브라임 텍스트에 작성해 위의 파일 명들로 저장한다

board.zip
0.00MB

 

5) FTP를 이용해 각 디렉토리 구조에 해당 파일 업로드

원격사이트에서 var/gm-lab5/board를 찾아 로컬 사이트에서 각 디렉토리에 해당하는 파일들을 업로드 한 결과

 

6) PYTHON연결하여 실행

python3 app.py

정상작동 콘솔 화면

7)  WEB에 연결해 게시판 열기

브라우저에 http://(사용한 vm인스턴스의 외부 아이피):(port) 입력

- 예시

위의 이미지의 경우 : http://34.64.227.75:5002 입력

- 게시판 

노트북 / 휴대폰으로 모두 확인


" 오늘의 회고 "

오늘은 어렵기도 했지만 재밌기도 했던 수업..!

우선 지난 수업 고생하던 sql 과 python 연동에 익숙해진 나를 보며 놀랐고

웹 서버 연결은 환경 세팅이나 개념이 이해하기 힘들었지만 결과물은 그 어떤 수업보다 재밌었다

내가 이런걸 만들다니..!! 이런느낌.. ㅎ 

크롤링은 ..그저 어려웠던 것 같다 그 와중에 이해하시고 척척 해내시는 분들을 보면 그저 대단...

혼자 주말 동안 개념 이해를 위해 추가 학습을 해보고 

다음주 수업땐 크롤링에 대해 말씀하시고 실습하는 것들을 잘 이해하고 따라갈 수 있길

 

또 한주가 이렇게 빨리 갔네요,, 다들 너무 고생하셨어요 ㅜㅜ 모두 박수,,,☆☆☆

담주에 봬요 즐거운 주말 보내시구요,,!!