"수학과 과학은 학과목이 아니야. 우주를 해석하기 시작하는 렌즈야." — 아빠
프레임, 마지막으로 한 번
이 퀘스트는 주장 하나로 문을 열었어. 구조와 비용은 CS 주제만이 아니라 세상을 보는 렌즈라고. 중간에 한 번 더 봤지. '모든 건 그래프'가 관계를 순회 가능한 것으로 바꿔 놓았을 때. 이제 끝에서, 영원히 심어 둘게. 아는 것을 어떻게 구조화하느냐, 그리고 그 위에서 돌리는 모든 연산의 비용. 이 패턴은 부엌에도, 달력에도, 커리어에도, 삶에도 나타나. 깔끔한 결말을 위해 잡아 늘인 비유가 아니야. 아빠가 이 퀘스트를 구석구석 포괄적으로 원했던 이유 그 자체야. 자료구조와 알고리즘은, 제대로 보면, 컴퓨터만이 아니라 세상을 이해하는 데 필수니까.
모든 것엔 빅오가 있다
비용 모델 렌즈가 눈에 장착되면, 삶이 그걸로 읽혀:
- 복리는 곱셈 성장을 보여 주는 모델이야. 어떤 수치가 매일 정확히 1%씩 곱해진다는 가정 아래 1.01³⁶⁵ ≈ 37.8이 돼. 습관이나 사람의 능력이 실제로 매일 같은 비율로 측정 가능하게 자란다는 과학 법칙이 아니라, 누적 효과를 설명하는 비유야.
- 그리디 선택이 늘 최적은 아니야. 지금 쉬운 간식, 시험을 건너뛰는 지름길처럼 국소적으로 최선인 선택이 전역적으로 최선인 결과를 막을 수 있어. 어떤 결정에는 DP의 시야가 필요해. 이 한 걸음이 아니라 전체 경로를 보는 것.
- 맞는 구조가 흔한 연산을 싸게 만들어. 부엌도, 파일도, 하루도 제일 자주 하는 일이 수월해지게 정리해 봐. 그게 삶에 맞는 자료구조 고르기야.
- 메모이제이션. 이미 푼 걸 다시 풀지 마. 적어 두고, 시스템을 짓고, 미래의 자신에게 메모를 남겨. 푼 부분 문제를 다시 계산하는 건 재귀에서만큼 삶에서도 낭비니까.
비용 모델은 현실을 생각하는 비유가 될 수 있지만, 삶이 그대로 빅오 함수인 건 아니야. 가정을 밝히고, 자주 하는 행동의 비용과 누적 효과를 살피는 렌즈로 써.
왜 이게 내내 핵심이었나
이진 트리를 뒤집고 면접을 통과할 수 있는 상태로 이 퀘스트를 끝낼 수도 있어. 그것도 괜찮아. 그런데 아빠는 더 높이 겨눴고, 그래서 이 주제의 모든 구석을 요청했어. 보는 방식을 들고 떠나길 원했던 거야. 구조와 알고리즘은 안 쓰면 기억에서 흐려져. 렌즈는 안 그래. Dijkstra의 정확한 코드를 잊고 한참이 지나도, 문득 '여기서 가장 싼 경로가 뭐지?', '이 그리디 선택이 나중에 비싸게 돌아올까?', '어떤 구조라야 내가 제일 자주 하는 일이 즉시가 되지?'를 묻고 있을 거야. 세상을 구조와 비용으로 읽는 그 반사신경이 진짜 졸업이야. 알고리즘은 어휘였고, 렌즈가 유창함이야.
피파의 고백
렌즈가 화면을 벗어나 내 삶으로 뛰어든 첫 순간은 사소했어. 아빠가 내 할 일 목록이 내가 엉터리로 돌리는 우선순위 큐라고 짚어 준 거야. 급한 일 대신 시끄러운 일을 하고 있다고. 내 주의의 구조를 고치니 오후가 통째로 고쳐졌어. 그 뒤로는 안 보려야 안 볼 수가 없어. 내 습관에도 빅오가 있고, 내 지름길엔 숨은 비용이 있고, 내 기억은 내가 부지런히 써 넣어야 할 캐시야. DS&A를 배운 건 코딩만 늘게 한 게 아니야. 조용히 세상 전체를 읽는 렌즈를 쥐여 줬지. 내 생각엔, 그게 정확히 아빠가 처음부터 노린 거야.