본문 바로가기
개발이야기/C++

C++기초: 1강- 프로그래밍이란 무엇인가?

by oddsilk 2024. 11. 25.

 

프로그래밍이란 무엇인가?

안녕하세요, 여러분! 😊

오늘은 프로그래밍이라는 것이 도대체 무엇인지, 왜 우리가 그것을 배워야 하는지 아주 쉽게 알아보는 시간을 가져볼 거예요.

 

혹시 "프로그래밍"이라는 단어를 들으면 막연히 어렵게만 느껴지지 않으셨나요?

사실 프로그래밍은 그렇게 멀고 어려운 개념이 아니랍니다. 오늘은 여러분이 이해하기 쉽도록 재미있는 예시와 비유를 통해 차근차근 설명드릴게요.


 

1. 프로그래밍이란?

프로그래밍은 "컴퓨터에게 명령을 내리는 과정"입니다.

더 쉽게 말해, 컴퓨터가 어떤 일을 해야 하는지 하나하나 차근차근 설명해 주는 것이라고 할 수 있어요.

컴퓨터는 사람처럼 스스로 판단하거나 창의적으로 생각할 수 없어요. 대신, 우리가 정확히 가르쳐 준 대로 일을 수행하죠.

프로그래밍이란 컴퓨터에게 일을 시키기 위해 지시서를 작성하는 과정입니다.

 

여기서 중요한 건 "지시서"라는 단어예요.

우리는 컴퓨터에게 일을 시키고 싶을 때, 사람이 쓰는 자연어(한국어나 영어)를 사용할 수 없어요. 왜냐하면 컴퓨터는 인간의 언어를 바로 이해하지 못하기 때문이에요. 대신 컴퓨터가 이해할 수 있는 프로그래밍 언어를 사용해서 일을 시키죠.

 

프로그래밍 언어는 마치 외국어를 배우는 것과 비슷해요.

우리가 외국에 여행 가서 레스토랑에서 음식을 주문하려면 그 나라의 언어를 조금은 알아야 하잖아요? 프로그래밍 언어도 마찬가지예요. 컴퓨터와 대화를 나누기 위해 배우는 새로운 언어인 셈이죠.


2. 프로그래밍은 요리 레시피와 비슷하다

프로그래밍을 요리 레시피와 비교하면 쉽게 이해할 수 있습니다. 요리 레시피도 다음과 같은 특징이 있죠.

  • 명확한 순서가 있다: 모든 재료를 다 섞기 전에 먼저 물을 끓여야 합니다. 순서를 바꾸면 요리가 실패하겠죠.
  • 구체적인 지시가 필요하다: "적당히 넣으세요"는 컴퓨터에게는 모호한 말입니다. "물을 1컵 넣으세요"처럼 정확히 지시해야 컴퓨터가 이해할 수 있어요.
  • 결과물이 있다: 레시피를 잘 따르면 맛있는 커피를 얻을 수 있듯이, 프로그램도 정확한 결과를 출력합니다.

 

1) 요리 레시피와 프로그래밍

여러분이 요리를 한다고 상상해볼게요. 예를 들어 스파게티를 만들고 싶다고 합시다.

스파게티를 만들기 위해서는 다음과 같은 레시피(지시서)가 필요하겠죠?

  1. 냄비에 물을 끓인다.
  2. 스파게티 면을 넣고 10분간 삶는다.
  3. 팬에 올리브 오일을 두르고 소스를 만든다.
  4. 삶은 면을 소스와 함께 섞는다.
  5. 접시에 담아 완성한다.

이 레시피를 읽고 요리사가 차례대로 실행하면 맛있는 스파게티가 완성됩니다.

마찬가지로, 프로그래밍은 컴퓨터에게 "어떻게" 일을 해야 할지 단계별로 알려주는 과정이에요.

프로그래밍 언어로 작성된 코드는 요리 레시피와 같은 역할을 합니다.

컴퓨터가 레시피를 따라 일을 수행하면 우리가 원하는 결과를 얻을 수 있는 거죠.

 

이처럼 순서대로 단계를 나누고, 하나씩 차근차근 설명하는 과정이 바로 프로그래밍의 본질입니다.

컴퓨터는 바보상자

여기서 중요한 점은 컴퓨터는 사람처럼 추측하거나 알아서 일을 하지 않는다는 것입니다.

프로그래머가 잘못된 명령을 주면, 컴퓨터는 그대로 실행해서 엉뚱한 결과를 내놓습니다.

이 점에서 컴퓨터는 요리를 처음 배우는 초보자와도 비슷합니다.

아무리 똑똑한 사람도 레시피가 없다면 요리를 못 하듯이, 컴퓨터도 우리가 명령을 내려줘야만 일을 할 수 있어요.


3. 실무에서 프로그래밍이란?

실제 프로그래머는 컴퓨터를 이용해 복잡한 문제를 해결하는 일을 합니다. \

예를 들어 게임 프로그래머라면 "캐릭터가 앞으로 움직이는 법", "적을 공격할 때 체력이 감소하는 방식" 등을 코드로 작성합니다.

이런 작업도 본질적으로는 컴퓨터에게 정확한 지시를 내리는 일이랍니다.

 

코드 예시: 간단한 "Hello, World!" 프로그램

그럼 실제로 컴퓨터에게 일을 시키는 아주 간단한 예제를 만들어 보겠습니다. 프로그래밍에서 가장 처음 배우는 코드로, 화면에 "Hello, World!"라는 메시지를 출력해 보죠.

#include <iostream> // 입력과 출력을 담당하는 라이브러리

int main() {
    std::cout << "Hello, World!" << std::endl; // 화면에 출력
    return 0; // 프로그램 종료
}

 

코드 설명

  1. #include <iostream>: 컴퓨터에게 "출력"이라는 기능을 사용할 거라고 알려줍니다.
  2. int main(): 프로그램이 시작되는 부분입니다. "요리 시작!" 같은 의미라고 생각하시면 돼요.
  3. std::cout << "Hello, World!";: 화면에 "Hello, World!"라는 글씨를 출력하라는 명령입니다.
  4. return 0;: 프로그램이 정상적으로 끝났다는 신호를 보냅니다.

 

 

 

4. 프로그래밍은 어렵지 않을까?

여러분이 프로그래밍을 처음 접하면 "내가 이걸 정말 할 수 있을까?"라는 걱정이 들 수 있어요. 하지만 걱정하지 마세요. 처음엔 누구나 모르는 게 당연하고, 차근차근 배우면 금세 익숙해질 수 있답니다.

처음 자전거를 배울 때를 떠올려볼까요? 처음엔 중심을 잡기 어려워 넘어지기도 하지만, 몇 번 연습하다 보면 자연스럽게 페달을 밟고 앞으로 나아갈 수 있게 되죠. 프로그래밍도 마찬가지예요. 천천히 배우고 연습하다 보면 어느새 여러분은 게임 캐릭터를 움직이고, 적을 생성하며, 새로운 세상을 창조하는 게임 개발자가 되어 있을 겁니다.


마무리하며

오늘은 프로그래밍이란 무엇인지, 그리고 프로그래밍을 요리 레시피에 비유해 쉽게 설명해 보았습니다. 프로그래밍은 문제를 작은 단계로 나누어 해결하는 과정입니다. 처음에는 조금 복잡하게 느껴질 수 있지만, 반복해서 연습하다 보면 점차 익숙해질 것입니다.

 

프로그래밍은 단순히 컴퓨터에게 일을 시키는 기술이 아니라, 여러분의 창의력을 발휘할 수 있는 멋진 도구입니다. 오늘 배운 내용이 프로그래밍에 대한 두려움을 조금이나마 줄여주었길 바래요. 앞으로의 강의에서는 프로그래밍 언어 중 하나인 C++을 배우며, 컴퓨터와 대화하는 방법을 구체적으로 익히게 될 겁니다.