항상 왜? 라는 질문을 스스로에게 해봐라
추상적이라는 것은 '구체적'의 반대 의미로서 구체적인 것으로부터 멀어져 공통적인 성질을 의미한다
쉽게 설명하면 사람을 졸라맨으로 표현하는 것과 같다
그리고 객체 지향에서 다형성은 왜 쓰냐? 캡슐화는 왜 하나요?
이런 질문의 답이 전부 추상화로 귀결된다
그러면 추상화를 왜 해야하는데요?
라고 묻는다면
서로 공통적인 것으로 묶어야 코드를 덜 타이핑하고
코드 수가 적어져야 인간이 직관적으로 이해할 수 있는 고수준 언어가 되며
유지보수가 편리하기 때문이다
솔직히 이건 객체 지향 프로그래밍이라면 기본인데 이게 안 되면 정적타입 언어에선 날코딩 밖에 못 함 많은 사람들이 자바 쓰면서 씨처럼 탑다운 절차지향으로 조져놓지
님 의견에 동의합니다. 다만 살다보니 그게 현실화가 안되다보니, 이리 치이고 저리 치이고
추상화될수록 이해하기 더 힘든데 뭔소리냐
A 세계와 B 세계가 있고 그 세계를 관장하는 신이 있다고 치자. A와 B 세계의 신들은 인구가 너무 많아진 탓에 생존하고 있는 모든 생명체의 악함을 판단해서 절반을 죽이라고 더 큰 신으로부터 명령을 받았어. A 세계는 추상화를 잘 한 덕분에 살아서 움직이는 것을 '생명체'라고 정의하고 있었어. 덕분에 '생명체'라고 낙인찍힌 것들에 대해 절반을 추려내고 악한 순위를 따져서 절반만 벼락을 내렸어. 그런데 B 세계는 '생명체'라는 정의가 따로 없어서, 일일이 찾아다니면서 '살아서 움직이는 것'과 '악함'을 판단했지만 인구가 너무 많아서 한 사람 한 사람 판단할 여력이 없었어. 결국에 B 세계는 제 시간에 임무를 완수 할 수 없었어.
니가 어느 세계를 구축하는 신이라고 생각해봐. 개 한 마리, 사람 한 마리만 키울 거면 추상화가 이해하기 힘든 건 당연한 거임.