티스토리 뷰


말그래도 추가로 알아두면 좋을 개념들을 적어요. 일종의 용어 설명 페이지이기도 하고요. 짤막한 설명이라 위키 백과사전에서 이 키워드로 검색하셔서 읽으면 더 이해가 되실 거예요. 

꼭 읽으실 필요는 없으니 스킵하셔도 좋아요. :)


1. 소스코드 

프로그램의 설계도지요. 프로그래밍 언어를 이용해서 짠 코드 뭉치예요. 프로그래머가 하는 일의 대부분은 이 소스코드를 만들고 여기에서 문제를 찾아내서, 고치고, 새로운 요구사항을 반영하는 일이예요.

건축에서의 설계도와 비슷한데, 차이가 있다면 건축은 완성된 설계도를 가지고 중장비와 인력으로 재료를 가지고 설계도를 가지고 실제 건물을 짓는데 많은 시간과 노력이 든다면, 완성된 소스코드가 있으면 이 코드를 실행파일로 만들어주는 다른 프로그램(컴파일러)를 통해 컴퓨터가 만들어준다는 차이가 있어요. 

2. 컴파일러
소스코드를 가지고 실행파일로 만들어주는 프로그램이예요. 프로그래밍 언어마다 그 언어를 만든 곳에서 함께 만들어서 배포하고요. 보통은 운영체제 별로 컴파일러가 달라요. 예를 들어 윈도우용, 맥용 컴파일러가 따로 있어야 한다는 거죠.

3. 실행파일
소스코드가 컴파일러를 통해 실제로 PC에서 실행될 수 있는 만들어준 결과물이예요. 보통 PC가 직접적으로 이해할 수 있는 기계어(이진수)로 되어 있어요. 

4. 디버그
엔지니어가 소스코드에서 문제를 찾아 고치는 과정을 디버그라 불러요. 실제 개발보다는 여기에 들어가는 과정이 압도적으로 많습니다. 

5. 알고리즘
프로그래밍은 문제를 푸는 거라고 했죠? 그 문제를 푸는 방법은 여러가지가 있을꺼잖아요? 그 각각의 방법을 알고리즘이라고 불러요. 
여러 군데서 공통적으로 쓰이는 중요한 문제들이 있는데요. 각각 그 문제들을 푸는데 어떤 방법들이 있고 그 방법을 쓰면 어떤 상황에서 좋고 어느 정도 시간이 걸리는지 저장 공간이 얼마나 필요한지 등이 정립되어 있어요. 대표적으로 길찾기, 데이터 정렬, 탐색, 압축, 학습, 암호화 같은 문제들이 있죠.
아래 링크에서 데이터를 정렬하는데는 어떤 방법들이 있고, 어떤 상황에서 빠르고 느린지 시각적으로 확인하실 수 있어요. :)

6. 자료구조
데이터를 저장하는 방법이예요. 이것도 알고리즘의 일종이긴 합니다. 프로그램에 따라 다루는 데이터가 다르니 그 프로그램에 맞게 데이터를 다루는게 좋겠죠? array, list, stack, heap, tree, queue, graph 같은 방법들이 있어요.
아래 링크를 보시면 자료구조, 알고리즘을 시각적으로 설명해뒀는데 보기 좋더라고요.

7. 라이브러리
업계에서 유명한 격언으로 "바퀴를 재발명하지 않는다."는 말이 있어요. 이미 있는 기능을 필요할 때마다 만들어 쓰지말고 기존 것이 있으면 최대한 가져다가 쓰는게 좋다는 건데요. 라이브러리는 자주 쓰일 것 같은 기능들을 미리 만들어놓고 개발할 때 불러다 쓸 수 있도록 제공하는 어떤 기능 집합 같은 거예요. 위에서 설명한 알고리즘에 해당하는 것들은 미리 만들어져 있는 경우가 많답니다. 데이터 정렬 같은 것들을 그때그때 만들지 않고 이미 제공된 라이브러리에서 불러다 쓰면 된다는 말이죠. :)

8. 프레임워크
마찬가지로 재사용성을 높이기 위한 방법인데요. 라이브러리와는 접근 방법이 달라요. 자주 쓰이는 기능들이 있다면 껍데기를 만들어놓고 부분부분 채워넣으면 만들어 진다는 거죠. 회사 관리 시스템을 만든다 치면 기본적으로 로그인 기능이 필요하겠죠? ID와 PW 입력하면 로그인이 진행되는 얼개는 같을테니 만들어 놓고 개발할 때는 실제 ID/PW 입력값을 처리하는 부분은 회사마다 다를테니 이 부분만 채워넣으면 되겠죠?
라이브러리는 S/W 엔지니어가 불러서 쓰는 거고, 프레임워크는 프레임워크에 의해 불려지는 부분들을 S/W 엔지니어가 채워넣는다고 하면 이해가 되실 거예요.

9. 데이터베이스 

데이터를 다루는건 복잡한 일이예요. 점점 데이터가 커져가잖아요? 웹페이지에 게시물이 늘어가는데, 검색으로 빠르게 데이터를 불러와야하죠? 우리가 종종 하드디스크를 고장나서 데이터를 날려먹듯이 그런 일도 생기죠. 중요한 데이터들은 백업도 해서 잃어버리는 일이 없도록 관리해야할 거고요. 속도와 신뢰성 보장을 위해 데이터만 다루는 전용 프로그램이 등장했는데 그걸 데이터베이스라고 불러요. 줄여서 DB라고 하죠. 대부분의 서비스에 데이터베이스가 적용되어 있어요. 게임, 웹사이트, 금융, 기업용 관리시스템 어디에나요.

10. 마크업언어

언어 중에 태그를 통해서 구조와 속성을 제어하도록 한 언어들을 말해요. 대표적으로 HTML과 XML이 있어요. HTML은 웹에 주로 쓰이는 언어로 (이곳저곳 확장되고 있긴 합니다. HTML5 라는 신규격이 나오면서 활용도가 더 높아졌죠. 기존 버전에 비해, 오디오, 비디오, 3D 등이 추가되었다고 보면 되요. 예전에는 플래시 같은 추가 플러그인을 통해서만 가능했던게 표준으로 들어온거죠. 예제를 보셔요. 복잡한 게임도 이제 웹표준 기술만으로 만들 수 있어요. https://www.html5rocks.com/ko/features/graphics) XML은 데이터를 주고받기 위한 표준이예요. 여러 운영체제, 언어간에 이걸 통해 데이터를 많이 주고받아요.


11. 운영체제

PC 등의 장치를 이용하기 위해 기본이 되는 소프트웨어예요. Windows, Mac, Linux, Android, IOS 같은 것이 여기에 속하는 소프트웨어죠. PC나 폰을 켜면 뭔가 화면이 전환되다가 사용자의 입력을 기다리는 상태까지 진행되잖아요? 이걸 부팅이라고 부르는데요. 장치에 전원이 들어오고 하드웨어가 움직이기 시작하면서 정해진 운영체제를 부르고 초기 과정을 마치면 이제 사용자가 필요한 프로그램을 부르고 실행시키는 것들이 모두 이 운영체제 안에서 이루어지는 거예요. 사용자의 입력을 받아서 프로그램에 자원을 할당해서 띄우죠. 여러 프로그램이 동시에 돌아가면 자원을 적절히 분배하기도 하고요. 




댓글
댓글쓰기 폼