Re:제로부터 시작하는 갓생
[TIL.v1] 25/03/21 본문
< TIL 반드시 들어가야 할 내용 >
1. 문제: 어떤 문제가 있었는지
2. 시도: 내가 시도해 본 것들 (자세히 쓰기)
3. 해결: 어떻게 해결했는지
4. 배움: 뭘 새롭게 알았는지 (자세히 쓰기)
Me: 걱정은 많지만 재밌다~ 즐겁다~ (셀프최면 거는 중)
???: 얘 거짓말해요~~!!!!
Me: 억울...
# 1.
출근한 뒤 오늘 하루를 돌아보자
* 오전
meta이슈 관련 미팅-무한한 code review...
* 오후
팀원과 업무논의-WBS&calendar 최종 업데이트 후 보고-개인 노션폼생성-weekly report 작성 및 보고
-이어서 담주 플젝 시작을 위한 code review 계속-Gilbert님과의 야간추가공부
계획했지만 오늘 하지 못한 일
코드리뷰...?
내일 해야 할 일
쓰다 말았던 TIL 마저 작성
주말 동안 오늘 보다 말았던 코드 뜯어서 단계적 확인
코드 생성해보기
이번 주에 확인해야 할 사항
3/4 | * 디지털 마케팅이란 무엇인가? * 무슨 직종인가? * 광고 마케팅이란 무엇인가? * 어떤 종류가 있는가? * API도큐읽기 * 메타 API |
3/5 | * 크롤링 공부 * 유튜브 playwright python 공부, 구글링 등 |
3/6 | * 여전히 playwright |
3/10 | * API 읽는 법과 필요내용 찾는 법 |
3/14 | * API(REST, RESTFUL, FAST) |
3/17 | * Python 공부 꾸준히.... * 솔루션 개발요청이 들어올 때 어떤 문서를 보고 지표를 어떻게 써야하는지 생각 |
3/18 |
배운 점
* 용어파악
1) 파워링크
- 정의: 검색 엔진 결과 페이지에 나오는 광고. 특정 키워드와 관련된 광고를 상단에 노출시키는 서비스
- 설명: 사용자가 검색한 키워드와 관련 있는 광고가 검색결과 위 or 옆에 노출
- 특징: CPC(클릭당 비용)를 지불 / 키워드와 관련된 타겟팅 광고
- 예시: 사용자가 "맛집"을 검색하면, "맛집 쿠폰"이나 "근처 인기 맛집" 광고가 위쪽에 보임
# 파워링크 광고 데이터를 리스트로 관리하고 출력하는 예제
ads = [{"title": "맛집 할인 쿠폰", "link": "http://example.com/food"},
{"title": "근처 인기 맛집", "link": "http://example.com/popular"},]
for ad in ads:
print(f"광고 제목: {ad['title']}")
print(f"광고 링크: {ad['link']}")
print("-" * 20)
2) 쇼핑검색
- 정의: 사용자가 원하는 상품을 검색하면 관련 상품을 비교하거나 구매할 수 있도록 해주는 검색 서비스
- 설명: 여러 쇼핑몰에서 상품 정보를 가져와 비교해줌
- 특징: 가격, 리뷰, 배송비 등을 비교 / 이미지와 함께 상세한 상품 정보를 제공
- 예시: "청바지"를 검색하면 다양한 브랜드의 청바지와 가격이 나옴
# 쇼핑 검색 결과 표시 예제
# 상품 리스트를 순회하며 이름, 가격, 평점을 출력하는 코드
products = [{"name": "청바지", "price": 30000, "rating": 4.5},
{"name": "운동화", "price": 50000, "rating": 4.8},]
for product in products:
print(f"상품명: {product['name']}")
print(f"가격: {product['price']}원")
print(f"평점: {product['rating']}점")
print("-" * 20)
3) 마케팅 대행업체 역할
- 정의: 기업의 광고, 홍보, 브랜드 관리를 대신해주는 전문 회사
- 설명: 기업이 효과적으로 광고하고 고객을 유치할 수 있게 도움
- 특징: 광고 캠페인 기획 및 실행 / 소셜 미디어, 검색 엔진, 콘텐츠 마케팅 지원
- 예시: A사가 B마케팅 대행사에 "신제품 홍보"를 요청
# 마케팅 대행 업무 예제
# 마케팅 대행사가 캠페인을 기획하고 실행하는 프로세스를 간단히 구현한 예제
def run_marketing_campaign(client_name, campaign_name):
print(f"{client_name}의 '{campaign_name}' 캠페인을 시작합니다.")
print("소셜 미디어에 광고 게시 중...")
print("검색 엔진 광고 진행 중...")
print(f"{campaign_name} 캠페인이 완료되었습니다!")
# 함수 실행
run_marketing_campaign("A사", "신제품 홍보")
4) 디스플레이 광고
- 정의: 웹사이트나 앱의 특정 영역에 배너 or 이미지 형태로 표시되는 광고
- 설명: 눈에 띄는 이미지나 동영상으로 시각적인 광고 진행
- 특징: 시각적 요소 중심 / 다양한 플랫폼(앱, 웹사이트)에 노출
- 예시: "오늘만 할인!" 배너가 웹페이지 오른쪽에 나옴
# 디스플레이 광고 구현 예제
# 디스플레이 광고의 이미지와 메시지를 출력하는 코드
ad_banner = {"image": "sale-banner.jpg",
"message": "오늘만 할인!",}
print(f"광고 이미지: {ad_banner['image']}")
print(f"광고 메시지: {ad_banner['message']}")
5) 소재
- 정의: 광고에서 사용되는 이미지, 동영상, 텍스트 등 콘텐츠 의미
- 설명: 광고에 필요한 모든 창작물
- 특징: 창의적이고 시선을 끌어야함 / 메세지를 효과적으로 전달
- 예시: "지금 가입하면 50% 할인!"이라는 텍스트가 포함된 이미지
# 광고 소재 생성 예제
# 광고 소재에 포함되는 제목과 설명을 관리하고 출력하는 코드
ad_materials = {"headline": "지금 가입하면 50% 할인!",
"description": "혜택을 놓치지 마세요!",}
print(f"광고 헤드라인: {ad_materials['headline']}")
print(f"광고 설명: {ad_materials['description']}")
* 상황에 따른 메서드 사용
1) json()
- 정의: 서버의 응답 데이터를 JSON 형식으로 파싱(구조화)해 Python의 딕셔너리 형태로 반환
- 필요사항
응답 데이터가 JSON 형식이어야한다. if 아니라면 오류 발생
데이터를 가져오기 전에 반드시 응답 상태 코드 확인 필요(ex. reponse.status_code가 200인지 확인)
- 예시
# 서버에서 JSON 데이터를 가져와 Python 딕셔너리로 변환한 후 출력
import requests
# API 요청 예제
response = requests.get("https://jsonplaceholder.typicode.com/todos/1")
# 응답 상태 코드 확인
if response.status_code == 200:
# JSON 데이터 파싱
data = response.json()
print(f"ID: {data['id']}")
print(f"Title: {data['title']}")
else:
print("API 요청에 실패했습니다.")
2) text()
- 정의: 응답 데이터를 문자열 형식으로 반환. HTML, JSON, 단순 텍스트 등 모든 형식을 그대로 문자열로 반환
- 필요사항
데이터를 파싱하기 전에 원하는 형식인지 확인 필요
문자열 데이터를 적절히 처리하려면 추가 파싱 작업이 필요할 수 있다(ex. JSON 데이터라면 json.loads() 사용)
- 예시
# 요청한 웹 페이지의 전체 내용을 텍스트로 출력
import requests
# 웹 페이지 요청 예제
response = requests.get("https://example.com")
# 응답 상태 코드 확인
if response.status_code == 200:
# 텍스트 내용 출력
print(response.text[:500]) # 처음 500자만 출력
else:
print("웹 페이지 요청에 실패했습니다.")
3) content():
- 정의: 응답 데이터를 바이너리(이진 데이터) 형식으로 반환. 일반적으로 이미지, 동영상, 파일 다운로드 등에 사용됨
- 필요사항
데이터가 바이너리 형식(예: 이미지, PDF 등)인 경우 사용해야 한다
저장하거나 처리하기 위해 추가 작업이 필요합니다(ex. 파일로 저장)
사용 시 BytesI0 인코딩 필요(아래에서 추가 설명)-> 객체 생성-> .sep()으로 구분!
- 예시
# URL에서 이미지를 다운로드하고 로컬 파일로 저장
import requests
# 이미지 다운로드 예제
response = requests.get("https://example.com/image.jpg")
# 응답 상태 코드 확인
if response.status_code == 200:
# 바이너리 데이터 저장
with open("image.jpg", "wb") as file:
file.write(response.content)
print("이미지가 성공적으로 저장되었습니다.")
else:
print("이미지 요청에 실패했습니다.")
4) 정리
json(): JSON 데이터를 딕셔너리로 변환. JSON 형식인지 확인 필요
text: 응답 데이터를 문자열로 반환. 형식에 따라 추가 처리 필요
content: 바이너리 데이터를 반환. 파일 저장 등 추가 작업 필요
* 바이너리 데이터
- 정의: 컴퓨터가 이해하는 0과 1로 구성된 데이터. 주로 텍스트가 아닌 파일(이미지, 동영상, 오디오, PDF 등)을 처리할 때 사용
- 설명: 사람이 바로 읽을 수 없는 데이터 형식. 파일이나 멀티미디어 데이터를 저장하거나 전송할 때 주로 사용
- 예시: 이미지 파일(.jpg), 동영상 파일(.mp4), 음악 파일(.mp3) 등
* BytesIO
- 정의: io.BytesIO 메모리에서 바이너리 데이터를 관리하기 위한 도구. 파일처럼 바이너리 데이터를 읽고 쓸수 있게 도와줌
- content() 메소드와의 관계
requests 라이브러리의 content 메소드는 서버로부터 받은 바이너리 데이터를 반환함
데이터 처리시 다른 라이브러리(ex. 이미지 처리)에서 사용할때 메모리에 임시 파일 취급을 위해 BytesIO를 사용해야함
- 예제
import requests
from io import BytesIO # 서버로부터 받은 바이너리 데이터를 파일처럼 다룰 수 있도록 메모리에 저장
from PIL import Image # Pillow 라이브러리 사용해 이미지 데이터 열고 처리
# 이미지 다운로드
response = requests.get("https://example.com/image.jpg")
if response.status_code == 200:
# BytesIO를 사용하여 바이너리 데이터 처리
image_data = BytesIO(response.content)
# PIL로 이미지 열기
image = Image.open(image_data)
image.show() # 이미지 보기
else:
print("이미지 다운로드 실패")
기타
* 점심 오늘도 again 샤브칼국수&🍻(반주.. 5명이서 3병!) 먹느라 사진은 없음^^..
* 나머지 추가 공부 겸 야근..! 저녁 피자! 물론 이것도 배고파서 먹느라 사진이 단 한 장도 없다..^^
'Daily > TIL' 카테고리의 다른 글
[TIL.v1] 25/03/24 (0) | 2025.03.24 |
---|---|
[TIL.v1] 25/03/22~23 (0) | 2025.03.22 |
[TIL.v1] 25/03/18 (0) | 2025.03.18 |
[TIL.v1] 25/03/17 (2) | 2025.03.17 |
[TIL.v1] 25/03/13 (0) | 2025.03.14 |