카테고리 없음

멋쟁이사자처럼부트캠프 그로스마케팅 1기 DAY10

sihyeon1 2025. 2. 15. 00:51
📁 [파일명].py 템플릿 - 주석 ver.
import mysql.connector  # MySQL/MariaDB와 연결하기 위한 라이브러리
import pandas as pd  # 데이터프레임 처리를 위한 pandas 라이브러리

# 1. MariaDB 연결 설정
# 데이터베이스 접속을 위한 설정 정보를 딕셔너리 형태로 저장
db_config = {
    "host": "localhost",      # MariaDB 서버 주소
    "user": "root",           # 사용자 이름
    "password": "password",   # 비밀번호
    "database": "test_db"     # 사용할 데이터베이스
}

# MariaDB 연결
conn = mysql.connector.connect(**db_config)  # 설정 정보를 이용해 MariaDB에 연결
cursor = conn.cursor()  # SQL 실행을 위한 커서 생성

# 2. 테이블 생성 (이미 존재하면 삭제 후 생성)
cursor.execute("DROP TABLE IF EXISTS employees;")  # 기존 테이블이 존재하면 삭제
cursor.execute("""
CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,  # 자동 증가하는 기본 키
    name VARCHAR(50),  # 이름 (최대 50자)
    age INT,  # 나이 (정수형)
    department VARCHAR(50),  # 부서명 (최대 50자)
    salary DECIMAL(10,2)  # 급여 (소수점 2자리까지 허용)
);
""")  # 새로운 employees 테이블 생성

# 3. 샘플 데이터 생성 (pandas DataFrame 활용)
# 직원 정보를 저장하는 딕셔너리를 생성한 후 pandas의 DataFrame으로 변환
data = {
    "name": ["Alice", "Bob", "Charlie", "David", "Eve"],
    "age": [25, 30, 35, 28, 40],
    "department": ["HR", "IT", "Finance", "Marketing", "IT"],
    "salary": [50000, 70000, 80000, 60000, 90000]
}

df = pd.DataFrame(data)  # pandas 데이터프레임 생성

# 4. 데이터 삽입
# employees 테이블에 데이터를 삽입하기 위한 SQL 쿼리 작성
insert_query = "INSERT INTO employees (name, age, department, salary) VALUES (%s, %s, %s, %s)"
# 데이터프레임을 튜플 리스트 형태로 변환하여 executemany에 전달
values = [tuple(row) for row in df.to_numpy()]

cursor.executemany(insert_query, values)  # 여러 개의 데이터 한 번에 삽입
conn.commit()  # 변경사항을 데이터베이스에 반영

print("데이터 삽입 완료")  # 데이터 삽입 완료 메시지 출력

# 5. 데이터 조회 및 pandas DataFrame으로 변환
cursor.execute("SELECT * FROM employees")  # employees 테이블의 모든 데이터 조회
rows = cursor.fetchall()  # 조회한 결과를 리스트 형태로 저장

# 컬럼명 가져오기
column_names = [desc[0] for desc in cursor.description]  # 커서에서 컬럼명을 추출
# 조회한 데이터를 pandas 데이터프레임으로 변환
df_result = pd.DataFrame(rows, columns=column_names)

# 6. 결과 출력 (pandas 기본 출력 방식 사용)
print("\n=== Employees Table Data ===")
print(df_result.to_string(index=False))  # 인덱스 없이 데이터 출력

# CSV로 저장 (필요한 경우)
df_result.to_csv("employees_data.csv", index=False, encoding="utf-8-sig")  # 데이터를 CSV 파일로 저장
print("데이터를 'employees_data.csv' 파일로 저장하였습니다.")

# 연결 종료
cursor.close()  # 커서 종료
conn.close()  # 데이터베이스 연결 종료

 

 

 

 

 

 


 

 

 

Flask WebServer 동작 확인

1. Sublime Text에 복사-붙여넣기 + 저장(app.py)

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5001, debug=True)

 

 

2. FTP에서 업로드

 

 

 

3. 리눅스에 입력(python3 app.py)

 

 

 

4. 브라우저에 (http://ip주소:포트번호) 입력

 

 

 

5. 정상 출력 확인 가능

 

 

 

 

 


 

 

그로스 마케팅 주요 지표

  1. CTR (Click-Through Rate): clicks / impressions * 100 → 광고 클릭률 (%)
  2. CVR (Conversion Rate): conversions / clicks * 100 → 전환율 (%)
  3. ROAS (Return On Ad Spend): revenue / cost * 100 → 광고 투자 수익률 (%)
✅ 참고
impressions (INT) - 광고 노출 수
clicks (INT) - 광고 클릭 수
conversions (INT) - 구매 또는 회원가입 전환 수
cost (DECIMAL) - 총 광고 비용 (단위: 원)
revenue (DECIMAL) - 총 매출 (단위: 원)

 


 

그로스 마케팅에서 크롤링의 이유와 목적

크롤링은 데이터를 자동 수집해 마케팅 전략을 최적화하고 의사 결정을 개선하는 데 활용된다.

1. 경쟁사 및 시장 분석

  • 경쟁사의 가격, 프로모션, 마케팅 전략을 추적해 경쟁 우위 확보

2. 소비자 행동 분석

  • 리뷰·SNS 데이터를 분석해 제품 개선 및 맞춤 마케팅 기획

3. 광고·SEO 최적화

  • 검색 트렌드·인기 키워드 수집으로 광고 성과 극대화

4. 리드(잠재 고객) 발굴

  • B2B 기업 데이터·SNS 관심 그룹 분석해 맞춤 마케팅 진행

5. 가격 비교·조정

  • 경쟁사 가격을 분석해 다이내믹 프라이싱 전략 적용

6. 콘텐츠 마케팅 강화

  • 인기 콘텐츠 분석으로 효과적인 블로그·SNS 콘텐츠 제작

7. 수요 예측·재고 관리

  • 판매 데이터 분석을 통해 재고 최적화 및 마케팅 기획

8. SNS 및 커뮤니티 모니터링

  • 브랜드 언급·소비자 반응 분석으로 소셜 리스닝 수행

 


 

스타트업을 위한 그로스 마케팅 크롤링 전략

 

1. 목표 설정: 크롤링의 목적 정의

크롤링을 시작하기 전에 마케팅 목표를 명확히 정의해야 한다.
경쟁사 분석 경쟁사의 가격, 마케팅 전략, 신제품 동향 분석
소비자 트렌드 파악 소셜 미디어, 리뷰 데이터 분석을 통한 고객 니즈 탐색
광고 및 키워드 최적화 검색 트렌드 및 인기 키워드를 분석하여 광고 캠페인 효율 극대화
리드(잠재 고객) 수집 특정 관심사를 가진 고객 정보를 수집하여 B2B, B2C 마케팅 활용

 

2. 데이터 소스 선정: 어디에서 데이터를 크롤링할 것인가?

 

① 경쟁사 및 업계 트렌드 분석

  • 경쟁사의 웹사이트, 이커머스 플랫폼 (예: 쿠팡, 네이버 쇼핑, 아마존)
  • 가격 비교 사이트 (예: 다나와, 가격비교 사이트)
  • 뉴스 및 미디어 (예: 네이버 뉴스, 구글 뉴스)

② 고객 반응 및 소비자 데이터 수집

  • 상품 리뷰 및 평점 (예: 네이버 리뷰, 아마존 리뷰, 트위터, 인스타그램)
  • SNS 트렌드 및 해시태그 분석 (예: 트위터, 인스타그램, 유튜브, 레딧)
  • 커뮤니티 (예: 클리앙, 뽐뿌, 디시인사이드, 네이버 카페)

③ 검색 및 광고 최적화

  • 검색 키워드 및 트렌드 (예: 네이버 트렌드, 구글 트렌드)
  • 경쟁사의 광고 캠페인 (예: 페이스북 광고 라이브러리, 구글 애즈)

 

3. 크롤링 기술 스택 선정

기능 도구
크롤링 BeautifulSoup, Scrapy, Selenium
API 데이터 수집 Requests, Google Trends API, Twitter API, Facebook API
데이터 저장 및 분석 Pandas, MongoDB, MySQL, PostgreSQL
데이터 시각화 Matplotlib, Tableau, Google Data Studio
머신러닝 분석 scikit-learn, TensorFlow, Keras

 

 

4. 크롤링 실행 및 데이터 수집

① 크롤링 전략 설정

  • 정적 페이지 → BeautifulSoup 활용 (HTML 데이터 분석)
  • 동적 페이지 → Selenium 사용 (JavaScript 렌더링 처리)
  • API 지원 → Requests 또는 공식 API 활용

② 크롤링 스케줄링

  • 데이터를 한 번 크롤링하는 것이 아니라 정기적으로 업데이트 필요
  • Airflow, Cron Job 등을 활용하여 자동화

③ 데이터 필터링 및 정제

  • 중복 데이터 제거 및 정규화
  • 자연어처리(NLP)를 활용한 키워드 추출 및 감성 분석 (예: NLTK, KoBERT)

 

5. 데이터 분석 및 활용

① 경쟁사 가격 및 제품 전략 분석

  • 가격 변화 감지 → 동적 가격 조정(Dynamic Pricing)
  • 제품 리뷰 분석 → 소비자 피드백 반영

② 검색 및 광고 최적화

  • 검색 키워드 크롤링 → SEO & PPC 전략 개선
  • 광고 카피 & 이미지 비교 → CTR(클릭률) 높은 광고 요소 분석

③ 고객 맞춤형 마케팅

  • 소셜미디어 크롤링 → 바이럴 마케팅 기회 탐색
  • 소비자 리뷰 감성 분석 → 맞춤형 프로모션 기획

 

6. 크롤링 법적 이슈 및 윤리적 고려

스타트업이 크롤링을 활용할 때, 법적 문제를 피하기 위한 가이드라인을 따라야 한다.
  • 웹사이트 이용 약관 준수: Robots.txt 파일 확인 (https://example.com/robots.txt)
  • API 활용 우선: 공식 API가 제공되는 경우 API 사용 권장
  • 개인정보 보호 준수: 고객 데이터 수집 시 GDPR, 개인정보 보호법 준수
  • 과부하 방지: 크롤링 시 서버에 부담을 주지 않도록 요청 간격 조절 (time.sleep())

 

 

 

 

 

 

 

회고

6일차에 처음 SQL 할 때는 너무 어려워서 괜찮을까..했는데 또 한 주가 끝나니 많이 성장한 나를 확인할 수 있었다!  위클리 테스트도 빠르게 풀어낸 것 같고,,,,(물론 정답이라는 건 아니다) 생각보다 낑낑대며 따라간 보람이 컸다ㅎㅎ 다음주도 파이팅!