왜 database–table–record인가?
왜 세상은 이렇게 ‘3단계(3depth)’를 좋아할까?**
프로그래밍을 배우다 보면
신기하게도 구조가 자꾸 3단계로 나뉜다는 사실을 발견한다.
Ruby: Module → Class → Method
DB: Database → Table → Record
Rails MVC: Model → View → Controller
웹 구조: Domain → Path → Resource
심지어 자연과학도 비슷하다.
생명: DNA → 세포 → 기관
물질: 원자 → 분자 → 물체
우주: 별 → 은하 → 은하단
이쯤 되면
“왜 하필 3단계일까?”
라는 질문이 자연스럽게 떠오른다.
우연일까?
필연일까?
1단계는 “너무 단순하다.” 2단계는 “구조가 없다.” 3단계에서 비로소 ‘의미’가 생긴다.
1단계만 있으면
구분이 없다.
세상이 한 덩어리처럼 느껴진다.
2단계 구조는
단순한 이분법에 가깝다.
양자택일밖에 없기에
입체감을 만들 수 없다.
그런데
3단계가 되는 순간, 비로소 구조가 생긴다.
큰 틀
그 안의 그룹
그리고 개별 요소
이 구조는
정보를 저장하고,
이해하고,
확장하는 데 아주 적절한 깊이다.
3은
“너무 얕지도, 너무 깊지도 않은 숫자”다.
인간의 뇌가 3단계를 가장 ‘직감적으로’ 받아들인다
우리가 사는 공간은 3차원이다.
위/아래
좌/우
앞/뒤
공간을 인식하는 뇌의 기본 구조가 3차원형이라
3단계 구조는 가장 직관적으로 이해된다.
프로그램 개념을 4단계나 5단계로 쪼개면
인간의 working memory는 금방 포화된다.
반대로
3단계 구조는
“한 번에 딱 잡히는 정보의 단위”다.
그래서 많은 학문과 도구, 시스템들이
자연스럽게 3depth를 가진다.
프로그래밍 개념도 3단계일 때 가장 안정적이다
Ruby에서:
Module – 큰 개념의 묶음
Class – 구체적 형태
Method – 실제 행동
이 3단계를 넘어서면
일반 학습자에게는 지나치게 복잡해진다.
그러니 언어 설계 자체가
“사람이 이해하기 좋은 구조”를 따르는 것이다.
Database도 똑같다.
Database – 큰 저장 공간
Table – 분류된 서랍장
Record – 실제 저장된 값
4단계로 쪼개버리면
오히려 관리가 복잡해지고
뇌는 그것을 한 단위로 받아들이기 어려워한다.
즉, 세상의 많은 시스템은
“사람이 이해하기 좋은 오리지널 UX”를 따르고 있다.
우주는 3차원이고, 인간의 사고도 3차원적이다
재미있게도
물리학자들이 말하길,
“3차원 공간은 생명이 안정적으로 존재할 수 있는 최소 차원이다.”
4차원이면
중력법칙이 깨지고
행성이 안정된 궤도를 유지하기 어렵다.
2차원이면
생명이 복잡한 구조를 가지기 어렵다.
3차원은
우주가 안정적으로 유지될 수 있는
절묘한 차원이다.
프로그래밍 개념도
전부 3단계 구조로 되어 있는 이유는,
어쩌면 우리가 이 우주의 법칙에 맞춰
도구를 만들고 있기 때문일지도 모른다.
결론: 3depth 구조는 ‘우리가 이해하고 창조할 수 있는 최대 효율 단위’다
너무 얕지 않고
너무 깊지 않고
직관적으로 잡히고
확장도 가능하고
시스템 전체를 입체적으로 파악할 수 있는
가장 이상적인 깊이가 바로 3depth다.
그래서 세상의 많은 것들이
본능적으로 이 구조를 따른다.
그리고 프로그래밍은
인간의 사고를 확장하는 도구이기에,
당연히 인간의 사고 구조와 가장 잘 맞는
3단계를 기반으로 설계되어 있다.
그래서 개발자가 된다는 건 ‘3단계 구조를 다루는 사람이 된다’는 뜻이다
큰 개념을 잡고
그 안에서 구조를 만들고
개별 요소를 정확히 다루는 것
이게 바로 개발자의 사고다.
세상이 복잡해 보이지만
사실 대부분은 3단계 구조의 반복일 뿐이다.
그걸 이해하면
프로그래밍도, 데이터도, 웹도
갑자기 단순하고 명확하게 보이기 시작한다.