본문 바로가기

Info/IT Info

[ IT 지식 2 ] 개발자와 프로그래밍 언어, OS(운영체제)

반응형

 

컴퓨터의 언어는 0과 1로 이루어져 있어 사람의 언어로 직접 컴퓨터에게 명령할 수 없습니다. 그래서 컴퓨터에게 일을 시키려면 사람의 언어를 0과 1인 기계어로 변환시켜서 컴퓨터에게 명령해야 하는데, 이때 변환 - 번역의 역할을 하는 것이 컴파일러입니다.

 

출처 : 다음 한국어 사전

 

사람의 명령을 기계어로 변환해 컴퓨터에게 전달하는 것이 컴파일러입니다. 

이 때 컴파일러도 사람의 언어를 바로 이해하고 기계어로 변환하는 것이 아니라, 프로그래밍 언어로 작성된 문서를 받아서 기계어로 변환합니다. 이제 조금 익숙한 단어가 나옵니다. 

컴파일러에게 프로그래밍 언어로 작성된 문서를 줘서 일을 시키는 사람이 개발자입니다.

위의 사람을 개발자로 바꿔서 이해하면 - 개발자가 컴퓨터에게 일을 시키기 위해 프로그래밍 언어를 사용하여 문서를 작성해 컴파일러에게 주고 / 컴파일러가 0과 1로 이루어진 기계어로 변환해 컴퓨터에게 전달하면 / 컴퓨터는 명령받은 일을 수행합니다.

즉, [ 사람 - 컴파일러 - 컴퓨터 ] = [ 개발자 - 프로그래밍 언어로 문서 작성 - 컴파일러 변환 - 컴퓨터 수행 ]이란 과정을 거치게 됩니다.

여기서 개발자가 컴파일러에게 전달하기 위한 문서작업 즉, 프로그래밍 언어로 문서작업을 하는 것프로그래밍 또는 코딩이라고 말합니다.

 

 

그럼 개발자는 프로그래밍 언어(영어)로 쓰인 저 문서를 어떤 방식과 기준으로 작성하고 있는 걸까요? 그러니까 프로그래밍(코딩)을 어떤 원리로 하고 있는 걸까요?

 

출처 : 기계공학대사전 한국사전연구사

 

단적인 예로 레포트를 쓴다던지 사무업무를 위해서라던지 한 번쯤은 엑셀이나 한글 프로그램을 써 본 적이 있습니다. 거기에는 표를 만들고 글꼴을 정하는 문서작업을 위한 기능이 있습니다. 마찬가지로 프로그래밍을 위한 프로그램인 IDE(통합개발환경)가 있습니다. 

ex) 안드로이드 - 안드로이드 스튜디오(IDE), 애플 운영체제 앱 개발 용도 - 엑스 코드 Xcode(IDE)

 

출처 : 위키백과

 

 

크롬을 실행하려면 바탕화면이나 작업표시줄에 고정되어 있는 아이콘을 클릭하기만 하면 됩니다. 하지만 컴퓨터의 입장에서는 보조 기억장치(HDD, SSD)에 저장(설치)된 프로그램을 실행하는 것입니다.

실행은 CPU(중앙처리장치 Central Processing Unit)가 하는 것으로, 보조 기억 장치(HDD,SSD)는 보관만 합니다. 실제로 일을 하는 것은 CPU로, 메모리(Memory) CPU가 매번 보조기억장치에서 데이터를 끌어와 실행하기에는 효율이 떨어져(속도 하향), 보조기억장치의 중간 저장소 역할을 하는 것과 동시에 CPU의 작업공간입니다.

 

프로그램 실행 = [보조기억장치 - 크롬 설치 장소]- [CPU - 크롬 실행]- [메모리 - 크롬을 실행하기 위한 CPU 작업공간]

 

스마트폰에서 앱을 실행할 때에도 마찬가지입니다.  

우리가 매번 스마트폰에서 앱을 실행시키는 이 단순한 행동에도 운영체제(OS)가 연관되어 있습니다.

운영체제 EX) Microsoft - Window, 애플 - Mac OS* iOS, 구글 - Android

 

 

 

 

운영체제는 하드웨어, CPU, 메모리를 관리합니다. 그래서 우리는 간단하게 프로그램, 앱을 설치하고 실행할 수 있습니다.

이러한 운영체제는 각자의 프로그래밍 언어를 사용합니다. 만약 마이크로소프트의 윈도우에서 실행 가능한 프로그램을 만들려면 마이크로소프트의 프로그래밍 언어로 프로그램을 만들어야 윈도우에서 실행이 가능해 집니다. 또한 같은 프로그램을 애플의 맥에서 실행되게 하려면 맥의 프로그래밍 언어로 만들어져 있는 프로그램이어야 합니다. 아이폰의 앱을 안드로이드에서는 사용할 수 없습니다. 운영체제가 다르고, 프로그래밍 언어가 다릅니다.

 

그래서 개발자들이 사용하는 언어가 많습니다. 윈도우 위에서 실행 가능한 프로그램을 만들려면 C++, Visual C++ , Mac OS 경우 Swift, 안드로이드의 경우에는 JAVA, Kotlin이라는 프로그래밍 언어를 알아야 합니다. 

안드로이드 개발자는 안드로이드 운영체제 위에서 돌아가는 프로그램-소프트웨어를 만드는 사람이고, 윈도우 개발자는 윈도우 운영체제 위에서 돌아가는 소프트웨어를 개발하는 개발자입니다.

 

 


머리로 이해한 내용을 끄집어내서 요약- 정리- 전달하는 글쓰기는 또 다른 세계네요(...)

필요하신 분들께 조금이라도 도움이 되는 글쓰기였기를 바랍니다!!

 

이 글을  쓴 사람은 비전공자이므로 내용이 다소 부실할 수도 부족할 수도 있습니다,  부디 공부한 내용에 문제가 있다거나 지적할 내용이 있으면 가차없이 댓글로 알려주세요 :D

감사합니다!

 

 

 

반응형