[인생 프로그래밍] '프로그래밍' 이란?

Rex·2022년 1월 1일
2

인생 프로그래밍

목록 보기
2/33
post-thumbnail

'프로그래밍' 이란?

'프로그래밍' 을 공부하기에 앞서, '프로그래밍' 이라는 단어가 무엇을 의미하는지부터 짚고 넘어가야 한다. 프로그래밍이란 본질적으로 우리의 삶과 닮아 있기 때문에 크게 어렵지 않을 것이다. 그럼 이제부터 '프로그래밍' 이란 무엇인가에 대해서 설명하겠다.

프로그래밍의 정의

프로그래밍의 사전적 의미는, "프로그램(소프트웨어, Software)을 만드는 행위" 이다. 심플하면서도 당연해 보이지만, 이렇게만 말하면 아주 무성의한 대답처럼 느껴진다. 그렇다면 '프로그램(Software)' 이란 무엇일까? '프로그램' 에 대한 나의 정의는 다음과 같다.

인생에서 일어나는 반복적인 일들을 자동화 시켜놓은 것.

이와 더불어 '프로그래밍' 에 대한 나의 정의는 다음과 같다.

인생에서 일어나는 반복적인 일들을 정형화하는 행위.

프로그램은 우리의 인생과 매우 밀접하게 연관되어 있다. 프로그램 자체가 우리 인생의 한 영역을 담아놓은 것이다. 그렇기에 프로그램과 프로그래밍을 '우리의 인생에서 일어나는 반복적인 일들을 자동화, 정형화 시켜놓은 것' 이라고 정의한 것이다. 이 사실을 머릿속에, 그리고 가슴속에 새겨두고 앞의 페이지들을 읽어나가는 것이 매우 중요하다. 위의 문장은 앞으로 프로그래밍을 하는 동안 평생토록 간직해야 하는 문장일 것이다.


프로그래밍의 실 생활 예시

1. 자판기

지하철이나 공원, 학교, 길거리를 걷다 보면 '자판기'를 자주 마주쳤을 것이다.

자판기는 아주 간단하면서 매우 유용한 프로그램이라고 할 수 있다. 우리의 일상에서는 흔히 음료수를 구매하기 위해 물건을 고르고 점원에게 계산해달라고 하는데, 그러한 반복적인 삶의 영역을 자동화한 것이 바로 자판기인 것이다.
일상 생활의 한 영역을 자동화하는 경우 많은 효율성과 안정성을 얻을 수 있다. 계산하는 점원이 잠시 화장실에 갈 수도 있고, 지금 당장 필요한데 주변 마트가 닫아서 구매하지 못하는 경우가 생길 수도 있을 것이다. 그리고 구매하려는 물건이 너무 많다면 계산원이 계산을 실수해서 잘못된 계산이 이루어질 수도 있다. 자판기는 이런 문제점을 해결하기 위해 탄생한 프로그램이다.

실제로 물건을 구매하는 프로세스는 아래의 4단계로 정리할 수 있다.

  1. 물건을 고른다.
  2. 돈을 낸다.
  3. 거스름돈이 있다면 돌려받는다.
  4. 물건을 가져간다.

자판기는 이 4단계의 프로세스를 그대로 따름으로서 우리의 삶을 한층 더 효율적으로 만들어준다. 이렇게 어떤 목적을 달성하기 위한 문제풀이 절차를 '알고리즘(Algorithm)' 이라고 한다. 음료수 자판기는 음료수를 자동으로 판매하기 위한 절차를 만든 것이므로, '음료수 자동판매 알고리즘' 이라고 할 수 있다.


2. 계산기

3 + 7 또는 10 - 5 와 같은 아주 간단한 계산은 머릿속으로 바로 계산이 될 것이다. 하지만 13.393332 + 6.573532 는 어떤가?

오래전에 우리는 이런 계산을 손으로 하나하나 자리를 세면서 계산했다. 지금도 물론 어릴 때에는 계산의 원리를 이해하기 위해 직접 계산을 하며 연습하지만, 기본을 터득한 후에는 이런 복잡한 계산은 모두 계산기라는 프로그램에게 맡겨버린다. 쉽고 빠르고 정확하니 사용하지 않을 이유가 없다. '계산을 하는 행위' 는 우리의 삶에서 아주 반복적으로 일어나는 일이며, 그런 반복적인 일을 쉽게 하기 위해 '계산기' 라는 프로그램이 만들어진 것이다.

그렇다면 계산기라는 프로그램은 구체적으로 어떻게 만들 수 있을까?
프로그램은 소스코드(Source code)로 만든다. 소스코드란, 우리가 컴퓨터에게 명령을 내리기 위한 일종의 '언어' 라고 할 수 있다. 예를 들면 다음과 같다.

function 더하기(첫번째수, 두번째수) {
    return 첫번째수 + 두번째수
}

function 빼기(첫번째수, 두번째수) {
    return 첫번째수 - 두번째수
}

더하기(5, 7)  // 결과: 12
빼기(5, 7)  // 결과: -2

위 소스코드는 2개의 숫자를 더하고 빼는 아주 간단한 프로그램이다. 문제의 해결 방식을 정의하고, 그것을 실행한 코드일 뿐이다.
아직은 프로그래밍 문법을 배우지 않았기 때문에 위의 소스코드를 명확히 이해할 수는 없겠지만, 이 책을 읽다 보면 너무나 쉽게 이해할 수 있을 것이다. 지금은 위 소스코드를 이해하려고 하지 않아도 된다. 여기서 중요한 것은 우리들이 실제로 사용하는 프로그램들은 내부적으로 모두 다 이런 소스코드들로 이루어져 있다는 사실이다. 우리가 매일같이 사용하는 카카오톡도, 인터넷도, 편의점에서 바코드를 찍어 물건값을 계산하는 기계조차도 말이다.


정리하기

  1. 프로그램
    • 인생에서 일어나는 반복적인 일들을 자동화시킨 것.
  2. 프로그래밍
    • 인생에서 일어나는 반복적인 일들을 정형화하는 것.
  3. 소스코드
    • 프로그램을 만들기 위해 사용하는 프로그래밍 언어
  4. 프로그램, 프로그래밍의 예시
    • 자판기, 계산기, 카카오톡, 인터넷, 바코드 기계 등

생각 해보기

우리의 삶에 또 어떤 것들이 프로그래밍으로 만들어져 있을지 생각 해보자. 이런 생각은 당신을 더 훌륭한 프로그래머로 만들어 줄 것이다.

프로그램이란 인생에서 일어나는 반복적인 일들을 자동화시킨 것 이고, 프로그래밍이란 인생에서 일어나는 반복적인 일들을 정형화하는 것이다. - Developer Rex


궁금증 / 질문 / 개선점이 있다면 꼭 댓글을 달아주세요. 제가 최선을 다해 도와드리겠습니다. 여러분들의 최고의 학습 친구가 되어드리겠습니다.

#인생프로그래밍 #개발자렉스 #프로그래밍 #프로그래머 #개발자 #개발입문 #프로그래밍입문서적 #코딩교육 #코딩무료교육 #파이썬 #자바스크립트 #자바 #파이썬기초 #파이썬독학 #파이썬책 #혼자공부하는파이썬 #혼공파 #자바스크립트책 #앱개발 #어플개발 #ProgrammingOfLife #programming #programmer #coding #software #developer #python #javascript #java

profile
🔥 from Abstraction to Realization

0개의 댓글