StuDyata.zip

[코드잇 스프린트] 데이터 분석가 부트캠프 Week 2 기록 본문

Codeit Sprint/수업 기록

[코드잇 스프린트] 데이터 분석가 부트캠프 Week 2 기록

자유를원해 2026. 3. 23. 19:40

이 글은 코드잇 스프린트 데이터 분석가 과정 학습 기록입니다.
수업 내용과 느낀 점을 매일 정리하며 데이터 분석 공부 과정을 기록하고 있습니다.

더 자세한 수업 내용은 '공부 기록'을 참고 부탁드립니다.


🥺2026.03.16 월


🧩두 번째 스프린트 미션, 파이썬 기초!

 

이날은 저번에 배웠던 파이썬 기본기를 바탕으로 스프린트 미션을 진행하는 날이었다. 이번 미션은 기본 문제 10문제와 심화 문제 1문제로 구성되어 있었고, 제출 기한은 이날로부터 3일이었다. 최근에 진행했던 엑셀 스프린트 미션은 주말 하루를 따로 써서 마무리했었는데, 이번 파이썬 미션은 이상하게도 꼭 하루 안에 어느 정도 끝내고 싶다는 마음이 컸다.

스프린트 미션 코랩 내 화면

 

이번 미션은 데이터 분석을 위해 필요한 Python 기본 문법을 다양한 문제를 통해 연습해보는 형태였다. 안내받은 링크에서 문제들이 적힌 ipynb 파일을 다운로드한 뒤, 각 문제의 조건에 맞춰 코드를 작성하면 되는 방식이었다. 엑셀 미션과는 또 다른 느낌의 과제였고, 파이썬은 엑셀보다 더 직접적으로 “내가 얼마나 이해하고 있는지”가 드러나는 도구라서 시작 전부터 약간 걱정도 됐다.


🤖GPT를 떠나보내게 되...

 

엑셀과는 다르게 파이썬 함수들은 (몇 년이 지나도^^) 완벽하게 손에 익은 상태는 아니어서, 이번에는 저번에 내가 필기했던 자료와 티스토리 글을 바탕으로 문제를 풀어야겠다고 생각했다.ㅎㅎ 강사님께서도 결과만 내는 것이 중요한 게 아니라, 문제 자체를 이해하고 최대한 스스로 힘으로 풀어보는 연습이 중요하다고 하시며 강의 자료야 얼마든 봐도 괜찮으니 GPT나 Gemini 같은 도구는 사용하지 않고 해보는 것을 목표로 하자고 말씀해주셨다.

 

이건 나한테 꽤 슬픈 소식이었다. 나는 이미 GPT 없이는 살 수 없는 몸이 되어버린지 오래였기 때문이다...ㅋㅋ 아 물론~ 진짜 AI를 쓰게 된다면 코드 문제야 까짓거 5분 내로 끝낼 수 있다는 것 역시 알고 있다. 그렇게 하면 결국 내 실력이 남지 않으므로! 그래서 최대한 안 쓰고 해보자는 마음으로 시작했다.

 

그런데 AI가 꼭 GPT나 Gemini만 있는 건 또 아니어서, 코랩 안에서 자동으로 코드를 추천해주는 기능을 끄는 법도 따로 알려주셨다. 평소에는 꽤 유용하게 썼던 기능이라 그것마저 꺼야 한다고 생각하니 조금 아쉽긴 했지만, 어쨌든 이날만큼은 내 힘으로 해보는 날이라고 생각하기로 했다.

코랩 내 생성형 AI 설정 기능


💻파이썬 스프린트 미션은 어떻게 진행하는가?

 

이번 미션도 저번과 똑같이 중간에 질문이 생기면 디스코드에 남기고 순차적으로 답변을 받는 방식이었다. 또는 ZEP 안의 프라이빗 룸을 이용할 수도 있었다. 강사님께서는 수강생들이 문제를 어느 정도 풀고 있는지 확인하기 위해 디스코드에서 이모지를 남기는 방식으로 진행 상황도 체크하셨다. 문제를 푼 만큼 이모지를 남기게 하는 방식이었는데, 단순한 체크처럼 보여도 빨리 한 문제 끝내고, 체크하고, 하는 게 속도적인 면에 꽤 도움이 되었던 것 같다.ㅋㅋ

 

미션을 본격적으로 시작하기 전에 예시 문제 하나를 먼저 보여주시면서, 문제를 풀 때 어떤 식으로 접근하면 좋은지도 함께 설명해주셨다. 바로 코딩부터 시작하는 것이 아니라, 1. 먼저 문제를 이해하고, 2. 단계별로 텍스트로 적어보고, 그다음에 3. 코드를 하나씩 구현해보는 순서로 접근하라고 하셨다. 파이썬이 처음인 사람은 한 문제도 못 푸는 것이 당연할 수 있고, 그럴 땐 텍스트로라도 풀이 과정을 적어보는 것이 좋다고 말씀해주셨다.

 

나는 파이썬이 처음인 사람은 아니지만, 이런 이야기를 들을 때마다 마음이 조금 편안해지는 느낌이 있다.ㅎㅎ 문제를 못 풀더라도 바로 ‘나는 안 되나 보다’라고 생각하지 않게 되는 것 같다. 코딩은 결국 연습하는 시간이 있어야 한다는 말을 다시 들으니, 이날도 너무 조급해하지 말고 차근차근 해보자는 마음이 들었다.


😎오.. 생각보다는 술술 풀렸던 문제

 

이날은 문제 해설이 꽤 길어질 것 같다고 하셔서, 16시부터는 해설 수업을 진행하겠다고 하셨다. 심화 문제를 제외한 기본 문제 해설만 해도 길 것 같다고 하셔서, 결국 내가 온전히 혼자 고민하고 풀어볼 수 있는 시간은 16시 전까지인 셈이었다. 그래서 더 집중해서 해보기로 했다. 어차피 이후에는 해설을 듣게 될 테니, 그 전까지 최대한 많이 직접 부딪혀보는 게 중요하다고 생각했다.

 

9:30쯤 본격적으로 스프린트 미션이 시작되었고, 팀별 소회의실로 이동해서 각자 문제를 풀기 시작했다. 문제는 한 문제 아래에 소문제 두 개가 붙어 있는 형태였고, 1. 함수 내용을 작성하는 부분2. 실제로 실행해서 확인하는 부분으로 나뉘어 있었다.

 

1번 문제와 2번 문제는 비교적 익숙한 유형이라 어렵지 않게 풀 수 있었다. 1번은 1부터 n까지 숫자 중 3의 배수만 출력하는 함수쓰기였고, 2번은 구구단을 출력하는 문제였다. 둘 다 for문, range, if문 같은 기본 문법을 활용하는 전형적인 문제였고, 오히려 익숙한 문제를 초반에 풀 수 있다는 점에서 기분 좋게 시작할 수 있었다.

f-string 적용하기

 

특히 2번 문제에서는 저번에 배운 문자열 포매팅을 사용해보고 싶어서 f-string을 적용했는데, 의도한 대로 출력이 술술 나오는 순간 꽤 뿌듯했다.ㅋㅋ 별것 아닌 것 같아도, 배운 걸 바로 써먹어서 원하는 결과가 나오는 순간에는 확실히 작은 쾌감이 있다.


🧐막혔다가 다시 풀렸던 문제에서 느낀 점

 

3번 문제는 문자열에서 모음을 제거하는 문제였는데, 이건 처음에는 바로 풀리지 않았다. 오히려 나중에 다른 문제들을 다 풀고 난 뒤, 머릿속에서 논리 구조가 어느 순간 정리되면서 다시 돌아와 풀게 된 문제였다. 그래서 더 기억에 남는다.

가까스로 푼 3번 문제

 

오늘 문제를 풀면서 확실히 느낀 건, 생각을 직접 해보는 시간이 정말 중요하다는 점이었다. 안 풀린다고 해서 바로 답을 보는 것이 아니라, 머릿속으로 계속 구조를 굴려보고 다시 돌아와보는 과정 자체가 도움이 되는 것 같다. (물론 나중에 GPT에게 물어보니 더 간단한 코드도 있긴 했지만,) 그래도 이번만큼은 내 방식대로 풀었다는 데에 의미를 두고 싶었다!


💡‘기초’ 답게 익숙한 부분이 많았다

 

4번부터 9번까지의 문제들은 전반적으로 기본 문법을 잘 활용할 수 있는지를 확인하는 느낌이 강했다. 두 숫자를 비교해서 순서를 바꿔 반환하는 문제, 문자열 길이를 확인하는 문제, 0부터 n까지의 합을 구하는 문제, 짝수 합을 구하는 문제, 예외처리를 활용하는 문제, BMI를 계산해 비만도를 판별하는 문제까지 이어졌는데, 대부분 if문, elif문, try-except, len, range, sum 등 익숙한 개념들을 응용하는 형태였다.

6번 문제

 

특히 6번 문제에서 나는 반복문보다는 등차수열 합 공식을 바로 떠올려서 그걸로 코드를 짰다. 문제 의도는 아마 반복문 연습이었겠지만, 가장 깔끔하게 짜는 게 더 중요하다고 생각해서 그렇게 했다.ㅎㅎ 그러고 나서 내가 쓴 코드를 살짝 점검해보다가, int() 없이도 몫 연산자로 깔끔하게 정수 처리할 수 있다는 걸 다시 확인한 것도 재미있었다. 정답을 받아쓴 건 아니지만..^^ 내가 짠 코드를 돌아보며 “아 이렇게 더 간단하게 할 수도 있구나” 깨닫는 순간들도 있었다.

 

예외처리 문제는 오히려 if문보다 더 단순하게 느껴졌고, BMI 문제는 계산식 자체는 잘 세워놓고도 단위를 잘못 생각해서 처음에는 계속 저체중만 출력되는 바람에 혼자 웃었다.ㅋ 센티미터를 그대로 제곱해버렸으니 결과가 이상할 수밖에 없었던 것이다. 이런 사소한 실수들도 결국 직접 해봐야 기억에 남는 것 같다.


💭끝까지 못 푼 10번 문제와 찝찝하게 남은 심화 문제

 

기본 문제의 마지막 10번 문제는 주어진 문자열에서 연속된 문자를 압축하는 문제였는데, 이건 정말 끝까지 쉽지 않았다. 문제를 다 풀어놓고 시간이 남았을 때 천천히 생각해보려 했지만, 아무리 머리를 쥐어짜도 도저히 감이 안 왔다... 어떤 함수를 써야 할지도 모르겠고, 애초에 규칙을 어떻게 코드로 옮겨야 할지부터가 막막했다. 16시 전까지 결국 풀지 못한 유일한 기본 문제였다...

10번 문제

 

문제 자체가 어렵기도 했지만, 무엇보다 어떻게 접근해야 할지 감이 안 잡힐 때 느끼는 답답함이 컸다. 기본 문제 중에서도 가장 어렵다고 느껴졌던 이유가 바로 그 부분이었던 것 같다.

 

심화 문제는 숫자 야구 게임 구현이었는데, 이건 가까스로 풀긴 했다.ㅎㅎ 성공하고 나서는 정말 기뻤다. 그런데 동시에 코드가 너무 비효율적이라는 게 스스로 봐도 느껴졌다.ㅎㅎ... 중복되는 부분이 많고, 뭔가 훨씬 줄일 수 있을 것 같은데 그대로 길게 늘어진 코드가 되어버려서 좀 찝찝했다.(코드가 길어서 차마 보여주질 못하겠다.)

심화 문제

 

그래도 어쨌든 작동은 했고, 끝까지 구현해냈다는 점에서는 분명 의미가 있었다. 특히 사용자 입력을 받고, 중복 입력이나 범위 오류를 다시 처리하고, 정답과 비교해서 스트라이크와 볼을 계산하는 흐름을 직접 만들어본 건 꽤 좋은 경험이었다. 비효율적이어도 내 손으로 끝까지 짰다는 점에서는 나름 만족하고 싶다.^^


👩‍🏫기본 문제 해설 수업으로 마무리

 

16시가 되어 해설 수업이 시작되었다. 솔직히 말하면 10번 문제, 심화 문제, 그리고 내가 초반에 조금 고민했던 3번 문제를 제외하면 대부분은 이미 알고 있는 흐름이 많았고, 내 코드와 거의 비슷한 부분도 있었다. 그래서 해설을 들으면서는 티스토리 글을 정리하기도 했다.ㅎㅎ...

 

강사님께서도 문제에서 원하는 결과만 잘 나오면 코드가 달라도 전혀 상관없다고 말씀해주셨다. 그 말이 꽤 위안이 되었다! 정답 코드와 똑같이 짜야한다는 부담보다는, 내가 내 방식대로 접근해서 결과를 만들 수 있느냐가 더 중요하다는 뜻처럼 들렸기 때문이다.

그리고 강사님께서 10번 다음으로 3번이 어렵다고 말씀하셨는데, 오히려 3번은 막바지에 나름 잘 풀어낸 편이라서 그 부분은 조금 스스로 칭찬해주고 싶었다. 어떤 문제는 나는 단순 if문으로 풀었지만, max()를 이용하는 방법도 있다는 걸 보고 “아, 이렇게도 되는구나” 싶었다. 하나의 문제를 두고도 여러 방식이 존재한다는 걸 다시 느낄 수 있었다.

 

사실 이날은 문제보다도 졸음과의 싸움이 더 컸던 날이었다... 전날 엑셀 스프린트 미션 보고서를 조금 쓰느라 잠을 제대로 못 잤고, 이날은 해설 강의 위주로 진행되다 보니 초중반에는 진짜 잠이 쏟아졌다. 체감상 두 시간은 졸았던 것 같다...ㅋㅋ... 솔직히 나 좀 심했다... 그래도 혼자 실습을 하는 시간에는 한 번도 졸지 않았으니, 나름대로는 “실습 시간에 안 졸았으면 된 거지” 하며 합리화를 해봤다.ㅎ 내일부터는 진짜 다시 커피라도 마시면서 버텨야겠다는 생각이 들었다. 다행히 정신을 조금 차렸을 때쯤에는 10번 문제 설명 직전이어서, 가장 궁금했던 부분은 그래도 놓치지 않고 들을 수 있었다...

 

그래도 16시 전까지 못 푼 10번 문제와, 줄이고 싶었던 심화 문제 코드는 수업이 끝난 뒤 다시 혼자 생각해보고 도전해보기로 했다. 해설을 아예 안 본 건 아니지만, 일부러 정답을 끝까지 다 들여다보지는 않았다. 순서나 흐름 정도만 참고하고, 나머지는 다시 내 힘으로 해보고 싶었다!


📝마무리

 

이날 하루를 돌아보면, 파이썬 기본기를 정말 직접 부딪혀보는 시간이었던 것 같다. 엑셀 미션 때와는 또 다른 방식으로 머리를 써야 했고, 문제를 하나씩 풀면서 내가 어느 부분은 익숙하고 어느 부분은 아직 약한지 훨씬 더 분명하게 느낄 수 있었다. 기본 문제들은 대체로 잘 따라갔고, 몇몇 문제에서는 스스로 생각해서 해결해 낸 경험도 있었다. 반면 10번 문제처럼 아예 접근이 막히는 문제도 있었고, 심화 문제처럼 풀긴 했지만 아쉬움이 남는 경우도 있었다.

 

그래도 오늘 가장 의미 있었던 건, 그냥 결과를 내는 것보다 직접 고민하고, 막히고, 다시 시도해보는 과정을 경험했다는 점이다. 파이썬은 아직 완전히 편한 도구는 아니지만, 그래도 예전보다 훨씬 내 손으로 뭔가 해낼 수 있다는 감각은 분명 생기고 있는 것 같다.

10번 문제와 심화 문제는 수업이 끝난 뒤 다시 스스로 정리해보고, 하루이틀 안에 더 다듬어서 스프린트 미션 글로 따로 티스토리에 업로드해 볼 생각이다. 이날은 완벽하진 않았지만, 그래도 꽤 열심히 고민하고 버틴 하루였다!!


🫢2026.03.17 화


‼️파트 1을 통틀어서 겁나게 중요한 라이브러리

 

이날은 강사님께서 이번 주 화수목에 배우는 내용이 파트 1 전체를 통틀어서 가장 중요한 부분이라고 하셨는데, 그 이유는 앞으로도 계속 반복해서 나오기 때문이라고 하셨다. 그 내용은 바로 파이썬으로 데이터 다루기이다! 어제까지는 파이썬의 기본 문법을 익히는 단계였다면, 이제부터는 그 문법을 실제 데이터에 적용하는 방향으로 넘어가는 느낌이 강했다. 그래서인지 이날 수업은 단순히 “새로운 내용을 배운다”기보다는, 이제부터 본격적으로 데이터 분석다운 분석을 시작하는 출발점처럼 느껴졌다.

 

그래서 파이썬에서 라이브러리라는 것을 본격적으로 사용하기 시작했다. 라이브러리를 도서관에 비유해서 설명해주신 게 꽤 이해하기 쉬웠다. 목적에 따라 필요한 책을 다른 섹션에서 찾듯이, 파이썬에서도 하고 싶은 작업에 따라 적절한 라이브러리를 골라 사용하는 것이라는 설명이었다.

 

주요 라이브러리로는 pandas, numpy, matplotlib, seaborn, plotly 등을 소개해주셨는데, 그중에서도 파트 1에서는 pandas만 제대로 익혀도 성공이라고 하신 말이 특히 기억에 남았다. 전처리 비중이 80%라고 할 정도로 크기 때문에, 데이터를 불러오고 다루는 pandas가 그만큼 중요하다는 뜻이었다. 이미 대학교에서 지겹도록 들었고 실제로도 사용해 본 라이브러리들이었지만, 오랜만에 다시 들으니 이제는 진짜 실무적인 도구로 다가오는 느낌이었다.


🙂‍↕️코랩이 점점 익숙해짐

 

이날도 실습은 구글 코랩으로 진행되었다. 그런데 이제 데이터를 직접 불러와서 다루는 일이 많아져서 그런지 강의자료 안에 csv 파일, xlsx 파일 같은 데이터 파일들이 정말 많았다. 아예 폴더째로 다운로드를 받아야 할 정도였다!

강의자료 내 데이터 파일

 

이날부터는 진짜 내 작업 환경 같은 느낌이 들었다.ㅋㅋ 데이터를 불러오고, 경로를 설정하고, 저장하고 다시 내보내는 흐름까지 보게 되니 파이썬이 그저 문법만 배우는 과목이 아니라 데이터를 직접 만지는 도구?라는 게 더 실감이 났던 것 같다.


🧮연산을 위한 numpy 라이브러리

 

먼저 numpy 라이브러리부터 시작되었다. numerical python, 이름 그대로 대규모 수치 연산과 배열 계산을 위한 라이브러리라고 하셨는데, 설명을 들을수록 확실히 숫자와 연산에 특화되어 있다는 느낌이 강했다. 내부적으로 C언어 기반이라 속도가 빠르다는 점, 그리고 다른 라이브러리들도 대부분 numpy를 기반으로 만들어졌다는 특징이 있었다.

 

배열을 만들고, 0이나 1로 채운 배열을 생성하고, 일정 간격의 수열을 만들고, 난수를 생성하는 실습을 실제로 하면서 처음에는 조금 기계적인 느낌도 들었다. 하지만 한편으로는 엑셀에서는 셀 하나하나를 보면서 다뤘던 값들을, 여기서는 훨씬 구조적으로 다룰 수 있다는 점이 새롭게 느껴졌다.(실제로 하게 되니 ㅋㅋ) 특히 배열의 크기나 형태, 차원을 확인하는 과정은 앞으로 데이터를 다룰 때 꼭 필요하겠다는 생각이 들었다!


🤔numpy만으로는 불편해유

 

numpy의 배열은 분명 빠르고 강력하지만, 실제 데이터를 보기에는 불편하다는 강사님의 설명도 이어졌다. 배열 자체는 깔끔하지만, 레이블이 없고 한 가지 데이터 타입만 다룰 수 있다 보니 가독성이 떨어진다는 것이었다. 실습 화면을 보면서도 그 말이 꽤 공감됐다. 값은 나오는데, 이게 어떤 열인지 어떤 의미인지 한눈에 보기 어렵다는 점이 분명했다.

표 형식이 아니므로 보기가 불편하다는 걸 느낄 수 있다.

 

그래서 자연스럽게 pandas로 넘어가는 흐름이 이해가 잘 됐다. 결국 데이터 분석에서는 단순히 계산만 빠른 것이 아니라, 이터를 사람이 이해하기 쉽게 다룰 수 있어야 한다는 게 중요하니까 말이다!

 

이후에는 pandas를 본격적으로 배우기 시작했다. 데이터를 표 형태의 데이터프레임으로 다루는 라이브러리라는 설명부터 시작되었는데, numpy만으로는 불편했던 부분을 pandas가 확실히 해결해준다는 느낌이 들었다. 딕셔너리나 리스트, 배열 같은 다양한 형태의 데이터를 데이터프레임으로 바꿔서 훨씬 보기 쉬운 형태로 다룰 수 있다는 점이 특히 좋았다. 데이터를 테이블처럼 만드는 과정은 굉장히 직관적으로 느껴졌는데 아까까지는 배열이 조금 낯설고 차갑게 느껴졌다면 데이터프레임은 훨씬 친숙? 하다는 느낌을 받았다. 아무래도 표 형태로 보이는 순간부터 마음이 편해지는 것 같다.ㅋㅋ 왜 강사님께서 pandas만 집중해서 익혀도 성공이라고 하셨는지 점점 이해가 되었던 것 같다.


📥코랩에 파일 불러오기!

 

오늘은 파일을 불러오고 저장하는 과정도 꽤 자세하게 다루었다. 코랩에서 파일을 직접 업로드하는 방법도 있었지만, 데이터가 많아질 경우에는 구글 드라이브를 마운트해서 사용하는 방식이 훨씬 효율적이었다. 내 드라이브 안에 폴더를 만들어 데이터를 정리해두고, 그걸 바로 불러오는 흐름이 생각보다 편리했다.(물론 대학교 때 이미 주구장창 했다.)

 

작업 디렉토리 변경하기

 

또 저번에 배운 os 라이브러리를 이용하여 작업 디렉토리를 바꾸면 긴 경로를 매번 쓰지 않아도 파일명만으로 불러올 수 있다는 점도 실용적으로 느껴졌다. 저번에 설명으로만 들을 때는 그냥 "아 그렇구나" 했는데 실제로 경험해보니 이런 부분은 딱 코드 몇 줄 차이인데, 작업 효율에서는 꽤 큰 차이를 만드는 것을 보았다! 수업을 들으면서도 “이건 나중에 혼자 할 때 꼭 써먹어야겠다” 싶은 부분이었다. (왜냐하면 부끄럽게도 이건 처음 듣는 부분이었다..ㅋㅋ)

 

csv 파일은 비교적 간단하게 불러올 수 있었지만, 엑셀 파일은 시트 위치나 헤더 위치에 따라 예상과 다르게 불러와질 수 있다는 점도 오늘 새롭게 체감했다. 실제 실습에서도 원하는 데이터가 첫 번째 시트가 아니라 두 번째 시트에 있었고, 헤더 위치도 애매해서 처음에는 제대로 안 보이는 경우가 있었다. 이런 걸 보면서 결국 데이터를 다룬다는 건 파일을 읽는 순간부터 시작된다는 생각이 들었다. 그냥 파일을 불러오기만 하면 끝나는 게 아니라, 어디에 데이터가 있는지, 어떤 형식으로 되어 있는지 먼저 파악해야 한다는 점이 중요하게 느껴졌다. 엑셀 때도 구조 파악이 중요하다고 했는데, 파이썬에서도 똑같다.


📈파이썬으로 데이터프레임 구조 이해하기

 

이날 수업의 큰 비중 중 하나는 데이터프레임 구조를 이해하는 것이었다. 상위 몇 행을 보고, 하위 몇 행을 보고, shape로 행과 열 수를 확인하고, dtypes나 info로 자료형과 결측 여부를 확인하고, describe로 기술통계를 살펴보는 실습이 이어졌다.

 

이 부분은 단순히 함수를 외운다기보다는, 데이터를 처음 받았을 때 어떤 순서로 살펴봐야 하는지를 배우는 느낌이었다. 데이터를 보자마자 바로 분석에 들어가는 게 아니라, 먼저 구조를 파악하고, 자료형을 확인하고, 결측과 분포를 살펴보는 과정이 너무 중요하다는 걸 다시 느꼈다!


😢중요한 파트임과 동시에 헷갈렸던 부분

 

문자열 처리 기초도 정말 많이 사용되는 파트라고 하셨는데, 확실히 그럴 것 같았다. unique, nunique, value_counts 같은 함수들을 보면서 범주의 종류와 개수, 비율을 한 번에 볼 수 있다는 점이 꽤 편리하게 느껴졌다. 엑셀로 했다면 피벗을 만들거나 필터를 걸어야 했을 작업을 코드 한 줄로 확인할 수 있다는 게 확실히 강점이었다.ㅋㅋ 특히 결측값이 범주에 포함되는지 여부까지 옵션으로 조절할 수 있다는 점도 세세하고 좋았다. 결국 데이터 분석은 이런 사소한 확인들을 얼마나 빠르고 정확하게 하느냐가 중요하다는 생각이 들었다.

 

조건 필터링도 오늘 중요한 파트 중 하나였다. 불린 인덱싱이나 query를 이용해서 특정 조건에 맞는 데이터만 골라내는 과정을 배웠는데, 설명을 들을 때는 꽤 잘 이해가 됐다. 그런데 막상 혼자 해보면 조건식 안에 따옴표를 어디에 써야 하는지, 컬럼명에는 왜 따옴표를 안 쓰는지, and 조건은 어떻게 묶는지 같은 부분에서 헷갈릴 것 같은 느낌이 있었다...ㅠㅠ

 

실제로 이런 부분은 개념 자체보다 문법 실수가 더 많이 날 것 같았다. 그래서 이날은 이해가 됐다는 사실 자체보다도, 나중에 직접 쓸 때 틀리지 않게 익숙해지는 게 더 중요하겠다는 생각이 더 크게 들었다.


😫혼자 실습해보기... 쉽지 않아

 

17시가 되어 이날 수업은 여기까지 마무리되었다. 나머지 내용은 내일 이어서 배우게 된다고 하셨다. 그리고 17시부터는 자율학습 시간이라 선택사항인 실습 문제도 풀어보았다.

코랩 강의 자료 내 실습 문제

 

총 25문제였는데, 오늘 배운 내용만으로 풀 수 있는 문제는 6문제뿐이라 생각보다 금방 끝날 것 같았다. 물론 내일은 남은 19문제를 다 풀어야 한다는 뜻이기도 했지만 말이다.ㅋㅋ 문제는 코드잇 홈페이지 안의 퀴즈 형식이었고, 저번 파이썬 기본기 실습처럼 직접 입력해서 맞히는 방식이거나 객관식이었다.

 

실습 문제를 풀면서는 내가 적어둔 기록을 꽤 자주 참고했다. 함수도 많고 문법도 비슷비슷해서, 혼자 풀다 보면 금방 뒤섞이는 느낌이 들었다. 실제로도 몇 문제는 한 번에 성공하지 못했고, 대괄호를 써야 하는데 소괄호를 쓴다거나, 컬럼명에 자꾸 따옴표를 씌운다거나 하는 자잘한 실수들이 있었다. 이런 실수들은 사소해 보이지만, 막상 혼자 코드를 작성할 때는 꽤 자주 나오게 되는 것 같다. 그래도 이렇게 한 번 실수하고 기록해두면 다음에는 덜 틀리지 않을까 하는 마음으로 넘겨보았다... 결국 익숙함의 문제라는 생각이 들었다.

 

이날 가장 크게 느낀 점 중 하나는, 수업을 들을 때는 분명 이해가 잘 되는데 막상 혼자 해보려고 하면 머릿속에서 함수들이 뒤섞인다는 것이었다.ㅋㅋ “아 그렇구나” 하고 넘어간 내용들이, 실제 실습에서는 바로 안 나오는 경우가 많았다. 그래서 저번에 파이썬 기본 내용을 티스토리에 정리해두었던 게 꽤 도움이 되었던 걸 생각하여 이번 라이브러리 실습 파트도 내일 수업까지 끝나면 한 번에 정리해두어야겠다고 생각했다. 그냥 듣고 넘기는 것보다, 내가 이해한 언어로 다시 정리해두는 과정이 확실히 도움이 되는 것 같다! 나중에 막혔을 때 다시 돌아와 볼 수 있다는 점에서도 의미가 컸다.


📝마무리

 

이날은 파이썬으로 데이터를 본격적으로 다루기 시작한 첫날이었다. numpy와 pandas를 배우면서, 이제 진짜 데이터 분석 흐름 안으로 들어오고 있다는 느낌을 받았다. 물론 오늘도 함수와 개념이 많아서 한번에 다 익숙해지지는 않았고.ㅋㅋ 혼자 실습할 때는 여전히 버벅이는 부분도 있었다. 하지만 적어도 수업을 이해하지 못하거나 따라가지 못하는 정도는 아니었다는 점에서 그걸로 위안을 얻으려고 한다!ㅋㅋ 아직은 “알 것 같다가도 막상 하려면 헷갈리는” 상태에 가깝지만, 이런 과정 자체가 익숙해지는 과정이라고 생각해보려고 한다. 이날도 완벽하진 않았지만, 앞으로 계속 나오게 될 가장 중요한 내용을 배우기 시작했다는 점에서 의미 있는 하루였다.


🫠2026.03.18 수


🛠️오늘도 파이썬으로 데이터 다루기...

 

전날 나가던 진도를 이어서, 파이썬으로 데이터를 다루기 파트를 계속 배웠다. 저번 시간엔 처음 라이브러리와 데이터프레임의 구조를 익히기 시작했다면, 오늘은 그걸 바탕으로 실제 전처리와 데이터 처리에 더 가까운 내용으로 들어가는 느낌이었다.

 

수업 전에는 전날 배운 주요 파이썬 라이브러리들을 다시 한 번 리마인드 해주셨다. 수치 연산은 numpy, 데이터프레임과 전처리는 pandas, 시각화는 matplotlib, seaborn, plotly를 주로 사용한다는 설명이었다. 이미 어제 들었던 내용인데도 이렇게 한 번 더 짚어주니 머릿속에 조금 더 자리를 잡는 느낌이 들었다. (그리고 seaborn의 이름 뜻 이야기는 정말 뜬금없고 웃겼다. 바다의 깊이와 아름다움 같은 의미에서 지어졌다고 하셨는데, 강사님도 납득이 안 되신다고 해서 괜히 더 기억에 남았다.ㅋㅋㅋ)

 

코랩 환경에 대한 설명도 다시 들었다. 코랩을 껐다가 켜도 코드 자체는 남아 있지만, 이전 작업이 실제로 적용되려면 다시 실행을 해줘야 하고, 라이브러리도 매번 다시 불러와야 한다는 점이었다. 어제 작업한 흔적이 남아 있어서 괜히 다 된 것 같은 느낌이 들지만, 막상 실행이 안 되면 꼭 전체 실행과 import부터 다시 확인해야 한다는 설명이었다. 특히 라이브러리는 설치는 한 번이면 되지만, 불러오기는 매번 해줘야 한다는 내용도 있었다.


🖥️파이썬과 엑셀은 방식만 다를 뿐이어요

 

조건 필터링 부분부터 이어서 배웠다. 사실 이 부분은 전날 실습을 하면서도 방법 자체는 이해가 되는데, 막상 코드를 직접 작성하려고 하면 헷갈렸던 파트였다. 그래서 이번에 다시 설명을 들으면서 그 헷갈림을 조금이라도 정리해보자는 마음이 있었다.

 

강사님께서 엑셀에서도 행과 열의 집합을 다뤘던 걸 떠올려보면 이해에 도움이 된다고 하셨는데, 그 말이 꽤 와닿았다. 엑셀에서도 결국 특정 조건의 데이터만 걸러보는 작업을 했었기 때문에, 파이썬도 방식만 다를 뿐 비슷한 사고 흐름으로 보면 조금 덜 낯설게 느껴졌다. 컬럼을 선택하고 조건을 붙이면 그 조건에 맞는 데이터가 나온다는 구조가 익숙해질수록 조금씩 더 편해지는 듯했다.


⚡️정보량의 압박과 걱정

 

이후부터는 본격적으로 진도가 이어졌다. 여러 조건으로 필터링하는 방법부터 데이터 수정, 추가, 삭제까지 한 번에 쭉 이어졌는데, 하나하나 따로 보면 이해는 되는데 양이 많다 보니 머릿속에 한꺼번에 쌓이는 느낌이 강했다... 그래서 이런 부분들은 설명을 들을 땐 알겠는데, 직접 쓰려고 하면 =이랑 ==를 헷갈리거나, 괄호 종류를 헷갈리거나, 아예 그냥 괄호를 빼먹는 식의 자잘한 실수가 많을 것 같다는 생각도 들었다...ㅠ

 

데이터 전처리, 그중에서도 품질 관리에 대한 내용이 이어졌다. 강사님께서도 데이터 분석에서 전처리는 80%의 시간이 소요될 정도로 중요하다고 다시 강조하셨고, 어디까지를 전처리라고 딱 자르기 어려울 만큼 범위가 넓다고 하셨다. 이 말을 들으니 엑셀 때도, 그리고 지금도 왜 계속 전처리를 강조하는지가 더 실감났다. 기본적으로 확인해야 하는 건 중복값, 결측값, 이상치라고 했는데, 이 세 가지가 정말 계속 반복해서 나오고 있다. 도구가 엑셀이든 파이썬이든 상관없이 결국 데이터 분석에서 제일 먼저 마주치는 건 이 문제들인 것 같다.


💡코드로 해결하면 편하죠

 

결측값 처리 파트에서는 isna()나 isnull()을 이용해 결측 여부를 확인하는 방법을 배웠다. 각 값이 결측인지 아닌지를 True/False로 보여주고, 합계를 통해 컬럼별 결측 개수와 전체 결측 개수까지 바로 볼 수 있다는 점이 엑셀과 비교하면 정말 편리하게 느껴졌다.

결측치 확인하기

 

엑셀에서 결측값을 찾을 때는 필터를 걸고 하나씩 보거나 직접 확인하는 식의 번거로운 과정을 거쳤던 기억이 있어서, 이걸 코드 몇 줄로 처리할 수 있다는 점이 특히 크게 다가왔다. 한 번 그 노가다를 겪어봤기 때문에 더 편하다고 느껴지는 것 같았다.ㅋㅋ 그래서 이런 부분은 “파이썬이 왜 필요한가”에 대한 가장 직관적인 답처럼 느껴졌다.

 

결측값을 처리하는 방법으로는 삭제와 대체를 배웠다. 그런데 이 과정에서 계속 느낀 건, 도구가 대신 판단해주는 게 아니라 결국 사람이 기준을 세워야 한다는 점이었다. 결측값을 무조건 지운다고 끝나는 것도 아니고, 평균이나 중앙값, 최빈값으로 대체할 때도 왜 그렇게 하는지가 중요하다는 설명은 앞으로도 계속 기억해야 된다!!


📐예전엔 많이 헤맸던 오랜만에 보는 개념

 

이상치 처리는 오랜만에 보는 개념들이 많아서 반갑기도 했고 다시 배우는 마음으로 들었다. IQR, 사분위수, 박스플롯 같은 말들을 들으면서 예전에 대학에서의 통계나 데이터분석 수업에서 배웠던 기억이 조금씩 떠올랐다. 물론 기억만 났지 바로바로 완벽하게 이해되는 정도는 아니었지만ㅋㅋ, 그래도 완전히 처음 보는 개념은 아니라서 조금 덜 부담스러웠던 것 같다.

IQR 기반 이상점 확인

 

특히 IQR을 기준으로 상한과 하한을 정하고, 그 범위를 벗어나는 값을 이상치로 본다는 설명은 흥미로웠다. 수치적으로 기준을 세워서 이상점을 판별할 수 있다는 점이 꽤 논리적으로 느껴졌다. 다만 강사님께서도 강조하셨듯, 이상치라고 해서 무조건 삭제하는 건 아니라는 점이 중요하게 느껴졌다. 정말 오류인지, 아니면 극단적이지만 의미 있는 값인지를 따져봐야 한다는 설명이 중요했다.

 

이상치 처리 기준을 상사가 정해오라고 했을 때 IQR을 이야기해서 칭찬받았다는 강사님 일화도 재미있었다. 별것 아닌 것 같아도, 막상 회사에서는 이런 기준을 설명할 수 있는 사람이 필요하다는 뜻처럼 느껴졌다.ㅋㅋ 그냥 함수를 쓸 줄 아는 것보다, 왜 이렇게 판단했는지를 말할 수 있는 게 훨씬 중요하다는 생각이 들었다!


🔠정말 중요한 문자열 처리!

 

이후에는 문자열 처리 파트가 이어졌다. 대소문자 통일, 문자열 분리, 공백 제거, 불필요한 문자 제거, 문자열 탐색, 포맷 맞추기, 범주형 데이터 정리까지 생각보다 정말 다양했다...ㅠ 사실 문자열은 숫자처럼 계산하는 데이터가 아니니 상대적으로 덜 중요해 보일 수도 있는데, 오히려 실제 데이터에서는 이런 부분이 더 자주 문제를 일으킨다는 생각이 들었다. 특히 사람이 보기에는 같은 값인데 컴퓨터는 대소문자 차이만으로도 다른 값으로 인식한다는 점을 예로 들 수 있겠다. 이런 걸 하나하나 통일하는 과정이 결국 데이터의 품질을 좌우하겠구나 싶었다. 물론 애초에 데이터가 깨끗하다면 좋겠지만..^^!


👩‍🏫진도가 아직도 안 끝나버려

 

이날도 강사님께서는 모든 것을 다 기억하려고 하지 말고, 왜 출력값이 이렇게 나오는지만 이해해도 괜찮다고 말씀해 주셨다. 솔직히 이 말이 아니었으면 중간에 더 압박을 많이 느꼈을 것 같다. 양이 정~~~ 말 많았기 때문이다. 원래 이론 데이는 17시부터 자율 실습 시간인데, 이날은 진도 양이 너무 많아서 그 실습 시간 중 1시간을 더 써서 수업을 진행했다. 그런데 그렇게 했는데도 진도가 조금 남아서, 나머지는 언제 나갈지 고민해보신다고 하셨다. 강사님께서 계속 미안해하셨지만, 솔직히 진도량 자체가 너무 많아서 그건 어쩔 수 없는 부분처럼 느껴졌다.

 

오히려 내 스타일로는 하루 안에 최대한 쭉 몰아서 끝내는 게 낫다. 다른 날까지 질질 끌리는 것보다는, 힘들어도 하루에 정리해버리는 쪽이 더 맞는 것 같다. 그래서 개인적으로는 크게 불만은 없었다.ㅎㅎ


👗수업 중간의 작은 재미, 실습 대신 복습해주기

 

18시 실습 시간 전에 강사님께서 ZEP 안에서 사용할 수 있는 포인트도 지급해주셨다! 이걸로 캐릭터를 꾸밀 수 있다고 하셨는데, 되게 사소하고 유치해 보일 수도 있겠지만 정말 재미있고 신기했다. 빡센 수업 중간에 이런 작은 요소가 들어가니까 조금 웃기기도 했다.ㅎㅎ

캐릭터의 이동 수단이나 움직이는 아이템을 구매할 수 있다.

 

원래 실습 시간에는 파이썬 실습 문제를 풀어야 했지만, 나는 이날 복습이 더 필요하다고 느껴져서 필기 내용을 정리하는 시간으로 사용했다. 배우는 양이 너무 많다 보니, 무작정 다음 문제를 푸는 것보다 들은 걸 한 번이라도 더 정리하는 게 더 중요하다고 느껴졌기 때문이다. 실습 시간은 내일도 있으니!


📝마무리

 

저번 시간보다 더 본격적으로 데이터 전처리와 문자열, 수치형 데이터, 날짜형 데이터를 다루는 법을 배운 하루였다. 양이 정말 많아서 쉽지는 않았지만, 적어도 왜 이런 작업들이 필요한지는 점점 더 분명하게 느껴지고 있다. 그리고 전처리가 왜 데이터 분석에서 가장 큰 비중을 차지하는지도 조금씩 체감하게 되는 것 같다.

 

아직은 배울 때는 이해가 되다가도, 혼자 다시 하려고 하면 버벅거릴 것 같은 부분들이 많다. 그래도 적어도 완전히 놓치거나 따라가지 못할 정도는 아니었다는 점에서 위안을 얻으려고 한다. 이날도 완벽하지는 않았지만, 중요한 내용을 한가득 배운 하루였고 그래서 더 진하게 남을 것 같다. 내일도 이론 데이...... 잘 버텨보자!


🤩2026.03.19 목


📊파이썬으로 데이터 다루기 마무리, 드디어 시각화닷

 

이날은 원래 파이썬 시각화 진도를 본격적으로 나가는 날이 전날 끝내지 못한 파이썬으로 데이터 다루기 파트가 조금 남아 있어서, 오전에는 그 내용을 먼저 이어서 나갔다. 수강생분들이 강사님의 강의 속도가 조금 빠르다는 이야기와 함께, 오후 17시부터는 원래의 실습 시간을 확보해달라는 요청이 많았다고 한다. 그 결과 이제부터는 17시가 되면 무조건 실습 시간을 가질 수 있도록 조정해주시겠다고 하셨다.ㅎㅎ 사실 나는 진도가 조금 빠른 편이어도 괜찮다고 느끼는 쪽이었지만, 그래도 전체적으로 학습 흐름을 맞추려는 이런 조정이 있다는 점이 꽤 좋게 느껴졌다. 부트캠프가 일방적으로 흘러가는 게 아니라, 수강생들의 의견을 들으면서 운영된다는 느낌이 들었기 때문이다.

 

수업 시작 전에는 코랩에서 라이브러리와 작업 디렉토리를 다시 세팅하고, 지난 시간에 하던 부분부터 이어서 나갔다. 이제는 코랩을 열고 드라이브 마운트하고 필요한 라이브러리를 불러오는 과정도 익숙해지고 있다.


🔗데이터를 합치는 방법을 보며 느낀 것

 

오전에는 데이터 합치기와 집계, 요약 분석 쪽 내용을 이어서 배웠다. concat, merge, join처럼 이름은 익숙하지만 막상 정확히 구분해서 설명하라고 하면 헷갈릴 수 있는 개념들을 다시 정리하는 시간이었다. 특히 merge나 groupby 같은 건 예전에도 여러 번 봤던 내용이지만, 이제는 그냥 기능 이름으로만 남아 있던 게 아니라 조금 더 실제적인 맥락으로 다가왔다. 예전에는 “이런 함수가 있구나” 정도였다면, 지금은 “아 이런 상황에서 이걸 쓰는 거구나” 정도로 연결되는 느낌이 생긴다. 완전히 능숙하다고 말할 수는 없지만, 적어도 개념과 사용 상황이 조금씩 이어지고 있다는 점이 나름 뿌듯했다.

groupby로 엑셀로 정리한 표처럼 만들 수 있다!

 

그리고 집계나 정렬, 피벗 테이블, 리샘플링 같은 내용을 보면서는 데이터 분석에서 결국 중요한 건 원본 데이터를 있는 그대로 보는 것이 아니라, 목적에 맞게 다시 구조화해서 보는 능력이라는 생각도 들었다. 같은 데이터라도 어떤 기준으로 묶고 어떤 단위로 요약하느냐에 따라 전혀 다른 정보가 될 수 있다는 것이다.


👏파이썬으로 데이터 다루기 진짜 진짜 끝!!!

 

무엇보다 오늘 가장 반가웠던 건, 파이썬으로 데이터 다루기 파트가 드디어 끝났다는 점이다. 정말 드디어...! 원래라면 시각화 파트를 오늘 하루 동안 다 나갈 예정이었다고 하셨는데, 데이터 다루기 진도가 오늘 점심쯤에서야 마무리되면서 시각화는 오늘과 내일에 걸쳐 진행하게 되었다.

 

그런데 이상하게도 진도가 밀렸다는 느낌보다는, 오히려 이제야 다음 단계로 넘어간다는 해방감이 더 컸다.ㅋㅋ 데이터 다루기 파트가 어렵고 싫었다기보다는(어려운 건 맞다.), 내용이 워낙 많고 중간중간 헷갈리는 부분들이 있어서 체감상 꽤 길게 느껴졌기 때문이다. 그래서 “이제 드디어 시각화 시작이다”라는 말이 괜히 더 반갑게 들렸다. 아무래도 그래프나 차트는 결과가 눈으로 바로 보이기 때문에, 코드만 계속 보는 것보다 훨씬 직관적이고 흥미롭게 느껴지는 것 같다. 그래서인지 시각화 파트는 시작 전부터 조금 기대가 됐다.


🧐ADsP에서 공부했던 내용

 

시각화 실습에 들어가기 전에는 먼저 통계와 대표값, 산포도, 이상치, 왜도와 첨도, 변수 간 관계 같은 기본 이론을 간단히 짚고 넘어갔다. 이론 자체는 따로 정리할 예정이니까 여기서는 길게 적진 않겠지만, 개인적으로는 이 시간이 꽤 흥미로웠다. 특히! ADsP 공부할 때 봤던 내용들이 다시 나와서 반가웠다. 물론 그때 공부했던 걸 지금 완벽하게 기억하고 있는 건 아니지만...ㅎㅎ 그래도 “아 이거 어디서 본 적 있는데?” 싶은 순간들이 자꾸 생겼다. 요즘 빅분기 필기 준비도 같이 생각하고 있다 보니, 지금 부트캠프에서 배우는 내용들이 완전히 따로 노는 게 아니라는 점도 좋게 느껴졌다.

 

강사님이 국 한 수저 떠서 간 보는 걸 추론 통계에 비유하신 것도 웃기면서 이해가 잘 됐다.(국을 다 마셔서 간을 볼 수는 없으니까!) 어려운 개념도 일상적인 예시로 연결해서 설명해주시니까 훨씬 덜 딱딱하게 느껴졌다. 개인적으로는 이런 식의 설명이 정말 기억에 잘 남는다. 그냥 정의만 들을 때보다 훨씬 오래 가는 듯하다!


🎨시각화는 확실히 재미있다.

 

오후부터는 본격적으로 시각화 라이브러리와 그래프 유형을 배우기 시작했다. numpy와 pandas는 이제 거의 기본 세트처럼 느껴지고, 여기에 matplotlib, seaborn, plotly까지 추가로 불러오면서 본격적으로 “그래프를 그리는 파트”에 들어왔다.

새로운 라이브러리 불러오기

 

확실히 시각화는 이전 파이썬 파트와는 재미의 결이 조금 달랐다.ㅋㅋ 이전에는 자료형, 함수, 집계, 처리 방식처럼 코드를 이해하는 데 더 집중해야 했다면, 오늘부터는 “이 데이터를 어떤 그래프로 보여주는 게 더 적절할까?”라는 식의 고민이 더 많아졌다. 같은 파이썬이라도 결이 다르다고 해야 할까. 코드 난이도도 훨씬 수월했다..! 그래서 개인적으로는 훨씬 더 흥미롭게 느껴졌다.

 

물론 강사님께서도 코드를 외우는 것보다 더 중요한 건, 어떤 데이터를 어떤 방식으로 보여줘야 내용을 잘 전달할 수 있는지 판단하는 것이라고 하셨다. 이 말이 정말 와닿았다. 사실 코드는 검색하면 다시 볼 수 있지만, 어떤 그래프가 적절한지는 결국 데이터를 이해하고 있어야 판단할 수 있는 부분이니까?

처음 보는 Violin Plot. 자주 쓰이진 않지만 신기해서 가져와본다.

 

그래프 종류들을 하나씩 보면서도 그냥 “이건 이런 그래프구나”에서 끝나는 게 아니라, 각각이 어떤 상황에서 쓰이는지 연결해서 들을 수 있어서 좋았다. 막대그래프는 범주 비교, 히스토그램은 분포 확인, 산점도는 변수 간 관계, 히트맵은 상관관계 파악, 상자그림은 이상치 탐색... 이런 식으로 용도가 조금씩 머릿속에 정리되기 시작하니까, 시각화가 단순히 예쁘게 그리는 작업이 아니라는 점이 더 분명하게 느껴졌다.


👀그래프는 ‘예쁘게’보다 ‘맞게’

 

이날 수업을 들으면서 가장 크게 남은 건, 그래프는 예쁘게 만드는 것도 중요하지만 그보다 먼저 “맞게” 만들어야 한다는 점이었다. 처음에는 시각화라고 하면 괜히 화려하고 보기 좋은 그래프를 만드는 걸 먼저 떠올리게 되는데, 실제로는 데이터를 가장 잘 설명하는 형태를 선택하는 게 핵심이라는 걸 계속 느꼈다.

 

강사님도 라이브러리 자체에는 정답이 없다고 하셨다. matplotlib이 더 자유롭고, seaborn은 좀 더 깔끔하고, plotly는 인터랙티브 한 기능이 강하다는 식으로 각각 장단점이 다르니까 상황에 따라 쓰면 된다고 하셨다. 이 말을 듣고 나니까 “무조건 하나를 완벽하게 익혀야 한다”는 부담도 조금 줄어들었다. 오히려 지금 단계에서는 여러 그래프를 직접 보고, 어떤 차이가 있는지 익숙해지는 게 더 중요하겠다는 생각이 들었다. 그래프를 보는 눈이 먼저 생겨야, 나중에 내가 데이터를 다룰 때도 자연스럽게 적절한 시각화를 선택할 수 있을 것 같았다.


✨그래프를 잘 고르는 법을 위하여

 

수업을 들으면서 앞으로 더 배우고 싶다고 느낀 건, 단순히 그래프를 그리는 코드가 아니라 그래프를 더 잘 선택하고 더 잘 다듬는 방법이었다. 지금은 일단 기본적인 형태들을 배우는 단계지만, 나중에는 같은 데이터라도 어떤 방식으로 표현하느냐에 따라 전달력이 정말 달라질 것 같다. 그래프를 조금 더 보기 좋게 만드는 법, 너무 과하지 않으면서도 한눈에 의미가 보이게 정리하는 법, 그리고 무엇보다 데이터의 특성에 맞는 그래프를 고르는 감각을 더 기르고 싶어졌다. 아마 이런 부분이 쌓여야 나중에 보고서나 포트폴리오를 만들 때도 차이가 날 것 같다.

 

시각화는 아직 시작 단계이긴 하지만, 적어도 오늘 기준으로는 이전 파이썬 파트보다 훨씬 재미있고, 내가 더 오래 붙잡고 보고 싶은 영역처럼 느껴졌다.ㅎㅎ 그래서 앞으로 남은 진도도 꽤 기대된다!

오늘의 피날레!


📝마무리

 

파이썬으로 데이터 다루기 파트를 끝내고, 드디어 시각화 파트에 들어간 날이었다. 솔직히 말하면, 이날은 오랜만에 “재밌다”는 느낌이 더 크게 들었던 수업이었다.ㅋㅋ 물론 내용이 쉽다는 뜻은 아니지만, 그래도 그래프가 만들어지고 데이터를 보는 방식이 시각적으로 드러난다는 점에서 훨씬 흥미롭게 느껴졌다. 이전 파이썬 파트가 기초 체력을 기르는 느낌이었다면, 이날은 그걸 조금 더 눈에 보이는 결과로 연결하는 느낌이랄까. 17시 이후에는 진도를 멈추고 정리할 시간을 가질 수 있었던 것도 나름 좋았다. 배운 내용을 바로 내 방식대로 다시 훑어보는 시간이 있으니까 훨씬 덜 쫓기는 기분이었다. 앞으로도 이런 흐름이면 따라가는 데 조금 더 안정감이 생길 것 같다!


🥳2026.03.20 금


🏃아직 안 끝났습니다..

 

이날은 어제 다 끝내지 못했던 파이썬 데이터 시각화 파트를 이어서 배웠다. 강사님께서 오전 안에는 수업이 다 끝나지 않을 것 같고, 스프린트 미션은 아마 오후 중에 진행하게 될 거라고 하셨다.ㅠㅠ 그래서 오전에는 거의 내내 그래프만 주구장창 그리게 될 거라고 하셨는데ㅋㅋ, 진짜 말 그대로 이날은 시각화만 계속 한 날이었던 것 같다.

 

전날에도 matplotlib과 seaborn을 보긴 했지만, 오늘은 그보다 더 깊게 들어가는 심화 파트였다. 이미 어제도 시각화 내용이 많다고 느꼈는데, 오늘은 거기서 한 단계 더 들어가니 그래프도 그냥 그리는 게 아니구나 싶었던 순간이 많았다. 예전에는 그래프가 나오면 그냥 결과물처럼 보였는데, 오늘은 그 결과물이 만들어지는 구조를 들여다보는 느낌이 강했다.


🪡그래프를 '한 땀 한 땀'

 

먼저 matplotlib 심화부터 시작했다. matplotlib의 두 가지 인터페이스, Object-oriented 방식과 State-based 방식을 비교하면서 설명해주셨는데, 강사님 설명을 듣고 나니 둘의 차이가 조금 더 또렷하게 느껴졌다. 특히 Object-oriented 방식은 figure라는 전체 공간을 만들고, 그 안에 axes라는 캔버스를 얹어서 그래프를 하나씩 그려 나가는 방식이라고 하셨는데, 이걸 설명하시면서 바느질처럼 한 땀 한 땀 그리는 거라고 매번 말씀을 하셨던게 기억에 남았다. 진짜 그래프 하나 그리는 데에도 제목, 축 이름, 범례, 눈금, 테두리, 격자선, 마커 같은 요소들을 다 직접 손봐야 하니까 그 말이 꽤 잘 어울렸다.

Object-oriented 방식의 Line Plot 예시

 

처음에는 이런 방식이 좀 복잡하고 번거롭게 느껴졌지만, 듣다 보니 왜 이게 더 세밀한 조정에 유리한지도 알 것 같았다. 간단히 그래프 하나만 그리고 끝낼 거면 오히려 과한 방식처럼 느껴질 수 있지만, 여러 그래프를 함께 다루거나 세부적으로 모양을 조절해야 할 때는 확실히 더 체계적일 것 같다는 생각이 들었다.


✨그래프를 꾸미려면.. 코드를 짜야하지요

 

이날 수업에서는 단순히 선 그래프나 막대 그래프, 산점도를 만드는 방법만 본 게 아니라, 그 그래프를 어떻게 더 보기 좋고 의미 있게 만들 수 있는지도 계속 다뤘다. 제목을 넣고, 축 라벨을 붙이고, 범례를 추가하고, 눈금을 조정하고, 격자선을 넣고, 필요 없는 테두리를 지우는 것까지 생각보다 손볼 수 있는 부분이 정말 많았다.

 

처음에는 이런 옵션들이 너무 많아서 이걸 다 언제 외우지.. 싶은 생각도 들었지만, 들을수록 결국 이런 것들은 예쁘게 꾸미기 위한 게 아니라 정보를 더 잘 전달하기 위한 조정이라는 생각이 들었다. 특히 눈금이 겹쳐 보일 때 각도를 기울이거나, 범례가 헷갈리지 않게 라벨을 붙이는 과정은 단순한 디자인 요소가 아니라 읽는 사람을 위한 배려처럼 느껴졌다! 물론 강사님께서는 그래프는 결국 보는 사람이 중요하기 때문에 평소에는, 분석을 진행할 때에는 이렇게까지 디테일한 작업 매번은 필요 없다고 하셨다.

for문으로 그래프 그리기!

 

그리고 두 개의 axes를 만들고 각각 다른 그래프를 넣거나, 세 개를 세로로 쌓고 x축을 공유하게 만드는 등, 여러 개의 그래프를 만드는 부분에서 반복되는 코드를 for문으로 줄이는 방법까지 함께 보여주셨는데, 그걸 보면서 이 부분은 진짜 파이썬답다는 생각도 들었다. 그냥 그래프를 그리는 데서 끝나는 게 아니라, 초반에 배웠던 기초 코드인 반복문으로까지 정리해서 더 효율적으로 만드는 흐름이 당연한 것임에도 신기했다!


📊seaborn은 직관적이고 보기 쉬워

 

이어서 seaborn 심화 파트로 넘어갔다. 개인적으로는 matplotlib보다 seaborn이 확실히 더 직관적이고 보기 쉽게 느껴졌다. 코드도 조금 더 간결하고, 그래프 자체도 기본적으로 깔끔하게 나오는 느낌이라서 그런 것 같다. Figure-level 함수와 Axes-level 함수로 나누어 설명해주셨는데, 이 부분은 처음엔 용어가 조금 낯설었지만 예시를 보면서 어느 정도 감이 왔다. catplot, relplot, displot처럼 목적에 따라 그래프를 나누어 쓰는 방식도 꽤 체계적으로 느껴졌고, 같은 데이터라도 col이나 hue로 나눠보는 방식이 정말 유용해 보였다.

 

특히 데이터를 한 그래프 안에서 색깔로 구분해서 볼지, 아니면 아예 그래프를 쪼개서 볼지에 따라 인사이트가 달라질 수 있다는 점이 흥미로웠다. 그냥 “그래프를 그린다”가 아니라 어떻게 보여줘야 더 잘 보이는가를 계속 고민하게 만드는 파트였다. seaborn을 배우면서 느낀 건, 확실히 빠르고 보기 좋은 그래프를 쉽게 만들 수 있게 도와주는 도구라는 점이었다. 반면 matplotlib은 조금 더 세밀하게 하나하나 조정하는 데에 강하다는 느낌이 들었다!

쪼개서 보기 vs 색깔로 구분하기

 

그래서 강사님께서 Figure-level 함수는 데이터를 쪼개보며 인사이트를 찾기에 좋고, Axes-level 함수는 matplotlib 기반의 추가 가공이 쉬워서 더 직관적이라고 설명하셨을 때 그 차이가 조금 더 와닿았다. 결국 이것도 어느 쪽이 더 낫다기보다는, 목적에 따라 적절히 고르는 문제인 것 같다.


🖱️신기하고 재미있는 plotly ㅎㅎ

 

마지막으로 plotly를 배웠다. plotly는interactive 한 그래프를 만들 수 있다는 점이 가장 큰 특징이었는데, 차트 위에 마우스를 올리면 값이 뜨고, 확대하거나 클릭하면서 볼 수 있다는 점이 확실히 신기했다! (태블로 보는 줄)

마우스 오버를 하면 해당 변수 정보가 뜬다

 

특히 plotly express는 코드도 생각보다 간단해서, 복잡한 설정 없이도 꽤 다양한 그래프를 만들 수 있다는 점이 인상적이었다. 막대 그래프, 선 그래프, 파이차트, 트리맵, 선버스트 차트, 히스토그램, 산점도, 버블 차트, 퍼널 차트까지 보면서 시각화 종류가 진짜 많구나 싶었다. 물론 모든 그래프를 실무에서 다 자주 쓰는 건 아니겠지만, 어떤 데이터에는 어떤 차트가 더 적절한지 감을 잡는 데에는 확실히 도움이 되었다. plotly는 특히 나중에 결과물을 보여주거나 공유할 때 꽤 강력하게 쓰일 수 있겠다는 생각이 들었다!


😭시각화 진도가 끝났을 때의 해방감과 세 번째 스프린트 미션

 

이 긴 시각화 진도는 결국 17시 10분쯤에야 끝났다. 진짜 드디어 끝났다는 생각이 들었다... 전날부터 이어진 시각화 파트가 양도 많고 내용도 촘촘해서 쉽지는 않았는데, 그래도 한 번에 쭉 보고 나니 확실히 시각화 도구들의 차이정도는 조금씩 머릿속에 정리된 느낌이 들었다. 하지만 그래프를 커스터마이징함에 있어서 어떨 땐 이 코드 저럴 땐 저 코드... 다른 부분들이 있다 보니 이 부분은 많이 헷갈렸던 것 같다. 그래도 matplotlib, seaborn, plotly가 각각 어떤 상황에서 더 잘 어울리는지 감이 조금 생긴 것 같아서, 단순히 함수만 본 것보다 더 의미 있게 느껴졌다.

 

시각화 진도가 끝난 뒤에는 이날 원래 일정이었던 세 번째 스프린트 미션이 진행되었다. 이번 미션은 NumPy 문제 4개, Pandas 문제 12개, 시각화 문제 11개가 기본 요구사항이었고, 심화 요구사항으로는 온라인 쇼핑몰 고객 데이터 생성 및 분석이 있었다. 그런데 아무래도 이날 남은 시간이 2시간도 채 되지 않았고, 나도 이제까지 배운 파이썬 내용을 한 번 정리하고 싶은 마음이 더 컸기 때문에, 이날은 일단 넘파이 문제까지만 끝내보는 걸 목표로 했다. 그래서 저번처럼 내가 티스토리에 정리해 둔 이론 글을 보면서 문제를 풀었다.ㅎㅎ

 

결론은! 수업 끝나기 전까지 넘파이 4문제를 다 푸는 데 성공했다. 내가 푼 코드가 효율적인지는 아직 스스로 잘 판단이 안 서지만, 그래도 어쨌든 오늘 목표했던 부분은 끝냈다는 점에서 꽤 뿌듯했다. 무엇보다 좋았던 건, 내가 티스토리에 정리해둔 이론 내용을 실제로 보면서 문제를 푸는 데 꽤 도움을 받았다는 점이었다! 그냥 기록용이라고만 생각했던 게 아니라, 진짜 내가 다시 돌아와 참고하는 자료가 되고 있다는 게 좀 뿌듯했다.ㅎㅎ(진짜로!) 그래서 이런 기록을 계속 남기는 게 생각보다 더 의미 있다는 생각도 다시 들었다. 넘파이 문제들도 단순 계산에서 끝나는 게 아니라, 평균보다 큰 값만 고르기, 조건에 맞는 고객 선별하기, boolean indexing과 np.where(), np.any() 같은 것들을 활용해야 해서 은근히 복습이 잘 되는 느낌이었다. 막상 문제로 보니까 배운 개념들이 조금 더 살아나는 느낌이 있었다.


📝마무리

 

솔직히 오전 내내 그래프만 계속 보다 보니 머리가 조금 과부하처럼 느껴지기도 했지만, 한편으로는 시각화 도구들이 각각 어떤 특징을 가지는지 조금씩 감이 잡혀가는 하루이기도 했다. 그리고 미션에서는 시간이 많지 않았음에도 넘파이 문제는 끝냈다는 점이 꽤 만족스럽다. 아직 판다스와 시각화 문제들이 남아있긴 하지만, 이날은 적어도 “배운 내용을 아예 못 써먹는 건 아니구나” 하는 감각을 얻은 날이었다. 시각화도 끝났고, 파트 1의 큰 이론 덩어리 하나를 넘긴 느낌이라서 많이 많이 후련하다.~


💎데이터 분석가 부트캠프 Week 2 마무리


코드를 짜면서 매번은 아니지만ㅎㅎ, 가끔씩 “내가 이런 방법을 생각해냈다고?” 싶은 순간들이 있었다. 혼자서 코드를 고민하고 직접 짜 보고, 에러를 해결해 나가는 과정이 사고하는 방식이나 단순한 코딩 실력 향상에 정말 큰 도움이 된다는 걸 요새 뼈저리게 느끼고 있다. 그리고 그 과정이 생각보다 훨씬 놀랍게 다가오기도 했다. 관련 전공을 하고 있음에도 파이썬 기초조차 제대로 못하는 나 자신 때문에 자신감이 많이 떨어져 있었는데, 이번 부트캠프를 통해 조금씩 그 감각을 다시 되찾아가고 있는 것 같아 다행이라는 생각이 든다. 특히 스프린트 미션이 나에게 정말 많은 도움이 되고 있다는 걸 점점 더 느끼는 중이다. 3주차도 화이팅!