코드 보기 전에 이 이야기부터 알고 가야 해
TensorFlow는 진공 상태에서 태어난 게 아니야. Google Brain 안에서 그 전신이 DistBelief (2011)였거든. YouTube 썸네일로 그 유명한 Google Cat 네트워크를 훈련시킨 시스템. 강력했지만 Google 내부 infra에 너무 단단히 묶여 있어서 Mountain View 밖으로 나오질 못했어. 그래서 2015년 TensorFlow를 만들 때 mandate가 명확했지 — 연구자 laptop에서도, Google 데이터센터에서도, model을 다시 짜지 않고 그대로 돌릴 수 있는 시스템을 만들자.
초기 TF 1.x는 한 가지로 유명했어. 그래프 먼저, 실행은 나중에. tf.placeholder랑 tf.Variable로 정적 graph 짜놓고, tf.Session 열어서 feed_dict 넣고 sess.run() 부르는 거야. 디버깅은 graph node를 print하는 거지, 값을 보는 게 아니었어. Python스럽지 않아도 너무 안 Python스러워서 한 세대의 연구자들이 그냥 PyTorch로 가버렸어. 2024–2026년에 읽는 ML paper들이 PyTorch default인 거, 그 시기 갈림길의 후폭풍이야.
tf.GradientTape, @tf.function 데코레이터, 다 Session이랑 placeholder가 망가뜨린 걸 고치려고 만든 거. 이 lens로 TF 2.x를 보면 디자인 선택들이 갑자기 다 말이 돼.
TensorFlow 2.0 (2019.9)은 완전 reset이었어. eager execution이 default가 되고, Keras가 공식 high-level API가 되고, production 속도 필요하면 @tf.function으로 graph 컴파일. 지금이 2026년 3월이고, 현재 stable은 TensorFlow 2.21.0이야. 이번 release 핵심: Python 3.9 지원 끝 (3.10+ 필수), TensorBoard 별도 설치 (pip install tensorboard), TFLite는 자기만의 LiteRT repo로 분리 진행 중.