이 매개변수가 얼마만큼의 현실세계를 파악하느냐를 통해서 수학이라는 추상화 도구를 이용함


프로그래밍은 여기서 프로그래밍 랭귀지를 쓰는거지


문제는 여기서 추상화 과정에서 당연히 공통된 속성을 추리는 일반화 과정을 거쳐야하는데


이 과정에서 사물->추상화로 개념 추출->개념의 일반화->구현 이 단계를 거침


여기서 추상화로 개념 추출 후, 개념의 일반화를 하는 과정에서 잘못된 개념을 가져오면


가령 포유류의 공통점이랍시고 손과 다리가 있다! 라는 걸 가져와버리면 어떻게 될까? 고래나 이런걸 고려하지 않게 되버리는거지. 


그래서 이 추상화->일반화라는 과정을 거칠때 좀 더 신중하게 생각해야하는거


그래서 코드 아키텍쳐라고 하지만 개념의 문제라서 사실 보는 사람에 따라서 같은 코드라도 다른 구조를 생각할 수 있음


이를 보통 맹인이 코끼리 만져서 코끼리 판단하는 문제랑 비슷하다고 봄. 그래서 코드의 문서화나 구조의 문서화를 통해서 공통된 구조 로직을 상기 시키라고 하는거


그런의미에서 is-a 관계의 개념을 가져올때도 결국 프로그래머가 얼마나 일반화를 잘 시키느냐가 중요한거


이게 프로그래머가 세계를 보는 방식임 


펠리너 헤르만스가 쓴 프로그래머의 뇌라는 책을 봐