brunch

You can make anything
by writing

C.S.Lewis

by Moai Sep 01. 2020

프로그래밍 언어를 배우자

컴퓨터가 처음 보급될 당시 컴퓨터를 할 수 있는 사람은 많지 않았다. 하지만 지금은? 모든 사람이 컴퓨터를 할 수 있게 됐고 이제는 스마트폰으로 업무를 하는 시대가 되었다. 마찬가지로 불과 10년 전만 하더라도 프로그램을 만드는 일은 개발자의 몫이었다. 지금은? IT기술이 발전했고 이제는 누구나 프로그램을 만들 수 있는 시대가 되었다. 프로그래밍은 선택이 아닌 필수가 되었다.


컴퓨터공학과, 전자전기공학부를 복수전공하고. 정보보호대학원에서 석사학위를 취득했지만 이론은 실무에 많은 도움이 되지 않았다. 서점에 있는 많은 IT 관련 서적 또한 마찬가지였다. 정말 필요한 기술만 배우고 내가 모자란 부분만 책 또는 강의를 통해 공부하고 싶은데 아무것도 모른 상태에서 프로그래밍을 배우려고 하니 막막할 뿐이었다.


일반인은 몰라도 되는 컴퓨터 이론은 배제하고 실무에 쓰이는 기술들을 쉽게 이해할 수 있도록 글을 작성해보고자 한다. 프로그래밍 언어의 기본이라 할 수 있는 C++ 언어가 무엇인지 간단히 알아보고 일반인도 쉽게 배울 수 있는 파이썬 언어를 이용해 자료구조, 알고리즘과 같은 필수 이론을 학습하고 크롤링, 웹서버 같이 실생활에서 자주 쓰이는 기술을 익혀보자.


많은 프로그래밍 언어 중 파이썬 언어를 첫번째로 배워야 하는 이유는 무엇일까?

파이썬은 정말 쉬운 언어이다. 프로그래밍 언어를 배우기 위해 구글에 가장 검색을 많이 하는 언어이다.


또한 파이썬은 배우기 쉬운 데다가 가장 많이 쓰는 언어 중 하나이다. 쉽고 대중적이기 때문에 특정 분야에 전문적인 개발자가 되고 싶은 것이 아니라 전 분야에 사용할 수 있는 프로그램 개발을 하고 싶다면 파이썬 언어만한 것이 없을 것이다.


가장 많이 쓰는 언어는 C언어인데 굉장히 하드웨어 친화적인 언어라 배우기 어렵고 컴퓨터구조에 해박한 지식이 있어야한다. 주로 영상 인코딩같이 성능이 좋아야 하는 프로그램을 개발하거나 성능이 좋지 않은 소형 컴퓨터에서 실행되는 프로그램을 개발하기 위해 사용된다. 파이썬은 사용자 친화적인 언어라서 인터프리터 방식으로 실행된다. 운영체제, 하드웨어를 모르더라도 다양한 환경에서 실행이 가능하고 쉽게 개발, 수정할 수 있다.


배경지식이 많으면 책이 잘 읽혀지는 것처럼 어느정도는 기초지식이 있다면 프로그래밍 언어를 배우는데 효과적일 것이다.


운영체제

우리가 흔히 알고 있는 윈도우, macOS, 안드로이드, 리눅스 등을 말하며 컴퓨터를 사용하기 위해 기본적으로 설치해야하는 소프트웨어이다. 우리는 하드웨어를 전혀 모르더라도 운영체제를 통해 프로그램을 실행시킬 수 있다. 사용자는 스크린 터치, 마우스 클릭, 키보드 입력과 같은 주변장치의 도움을 받아 원하는 작업을 할 수 있다.


컴파일

프로그래밍 언어로 프로그램을 개발하더라도 사람들이 사용하는 운영체제 종류와 버전이 다르기 때문에 운영체제 환경에 맞게 다시 변환해주어야 한다. 사람은 프로그래밍 언어를 읽을 수 있지만 컴퓨터는 오로지 0101 과 같은 기계어만 읽을 수 있기 때문에 운영체제가 읽을 수 있는 언어로 변환해주어야 한다. 이 작업을 컴파일이라고 한다.


인터프리터

프로그램을 개발, 수정할 때마다 컴파일을 해야하는 작업은 너무나 번거롭기 때문에 운영체제에서 내가 구현한 코드를 바로 실행시켜주는 인터프리터라는 프로그램이 개발되었다. 파이썬은 인터프리터 방식이기 때문에 운영체제에 파이썬 프로그램을 설치만하면 컴파일 할 필요없이 바로 코드를 실행시킬 수 있다.


스크립트

인터프리터 프로그램에서 실행되는 코드를 말한다. 파이썬 코드(스크립트)는 운영체제에 파이썬 프로그램(인터프리터)가 있어야만 실행이 가능하다.


자료구조

데이터를 메모리에 읽고 쓰는 방식이다. 컴퓨터에서 방대한 양의 데이터를 처리할 때 효율적으로 메모리를 관리하고 빠르게 읽고 쓸 수 있는 자료구조를 사용해야 한다. 자료구조를 생각하지 않고 프로그램을 개발하면 메모리가 부족하거나 0.1초만에 처리할 일을 24시간이 걸려도 모자를 수 있다.


알고리즘

정확하게 문제를 해결하는 방법이다. 상황에 따라 적절한 순서대로 문제를 해결할 수 있어야 하며 그 과정은 명확하고 결과는 존재해야 한다. 프로그래밍 언어는 알고리즘을 표현하기에 아주 적합한 언어이다.


라이브러리

파이썬 언어로 여러 사람들이 개발하다보면 중복되는 코드들이 존재할 수 있다. 또 한 사람이 비슷한 프로그램을 구현하기 위해 전에 사용했던 코드를 그대로 사용할 수 있다. 이러한 코드를 잘 모아서 가져다 쓰기 쉽게 변형한 것을 라이브러리라고 한다.


API

우리는 카드를 만들기 위해 카드업체가 요구하는 양식에 맞춰 서류를 작성, 제출한다. 카드업체는 제공 받은 양식을 확인 후 카드와 서비스를 제공한다. 비슷한 예로 카카오나 네이버에서 만든 지도 서비스를 이용하고 싶다면 어떻게 해야할까? 그들은 사용 방법을 알려주며 적합한 방법으로 요청 시 서비스를 제공할 것이다. 서비스 제공을 위해 요구하는 양식과 방법을 API라고 한다.


웹서버

웹 서비스를 제공하는 서버를 말하며 크게 프론트엔드, 백엔드로 구분할 수 있다. 데이터를 사용자에게 편리한 UI/UX로 변형 후 브라우저에 전달하는 서버를 프론트 엔드 서버라 하며 Database로 부터 데이터를 읽은 뒤 API로 프론트 엔드 서버에 데이터를 전달하는 서버를 백엔드 서버라 한다.


크롤링

주로 웹에 존재하는 방대한 양의 지식 정보를 가져와 가공하고 싶을 때 사용된다. 사람이 일일이 사이트에 들어가 데이터를 가져오는 작업은 시간이 많이 소요되고 오류가 발생할 수 있다. 크롤링은 이러한 작업을 프로그램으로 자동화 시킨 것을 말한다. 파이썬은 데이터를 가져와 가공하고 시각화 하기에 좋은 라이브러리가 많다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari