컴퓨터 개론
프로그래밍 시장은 계속 커지고 있다. 하지만 사실 현업에서는 뛰어난 개발자를 없어서 못 구한다는 것. 프로그래밍의 세계는 광범위하기 때문에, 올바른 방향을 갖고 효과적으로 공부하는 것이 매우 중요하다. 코드잇의 컴퓨터 개론을 통해 프로그래밍 언어, 프로그래머, 프로그램에 대해 올바른 이해를 갖고, 나만의 커리어 로드맵을 만들어 보자.
💡Infomation: 컴퓨터 개론 학습은 하루 1시간 학습을 기준으로 약 12일이 소요됩니다.
프로그래밍 언어 살펴보기
전공자는 물론 비전공자도 이 강의만 들어도 기본적인 프로그래밍 언어의 특징과 분야를 이해할 수 있다. 비전공자를 위한 기초강의!
프로그래밍을 배우기 힘든 이유
프로그래밍을 배워야겠다는 결심을 했다. 하지만 문제는 생각보다 프로그래밍을 제대로 공부하기가 쉽지 않다는 것이다. 무엇을 어떻게 공부해야 하는지 방향을 잡기가 어렵다. 프로그래밍 공부를 시작하려면 언어를 먼저 골라야 한다는데 언어는 왜 이렇게 많은지 모르겠고 누구는 C 언어를 공부하라고 하고, 누구는 Java, 누구는 Python 과 JavaScript 를 추천하기도 한다. 하지만 사실 그 이유를 정확하게 이해하지는 못했다.
일단 C 언어를 공부해 보기로 한다. 그러다가 너무 어려워서 쉽다고 하는 Python 으로 옮긴다. 이런 식으로 다른 언어를 배회하다 보니 딱히 실력이 늘었다는 느낌은 들지 않고 시간만 흐르고 있다. 또 어디서는 자료 구조와 알고리즘을 공부하라고 하고 누구는 객체 지향을, 누구는 Git 을 공부하라고도 한다. 컴퓨터 공학을 전공하지 않은 사람은 이것들이 정말 다 필요한 건지도 잘 모르겠고 지금 당장 나에게 필요한 언어, 필요한 과목이 무엇인지 판단하기가 힘들다. 인터넷에는 정보가 너무 많아서 오히려 더 혼란스러워 진다. 언어는 왜 이렇게 많은 것이며 어떤 언어를 선택해서, 어떻게 공부해야 하는 걸까?
사실 사람마다 필요한 언어는 다르다. 어떤 분야에 관심이 있고 어떤 개발자가 되고 싶은지, 심지어는 성향이 어떤지에 따라서도 필요한 언어와 기술이 달라진다. 마치 디자이너도 브랜드 디자이너, 제품 디자이너, 웹 디자이너 등이 있듯이 개발자도 여러 부류가 있으며 일하는 환경이나 여건 등이 꽤 달라지기도 한다. 그래서 무작정 누군가의 추천을 따라 공부할 것이 아니라 나에게 필요한 것이 무엇인지 스스로 판단하는 능력이 필요하다. 하지만 문제는 프로그래밍 자체를 모르는 상황에서 프로그래밍 분야나 기술 용어를 이해하기가 어렵다는 것이다. 모든 분야를 다 자세하고 깊게 알 필요는 없지만 본격적인 프로그래밍 공부에 앞서 프로그래밍의 세계에 대한 전반적인 이해를 갖추는 것이 필요하다. 이번 강의에서는 프로그래밍 언어에 대해 먼저 배워보자.
프로그래밍 언어 이해하기 강의 소개
프로그래밍 언어 이해하기 강의는 총 4개의 챕터로 구성되어 있다.
- 프로그래밍 언어 살펴보기
- 프로그래밍 언어를 분류하는 두 가지 기준
- 프로그래밍 언어 Overview
- 프로그래밍 언어 제대로 사용하기
챕터 1: 프로그래밍 언어 살펴보기
첫 번째 챕터에서는 프로그래밍 언어가 무엇인지에 대해 간단히 살펴보고, 기본적인 이해를 갖춘다. 그리고 컴퓨터, 프로그램, 프로그래밍 언어는 어떤 관계가 있는지 배우고, 프로그래밍 언어가 지나온 길을 살펴본다.
챕터 2: 프로그래밍 언어를 분류하는 두 가지 기준
첫 번째 챕터에서 프로그래밍 언어의 공통적인 원리에 대해 배웠다면, 두 번째 챕터에서는 프로그래밍 언어를 분류하는 두 가지 기준에 대해서 배운다.
프로그래밍 언어의 종류가 왜 많아졌는지, 여러 프로그래밍 언어들 사이에는 어떤 차이가 있는지, 최근 프로그래밍 언어들은 어떻게 바뀌고 있는지 등을 배우게 된다.
이 내용들은 나에게 맞는 프로그래밍 언어가 무엇인지 판단하는 데 도움이 될 것이다. 이 챕터를 배우면서, 앞으로 어떤 언어를 배우는 게 좋을지 직접 한번 고민해 보자.
챕터 3: 프로그래밍 언어 Overview
세 번째 챕터에서는 앞서 배운 프로그래밍 언어를 분류하는 두 가지 기준을 배웠다면, 이번에는 프로그래밍 언어를 추상화가 얼마나 되었는지를 기준으로 분류하는 방법을 배워본다. 그리고 추상화가 프로그래밍 언어에 미치는 영향과 추상화가 많이 된 언어와 적게 된 언어의 장,단점을 배운다.
챕터 4: 프로그래밍 언어 제대로 사용하기
마지막 챕터는 프로그래밍 언어의 활용법을 다룬다.
프로그래밍 언어는 마치 사람의 언어와 같아서, 단순히 동작만 한다고 해서 좋은 코드를 작성한 건 아니다. 의미만 전달했다고 해서 좋은 글이 아닌 것처럼 말이다.
어떻게 하면 더 좋은 코드를 만들 수 있는지, 개발자들은 코드를 어떤 관점으로 바라보며, 어떻게 코드를 작성하는지 이 챕터에서 살펴본다.
프로그래밍 언어란?
프로그래밍 언어를 이해하려면 컴퓨터, 프로그램, 프로그래밍 언어 이 단어들을 함께 살펴봐야 한다. 쉽게 말해서 컴퓨터는 우리의 일을 대신해 주는 기계고 프로그램은 컴퓨터가 어떤 일을 해야 할지 알려주는 설명서라고 할 수 있다. 프로그래밍 언어는 그 설명서를 쓰기 위해 사용하는 언어이다.
예를 들어 보자. 햄버거 가게를 오픈했다고 생각해보자. 그리고 혼자 모든 일을 할 수 없으니까 일을 대신해 줄 아르바이트 직원을 고용했다. 이 알바생에게 계산대를 맡기려고 한다. 그럼 먼저 계산대 업무를 맡기기 전에 어떻게 할지 알려 줘야한다. 이런 식으로 기본적인 지침이 있을 것이다. 그래야 내가 원하는 일을 알려 주고 대신 시킬 수 있을 것이다.
컴퓨터는 사람의 일을 대신해 준다고 했는데 실제로 요즘에는 많은 매장이 주문을 사람이 아닌 키오스크 같은 무인기기로 대신하고 있다. 프로그램과 프로그래밍 언어 그리고 컴퓨터의 관계가 이것과 비슷하다. 일을 대신해 주는 존재가 컴퓨터고 일을 어떻게 해야 하는지, 어떤 일을 해야 하는지 알려주는 설명서가 프로그램이고 그 프로그램이 작성된 언어가 프로그래밍 언어인 것이다. 이런 식으로 우리가 평소에 사용하는 컴퓨터 프로그램이나 휴대폰 앱 같은 것도 다 이렇게 프로그래밍 언어로 만들어진 것이다.
우리가 못 느낄 수도 있지만 사실은 이 프로그램들은 컴퓨터가 할 일이 순서대로 적혀 있는 것이다. 언제 어떻게 행동해야 할지에 대해서 Python, Java 같은 프로그래밍 언어로 적혀 있는 것이다. 예를 들어서 ‘크롬 브라우저에서 뒤로 가기 버튼을 누르면 이전 페이지를 보여줘라’ 같이 지침이 다 적혀 있는 것이다. 이제 컴퓨터와 프로그램, 프로그램 언어의 관계가 이해될 것이다.
프로그래밍 언어의 발전
컴퓨터는 계속해서 발전해왔다. 그에 맞춰서 프로그래밍 언어도 발전해 왔다. 초창기의 프로그래밍 언어는 어떻게 생겼을까? 지금처럼 영어였을까? 아니면 기호? 컴퓨터의 성능이 안 좋았으니까 처음에는 시키기 쉬운 일부터 시작했을 텐데, 최초에는 수학 계산을 위해 컴퓨터가 시작되었다. 그래서 최초의 컴퓨터를 얘기할 때 주판 얘기가 나오기도 한다.
컴퓨터의 역사를 살펴보면 톱니바퀴를 이용해서 덧셈과 뺄셈을 하는 기계가 있었다. 이 기계 이름은 파스칼 계산기이다. 이게 컴퓨터라면 프로그램과 프로그래밍 언어는 뭘까? 지난 수업에 기계에게 할 일을 알려 주는 것이 프로그램이라고 했었는데 숫자를 계산하는 식, 예를 들어 256 + 984 가 하나의 프로그램이다. 이 프로그램을 실행시키면 1240이라는 계산 결과가 나오게 된다. 이 컴퓨터에 다른 프로그램을 실행시카면 다른 결과가 나올 것이다. 123 + 456 을 실행하면 579가 나오게 되는 것이다. 여기서 프로그래밍 언어는 이 계산 결과를 얻을 수 있도록 톱니바퀴를 움직이는 것이라고 볼 수 있다. 프로그래머에게 계산식을 알려 주면 그 프로그래머가 저 톱니바퀴를 돌려 계산한 뒤 알려주는 것이다. 이후에는 종이에 구멍을 뚫어서 이런 방식으로 컴퓨터에게 원하는 숫자를 알려 주기도 했다. 이 경우에는 종이에 구멍을 뚫는 것이 프로그래밍 언어인 셈이다. 사람이 직접 원하는 숫자에 해당하는 구멍을 뚫으면서 코딩을 했다. 한번 만들어서 계속 쓸 수 있으니 톱니바퀴보다는 더 발전된 형태라고 볼 수 있다.
기술이 발전하면서 이제 사람들은 숫자 계산을 넘어서 더 많은 걸 시키고 싶어 했다. 예를 들어 번역을 한다든지 메시지를 보낸다든지 이런 것들도 하고 싶어진 것이다. 그래서 더 기능이 많은 다양한 일을 할 수 있는 컴퓨터와 프로그래밍 언어를 만들었다. 예전에는 프로그래밍 언어가 숫자로만 이루어졌었다면 이제는 더 다양한 표현이 필요해진 것이다. 그래서 요즘은 영어와 숫자, 수학 기호들이 섞인 형태의 어ㄷ쩌면 여러분이 본 적이 있을 생김새의 코드를 작성한다.
1
2
3
4
5
def is_evenly_divisible(number):
return number % 2 == 0
input_num = int(input("숫자를 입력하세요:"))
print(is_evenly_divisible(input_num))
이 코드는 파이썬 코드이다. 코드가 완전히 이해되진 않지만 리턴, 인풋, 프린트 우리가 읽을 수 있는 단어들이 있다. 언어마다 쓰는 방법은 조금씩 다르지만 대체로 이렇게 생겼다고 보면 된다. 요즘에는 프로그래밍을 할 수 있는 컴퓨터도 일반적으로 보급되어 있고 프로그래밍 언어도 어느 정도 사람이 이해할 수 있는 문자로 되어 있으니 우리는 원한다면 누구나 직접 자신의 프로그램을 만들 수 있는 시대에 살고 있다. 여러분도 다 할 수 있다.
Leave a comment