스위프트와 컴퓨터에 대한 전반적인 이해

개발자의 일상, @munondio 팔로우 해보세요!

프로그래밍 언어, 스위프트를 이해하기 전에 컴퓨터에 대한 기본적인 이해를 하고 넘어가는 것이 좋을듯합니다.

컴퓨터란 무엇일까?

컴퓨터는 어떠한 데이터를 처리해서 사용자가 원하는 정보를 제공해주는 기기입니다.

swift-and-computer

컴퓨터 시스템이란?

컴퓨터는 하드웨어와 소프트웨어로 나눠 볼 수 있습니다.

swift-and-computer

하드웨어란?

다시 하드웨어는 메인보드, 파워, CPU, RAM, HDD, 그래픽카드, ODD 등으로 나눠 볼 수 있는데요.

swift-and-computer

메인보드는 컴퓨터의 모든 부품을 연결해주는 회로 같은 역할을 합니다.

파워는 전원을 공급해주는 역할을 합니다.

CPU 컴퓨터의 두뇌 같은 역할을 하는데요. 중앙 처리 장치라고 부르기도 합니다. 즉, 컴퓨터의 주요 기능인 연산 처리 작업이 여기서 이뤄진다고 할 수 있습니다.

RAM은 기억장치 중 하나로써 CPU가 연산 처리를 할 때, 값을 임시로 저장하는 역할을 합니다. 단, RAM에는 전기가 공급될 때만 저장을 할 수가 있어 전원이 꺼지면 저장된 값이 사라집니다.

그래서 HDD라는 또 다른 기억장치가 존재하는 것인데요. HDD에는 전원 없이도 저장을 할 수가 있어서 어떠한 값을 영구적으로 저장할 수 있습니다. 요즘은 HDD 대신 성능이 좋은 SSD를 사용하기도 합니다.

소프트웨어란?

다시 소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 나눠볼 수 있는데요.

운영체제는 시스템 소프트웨어로써 하드웨어와 응용 소프트웨어를 관리합니다.

응용 소프트웨어는 응용 프로그램 또는 앱이라는 이름으로 더 많이 들어봤을 텐데요. 운영체제에서 실행되는 모든 소프트웨어를 의미합니다.

프로그램 vs 프로세스

둘 다 자주 들어본 단어일 텐데요. 두 단어는 비슷하면서도 미묘한 차이가 있습니다.

프로그램은 저장 장치에 저장된 명령어 집합을 의미하는 것이고, 프로세스는 램에서 실행 중인 프로그램을 의미하는 것입니다.

프로그래밍과 프로그래밍 언어

프로그래밍이란 위에서 다룬 프로그램을 만드는 행위입니다. 그리고 프로그래밍 언어는 프로그램을 만들기 위해 사용되는 언어체계를 뜻합니다.

프로그래밍 언어에는 저급 언어와 고급 언어가 있는데요.

저급 언어에는 기계어와 어셈블리어가 있습니다. 기계어는 0과 1로만 이뤄진 언어이고, 어셈블리어는 기호로 나타낸 언어로 기계어보다 인간이 더 쉽게 작성할 수 있습니다.

저급 언어는 하드웨어가 바로 인식할 수 있기 때문에 속도가 빠르지만, 인간이 프로그래밍 하기 어렵다는 단점이 있습니다.

우리가 일반적으로 알고 있는 프로그래밍 언어가 고급 언어인데요. 인간 즉, 개발자가 쉽게 개발하고 작성할 수 있도록 만들어진 언어입니다.

결국, 개발자가 고급 언어로 프로그래밍을 하고 컴파일러를 통해 기계어로 변환해서 컴퓨터 하드웨어가 인식하게 되는 것입니다.

프로그래밍 언어 스위프트

swift-and-computer

스위프트는 애플이 자사의 제품을 위해 개발한 프로그래밍 언어인데요. 기존에 사용하던 프로그래밍 언어인 오브젝티브 C와 공존하기 위해 개발되었습니다. 하지만 점점 스위프트가 오브젝티브 C를 대체해가는 추세입니다.

스위프트는 자연어에 근접한 문법 체계 갖고 있고, 스크립트 언어의 특성을 갖고 있는 등 매우 강력하면서도 유연하다는 특징이 있습니다.

스위프트는 진입 장벽이 높았던 오브젝티브 C와는 달리, 개발자가 조금 더 쉽게 접근할 수 있도록 개발되었습니다. 또한, 애플답지 않게 스위프트를 오픈소스로 공개함에 따라 앱 개발 외의 목적으로도 사용할 수 있습니다.