새소식

조별과제

조별과제 - 테크톡 절차지향 언어와 객체지향 언어 대본

  • -

소개말

  • 안녕하세요 5조 발표 시작하겠습니다.
  • 프로그래밍을 분류하는 기준은 크게 3가지가 있습니다. 사람과 컴퓨터 중 어느 쪽이 더 이해하기 쉽게 만들었는지에 나뉘는 사용 주체에 따른 분류, 고급 언어를 어떻게 구동하는 지에 나뉘는 실행에 따른 분류, 절차와 활동의 관점에 따라 나뉘는 절차지향 언어와 객체지향 언어
  • 이 세 가지중 저희 조는 절차지향 언어와 객체지향 언어를 주제로 발표하겠습니다.

목차

  • 순서부터 소개 드리겠습니다. 1번 절차 지향 언어, 2번 객체 지향 언어 3번 각 언어의 비교 크게 이 세가지 순서대로 발표 진행하겠습니다.

1. 절차지향 언어의 정의와 특징, 예시 언어

  • 먼저 절차지향 언어의 정의, 예시 언어, 특징, 그에 따른 장단점 을 순서대로 설명 드리도록 하겠습니다.

1 - 1 절차지향 언어의 정의

  • 절차지향 언어는 일련의 처리 절차를 정해진 문법에 따라 순서대로 기술하는 프로그래밍 방법이라고 정의 되어 있습니다.
  • 이 절차지향 언어는 프로시저라고 하는 루틴과 서브루틴, 메소드, 함수 등을 이용하여 프로그래밍 합니다.

1 - 2 절차지향 언어의 예시

  • 그런 뜻을 가진 절차지향 언어에는 어떤 언어가 있을까요? 절차지향 언어의 대표적인 언어로는 프로그래밍을 배우기 시작하셨다면 한 번쯤은 들어보셨을 C언어가 있습니다.
  • C언어는 1972년도에 개발된 언어로써 컴파일러 방식을 사용하고 이식성이 좋아 어느 컴퓨터에서든지 프로그램 작성이 가능하다는 특징이 있습니다.
  • 이 외에도 포트란, 비주얼베이직, 파스칼 등 다양한 절차지향 언어가 있습니다.

1 - 3 절차지향 언어의 특징

  • 절차지향 언어는 크게 두 가지의 특징이 있습니다.
  • 하나는 위에서부터 아래로 물이 흐르듯 진행하는 형식인 top-down 접근 방식을 이용하여 순차적으로 진행 한다는 것이고,
  • 또 하나는 전체 기능을 하나의 함수로 구현하여 프로그램의 시작부터 순차적으로 코드를 실행한다는 것입니다.

1 - 4 절차지향 언어의 장단점

  • 이런 특징 덕분에 절차지향 언어는 실행 속도가 빠르다는 장점과 프로그래밍에 들이는 시간과 비용이 비교적 적다는 장점이 있습니다.
  • 하지만 이에 따른 단점도 존재합니다. 전체 기능을 하나의 함수로 구현하기 때문에 버그 발생시 대처가 어렵다는 점과 코드의 순서만 변경 되더라도 실행이 되지 않을 수 있다는 점이 대표적인 단점이라고 할 수 있겠습니다.

2. 객체지향 언어의 정의, 예시 언어, 특징, 장단점

  • 이제 객체지향 언어에 대해서 설명 드리겠습니다. 순서는 절차지향과 같은 객체지향 언어의 정의, 예시 언어, 특징, 그에 따른 장단점 순서입니다.

    2 - 1 객체지향 언어의 정의

  • 객체지향 언어는 프로그램을 다수의 독립적인 객체(Class)로 만들어 조립함으로써, 서로 상호작용하도록 하는 프로그래밍 방법이라고 정의 되어있습니다.
  • 이 객체의 상호작용은 데이터와 절차를 하나의덩어리로 묶어서 생각하는 방법으로 컴퓨터의 부품, 조립과 같은 개념이라고 생각하시면 이해가 편하실 것 같습니다.

2 - 2 객체지향 언어의 예시

  • 이 객체지향 언어에는 대표적으로 프로그래밍 공부를 시작한 코생아라면 꼭 한 번쯤은 배우게 되는 java가 있습니다.
  • java는 간단하고, 간단하기 때문에 가독성이 좋으며 보안에 강하고, 개발자 커뮤니티가 활성화 되어있어 정보 습득이 용이한 장점이 있습니다.
  • 이 외에도 객체지향 언어에는 파이썬, 루비, php등 다양한 최신 언어들이 있습니다.

2 - 3 객체지향 언어의 특징

  • 객체지향 언어의 특징으로는 크게 4가지가 있습니다.
  • 추상화, 캡슐화, 상속성, 다형성 이 네 가지 특징을 순서대로 설명 드리겠습니다.
  • 첫 째로 추상화입니다. 추상화란? 공통의 속성, 기능을 묶어 이름을 붙이는 것입니다. 라면을 예로 들면 분말스프와 건더기스프, 조미유를 통틀어 스프라고 이름 붙이는 것이라고 생각하시면 될 것 같습니다.
  • 둘 째로 캡슐화 입니다. 캡슐화는 객체의 변수 및 메서드를 외부 객체가 건들지 못하도록 감싸는 보호막 같은 개념입니다. 이 역시 라면으로 예를 들면 라면 봉투를 열었을때 분말스프가 흩날리지 않도록 스프를 감싸고 있는 은박포장지라고 생각하시면 되겠습니다.
  • 셋 째로 상속성 입니다. 상속은 부모 클래스의 변수와 메서드를 모두 자식 클래스가 물려 받는 것을 의미합니다. 이 역시 라면으로 비유하자면 너구리라면의 다시마, 건더기 스프, 면발을 앵그리너구리라면이 물려받은 것과 같습니다.
  • 마지막으로 다형성 입니다. 다형성은 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미합니다. 이 역시 라면으로 예를 들자면 농심의 동그란 면은 신라면의 면이 될 수 있고 짜파게티의 면이 될 수도 있는 것과 같습니다.

2 - 4 객체지향 언어의 장단점

  • 이렇게 좋아만 보이는 객체지향 언어에도 단점이 있습니다. 여러 객체를 나누어 만들고 후에 다시 조립하여 상호작용하도록 만드는 복잡한 과정을 거치기 때문에 프로그램을 설계하는데에 많은 시간과 비용이 소모되고, 같은 이유로 실행시 처리 속도 역시 느려지게 됩니다.
  • 그렇지만 객체지향 언어의 4가지 특징에서 파생되는 생산성 향상, 높은 코드의 재사용성, 비교적 유지보수를 손쉽게 할 수 있다는 장점이 어디에서든지 객체지향 언어를 만날 수 있게 만들어준 것 같습니다.

3. 각 언어 비교

  • 예시 자료를 보시자면 자판기에서 음료수를 뽑아먹는 과정이
  • 절차지향에서는 간단하게 고객이 돈을 넣으면, 자판기는 돈을 검수한 후 제품과 거스름돈을 반환하고, 고객은 잔돈과 제품을 받아가는 절차로 과정을 수행하게 되고
  • 객체지향에서는 고객은 돈을 넣거나, 받거나, 제품을 받는 등 세 가지 동작을 수행할 수 있도록 설계하고 자판기는 돈을 받거나, 검사하거나, 잔돈을 주거나, 제품을 주는 이 네가지 동작을 수행 할 수 있도록 설계하여 고객과 자판기라는 두 객체가 서로 상호작용하여 과정을 수행하게 됩니다.
  • 차이가 잘 이해가 되시나요? 이렇게 절차지향에서는 각각의 과정, 절차 중심으로 프로그래밍이 되고, 객체지향에서는 어떤 객체가 어떤 동작을 수행하는지, 이 과정이 어떻게 상호작용 하는지가 중심으로 프로그래밍이 됩니다.

4. 마무리

  • 설명을 하다보니 절차지향 언어가 무조건 객체지향 언어보다 안 좋은 것처럼 보이지만 그렇지 않습니다.

  • 꾸겨진 종이 하나를 치우기 위해 청소 전문 업체를 꾸릴 필요가 없고, 빌딩을 혼자서 막무가내로 청소할 수 없듯이 각각의 특징과 장점을 최대한 활용할 수 있는 곳에 적절히 사용하는 것이 중요합니다.

  • 그리고 이번에 절차지향 언어와 객체지향 언어를 조사하면서 가장 많이 본 문장이 "절차지향 언어와 객체지향 언어는 반대 개념이 아니다." 입니다.

  • 어디까지나 '지향'이라는 것이고, C언어는 무조건 절차적으로만 프로그래밍하고 java는 객체지향적으로만 프로그래밍 한다는것은 아닙니다.

  • 어떤 언어이건 상관없이 절차지향적으로 코딩이 가능하고, 반대로 c언어도 100% 같지는 않지만 객체지향적으로 코딩이 가능은 합니다.

  • 모든 프로그래밍은 절차가 중요시되고, 그 절차에 따라 실행이 되는 기본적인 틀이 존재합니다. 그렇기에 어떤 지향이란 코딩하는 방식의 차이이지 특정 언어는 특정지향만 지원하는게 아니라는것을 알아주시면 좋을 것 같습니다.

  • 이상으로 5조 발표를 마치겠습니다. 지루한 영상 봐주셔서 감사합니다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.