ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Unity]유니티 입문하기 6-4(객체 지향 언어란?)
    프로그래밍 2023. 8. 4. 15:07

    이전 글에서는 프리팹을 통해 투사체를 생성하고 발사하는 것을 해보았고,

    번외로 여러 개를 동시에 발사하는 코드도 작성해 보았습니다.

    이번 글에서부터는 "객체 지향 언어"인 C#에 대해 좀 더 자세히 알아보기 위해 객체 지향이 뭔지, 클래스나 추상화가 뭔지 차근차근 알아보도록 하겠습니다.


    프로그래밍 언어는 절차 지향 언어와 객체 지향 언어로 나눌 수 있습니다.

    절차 지향은 어떠한 일을 여러 과정의 흐름으로 이해하고 순서대로 과정을 나열하는 방식이고,

    객체 지향은 어떠한 일을 객체와 객체 간의 상호작용으로 이해하는 방식입니다.

     

    예를 들어 카페에서 음료를 주문하는 것을 절차 지향으로 보게 된다면

    1. 고객이 점원에게 음료를 주문한다.
    2. 점원이 고객에게 해당 음료의 가격을 알린다.
    3. 고객이 음료의 값을 지불한다.
    4. 점원이 고객에게서 돈을 받아 계산하고, 거스름돈을 지불한다.
    5. 점원이 음료를 제작한다.
    6. 점원이 고객에게 완성된 음료를 건네준다.
    7. 고객이 음료를 받아 자리에 앉는다.

    이렇게 필요한 작업을 순서대로 나열하게 될 것입니다.

     

    반대로 같은 작업을 객체 지향으로 보게 된다면

    • 직원
      • 주문을 받는다
      • 돈을 받고, 거스름돈을 준다
      • 음료를 제작한다.
      • 음료를 건네준다.
    • 고객
      • 음료를 주문한다.
      • 돈을 지불한다.
      • 음료를 받는다.
      • 자리에 앉는다.

    와 같이 "직원"과 "고객"이라는 객체에 초점을 맞춰서 보게 될 것입니다.

     

    절차 지향 언어로 작성된 프로그램의 경우, 프로그램 전체가 하나의 과정으로 인식되어 코드가 위에서부터 차근차근 순서에 따라 작동할 것이며, 이것이 컴퓨터의 처리구조와 유사해 객체 지향에 비해서 속도에 우위를 가질 수 있습니다.

     

    반면 객체 지향 언어는 컴퓨터의 사고보다는 사람의 사고에 맞춰서 프로그램을 작성하는 언어로, 실생활에 존재하는 사물이나 개념을 객체로 추상화하여 프로그래밍에 적용해 객체를 만드는 부분과 객체가 상호작용하는 부분으로 나뉘게 됩니다.

    객체 지향 언어는 사람의 사고에 맞춰서 프로그램을 작성하기 때문에 절차 지향 언어에 비해 직관적으로 이해하기가 쉽고, 절차 지향 언어와는 달리 객체는 서로에게 의존적이지 않으므로, 코드를 일부 수정하는 것이 절차 지향 언어에 비해 간편합니다.

     

    객체지향 언어의 장점을 요약하자면 아래와 같습니다.

    1. 현실에 있는 개념을 모델링하기 쉽다.
    2. 재사용이 쉬워 코드의 중복을 줄일 수 있다.
    3. 유지보수가 간편하다.

     

     

Designed by Tistory.