안녕하세요.
 
이번에는 프로그램관 관련된 용어에 대하여 한번 개념 정리를 해볼까 합니다.
 
작년에 신입사원이 들어오고나서 교육하느라 이리저리 하다보니 나름 노하우가 생긴거 같아서
공유해보면 좋을 거 같네요.
 
가장 기본부터...
프로그램이 뭔지 물어보면 막상 다들 대답을 못합니다.
저의 면접에 빠지지 않는 질문이기도 하고요.
 
1. 프로그램 이란
  - 여기서는  computer programming 을 말합니다. 
     뭐 면접장에서 나올 것 같은 질문인데 아마 회사보다는 공대 면접장에서 교수들이 할 질문 같이 보이는 군요,
    위키에서 보면 아래와 같이 정의하고 있습니다.
 
        컴퓨터 프로그래밍(영어computer programming) 또는 간단히 프로그래밍(programming문화어: 
        프로그램 작성) 혹은 코딩(coding)은 하나 이상의 관련된 추상 알고리즘을 특정한 프로그래밍 언어를 
      이용해 구체적인 컴퓨터 프로그램으로 구현하는 기술을 말한다. 
 
  그럼 이제는 프로그램이 무언지 알기 위하여 "알고리즘" 이 무언지 "프로그래밍 언어" 가 무언지 알아야 겠군요,
 
2. 알고리즘 이란
  - 역시 위키에서 보면
    알고리즘(라틴어독일어: Algorithmus, 영어algorithm 알고리듬[*]IPA[ǽlɡərìðm])은 수학과 컴퓨터 과학
   언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 
    형태로 표현한 것을 말한다.
  - 다시 말하면 "문제 해결을 위한 절차,방법을 공식화한 형태로 표현한 것" 이군요.
 
3. 프로그래밍 언어 란?
  - 위키 위키 위키~~~
   프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 형식언어이다. 
   고급 언어일수록 사람이 사용하는 언어에 가깝다.
  - 정리하면 "컴퓨터를 동작시키는 소프트웨어"
 
4. 따라서 프로그램이란
  - 어떤 문제 해결을 위하여 절차,방법을 공식화한 형태를 컴퓨터를 동작시키는 소프트웨어로 구현하는 기술
  - 로 정의할 수 있겠네요.
 - 더 쉬운말로 
    1) 해결하여야 할 문제가 있고
    2) 이를 해결할 공식화된 원칙을 설계하고
    3) 설계된 것을 프로그래밍 언어를 사용하여 구현하여 ,
    4) 문제를 해결하는 방법 또는 기술
 
5. 계속 고찰해보면 
  1) 문제 발생 -> 무언거 해결해야할 문제가 있다는 거지요. 문제가 없다면 해결할 이유도 없음.
  2) 원칙을 설계 
    -> 근데 이게 무언가 규칙성을 찾아서 단순하게 바꾸어야 된다는 겁니다.
    -> 이게 설계인데 이 힘은 공학(물리,화학) 또는 수학을 통하여 길러지는 힘입니다.
    -> 수학이 바로 복잡한 자연현상 등을 숫자를 이용하여 한줄의 수식으로 설명하는 
        놀라운 알고리즘의 변환 과정을 경험하고 배울 수 있습니다.
    -> 수학 못하면 2) 번을 못하고 3)번만 할 줄 알게 됩니다. 주로 코더라고 부르죠.
  3) 프로그램 언어를 사용하여 구현
    -> 수학에서는 숫자를 이용하여 알고리즘을 표현하고
    -> 프로그래밍에서는 프로그램 언어를 사용합니다.
    -> 언어라는 것은 영어를 보면 알듯이 일단 단어암기 및 문장구조 규칙을 배워야 되죠.
    -> 신기한 것은 같은 단어와 문법구조를 가지고 사람을 마음을 감동시키는 대작을 쓰듯이,
        프로그램도 구현하는 사람에 따라 노벨문학상 못지 않은 대작을 구현하시는 분들도 있다는 겁니다.
   -> 저희 같은 범인들은 그냥 대가의 코드를 보면 눈물한번 찔끔하고 열심히 ctrl-c ,v!
 4) 이렇게 해서 문제를 해결해야죠.
 
6. 이게 "프로그래밍"입니다.
 
 이제 여러분들이 어떤 작업을 하고 계시는 지 내가 어디에 위치해 있는지 명확히 깨달으셨으면 합니다.
 
 어느 분야에서건 "용어 정의" 및 "용어 이해" 가 중요합니다.
 다음번엔 CPU,메모리,캐쉬 등으로 차례로 한번 용어에 대하여 적절한 예를 들어가면 설명해보겠습니다.
 
 지루한 내용일 수도 있는데 읽어주셔서 감사드립니다~~

+ Recent posts