주의 : 어디까지나 참피도 이해 가능하게 비유했기 때문에 문자 그대로 이해하면 참피가 될 수 있는 테치!
사실 이해 못했는데 이해했다고 착각하고 있을지도모름~
1. 로우레벨과 하이레벨
what : 로우레벨은 클러치 쓰는 차. 하이레벨은 클러치 없는 자동변속 으로 비유 가능함.
why : 하이레벨 먼저 배운 뒤, 로우레벨 배우면 왜 저딴 좆같은걸 쓰냐 라는 생각이 필히 드는데 요즘에도 클러치 있는 수동변속 차 쓰는 이유와 비슷함. 자동변속 자동차가 당근빠따 더 편하지만, 자동변속 이라고 하여 클러치와 비슷한 개념이 없는건 아니고, 기계가 알아서 자동화 해줄 뿐. 즉 기계 자원을 사용하게 되고, 사람이 직접 하는게 더 효율적임. 즉 효율이 중요한 분야에서는 로우레벨을 쓸 수 밖에 없는거. 물론 현대 사회에서 그런 분야는 점점 줄어들고 있는게 현실이고,
2. 포인터
what : 변수나 함수 등의 이름을 통해 말하는게 아니라 그 변수나 함수가 있는 장소를 말하는 값. 뭐 여기까지는 제법 많이 알려진 설명이지만 이것만 들어가지고는 좆가틈 'ㅅ' 씨발 그래서 머 어쩌라고... 근데 왜 이딴 조가튼걸 써야 하냐고! 하는 기분이 드는데 그 이유는 why가 제대로 되지 않았기 때문이라고 생각함.
why : 로우레벨과 하이레벨을 수동변속과, 자동변속으로 비유했는데 그렇다면 포인터는 클러치로 비유 가능함. 즉 포인터를 쓰는 이유는 기계어 레벨에서는 변수 이름을 대면 바로 변수나 함수를 호출 가능한게 아니라, 그 주소를 통해 호출하며 이름으로 호출하는건 추가적인 로직이 필요. 간추려 말하자면 기계 레벨에서는 이게 더 편하기 떄문임. 더 자세히 알고 싶으면 어셈블리를 배우면 좋다고 하는데 사실 배운다고 해서 당장 써먹을때가 생기냐 하면 고건 아닐거같음
3. 객체지향과 클래스
what : 객체는 object의 번역으로써... 사물 그 자체를 뜻하며 (이딴식으로 설명하면 책 저자를 패고 시픔 'ㅅ')
what2 : 서랍별로 정돈해 놓는 거임. A번 서랍에 있는 변수와 함수는 A번 끼리만 놀고 B번 끼리는 B번만 놀고. 물론 대다수의 언어는 A번과 B번이 소통할 창구 정도는 가지고 있지만, 대부분의 책에서는 권하지 않음. 단 프갤필독 고전도서 중 하나인 <<유지보수하기 어렵게 코딩하는 방법>> 에서는 장려하고 있음/
what3 : 정 어려우면 이리 생각해도 될듯. 다른 파일 임포트 해서 사용하면 다른 파일의 변수와 함수를 사용할 수 있음. 여기서 각각의 클래스는 각각의 파일이고, 이게 객체임. 다만 이건 좀 비약한 감이 없지 않음 ㅇㅅㅇ~
why : 이 역시 what 하고 why가 살짝쿵 동떨어진 분야라 그럼. 그리고 그 why에 대해서도. 디버깅을 하기 쉬우니, 가독성 좋으니, 심지어 클래스 내부에서만 변수이름 중복이 안디니 변수 이름 짓기 쉬운게 장점이니. 등등의 이야기가 있음. 뭐 사실 전부 맞는 이야기임. 다만 가장 큰 이유는 클래스 별로 나누는 것이 협업하기 쉬어서 라고 생각함. 가독성 역시 협업하고 크게 관련된 이슈고. 솔플한다고 가독성 좆까 하면 좆까 한 새끼가 괴롭지만 협업에선 더 중요하잖아 ㅇㅅㅇ~.
언젠가 이런 내용을 잘 풀어써서 미취학 아동을 위한 코오딩 입문서 쓰고시픔 'ㅅ'~
미소녀 캐릭터 걷들여서
좋은 비유. 1번을 부연하면, 자동변속은 ECU 가 단순한 논리로 적용하는 것이고 수동변속은 인간이란 슈퍼컴퓨터를 믿는거지.
즉 하이레벨은 어디에 가냐가 목표고, 로우레벨은 얼마나 손실없이 가냐가 목표인것.
객체지향과 클래싱은 더 큰 복잡체를 개념적으로 숫자 하나만큼 작게 줄여주는데 의미가 있다~
타입과 연산자에 대한 이해가 필요한 것.
호에 로우해졌어!
아니 그 반대구나