"프로그래밍"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글 (역사)
잔글
2번째 줄: 2번째 줄:
  
 
== 개요 ==
 
== 개요 ==
프로그래밍이란 [[프로그램]] 작성에 관한 전반적인 사항, 즉 프로그램의 설계, [[코딩]], [[테스트]], [[디버그]] 등 프로그램의 설계를 시작해서 완전한 프로그램이 작성될 때까지의 일련의 작업을 말한다. 명령 코드를 쓰는 작업은 [[코딩]]이라고 하는데, 컴퓨터가 처음 나타난 초기까지의 프로그래밍은 숫자를 나열한 명령코드를 쓰는 [[기계어]]였다. 그러나 기계어는 틀리기 쉽고, 또한 틀린 곳을 발견하기가 어렵다는 단점이 있어서 인간이 외우기 쉬운 언어·수식 등을 사용해 프로그램을 쓰고, 그것을 컴퓨터에 넣어서 컴퓨터가 자신의 명령코드로 고쳐 계산을 실시하는 방식이 고안되었다.
+
프로그래밍이란 [[프로그램]] 작성에 관한 전반적인 사항, 즉 프로그램의 설계, [[코딩]], [[테스트]], [[디버깅]] 등 프로그램의 설계를 시작해서 완전한 프로그램이 작성될 때까지의 일련의 작업을 말한다. 명령 코드를 쓰는 작업은 [[코딩]]이라고 하는데, 컴퓨터가 처음 나타난 초기까지의 프로그래밍은 숫자를 나열한 명령코드를 쓰는 [[기계어]]였다. 그러나 기계어는 틀리기 쉽고, 또한 틀린 곳을 발견하기가 어렵다는 단점이 있어서 인간이 외우기 쉬운 언어·수식 등을 사용해 프로그램을 쓰고, 그것을 컴퓨터에 넣어서 컴퓨터가 자신의 명령코드로 고쳐 계산을 실시하는 방식이 고안되었다.
  
 
== 역사 ==
 
== 역사 ==

2018년 7월 18일 (수) 09:53 판

프로그래밍(programming)이란 프로그램을 짜는 행위를 말한다. 즉, 수식 또는 작업을 컴퓨터 처리 방식에 맞게 정리하여 순서를 정하고, 특유의 명령어로 고쳐 쓰는 작업이다. 컴퓨터 프로그래밍이라고 한다.

개요

프로그래밍이란 프로그램 작성에 관한 전반적인 사항, 즉 프로그램의 설계, 코딩, 테스트, 디버깅 등 프로그램의 설계를 시작해서 완전한 프로그램이 작성될 때까지의 일련의 작업을 말한다. 명령 코드를 쓰는 작업은 코딩이라고 하는데, 컴퓨터가 처음 나타난 초기까지의 프로그래밍은 숫자를 나열한 명령코드를 쓰는 기계어였다. 그러나 기계어는 틀리기 쉽고, 또한 틀린 곳을 발견하기가 어렵다는 단점이 있어서 인간이 외우기 쉬운 언어·수식 등을 사용해 프로그램을 쓰고, 그것을 컴퓨터에 넣어서 컴퓨터가 자신의 명령코드로 고쳐 계산을 실시하는 방식이 고안되었다.

역사

컴퓨터인스트럭션은 0과 1로 이루어져 있다. 이런 형태의 인스트럭션을 기계어라 한다. 0과 1은 컴퓨터 내부의 전기 신호 중 하나로 0또는 1 중 하나의 값을 갖는다고 해서 ‘이진’이라고 한다. 그리고 그 값을 비트라고 한다.

  • 1940년~50년대 : 컴퓨터의 기판 상에 있는 작은 전선들을 조작해서 연결이 이루어진 곳은 1을, 연결이 없는 곳은 0을 나타나게 해놓았고, 이 전선 연결의 조합이 당시의 프로그래밍이었다. 이런 형태의 배선은 만드는 데 아주 오랜 시간이 걸리고, 에러가 발생했을 때 찾아내는 것이 거의 불가능했다.
  • 1950~60년대 : 컴퓨터 메모리 내의 값을 이용하여 프로그래밍을 하기 시작했다. 빠른 프로그램 수정을 가능하게 해주었지만 수많은 0과 1로 이루어진 패턴과 싸움하는 것은 예전과 마찬가지였다. 사람들은 보다 쉽게 기억하기 위해 비트 패턴 대신 일종의 약어를 사용하기 시작했다. 약어는 비트 패턴의 기능 설명으로부터 만들어진 용어로 어셈블러(assembler)라 불리우는 프로그램에 의해 이진수 패턴 형태로 바뀐다. 이렇게 축약어로 일어진 언어를 어셈블리어(assembly language)라고 한다.
  • 1970~-80년대 : 프로그래밍 분야에 절차적 언어가 유행하게 된다. 대표적인 절차적 언어는 파스칼(Pascal)과 C 언어이다. 이 언어가 등장하기 전의 프로그램은 코드를 길게 늘어뜨려, 프로그램 내의 각 파트를 구분지어 주는 어떤 경계도 없었다. 때문에 프로그래밍 중 어느 한 곳에서 다른 곳으로 이동하려면, 긴 코드 전체를 뒤져서 이동하는 과정을 거쳐야 했다. 절차적 언어는 이를 보안하여 코드를 몇 개의 단위로 구분지어 주었다. 절차적 언어가 등장하기 전에도 프로시저(procedure)가 존재하기는 했지만 절차를 표준화하고 보다 예측 가능한 형태로 쓰일 수 있게 보편화된 것은 절차적 언어 등장 이후이다.
객체 지향은 코드를 절차로 그룹짓는 것에서 한 걸음 더 나아가 절차를 또 다시 객체로 그룹짓는 것이다. 객체(object)는 특정 작업을 수행해 주는 코드뿐만 아니라 그 작업에서 다루는 모든 데이터도 포함한다. 객체 지향 방식에서는 모든 코드를 그 코드가 다룰 데이터와 함께 묶어 객체로 구분해서 독립시켰다. 각 객체는 오직 자신의 데이터만을 바꿀 수 있고, 다른 객체의 데이터는 변경시킬 수 없다. 한 객체의 데이터에 문제가 생긴다면 그 객체 안의 코드만 살펴보면 된다. 이 방식이 등장하기 전에는 다른 사람이 만든 코드를 이용하는 것이 쉬운 일이 아니었다. 각 코드를 기능별로 객체화해서 완성해 두었기 때문에 보다 많은 코드들이 재사용될 수 있게 되었고 이는 프로그래밍 작업의 생산성 증가와 비용 감소로 이어졌다.

같이 보기