[250204]사전캠프 13일차 아티클 스터디 + Python 반복문 (while, for, enumerate, break) 함수 (def, return) 문자열 포매팅 f-string, 예외처리 try-except

이효원·2025년 2월 4일

아티클 스터디

마케터에게 데이터 분석력이란? 꼭 필요할까?
[주제]

  • 마케터의 데이터 분석력이란?
    [아티클 요약]
  • 마케팅에서 데이터 분석력이 요구되는 이유
    • 데이터 분석을 통한 인사이트를 바탕으로 더 나은 의사결정을 하기 위해
    • 직감 보다는 데이터 기반 의사결정을 통해 확률 높임
    • 산업군과 직무를 연결짓고, 어떤 부분에서 데이터 기반 의사결정이 필요할지 고민해야 함
  • 실제 데이터 분석의 예시
    • 그로스 마케터 심씨
      • 유입은 늘었지만 실제 결제는 저조
      • 로그인 단계에서 이탈이 많다는 점을 발견
      • 회원가입 방식의 어려움이 고객 이탈의 원인이라는 가설 설정
      • 해결하기 위해 간편 로그인 방식 추가 후 결제율 상승
    • 고객의 행동 데이터를 바탕으로 서비스 개선점 파악
    • 가설-검증을 통해 서비스 발전
  • 마케터를 위한 데이터 분석력 준비 방법
    • 마케터에게 데이터 분석능력이란
      • 데이터를 통해 가설을 세우고 검증하는 '기획력'
      • 데이터 읽고 방향성 설정 및 인사이트 도출
      • 데이터 엔지니어나 데이터 분석가와는 다른 형태로 데이터를 다룸
    • 데이터 기반의 의사결정 습관 만들고, 실생활이나 프로젝트에 접목
      • 예) 헬스장 라커룸 입구에서 미끄러지는 사람들
        • 데이터 : 특정 부분의 손 때 (시각화 데이터)
        • 가설 : 사람들이 손으로 많이 집는 곳이 미끄러워서 넘어진다.
        • 검증 : 실제 사람들의 행동으로 확인
        • 개선 : 미끄럼 방지 패드 부착
    • 문제 인식 -> 가설 수립 -> 데이터를 통한 검증 -> 개선의 프로세스 적용하기
    • 데이터 분석에 필요한 툴은 위의 프로세스를 수행하는 도구일 뿐.
    • 데이터 기반의 사고방식 체득이 필수
  • 마케터에게 데이터 분석력이 필요하지만, 더 중요한 것이 존재함
  • 데이터를 통해 문제를 정의하고, 어떤 지표를 개선해야 하는지 파악하는 능력

[인사이트]
데이터 분석력은 단순한 숫자 해석이 아니라 문제를 정의하고 해결하는 사고방식이다. 특히 마케터는 고객의 행동을 분석하고 실질적인 성과 개선으로 연결하는 것이 보다 중요하다고 한다. 참 말은 쉽고 머리로는 이해되지만, 직접적인 성과로 연결되기까지가 너무 어려울것 같다고 느껴졌다. 중요하고 어려운 만큼, 심화된 기술을 다루는 데이터 엔지니어를 제외한 다른 직무들은 모두 아티클에서 설명하는 ‘기획력’이 가장 중요할 것이라고 생각한다. 앞으로 캠프를 하면서 정신없겠지만 눈 앞에 닥친 공부만 하다 끝내지 않고, 희망 직무와 산업군을 계속해서 고민하고 찾아보며 데이터 분석력을 활용할 수 있을지 생각해야겠다.

Python

반복문

whlie

조건이 참인 동안 계속해서 특정 작업을 반복

while 조건:
    # 조건이 참일 때 실행할 코드   
-- 조건은 반복문이 실행될지 말지를 결정하는 논리적 조건입니다.
-- 조건이 참인 동안 while 문 안에 있는 코드가 반복적으로 실행됩니다.
-- 조건이 거짓이 되면 반복문이 종료됩니다.
-> 예시
i = 0
while i < 10:
    if i == 5:
        break  # i가 5일 때 반복문을 종료
    print(i)
    i += 1
break # 반복문 즉시 종료
continue # 조건을 만족할 경우 다음 반복을 건너뜀

for

for 변수 in 반복가능한_객체:
    # 실행할 코드
enumerate()
'''리스트나 튜플과 같은 반복 가능한 객체에서 
인덱스와 값을 동시에 얻을 수 있게 해주는 함수'''

연습 문제

num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]

1) 리스트에서 짝수만 출력하는 함수 만들기

for num in num_list:
    if num%2 == 0:
        print(num)

2) 리스트에서 짝수의 개수를 출력하기

i = 0
for num in num_list:
    if num % 2 == 0 :
        i = i + 1
print(i)

3) 리스트 안에 있는 모든 숫자 더하기

i = 0
for num in num_list:
    i = i + num
print(i)

4) 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기

i = 0
for num in num_list:
    if num > i:
        i = num
print(i)

함수

함수 = 반복적으로 사용하는 코드에 이름을 붙인 것
기본구조

def 함수이름(매개변수1, 매개변수2, ...):
    # 함수의 본문 (실행할 코드)
    return 반환값  # 함수가 실행된 결과를 반환 (선택적)

조건문에 넣을 값을 바꿔가며 결과를 확인할 때 쓰면 편함

def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27) # 성인입니다.
bus_rate(10) # 청소년입니다
bus_rate(72) # 무료로 이용하세요

✍️ Q. 주민등록번호를 입력받아 성별을 출력하는 함수 만들기

# 내 풀이
def check_gender(pin):
    if pin[7] == '2' or pin[7] == '4':
        print('여자')
    elif pin[7] == '1' or pin[7] == '3':
        print('남자')


# 답안
def check_gender(pin):
    num = pin.split('-')[1][0]
    if int(num) % 2 == 0:
        print('여성')
    else:
        print('남성')

답은 일치하지만, 내 풀이는 문자열 8번째를 비교
답안은 숫자로 변경하여 짝수는 전부 여성 홀수는 남성
답안 풀이가 더 범용적

수정답안
def check_gender(pin):
    num = pin[7]
    if int(num) % 2 == 0:
        print('여자')
    else:
        print('남자')

튜플(tuple) 자료형

리스트와 비슷하지만 불변인 자료형
a = (1,2,3)

집합(set) 자료형

a_set = {a, b, c}
b_set = {b, c, d}
a_set & b_set  # 교집합
a_set | b_set  # 합집합
a_set - b_set # 차집합

f-string

변수로 더 직관적인 문자열 만들기

scores = [
    {'name':'영수','score':70},
    {'name':'영희','score':65},
    {'name':'기찬','score':75},
    {'name':'희수','score':23},
    {'name':'서경','score':99},
    {'name':'미주','score':100},
    {'name':'병태','score':32}    
]
# 문자와 값을 함께 표현하고 싶을 때
for s in scores:
    name = s['name']
    score = str(s['score'])
    print(name+'는 '+score+'점 입니다')
# f-string 이용하여 간단하게 표현 가능
for s in scores:
    name = s['name']
    score = str(s['score'])
    print(f'{name}{score}점입니다')

예외처리 try-except

에러가 있어도 건너뛸 수 있는 방법

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby'},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]
# 'bobby'의 age 값이 없음!
for person in people:
    if person['age'] > 20:
        print (person['name'])
# 오류 발생! 
# try except 구문 이용해 에러 건너 뜀
for person in people:
    try:
        if person['age'] > 20:
            print (person['name'])
    except:
        name = person['name']
        print(f'{name} - 에러입니다')

느낀점

대충은 이해 되는데 문제를 많이 안풀어봐서 아직 완전히 다가오지는 않는다.
내일 강의 끝내고 문제를 많이 풀어봐야겠다..!

0개의 댓글