알통 지식정보공유

알록달록

ChevronLeft

컴/폰

프로그래밍의 개념

FileX

kingsnake

2022-11-09 15:00

조회수 : 22

썸네일 이미지

'코딩을 연습할 수 있는 사이트' 글을 작성한 이후 1달이 넘어서야 새 글을 작성하게 되었습니다.

이번 글에서는 프로그래밍의 기초 용어들과 프로그램 / 소프트웨어의 구분 등에 대하여 알아보겠습니다.



프로그램, 프로그래밍, 프로그래밍 언어


프로그램

기계는 사람이 원하는 작업을 수행하기 위해 동력을 제어하고 관리하는 장치인데, 프로그램은 사람이 원하는 동작을

기계(주로 컴퓨터)가 수행할 수 있도록 구체적으로 실행 가능한 명령들을 순서대로 작성한 것을 말합니다. 여러 개의

프로그램과 그 프로그램에서 사용되는 데이터들을 모든 '프로그램의 집합'을 소프트웨어라고 부르기도 하는데, 이렇게

만들어진 소프트웨어는 컴퓨터 하드웨어를 제어하고 동작시켜 사람이 원하는 작업을 수행하게 됩니다.



바둑 AI '알파고'의 경우로 예를 든다면, 인공지능 알고리즘 구현을 위한 프로그래밍 코드를 입력하고,

이를 실행시키기 위해서는 컴퓨터 하드웨어와 연산이 가능한 멀티코어 GPU(그래픽카드) 장치가 있어야

바둑 AI가 정상적으로 실행됩니다.


또, 프로그램과 데이터들은 종류에 따라 그래픽 OS(운영체제)에서 서로 다른 아이콘으로 나타내는 것이 일반적이며,

텍스트로 나타낸다면 각자의 속성을 나타내는 기호나 색상으로 표현되기도 합니다. 아래 알통 메인화면에서 '질문'과

'답변' 탭의 경우 아이콘으로 나타나는 반면, 아래의 '알록달록'은 색상이 추가된 텍스트로 나타남을 알 수 있습니다.



프로그래밍

프로그램을 설계하고 실제로 구현하는 작업을 프로그래밍이라고 하는데, 컴퓨터가 번역하여 실행할 수 있는 코드를

작성한다고 하여 '코딩'으로 부르기도 합니다. 일반적으로 사용되는 프로그래밍의 의미로는, 좁게는 프로그램 개발부터

넓게는 프로그램을 유지, 보수, 개선하는 범위까지 포함됩니다. 아래 다이어그램에 프로그래밍의 범위가 나와있습니다.



프로그래밍 언어

다른 사람들과 의사소통을 하기 위한 수단으로 언어가 있는 것처럼, 사람이 컴퓨터와 소통을 하며 컴퓨터에게

원하는 동작을 수행하도록 하기 위해서는 프로그래밍 언어가 필요합니다. 프로그래밍 언어는 크게 저급과 고급으로

나눌 수 있고, 사용 목적이나 프로그래밍 방법에 따라서도 분류가 가능한데, 이 부분은 다음 글에서 다루겠습니다.




프로그램과 소프트웨어


소프트웨어의 정의

소프트웨어는 어떤 작업을 수행하기 위해 만든 한 개 이상의 프로그램과 데이터들의 집합을 말하는데, 소프트웨어라는

이름은 전기/전자 장치로 구성되는 하드웨어와 대조된다는 의미에서 유래하였습니다. 소프트웨어는 용도가 정해진

하드웨어와 다르게 필요한 작업을 수행시키기 위해 마음대로 구성, 수정, 변경이 가능하며, 사람이 원하는 여러 작업을

수행할 수 있도록 다양한 소프트웨어들을 만들 수 있습니다. 아래는 하드웨어와 운영체제 소프트웨어의 예시입니다.



또한, IOS나 안드로이드와 같은 모바일 운영체제, 크롬 등의 웹 브라우저, HTML 코드도 소프트웨어입니다.


소프트웨어의 종류

소프트웨어는 크게 시스템 소프트웨어와 응용 소프트웨어로 구분할 수 있습니다.


시스템 소프트웨어에는 대표적으로 컴퓨터 하드웨어를 관리하고 제어하는 OS(운영체제)가 있습니다.

운영체제는 컴퓨터 하드웨어를 운영하는 데 필요한 각종 장치 드라이버, 시스템 유틸리티 프로그램들을 통해

컴퓨터 시스템의 자원을 관리하고, 응용 소프트웨어들의 실행과 동작을 관리합니다.


응용 소프트웨어는 운영체제가 설치된 후 추가적으로 설치할 수 있는 소프트웨어를 말합니다.

문서 작성, 미디어 편집, 웹 사이트 검색, 데이터 저장 및 처리뿐만 아니라 다양한 작업들을 위한 응용 소프트웨어들이

있으며, PC뿐만 아니라 각종 스마트기기의 운영체제에서 동작하는 앱들도 응용 소프트웨어의 분류에 들어갑니다.



응용 소프트웨어 중에는 다른 응용 소프트웨어들을 개발하기 위해 사용되는 소프트웨어들도 있는데,

이를 통합 개발 환경 (IDE : Integrated Development Envi-ronment)이라 합니다. IDE에는 소프트웨어 개발에 사용되는

컴파일러, 디버거, 인터프리터, 링커, 텍스트 에디터 등이 있고, 대표적인 IDE로 C언어 기반의 'Dev-C++'가 있습니다.



이미지 출처: 픽사베이 및 Dev-C++ 공식 홈페이지

7,300

7

댓글

  • manta23 님이 감사의 마음으로 kingsnake님께 0알을 증정했어요!

  • 빌립집사 님이 감사의 마음으로 kingsnake님께 0알을 증정했어요!

  • 빌립집사 님이 감사의 마음으로 kingsnake님께 0알을 증정했어요!

  • 👍

    김민재09DotDotDot
  • 잘봤습니다..

    mj4754DotDotDot