[데이터분석] 부트캠프 TIL

20251205 TIL

myun0506 2025. 12. 5. 17:54

Today I Learn

- 튜플/리스트

 

a = ['사과','배','바나나'] # 리스트
a[1] = '감' # 변경 가능
print(a)

b = ('사과','배','바나나') # 튜플
# b[1] = '감' # 변경 불가
print(b)

people = [{'name':'bob','age':27},{'name':'john','age':30}] # 가변형 딕셔너리
people2 = [('bob',27),('john',30)] # 불변형 (튜플형) 딕셔너리 거의 사용x

c = [1,2,3,5,4,2,1,6,7,3,8,4]
c_set = set(c) # 집합 (중복 제거)
print(c_set)

d = ['사과','감','배','수박','딸기']
e = ['바나나','사과','귤','딸기','참외']
d_set = set(d)
e_set = set(e)
print(d_set & e_set) # 교집합
print(d_set | e_set) # 합집합
print(d_set - e_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 = s['score']
    print(name+'의 점수는 '+str(score)+'점 입니다.')
    print(f'{name}의 점수는 {score}점입니다.') # f-string의 활용

 

- 예외처리

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}
]

for person in people:
    try:
        if person['age'] > 20:
            print(person['name'])
    except:
            print(person['name'],'에러입니다') 
            # 코드 실행 중 에러날 때 stop 하지 않고 계속 실행할 수 있게끔
            # bobby의 age가 없어서 에러날 때 확인 가능
            # 웬만해선 안사용하는게 좋음

 

- 파일 불러오기

 

- main_func.py

def say_hi():
    print('안녕!')

def say_hi_to(name):
    print(f'{name}님 안녕하세요')

 

- main_text.py

from main_func import *

say_hi()
say_hi_to('코코')

 

 

- 한줄로 쓰기

 

- if 문

num = 3

result = ('짝수' if num % 2 == 0 else '홀수')

print(f'{num}은 {result}입니다')

 

- for 문

a_list = [1,3,2,5,1,2]
b_list = []

for a in a_list:
    b_list.append(a*2) # 평소대로

b_short_list = [a*2 for a in a_list] # 한줄로 쓰기

print(b_list)
print(b_short_list)

 

 

- map(), filter(), lambda()

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

def check_adult(person):
    return ('성인' if person['age'] > 20 else '청소년')

# map 활용
# map(function, iterable)
result = map(check_adult, people) # people 하나하나를 check_adult 함수에 넣어라

# 함수 대신 lambda 활용
# lambda 인자: 표현식
result_lambda = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)

# filter 활용
result_filter = filter(lambda x: x['age'] > 20, people)

print(list(result))
print(list(result_lambda))
print(list(result_filter))

 

- 함수 심화

def cal(a,b):
    return a+2*b

result = cal(b=2, a=1) # 지정하면 순서 바뀌어도 상관x

# 인자 무제한으로 넣어줄 수 있음
def call(*args):
    for name in args:
        print(f'{name} 밥먹어라')

call('영수','철수','짱구')

 

- 클래스

class Monster():
    hp = 100
    alive = True

    def damage(self, attack):
        self.hp -= attack
        if self.hp < 0:
            self.alive = False

    def status_check(self):
        if self.alive:
            print('살았다')
        else:
            print('죽었다')

m1 = Monster() # 인스턴스
m1.damage(150)
m1.status_check()

m2 = Monster()
m2.damage(50)
m2.status_check()

 

- JD 수집

JD #1 오뚜기 2025년 하반기 대졸신입사원 공개채용

  • 직무명: 데이터분석
  • 출처 링크: https://jasoseol.com/recruit/100524
  • 주요 업무 요약: 데이터분석 과제 기획 및 프로젝트 진행/ 데이터 전략 수립 및 필요 데이터 자산화/ 내부 데이터 품질 관리 및 외부 데이터 수집/ 도메인의 데이터 분석과 프로젝트 경험을 바탕으로 데이터 사이언티스트로 성장
  • 요구 역량:
    • 사용 툴: Python 활용 프로그래밍 역량(데이터 수집, 처리, 분석), SQL, Tableau, Streamlit, Airflow
    • 경력/포트폴리오: 데이터분석 관련 자격증 소지자 (빅분기, ADsp, SQLD 등), 데이터 활용을 통한 비즈니스 프로세스 개선 역량 보유자, AI 활용 능력 우수자

JD #2 미래에셋생명 2025년 하반기 신입채용

  • 직무명: DX(데이터분석/생성형 AI)
  • 출처 링크: https://jasoseol.com/recruit/100581
  • 주요 업무 요약: 생성형 AI 기반 보험업무 자동화 어시스턴트/에이전트 기획 및 개발, 데이터 정제 및 LLM 파인튜닝/프롬프트 엔지니어링, 데이터 분석 기반 ML/DL 모델 기획 및 개발, 보험 비즈니스 프로세스 분석 및 AI 적용기회 발굴
  • 요구 역량:
    • 사용 툴: 생성형 AI/ML/DL 주요 프레임워크
    • 경력/포트폴리오: 생성형 AI 혹은 데이터분석관련 자격증 보유, 주요 프레임워크 활용 경험 또는 관련 프로젝트 수행 경험

JD #3 LG 유플러스 2025 하반기 신입채용

  • 직무명: People Analytics
  • 출처 링크: https://jasoseol.com/recruit/100312
  • 주요 업무 요약: HR 데이터 분석/수집/정제 및 인사이트 도출, 데이터 분석 결과를 의사결정에 활용할 수 있도록 시각화, 데이터 기반의 조직 진단 및 문제 해결 지원, HR 시스템 및 분석 도구 개발/고도화
  • 요구 역량:
    • 사용 툴: 통계 분석 프로그램(Python, R, SQL, SPSS, SAS 등) 및 프로그래밍 언어, 시각화 Tool(Tableau, Power BI 등)
    • 경력/포트폴리오: 데이터 분석 및 통계적 사고 능력, 데이터 분석 경험

공통점 & 차이점 분석 

  • 공통적으로 요구되는 핵심 역량은 무엇인가요?
    • python 활용 및 프로그래밍 역량
    • SQL, Tableau 등 통계와 시각화 Tool
  • 각 JD마다 어떤 차별점이 있었나요?
    • 1번의 경우, 기본적인 데이터분석에 더 초점이 맞춰져있음
    • 2번의 경우, 생성형 AI나 머신러닝 등 조금 더 전문적인 역량 요구
    • 3번의 경우는 일반적인 데이터분석보다는 HR에 더 초점이 맞춰져 있음

나의 목표 정리

  • 가장 흥미를 느낀 도메인 분야?
    • 금융, 회계 데이터
  • 조사후, 내가 아직 부족하다고 느낀 역량?
    • 시각화 Tool 다루는 역량, 머신러닝이나 생성형 AI 프레임워크 경험
  • 사전캠프에서 꼭 성장시키고 싶은 능력?
    • python 활용 능력 (상), 통계 분석 프로그램 (SQL, R 등) 활용 능력 (중상), 생성형 AI와 머신러닝 프레임워크 활용 능력(중) -> 최종 캠프까지 포함

 

- Pycharm 다운로드 및 인터프리터 연결

  • 문제점
    • pycharm 2020 버전이 python 3.14 버전과 호환이 안되고, python 인터프리터 다운받을 때 설치 경로 안에 한글이 들어가면 문제가 생김
  • 해결방안
    • pycharm 2025 버전으로 다시 다운받고, python 3.14 다운받을 때 자동 다운이 아니라 custom으로 설정해서 설치 경로 직접 수정함 (program files에 다운받으려 했는데 이것도 접근성에 문제가 생겨서 로컬디스크에 다운받음)

- tomorrow's plan

  • 통계학 기초 강의 챕터 1~3
  • 밀린 아티클

 

 

'[데이터분석] 부트캠프 TIL' 카테고리의 다른 글

20251215 TIL  (1) 2025.12.15
20251212 TIL  (0) 2025.12.12
20251209 TIL  (1) 2025.12.09
20251208 TIL  (0) 2025.12.08
20251204 TIL  (0) 2025.12.04