들어가며
현재 저는 직무 전환을 하기 위해 SKALA 교육을 받고 있습니다. 그래서 해당 교육 과정에 배운 내용을 복습겸 글을 작성하려고 합니다. 미래의 저를 위해 이 글을 남깁니다.
2026 파이썬 트랜드
AI시대로 변하면서, 가장 떠오르는 언어는 파이썬이 아닐까 싶습니다. AI의 발전으로 IT업계에 나타난 전반적인 변화를 살펴보고 왜 파이썬이 대세가 되었는지 알아보도록 하겠습니다.
산업의 변화
1. 코드 작성에서 에이전트 오케스트레이션으로
요즘 직접 스크립트를 작성하는 개발자는 10명 중 2~3명이 될까요? 가능한 모든 작업을 AI에게 맡기게 되는데요, 이에 따라 에이전트가 동작하는 실행 환경(하네스)설계가 코딩 에이전트 성능을 좌우하고 있습니다. 그러면 사람은 무엇을 해야할까요? 바로 작성된 코드를 검증할 수 있는 능력이 필요해집니다.
2. GenAI 도입의 실증적 확산과 조직적 지연
개발자 개인으로 본다면 AI 도구를 적극적으로 활용하고 있다고 볼 수 있습니다. 그러나 기업, 조직 입장에서는 거버넌스, 프로세스, 품질 기준에 따라 이를 따라가지 못합니다. 그래서 일부 IT 기업을 제외하면 AI 전환이 어려움이 있습니다. 이는 결국 기업 간의 격차 발생을 유발합니다.
3. 생산성 향상과 검증 부담의 공존
AI는 반복적인 보일러플레이트, 테스트 스캐폴딩, 문서화에서는 사람이 따라갈 수 없을 정도로 뛰어납니다. 그러나 복잡한 비즈니스 로직이나 규제 대상 데이터 처리 흐름에는 신뢰도가 낮은 것을 알 수 있습니다. 그러므로 항상 AI는 도구일 뿐, 의존하지 말자는 마인드로 접근해야 합니다.
4. 요구사항 공학과 코드 리뷰의 재구성
AI도구 통합 속도가 팀 전체 협업 변화 속도를 앞질러 조직적 부조화가 발생하고 있습니다.
5. Agentic AI와 비즈니스 모델의 변화
최근 발표되는 논문이나 보고서에 따르면 특정 업무 전용 AI 에이전트와 통합될 엔터프라이즈 앱 비율이 40%로 예상하며, 기업의 AI/ML 도입률은 67%이상 긍정적으로 답변한 것으로 나타납니다.
따라서, AI는 개발자를 대체보다는, 개발자의 역할을 작성자에서 검증자로 확장한다고 볼 수 있습니다.
파이썬은 왜 데이터 분석의 표준 언어인가?
1. 인터프리터 언어
인터프리터란 소스코드를 한 줄씩 읽어 즉시 실행하는 것을 뜻합니다. 이에 대화형(REPL) 탐색이 가능해져 데이터 분석에 적절합니다. 또한 파이썬은 단순 한 줄씩 실행 구조가 아닌 중간에 바이트코드 라는 중간 표현 단계가 존재하여 이식성과 재사용성을 확보했습니다.
2. 방대한 생태계
Numpy, Pandas, scikit-learn, Polars, DuckDB등 수 많은 플러그인을 통해서 데이터 분석에 필요한 모든 것을 쉽고 빠르게 다운로드 받아서 구현할 수 있습니다.
3. 2026 AI/ML 표준
TensorFlow, PyTorch, LangChain, RAG 파이프라인까지 현재 AI/ML 중심이라고 할 수 있는 프로젝트들이 모두 파이썬 중심으로 진행되고 있습니다.
4. 읽기 쉬운 문법
비전공자, 초보자가 쉽게 배울 수 있는 들여쓰기 기반의 블록 구조를 가지고 있어 매우 간결한 언어입니다.
파이썬
지금가지 왜 파이썬을 선택해야하는 지에 대한 이야기를 했다면, 지금부터는 파이썬 자체에 대해 알아보도록 하겠습니다.
파이썬의 실행 구조는 다음과 같습니다.
소스코드(.py) : 개발자 작성
-> 파서(Parser) : 문법 분석
-> AST(Abstract Syntax Tree) : 추상 구문 트리
-> 바이트코드(ByteCode) 생성기 : 중간 표현
-> PVM(Python Virtual Machine) : 결과 출력
import dis
dis.dis(func) # dis 명령을 통해 바이트코드를 출력할 수 있습니다.
AST
파이썬 실행 구조에서 볼 수 있는 특징 2가지 중 하나가 AST입니다. AST를 사용하는 목적은 다음과 같아요.
- 코드의 구조를 명확하게 보여줍니다.
- 코드 구조를 트리 형태로 조작합니다.
- 수많은 개발도구들을 활용하여 코드 분석 및 내부 조작을 합니다.
컴파일 과정에서 코드에 문제가 없는지 분석하는 과정을 AST가 담당하게 됩니다. 그래서 나오는 결과물을 __pycache__에 저장하게 됩니다. 이는 py_compile 모듈에서 확인할 수 있습니다.
다음은 AST 예시입니다. ast라는 모듈을 사용하면 코드 내부에서 어떻게 해석되는지를 확인할 수 있습니다.
import ast
expr = "8 // 2 * (2 + 2)"
tree = ast.parse(expr, mode="eval")
print(ast.dump(tree, indent=2))
# Result
Expression(
body=BinOp(
left=BinOp(
left=Constant(value=8),
op=FloorDiv(),
right=Constant(value=2)),
op=Mult(),
right=BinOp(
left=Constant(value=2),
op=Add(),
right=Constant(value=2))))
ByteCode
바이트코드는 파싱 후 생성하는 중간 표현으로 pyc 파일로 저장됩니다. 이후 PVM에서 이를 실행하게 됩니다. 바이트코드는 실행 속도를 향상 시키는 장점이 있으며, 추상화된 명령어 수준으로 OS에 독립적으로 동작할 수 있게 됩니다. 아래는 바이트코드를 출력한 결과입니다.
import dis
def add(x, y):
return x + y
dis.dis(add) # 바이트 코드 출력
# 아래는 위 코드를 바이트 코드로 표현한 것
3 0 RESUME 0 # 실행 초기화 (3번 줄)
4 2 LOAD_FAST 0(x) # 지역 변수 x를 스택에 Push (4번 줄)
4 LOAD_FAST 1(y) # 지역 변수 y를 스택에 Push
6 BINARY_OP 0(+) # 스택에서 두 값을 pop 한 후 + 연산 수행, 결과 Push
10 RETURN_VALUE # 연산결과 반환
PVM
바이트코드를 하나씩 읽어 해석하고 실행하는 엔진입니다. 스택 기반으로 동작하는 가상 머신으로 바이트코드는 OPCODE + Argument 구조로 해석하게 됩니다.
파이썬 실행 파이프라인
- 소스코드: 개발자가 작성한 .py 파일 (Lexer, Token)
- 파싱: Token으로 AST() 생성 및 문법 오류 감지
- 컴파일: AST에서 바이트코드(.pyc) 생성, __pycache__에 저장
- PVM 실행: 바이트코드를 OPCODE 단위로 해석 및 실행 (CPython 인터프리터)
- 결과 반환: 실행 결과 출력, 예외 처리
메모리 모델
파이썬의 메모리 관리 구조는 다음과 같습니다.
- Stack: 함수 호출, 지역 변수 등
- Heap: 객체, 클래스 인스턴스, 리스트 등
- Ref Counting + GC: 메모리 자동 해제
일반적인 GC를 가지는 언어들과 다른 바 없이 진행됩니다.
파이썬의 객체 구조에서 특이한 점이 있는데, 자료형이 없다는 것입니다. int, string의 표현은 없고 모든 값은 객체(object)로 표현됩니다. 그러면 이게 숫자인지 문자인지 어떻게 구별할까 그런 의문이 생깁니다. 객체로 저장하지만 각 객체는 메타정보를 포함하고 있습니다.
이 메타 정보에는
- type: 자료형 정보
- refcount: 참조 수
- value: 데이터 값
이 저장되어 있습니다.
마무리
오늘은 산업 전반적인 AI/ML 트렌드와 파이썬이 왜 데이터 분석에 뛰어난가, 그리고 간단한 파이썬 실행 구조에 대해 알아보았습니다. 감사합니다.