IT세계에는 알기어려운 개념들이 아직 너무 많이 존재한다는 생각이 들었다.
그래서 '비전공자를 위한 이해할 수 있는 IT지식'이라는 책을 시작으로
내 IT학습의 기반을 다시 다져보려고 한다.
IT산업은 완성된 작품을 놓고 생각해서는 안된다. 변화의 속도가 빠른 산업이기 때문이다.
컴퓨터는 0과 1로 이루어진 기계어를 쓴다. 인간의 말은 통하지 않는다. 하지만,인간은 오류없이 입력한대로 정확하게 계산하는 컴퓨터에게 일을 시키고 싶었고 인간은 이를 극복한다.
❗️인간은 컴퓨터와 인간 중간에 '컴파일러'라는 프로그램을 만든다.
개발자는 컴파일러에게 문서로 일을 시킬수 있는 사람이다.
프로그래밍언어를 이용해 처리할 일을 문서로 만들어 컴파일러에게 전달하면
'컴파일러'는 기계어로 번역해 컴퓨터에게 전달한다.
😝컴파일러에게 줄 문서를 만드는 작업을 하는 것(프로그래밍 언어로 작업을 하는 것)을 프로그래밍 또는 코딩이라고한다.
'영어'로 되어있는 프로그래밍 언어와 1과 0으로 이루어진 기계어를 하나하나 작성하기엔 시간이 너무 소비된다.
❗️그래서 앞의 몇글자만 치면 자주 쓰이는 문장을 추천해주거나, 코드가 아니라 그림으로 작업할 수 있도록 개발자들을 돕는 'IDE'(통합개발환경)이 있다.
IDE 의 예: Android Studio, Xcode, Eclipse ....
프로그래밍 언어는 수많은 천재들에 의해 수없이 많이 개발되어왔다.
그 중, 많은 사람들이 선택한 언어는 살아남아 발전한다.
프로그래밍언어는
'고수준' : 인간 친화적 언어
'저수준' : 컴퓨터 친화적 언어
🧐저수준언어
배우기어렵다.
꼼꼼하게 적어야한다.
오류가 자주 발생할 수 있다.
단!!! 구체적인 만큼 컴퓨터가 소화하기 쉽고, 낮은 사양의 컴퓨터에서도 원활이 작동한다.
🧐고수준언어
쓰기쉽다.
배우기쉽다.
컴퓨터에게 적당히 설명해두면 컴퓨터가 자동으로 처리하도록한다.
단!!! 작동이느리고, 컴퓨터의 사양에 따라 사용이 불가할 수 있다.
요즘의 컴퓨터들은 점점 고사양으로 변하는 추세이기 때문에, 굳이 저수준 언어를 사용하지 않아도 된다. 그러면 저수준언어는 어떤 분야에서 사용하는 걸까?
‣ 메인기능이 이미 있는데, 부가적으로 컴퓨터기능을 사용할 수 있는 가전제품에 사용한다. 저사양==저가격 이기 때문이다. IPTV와 같은 예다.
따라서 현실세계에서는 고수준, 저수준 언어 모두가 적절한 곳에서 다양하게 사용된다.
CPU 는 데이터를 저장하지 않기 때문에, 어떤 작업을 수행하려면 작업에 필요한 데이터를 CPU에게 보내줘야한다.
CPU : 처리할 데이터를 줘!!
하지만 데이터를 가지고 있는 보조기억장치의 속도는 CPU보다 느리고, 수많은 데이터들 중 우리가 필요한 데이터를 찾는데 너무 많은 시간이 걸린다..
❗️그래서 사람들은 CPU의 '메모리' RAM'이라는 CPU만의 작업공간을 만들고 임시저장했다가 완료되면 보조기억장치로보내고 작업시작전에만 데이터를 꺼내오면 되도록 만들었다.
❗️어떤 프로그램을 처음 실행하면 처리(로딩)시간이 비교적 길다.
하지만 실행한 프로그램위에서 어떤 데이터를 작업하는 것은 빠르게 처리된다.
윈도우, 맥 OS, IOS, 안드로이드
운영체제는 우리대신 '하드웨어' 를 관리해준다.
운영체제가 하드웨어를 컨트롤하고, CPU와 메모리 등을 관리해주기 때문에 우리는 컴퓨터의 원리를 몰라도 클릭 몇번으로 포토샵을하고 인터넷을 할 수 있었다.
총 10장으로 이루어진 이 책을 매일 규칙적으로 1-2장씩 읽고 이해할 생각이다.
이야기책처럼 쓰여져있어서 가독성이 좋다. 다만, 전문적인 지식보다는 폭넓은 이해를 돕는 느낌이라 이 책을 다 읽고 난 후에 계속해서 IT관련 지식들을 꾸준히 습득해야겠다는 생각이 들었다.
좋은글 감사합니다
저도 해당 책 읽어봤는데 비전공자인 저에게 쉽게 와닿는 설명이더라구요!