저번 주부터 파이썬 기본기를 꾸준히 반복하며 공부하고 있다.
되돌아보면, 그동안 나는 파이썬을 너무 단순하게 생각했다.
“문법만 익숙해지면 된다”는 가벼운 태도였고,
"조금만 더 깊게 파고들었다면,
훨씬 빠르게 성장할 수 있었을 텐데…" 하는 아쉬움도 남는다.
특히 에러가 나오면 "아잇 진짜 하기 싫어 우우 👎🏻👎🏻"
이러면서 넘겨버렸지,
분석해보려는 태도가 없었다.
익숙하지 않다는 이유로 피하려 했던 것이다.
하지만 데이터 분석가에게 파이썬은 선택이 아닌 필수다.
“파이썬이 어려워서 포기할 것인지,
아니면 어떻게든 익숙해져서 앞으로 나아갈 것인지”
이 질문은 늘 나를 고통스럽게 하는 난제였다. 🥲
그럼에도!
파이썬이 조금씩 이해되기 시작하면서,
데이터를 다루는 과정이 재미있다는 생각이 들었다.
결국 선택지는 하나였던 것이다.
쨌든 계속 한다. 익숙해질 때까지 킵고잉인 것이다.
오늘 TIL은 그런 의미에서,
익숙하다고 생각했던 문법이 왜 다르게 보이기 시작했는지,
그리고 지난 며칠 동안 내가 어떤 사고의 변화를 겪었는지
그 과정을 기록해보려 한다.
예전에는 코드가 위에서 아래로 실행된다는 말 그대로,
그냥 코드를 적어 내려가기만 하면 된다고 생각했다.
하지만 여러 문제를 풀다 보니
코드를 짜기 전에 데이터를 어떻게 해야 하는지 먼저 생각하고 정리하는 게 중요하다는 걸 알게 됐다.
등등
이런 흐름이 먼저 잡히면
코드를 구현하는 과정은 훨씬 명확해진다는 걸 체감하고 있다.
처음엔 반복문을 그냥 리스트를 도는 문법 정도로만 봤다.
하지만 실제로 문제를 풀다 보면
반복문이 중요한 이유는 따로 있었다.
대부분의 데이터는 묶음 형태로 들어온다.
리스트, 딕셔너리 배열, CSV 한 줄씩, JSON 응답 등.
그리고 우리는
그 안의 요소 하나하나를 동일한 방식으로
반복문은 “하나의 작업 흐름”을 여러 데이터에 일관적으로 적용하기 위한 구조였다.
이걸 이해하고 나니
기준이 더 분명해졌다.
if/elif/else는 너무 익숙해서 별 생각 없이 썼는데,
문제를 여러 번 분석하다 보니
조건문은 단순히 앞뒤를 나누는 문법이 아니라
데이터를 어떤 기준으로 판단할지 결정하는 과정이라는 게 느껴졌다.
이런 판단들이 먼저 정리되어야
조건문 구조도 자연스럽게 정리된다.
문자열을 처음엔 그저 텍스트라고 생각했다.
하지만 실제 데이터를 다루다 보니
문자열이 전처리에서 가장 손이 많이 가는 유형이라는 걸 깨달았다.
이처럼, 예상하지 못한 변수가 많았다.
그래서 replace, strip, split 같은 기본 함수들이
전처리 작업에서 자연스럽게 많이 쓰이게 된다.
문자열을 어떻게 정리하느냐가
후속 작업 전체에 영향을 준다는 걸 다시 실감했다.
딕셔너리는 key-value 형태라 단순해 보이지만
계속 쓰다 보니, 이 구조가 의미 있는 정보를 묶는 데 매우 적합하다는 걸 알게 됐다.
예를 들어 학생 정보를
name, kor, eng, math로 묶는 순간
이건 이미 “학생 한 명의 기록”이라는 단위가 된다.
딕셔너리를 어떻게 설계하느냐에 따라
조건문, 반복문, 함수, 출력 형식까지 전부 달라지므로
구조를 잘 구성하는 게 중요하다는 걸 실습을 통해 깨달았다.
처음에는 함수가 “중복을 줄이는 기술” 정도로 느껴졌다.
하지만 여러 문제를 풀면서
함수는 사고를 정리해서 하나의 단위로 만드는 과정이라는 게 더 잘 이해됐다.
함수를 만든다는 건
이 로직 자체를 하나의 의미 있는 흐름으로 인정하고
앞으로 그 방식대로 처리하겠다는 결정이기도 했다.
그래서 함수화가 잘 되면
전체 코드 흐름이 더 안정적으로 유지된다.
try/except는 처음엔 “프로그램이 멈추지 않도록 하는 장치”라고만 생각했다.
하지만 데이터를 실제로 다루다 보니
예외 처리는 예상하지 못한 값이나 상황을 처리하기 위한 전략이라는 게 더 명확해졌다.
어떤 상황에서 예외를 허용하고
어떤 부분에서는 바로 막을지
이 기준을 정하는 것도 사고의 영역이었다.
예전에는
“그냥 다들 이렇게 하니까 그런가 보다”로 납득했다면,
지금은 그 기준이 달라졌다.
이 기준을 모두 충족하면
굳이 누가 맞다고 해주지 않아도
자연스럽게 스스로 납득이 된다.
이 변화가 최근 공부에서 가장 큰 성과였다.
오늘은 새로운 문법을 배운 날이 아니라
익숙한 문법을 새로운 방식으로 바라본 날이었다.
문법이 아닌,
문법이 만들어내는 흐름과 구조를 파악하는 감각이 생기고,
앞으로 문제 → 구조 → 코드 흐름으로 자연스럽게 이어지는 시점이 올 것 같다는 생각이 든다.
