Re:제로부터 시작하는 갓생

[TIL.v1] 25/03/21 본문

Daily/TIL

[TIL.v1] 25/03/21

기븜 2025. 3. 21. 09:44
< TIL 반드시 들어가야 할 내용 >
1. 문제: 어떤 문제가 있었는지
2. 시도: 내가 시도해 본 것들 (자세히 쓰기)
3. 해결: 어떻게 해결했는지
4. 배움: 뭘 새롭게 알았는지 (자세히 쓰기)

Me: 걱정은 많지만 재밌다~ 즐겁다~ (셀프최면 거는 중)

???: 얘 거짓말해요~~!!!!

Me: 억울...

# 1.

출근한 뒤 오늘 하루를 돌아보자

* 오전

meta이슈 관련 미팅-무한한 code review...

* 오후

팀원과 업무논의-WBS&calendar 최종 업데이트 후 보고-개인 노션폼생성-weekly report 작성 및 보고

-이어서 담주 플젝 시작을 위한 code review 계속-Gilbert님과의 야간추가공부

 

계획했지만 오늘 하지 못한 일

코드리뷰...?

 

내일 해야 할 일

쓰다 말았던 TIL 마저 작성

주말 동안 오늘 보다 말았던 코드 뜯어서 단계적 확인

코드 생성해보기

 

이번 주에 확인해야 할 사항
더보기
3/4 * 디지털 마케팅이란 무엇인가?
* 무슨 직종인가?
* 광고 마케팅이란 무엇인가?
* 어떤 종류가 있는가?
* API도큐읽기
* Streamlit
* 메타 API
* Naver API
3/5 * 크롤링 공부
* 유튜브 playwright python 공부, 구글링 등
3/6 * 여전히 playwright
3/7 * 가상환경 종류, 차이
3/10 * API 읽는 법과 필요내용 찾는 법
3/14 * API(REST, RESTFUL, FAST) 
3/17 * Python 공부 꾸준히....
* 솔루션 개발요청이 들어올 때 어떤 문서를 보고 지표를 어떻게 써야하는지 생각
3/18 금요일 17:00까지 주간업무보고서 제출

 

배운 점

* 용어파악

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