graph 모양 Keras. skip connection, 다중 입력, 다중 출력, 공유 layer 가 들어오는 순간 Sequential 은 무너져 — Functional 은 버틴다. ResNet, U-Net, multi-modal model 다 여기 산다. 전체 API 가 `output = layer(input)` 이걸 체인으로 잇다가 마지막에 `keras.Model(inputs, outputs)` 로 감싸는 게 끝.
Sequential 의 한계가 보이는 순간 — skip connection, 다중 입력, 다중 출력, 공유 layer — 그게 Functional 의 출발점. graph 가 *list* 가 아니라 *DAG* (방향성 비순환 그래프) 일 때 Functional 이 자연스러워.
실전에서 어디 쓰이나? ResNet (skip), U-Net (encoder-decoder + skip), Inception (parallel branch + concat), siamese (shared encoder), multi-modal (image + text 합치기). 사실상 SOTA architecture 거의 모두가 Functional 또는 Subclass 야.