[251209] 내배캠 D+36

최다빈·2025년 12월 9일

Python

목록 보기
2/2
post-thumbnail

🐍 파이썬 구조가 보이기 시작했다.

저번 주부터 파이썬 기본기를 꾸준히 반복하며 공부하고 있다.

되돌아보면, 그동안 나는 파이썬을 너무 단순하게 생각했다.
“문법만 익숙해지면 된다”는 가벼운 태도였고,

  • 왜 이런 문법 구조가 존재하는지,
  • 왜 내가 이렇게 코드를 짰는지,
  • 어떤 원리로 실행되고 어떤 이유로 에러가 나는지

"조금만 더 깊게 파고들었다면,
훨씬 빠르게 성장할 수 있었을 텐데…" 하는 아쉬움도 남는다.

특히 에러가 나오면 "아잇 진짜 하기 싫어 우우 👎🏻👎🏻"
이러면서 넘겨버렸지,

  • 에러 메시지가 어떤 종류인지,
  • 왜 발생했는지,
  • 어디서부터 잘못된 흐름이 시작되었는지

분석해보려는 태도가 없었다.
익숙하지 않다는 이유로 피하려 했던 것이다.

하지만 데이터 분석가에게 파이썬은 선택이 아닌 필수다.
“파이썬이 어려워서 포기할 것인지,
아니면 어떻게든 익숙해져서 앞으로 나아갈 것인지”
이 질문은 늘 나를 고통스럽게 하는 난제였다. 🥲

그럼에도!
파이썬이 조금씩 이해되기 시작하면서,
데이터를 다루는 과정이 재미있다는 생각이 들었다.
결국 선택지는 하나였던 것이다.
쨌든 계속 한다. 익숙해질 때까지 킵고잉인 것이다.

오늘 TIL은 그런 의미에서,
익숙하다고 생각했던 문법이 왜 다르게 보이기 시작했는지,
그리고 지난 며칠 동안 내가 어떤 사고의 변화를 겪었는지
그 과정을 기록해보려 한다.


✅ 1. 코드의 흐름을 이해하려면, 먼저 사고 흐름부터 잡아야 한다.

예전에는 코드가 위에서 아래로 실행된다는 말 그대로,
그냥 코드를 적어 내려가기만 하면 된다고 생각했다.

하지만 여러 문제를 풀다 보니
코드를 짜기 전에 데이터를 어떻게 해야 하는지 먼저 생각하고 정리하는 게 중요하다는 걸 알게 됐다.

  • 입력은 어떤 형태인지,
  • 중간에 어떤 정제가 필요한지,
  • 조건은 어디에서 갈라지는지,
  • 반복문은 어떤 데이터를 기준으로 돌아가는지,
  • 중간 결과는 어떤 구조로 저장될지

등등

이런 흐름이 먼저 잡히면
코드를 구현하는 과정은 훨씬 명확해진다는 걸 체감하고 있다.


✅ 2. 반복문은 데이터를 일정한 방식으로 처리하는 구조였다

처음엔 반복문을 그냥 리스트를 도는 문법 정도로만 봤다.
하지만 실제로 문제를 풀다 보면
반복문이 중요한 이유는 따로 있었다.

대부분의 데이터는 묶음 형태로 들어온다.
리스트, 딕셔너리 배열, CSV 한 줄씩, JSON 응답 등.

그리고 우리는
그 안의 요소 하나하나를 동일한 방식으로

  • 정제하고,
  • 계산하고,
  • 조건 검사하고,
  • 다시 저장한다.

반복문은 “하나의 작업 흐름”을 여러 데이터에 일관적으로 적용하기 위한 구조였다.

이걸 이해하고 나니

  • 어떤 처리를 반복문 안에 넣어야 하는지,
  • 어떤 건 반복문 밖에서 해야 하는지

기준이 더 분명해졌다.


✅ 3. 조건문은 분기가 아니라 판단 기준을 정리하는 과정이었다

if/elif/else는 너무 익숙해서 별 생각 없이 썼는데,
문제를 여러 번 분석하다 보니
조건문은 단순히 앞뒤를 나누는 문법이 아니라
데이터를 어떤 기준으로 판단할지 결정하는 과정이라는 게 느껴졌다.

  • 기준값을 어떻게 잡을지
  • 순서가 논리적으로 맞는지
  • 예외 상황이 생겼을 때 어떻게 처리할지

이런 판단들이 먼저 정리되어야
조건문 구조도 자연스럽게 정리된다.


✅ 4. 문자열은 생각보다 손이 많이 가는 자료형이었다

문자열을 처음엔 그저 텍스트라고 생각했다.
하지만 실제 데이터를 다루다 보니
문자열이 전처리에서 가장 손이 많이 가는 유형이라는 걸 깨달았다.

  • 숫자처럼 보이지만 문자열로 들어오거나,
  • 불필요한 공백이 섞여 있거나,
  • 쉼표가 포함되어 있거나,
  • 형식이 일정하지 않은 경우

이처럼, 예상하지 못한 변수가 많았다.

그래서 replace, strip, split 같은 기본 함수들이
전처리 작업에서 자연스럽게 많이 쓰이게 된다.
문자열을 어떻게 정리하느냐가
후속 작업 전체에 영향을 준다는 걸 다시 실감했다.


✅ 5. 딕셔너리는 데이터를 의미 단위로 묶는 구조였다.

딕셔너리는 key-value 형태라 단순해 보이지만
계속 쓰다 보니, 이 구조가 의미 있는 정보를 묶는 데 매우 적합하다는 걸 알게 됐다.

예를 들어 학생 정보를
name, kor, eng, math로 묶는 순간
이건 이미 “학생 한 명의 기록”이라는 단위가 된다.

딕셔너리를 어떻게 설계하느냐에 따라
조건문, 반복문, 함수, 출력 형식까지 전부 달라지므로
구조를 잘 구성하는 게 중요하다는 걸 실습을 통해 깨달았다.


✅ 6. 함수는 코드 줄이기보다, 사고를 분리하는 데 의미가 있었다

처음에는 함수가 “중복을 줄이는 기술” 정도로 느껴졌다.
하지만 여러 문제를 풀면서
함수는 사고를 정리해서 하나의 단위로 만드는 과정이라는 게 더 잘 이해됐다.

함수를 만든다는 건
이 로직 자체를 하나의 의미 있는 흐름으로 인정하고
앞으로 그 방식대로 처리하겠다는 결정이기도 했다.

그래서 함수화가 잘 되면
전체 코드 흐름이 더 안정적으로 유지된다.


✅ 7. 예외 처리는 에러를 막는 기능이 아니라, 불확실성을 관리하는 방식이었다.

try/except는 처음엔 “프로그램이 멈추지 않도록 하는 장치”라고만 생각했다.
하지만 데이터를 실제로 다루다 보니
예외 처리는 예상하지 못한 값이나 상황을 처리하기 위한 전략이라는 게 더 명확해졌다.

어떤 상황에서 예외를 허용하고
어떤 부분에서는 바로 막을지
이 기준을 정하는 것도 사고의 영역이었다.


✅ 8. 확신은 문서가 아니라 흐름과 구조에서 생겼다.

예전에는
“그냥 다들 이렇게 하니까 그런가 보다”로 납득했다면,
지금은 그 기준이 달라졌다.

  • 데이터 흐름이 자연스러운지
  • 중간 처리 과정이 복잡하지 않은지
  • 예외 상황을 고려했는지
  • 함수 분리가 의미 있는지
  • 딕셔너리 구조가 문제를 잘 표현하는지

이 기준을 모두 충족하면
굳이 누가 맞다고 해주지 않아도
자연스럽게 스스로 납득이 된다.

이 변화가 최근 공부에서 가장 큰 성과였다.


✅ 9. 지금 내가 파이썬을 바라보는 방식

  • 파이썬은 데이터를 흘리는 구조를 만드는 언어다.
  • 조건문은 분기가 아니라 기준을 정리하는 방식이다.
  • 반복문은 여러 데이터에 동일한 작업 흐름을 적용하는 구조다.
  • 문자열 처리는 전처리의 중요한 부분이다.
  • 딕셔너리는 의미 단위 모델이다.
  • 함수는 사고를 정리하고 관리하는 단위다.
  • 예외 처리는 불확실성을 관리하는 전략이다.

✅ 10. 오늘의 결론

익숙한 문법 속에서, 사고 흐름이 조금씩 잡히기 시작했다.

오늘은 새로운 문법을 배운 날이 아니라
익숙한 문법을 새로운 방식으로 바라본 날이었다.

문법이 아닌,
문법이 만들어내는 흐름과 구조를 파악하는 감각이 생기고,

앞으로 문제구조코드 흐름으로 자연스럽게 이어지는 시점이 올 것 같다는 생각이 든다.


끝~@~!@~@#

profile
Running on hopes and tiny skills...

0개의 댓글