내일배움 본캠프

[내일배움 본캠프] Python 기초 마무리 Day

hyeon-ji 2026. 5. 27. 20:59

에이타니를 통해 퀴즈를 풀고 CodeKata 2문제를 풀며 오전을 시작했다.

어제까지 이력서 제출할 것이 있어 진행하지 못했던 '아티클 스터디'를 오전에 진행했다.

이후에 개인과제를 마무리하고 라이브 세션을 들으며 마무리했다!


🤖 에이타니 

 

정답은 'A'이다! 행(row)과 열(column)을 각각 생각하고 풀었어야 했는데 '이름, 나이, 직업'도 하나의 열로 생각하고 'C'번을 골라서 오답이었다. 
행은 '이름', '나이', '직업'으로 총 3개, 열은 이름 행에 '김철수', '이영희', '박민수'이고, 나이 행에 '25', '30', '28'이고, 직업 행에 '학생', '개발자', '디자이너'로 각각 3개의 인자가 존재한다. 따라서 행과 열은 각각 3개씩 존재한다!

 

데이터프레임에 대한 개념이 부족한 것 같다....

데이터프레임에서 열을 선택하는 방법은 ①, ②, ③, ④ 모두 가능하므로 정답은 'D'이다.
① 가장 일반적인 방법은 대괄호를 사용한 인덱싱(df['컬럼명'])을 활용하는 것이다.
② 점 표기법(df.컬럼명) 같은 경우는 컬럼명에 공백이나 특수문자가 없을 때 사용 가능하다.
③ loc는 라벨 기반 인덱싱(indexing) 방법으로, 모든 행(:)과 특정 컬럼명을 지정할 수 있다.
④ iloc는 정수 위치 기반 인덱싱(indexing) 방법으로, 컬럼의 인덱스 번호를 사용한다.

 


🔐 CodeKata

 

● 두 수의 합

 

 

def solution(num1, num2):
    answer = num1 + num2
    return answer
num1 = 2
num2 = 3
solution(num1, num2)

# 5 출력

 

● 두 수의 나눗셈

def solution(num1, num2):
    answer = num1 / num2 * 1000
    return answer
num1 = 7
num2 = 3
result = solution(num1, num2)
int(result)

# 2333 출력

 

☞ 오늘의 CodeKata를 진행하면서 어려운 점은 딱히 없었다. 다만, 좀 두렵다. 지금은 막힘없이 코드카타를 진행하지만, 나중에는 한 문제를 오랜 시간 투자해도 못 풀 것 같아서,,


📰 아티클 스터디

https://yozm.wishket.com/magazine/detail/1644/

 

A/B 테스트 제대로 이해하기: 2A/B 테스트를 위한 기초 통계 이해하기 | 요즘IT

앞선 글에서 A/B 테스트를 설계하거나 수행할 때 ‘목표를 달성하기 위한 방안으로 A와 B 중 어느 게 더 나은가?’ 뒤에 숨은 진짜 질문에 관해 살펴보았다. 이번 글에서는 이러한 우리의 진짜 질

yozm.wishket.com

 

위의 아티클을 읽으며 A/B 테스트를 진행하기 위한 기초 통계에 대해 알아가는 시간을 가졌다.

전공 때 배운 내용 위주로 내용이 구성되어 있어 어렵지 않게 술술 읽혔던 아티클이었다.

▶ 나의 인사이트 

 통계적 가설검정은 표본 데이터를 통해 전체 모집단을 추정하는 것이므로 항상 오차 가능성이 존재한다. 따라서 실무에서 가설 검증 시 유의수준과 p-value를 활용해 판단하는 과정이 필수적일 것 같다.
 또한 실무에서 수집되는 데이터는 이론처럼 정규분포를 따르지 않는 경우가 많을 것이라고 생각한다. 따라서 정규분포를 가정한 통계 검정을 적용하기 위해서는 중심극한정리를 기반으로 충분한 표본 수(25~30개 이상)를 확보하는 것이 중요할 것이다. 
 유의수준은 정해진 절대적인 기준이 아니라 산업군과 회사의 리스크 허용 수준에 따라 달라질 것이라고 생각한다. 예를 들어 제약 산업군에서는 품질 리스크가 매우 크므로 엄격한 기준을 사용할 것이고, 서비스군에서는 비교적 완화된 기준을 사용할 것이다.
 이론을 학습할 시에는 평균, 표준편차 등 통계 값이 주어진 상태에서 문제를 해결해 나가지만, 실제 실무에서는 모집단 정보나 정확한 분포를 알 수 없는 경우가 많을 것이다. 따라서 실무에서의 가설검정은 결과를 증명하는 과정보다, 제한된 데이터 안에서 나의 판단이 얼마나 신뢰할 만한지 확인하고 더 안전한 의사결정을 내리기 위한 과정이라고 생각한다.

💻 Python

 

▶ 라이브러리((Library) 또는 패키지(Package)) : 거대한 종합 도구 상자

라이브러리 종류 용도?
Pandas
데이터 분석과 처리를 위한 라이브러리.
Numpy 대규모 수치 계산(배열/행렬 연산)을 위한 라이브러리.
scikit-learn
머신러닝 알고리즘을 제공하는 라이브러리.

 

아래와 같은 방법으로 라이브러리를 사용할 수 있다.

import pandas 
from pandas import *
from pandas import "원하는 기능만 입력"

 

datetime - 날짜/시간 다루기

  • datetime.date : 날짜(연-월-일)
  • datetime.time : 시간(시-분-초-마이크로초)
  • datetime.timedelta : 시간 간격(연산용)
# 값 가져오기
datetime.today()
datetime.now()
# --> 원하는 값만 뽑기 위해서는 datetime.now().year(month, day, hour......) 

# 값 생성하기
datetime.date()
datetime.time()

 

○ 포멧 변환하기

from datetime import datetime

now = datetime.now()
s = now.strftime("%Y-%m-%d %H:%M:%S")    # 날짜 → 문자열
dt2 = datetime.strptime("2025-11-12 09:00:00", "%Y-%m-%d %H:%M:%S")  # 문자열 → 날짜

# 오늘의 날짜 및 시간 출력 가능!
# print(datetime.now() + timedelta(hours = 9)) 사용하여 현재 시각과 동일한 값 출력 가능!
포멧 코드 설명 예시
%a 요일 줄임말 Sun, Mon, …, Sat
%A 전체 요일명 Sunday, Monday, …, Saturday
%w 요일 숫자 (일요일=0) 0, 1, …, 6
%d 일(day) 01, 02, …, 31
%b 월 줄임말 Jan, Feb, …, Dec
%B 전체 월명 January, February, …, December
%m 숫자 월 01, 02, …, 12
%y 두 자리 연도 01, 02, …, 99
%Y 네 자리 연도 0001, …, 2026, …, 9999
%H 24시간 형식 시 00, 01, …, 23
%I 12시간 형식 시 01, 02, …, 12
%p AM / PM AM, PM
%M 분(minute) 00, 01, …, 59
%S 초(second) 00, 01, …, 59
%Z 시간대(Timezone) UTC, KST
%j 해당 연도에서 경과한 일수 001, 002, …, 366
%U 연중 주차 (일요일 시작) 00, 01, …, 53
%W 연중 주차 (월요일 시작) 00, 01, …, 53
%c 날짜 + 시간 전체 표현 Sat May 27 10:30:15 2026
%x 날짜 표현 05/27/26
%X 시간 표현 10:30:15

 

→ 날짜를 더하거나 빼기 가능!

→ int형으로 받고 싶은 경우 ' relativedelta() ' 사용

→ 시간 차이를 구하고 싶은 경우 ' total_seconds() ' 사용

 

● 부동 소수점

0.1 + 0.2 == 0.3
# False

 

위의 계산식을 입력하면 당연하게 0.3이 결과로 나올 줄 알았는데 ' False '이라는 결과가 도출된다..?

 

→ 컴퓨터는 소수점을 이진수로 바꾸어 계산하는 것이 어려워, 실제로 위의 계산식을 입력해보면 0.300000000004로 값이 나오는 것을 확인할 수 있다!

→ 이러한 부동 소수점을 해결하기 위해? "math " 함수를 이용한다!

 

○ math 함수

print(math.isclose(a, 0.3, rel_tol = le-9))
# 를 사용해서 부동 소수점을 해결 가능하다

 

● random - 난수

→ random.seed(42) : 랜덤으로 값을 추출하지만 결과가 바뀌지 않는다.

 

● os - 파일/디렉터리/환경정보


' 라이브러리에 관한 내용은 힘들게 외우지 않고 사용할 때마다 참고하여 사용할 수 있으면 괜찮다 '라고

튜터님께서 말씀해 주셨다!

라이브세션을 들으면서 '저게 대체 뭐지' 싶은 코드들이 있었지만,

이해만 하고 넘기자라는 마인드로 오늘은 편하게 학습을 진행할 수 있었다.

추가로 아티클 스터디를 진행하며 내가 잊고 있던 통계 개념들을 상기시킬 수 있는 시간이어서 도움이 많이 되었다.

괜히 예전에 공부했던 강의자료를 한 번씩 읽어보며 기억을 떠올리며 학습할 수 있는 유익한 시간이었다!

 

ps. 갑자기 더워져서 죽겠어요🥵