내일배움 본캠프

[내일배움 본캠프] Python 기초 다지기

hyeon-ji 2026. 5. 26. 20:56

오늘은 AI 진단퀴즈와 CodeKata 2문제를 풀고 라이브 세션을 수료한 뒤,

데이터 리터러시 강의 마무리 후 이력서를 작성했다.


오늘은 에이타니를 통해 CSV 데이터 구조 이해능력에 대한 퀴즈를 진행했다. 

 

header=False는 잘못된 표현이었다..

헤더가 없는 CSV 파일을 읽기 위해서는 'B'번과 같이 header = None 파라미터를 사용해야 한다. 이렇게 작성하면 pandas가 첫 번째 행을 헤더로 인식하지 않고 데이터로 처리하며, 자동으로 0, 1, 2... 와 같은 숫자로 열 이름을 생성한다. 


▶ CodeKata

● 나이 출력하기

def solution(age):
  years = 2022 - num + 1
  return years


num = 23
print("2022년 기준", num,"살이므로", solution(num),"년생입니다.")
# 2022년 기준 23 살이므로 2000 년생입니다. 출력

 

● 숫자 비교하

def solution(num1, num2):
    if num1 == num2:
      answer = 1
      print("num1 이",num1,"이고 num2가",num2,"이므로 같습니다. 따라서",answer,"을 return합니다.")
    else:
      answer = -1
      print("num1 이",num1,"이고 num2가",num2,"이므로 다릅니다. 따라서",answer,"을 return합니다.")

num1 = 2
num2 = 3
solution(num1, num2)
# num1 이 2 이고 num2가 3 이므로 다릅니다. 따라서 -1 을 return합니다. 출력

 

함수 사용 시 매개변수 조심! 

두 번째 문제를 풀 때 출력 문장과 answer 값이 함께 출력되었다. 나는 출력 문장만 얻고 싶은데.. 어떻게하면 출력 문장만 얻을 수 있을지 이것저것 만져보다가 return을 삭제했는데 오류 없이 내가 원하는 값만 얻을 수 있었다! 

def solution(num1, num2):
    if num1 == num2:
        answer = 1
    else:
        answer = -1

    return answer

num1 = 2
num2 = 3

result = solution(num1, num2)

print("num1 이", num1, "이고 num2가", num2, "이므로 다릅니다. 따라서", result, "을 return합니다.")

 

위와 같이 return을 포함하여 작성할 수도 있다!


Python 라이브 세션

 

● return

- 함수를 계산 도구처럼 쓸 수 있게 하고 실행 결과를  "밖으로 돌려주는 문장"이다. 

- return이 없다면 함수는 단순히 실행만 하고 끝난다. but 있다면 결과를 저장하거나 재활용할 수 있다.

 

▶ 함수의 가변 매개변수와 키워드 매개변수

구분 문법 의미 예시
가변 매개변수 *args 개수가 정해지지 않은 인자들을 튜플(tuple) 형태로 받음 def func(*args):
키워드 매개변수 **kwargs 이름이 있는 인자들을 딕셔너리(dict) 형태로 받음 def func(**kwargs):

 

가변 매개변수 *args

def add_all(*args):
    print(args)  # 튜플 형태로 들어옴
    return sum(args)

print(add_all(1, 2, 3))
print(add_all(10, 20, 30, 40, 50))

# 일반 매개변수 + 가변 매개변수 혼합
def greet_all(greeting, *names):
    for n in names:
        print(f"{greeting}, {n}님!")

greet_all("안녕하세요", "Hannah", "Yumi", "Minji")

 

키워드 매개변수 *kwargs

def user_info(**kwargs):
    print(kwargs)

user_info(name="Hannah", age=25, major="Data Science")

# 고정 + 키워드 혼합
def introduce(title, **kwargs):
    print(f"[{title}]")
    for k, v in kwargs.items():
        print(f"{k} : {v}")

introduce("학생 정보", name="Hannah", age=25, major="AI")

 

☞ 가변 매개변수는 튜플 형태로만, 키워드 매개변수는 딕셔너리 형태로만 가능하다. list는 불가! list는 튜플 형태로 변환 후 가능

 

▶ 파일 입출력 기본 개념

 

파일 입출력( I/O ) : 컴퓨터는 프로그램이 종료되면 메모리(RAM)의 내용이 사라진다. 꼭 파일(하드디스크)에 저장 필요!

● 파일 여는 방법 : open()

f = open("data.txt", "w", encoding="utf-8")
f.write("Hello Python!\n")
f.close()

''' 
위의 코드를 실행하면 파일에 data.txt가 생성된다
'''

 

open() 함수 인자

→ encoding이란?  나의 말을 컴퓨터의 말로 해석하는 것

인코딩 특징 현재 사용 빈도
UTF-8 현대 표준 압도적
CP949 / EUC-KR 한글 Windows 레거시 한국에서 아직 많음
ASCII 영문 전용 거의 내부용
UTF-16 Windows/특정 시스템 가끔
Latin-1(ISO-8859-1) 유럽권 레거시 드물게

 

인자 설명
"data.txt" 파일 이름 또는 경로
"w" 쓰기 모드(write): 기존 내용 삭제
"r" 읽기 모드(read): 파일 읽기
"a" 추가 모드(append): 기존 뒤에 이어쓰기
"b" 바이너리(binary) 모드 (이미지, 엑셀 등)
"t" 텍스트(text) 모드, 기본값
encoding="utf-8" 한글 인코딩 설정 (없으면 깨질 수 있음)

 

→ with open() : 안전한 파일 처리. with문은 f.close() 작성할 필요 없이 자동으로 닫아준다.

with open("data.txt", "w", encoding="utf-8") as f:
    f.write("안녕하세요!\n")
    f.write("파일 입출력 공부 중입니다.")

 

● 파일 읽는 방법

○ read() : 파일 전체, 모든 데이터를 str 형태로 읽는다.

with open("data.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)
    
''' 
안녕하세요!
파일 입출력 공부 중입니다.
'''

 

○ readline() : 한 줄(각 행)씩 읽는다.

with open("data.txt", "r", encoding="utf-8") as f:
    line1 = f.readline()
    line2 = f.readline()
    print(line1.strip(), line2.strip())
    
'''
안녕하세요! 파일 입출력 공부 중입니다.
'''

 

○ readlines() : 모든 줄(행)을 list 형태로 읽는다.

with open("data.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    print(lines)
    
'''
['안녕하세요!\n', '파일 입출력 공부 중입니다.']
'''

 

▶ 데이터 유

종류 의미
정형 데이터 csv, xlsx파일(표 형태, 열.행 값)
반정형 데이터 키-벨류 쌍으로 이루어져 있는 데이터, JSON, XML
비정형 데이터 음악이나 동영상 파일, png, jpg와 같은 이미지 파일들

 


☆ 데이터 리터러시

결과 VS 결론

 

● 결과 : 계산과 분석을 해서 나온 결과물

  • 데이터 처리, 분석, 모델링 후에 얻어진 구체적인 데이터의 출력
  • 숫자, 통계, 그래프, 차트 등의 형태로 나타낼 수 있음

 

결론 : 목적에 대해 어떤 의미가 있는지 설명하는 것

  • 분석된 데이터 결과를 바탕으로 이끌어낸 의미나 통찰
  • 데이터에 기반한 해석, 추론 또는 권고 사항을 포함

 

▶ 결론을 잘 정리하는 방법

 

1. 단순하고 쉽게 전달

핵심 지표 위주로 먼저 공유, 지표를 해석하는 방법에 대해서 설명, 해당 지표에 오너십이 있는 조직에서 활용할만한 포인트 제안, 액션 아이템을 제안 하는것이 핵심

 

2. 흥미 유발

모든 내용을 담지 않고 흥미로운 부분 위주로 공유, 상대가 궁금해할만한 내용은 뭘까? 고민하고 필터링 하기, 궁금한 사람들을 위해서는 디테일한 문서 따로 공유

 

3. 대상자 관점에서의 접근

공유 받는 사람(=대상자)의 시선에서 이해하기 쉽도록 정리, 지식의 저주에 빠지지 않고 논지를 뒷받침 해줄 자료들을 함께 첨부, 대상자의 허들이 낮은 시각화 활용

지식의 저주 : 우리가 아는 것은 남도 무조건 안다라고 생각하는 것.

 

4. 시각화 팁

화려한 그래프 보다는 대상이 직관적으로 이해할 수 있도록 구성, 보통 선, 막대 그래프로 거의 대부분의 리포팅이 가능, 각 그래프의 범례와 단위 함께 표기하기

 

▶ 데이터 리터러시란??

 

  • 눈앞에 있는 데이터에 의존하지 않고 스스로 목적과 문제를 정의하는 것
  • 그 목적을 달성하는데 필요한 데이터와 지표를 설정하는 것
  • 데이터를 어떻게 봐야 문제의 정보를 효과적으로 얻을 수 있는지 분석하는 것
  • 단순히 데이터를 보는 방식이나 분석 방법론, 통계지식에 매몰되지 않는 것
  • 왜? 를 항상 생각하기

라이브 세션을 들으며 미쳐 다루지 못했던 개념과 헷갈렸던 개념을 다잡을 수 있는 시간이었던 것 같다.

함수의 return 개념과 매개변수 사용 방식, 파일 입출력 구조까지 직접 실습하며 Python의 기본기를 조금 더 탄탄하게 다질 수 있었다.

또한 데이터 리터러시 강의를 통해 데이터를 단순히 분석하는 것보다, 목적을 정의하고 의미를 해석하는 과정이 더 중요하다는 점도 배울 수 있었다. 결국 데이터는 숫자 자체보다 “왜 이런 결과가 나왔는가?”를 설명하기 위한 도구라는 점을 다시 느꼈다.

오늘 중으로 빠르게 이력서 마무리하고, 미쳐 끝내지 못한 개인과제를 끝내야겠다!