티스토리 뷰

객체지향

쉽게 이해하는 객체지향 4부

path7inder 2018. 5. 23. 00:15

부제 - 그래도 쉽지 않다.



컴퓨터는 "0 과 1"로


구성된 문장만 이해합니다. 



하지만 "0 과 1"로


구성된 프로그램을 짜기란 쉽지 않습니다.


"커피 마시고 돌아오면 무슨 작업을 하고 있었는지 알 수 있었을까?"


의문이 들지만


누군가는 이 작업을 했겠죠

"0 과 1" 보다는


사람이 알아보기 편한 코드가 등장합니다.


어셈블리어


문법을 몰라도 추리는 해볼만한 형태네요



그 이후에는


C언어를 포함


현재 프로그래밍의 형태와 유사한


고급 언어들이 등장합니다



기계 친화적이란 특정 하드웨어의 최적화하기 용이하다는 겁니다.


인간 친화적이란 말은 사람이 이해하기 쉽다는 말입니다.


프로그래밍 코드는


시대가 흐를수록


사람이 이해하기 쉽도록 변해갑니다.




기계어로 통역하는 과정은


컴파일, 인터프리터, 가상머신 등등을 포함해서 어쨌든 통역이라고 표현하겠습니다


특정 기계가 찰떡같이 알아듣는 것 보다는


어떤 기계라도 적당히 알아듣는 기계어를 만들어냅니다.


기계마다 구조가 다르고


조금 더 구조를 고려한 기계어일수록 


더 좋은 성능이  나오게 됩니다.


하지만 통역이라는 과정에서는 그런 세세한 조작이 어려우니


성능적인 손실이 생기기 마련이죠


그래도 사람이 이해하기 쉽게 변합니다! 대체 왜!


더 적은 투입으로 더 큰 산출물을 얻는 것을 말합니다.


코드가 사람이 이해하기 쉬워지는거랑 생산성이랑 무슨 상관이죠?


결국 프로그램 코드는 사람이 만들거든요


시대가 흐르면서


하드웨어 성능도 발달하고, 소프트웨어의 규모도 커지게 됩니다.


작은 규모의 프로그램은


뛰어난 장인 한명이 만드는 명품 소프트웨어가 좋겠지만


큰 규모의 프로그램은


그만큼에 인력이 필요한 법이죠


하지만, 모든 작업에 고도의 전문성이 요구되지는 않을겁니다.



그 대단한 피라미드에


건축 설계를 한 사람은 소수고


대다수의 인력은 돌을 나르는데 사용되었겠죠



소프트웨어의 규모를 결정짓는 요소에


낮은 전문성이 요구되는 작업이 큰 비율을 차지합니다.


(물론 전문성, 준 전문성 작업이 필요한 기반이 잘 닦여있어야 빛을 발합니다)



프로그래밍이 인간에게 친화적이면


진입장벽이 낮아지고


소프트웨어 규모을 키우는 작업을 위한 인력 확보고 용이해지죠


적재적소의 인력을 배치할 가능성이 높아지니


생산성도 증가합니다.



이야기가 너무 삼천포로 샛네요


다시 객체지향 이야기로 돌아와서


왜 이런 이야기를 했느냐


객체지향 패러다임도 다르지 않다는 겁니다.


생산성을 높이는 것이 목적이다 이것도





'객체지향' 카테고리의 다른 글

쉽게 이해하는 객체지향 5부  (0) 2018.06.06
쉽게 이해하는 객체지향 3부  (2) 2018.05.21
쉽게 이해하는 객체지향 2부  (2) 2018.05.18
쉽게 이해하는 객체지향 1부  (0) 2018.05.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함