CWN(CHANGE WITH NEWS) - [코딩 기본 개념 잡기] 객체지향과 절차지향의 개념 알아보기

  • 맑음제천26.2℃
  • 구름조금전주29.0℃
  • 맑음대관령19.7℃
  • 구름조금순창군28.0℃
  • 구름조금서산28.4℃
  • 맑음영주26.5℃
  • 구름많음고흥28.3℃
  • 구름많음여수27.5℃
  • 구름조금고창군28.1℃
  • 구름조금부산26.6℃
  • 구름많음고산28.6℃
  • 맑음거창25.6℃
  • 구름조금밀양26.3℃
  • 맑음청송군25.1℃
  • 구름많음목포27.8℃
  • 구름조금영덕23.9℃
  • 구름많음영광군27.6℃
  • 맑음파주26.2℃
  • 구름많음천안27.6℃
  • 구름많음서귀포28.0℃
  • 맑음양산시26.3℃
  • 맑음정선군25.4℃
  • 구름많음광양시27.2℃
  • 구름많음진주27.0℃
  • 구름조금이천26.3℃
  • 구름조금합천26.3℃
  • 구름많음의령군25.5℃
  • 구름조금정읍28.4℃
  • 구름조금충주26.5℃
  • 흐림흑산도25.1℃
  • 맑음울진24.8℃
  • 구름많음거제26.2℃
  • 구름조금군산28.0℃
  • 맑음대구25.7℃
  • 맑음태백21.1℃
  • 구름조금의성27.4℃
  • 구름많음고창27.5℃
  • 구름조금인천29.5℃
  • 구름많음세종27.3℃
  • 맑음홍천28.0℃
  • 구름많음영천24.8℃
  • 구름많음장흥27.6℃
  • 구름많음대전27.5℃
  • 구름조금김해시25.6℃
  • 맑음울릉도23.9℃
  • 맑음북부산26.1℃
  • 구름많음북강릉25.5℃
  • 구름많음성산27.6℃
  • 구름조금보은26.2℃
  • 맑음영월26.9℃
  • 구름조금장수24.8℃
  • 흐림남해27.1℃
  • 구름많음경주시24.0℃
  • 맑음원주29.3℃
  • 맑음봉화25.4℃
  • 구름조금보령28.6℃
  • 구름많음진도군26.1℃
  • 맑음동두천27.6℃
  • 구름조금창원27.1℃
  • 구름조금금산27.5℃
  • 맑음속초25.1℃
  • 맑음문경26.0℃
  • 구름조금순천25.9℃
  • 구름많음청주30.6℃
  • 맑음강화25.1℃
  • 구름많음해남27.2℃
  • 구름조금양평28.4℃
  • 구름조금서울30.0℃
  • 맑음철원28.0℃
  • 맑음강릉26.2℃
  • 흐림포항24.6℃
  • 구름조금임실26.5℃
  • 구름많음부여28.2℃
  • 맑음안동27.2℃
  • 맑음동해25.1℃
  • 맑음백령도25.2℃
  • 구름조금울산24.2℃
  • 구름많음완도28.0℃
  • 맑음인제24.0℃
  • 구름조금부안28.4℃
  • 구름조금추풍령25.3℃
  • 구름조금함양군26.4℃
  • 구름많음보성군27.3℃
  • 구름조금수원29.0℃
  • 맑음상주27.4℃
  • 구름조금구미27.8℃
  • 구름많음광주27.2℃
  • 맑음춘천28.4℃
  • 구름많음북창원27.6℃
  • 구름조금산청25.7℃
  • 구름많음통영27.1℃
  • 구름많음강진군28.2℃
  • 구름많음서청주27.8℃
  • 맑음북춘천28.3℃
  • 비제주27.1℃
  • 구름조금홍성28.2℃
  • 구름조금남원27.3℃
  • 2025.09.11 (목)

[코딩 기본 개념 잡기] 객체지향과 절차지향의 개념 알아보기

김민 / 기사승인 : 2021-02-26 13:57:04
  • -
  • +
  • 인쇄

코딩을 배우고 있는 이들이라면 C언어는 절차지향, C 는 객체지향이라고 하는 말을 들어봤을 것이다.

다 똑같이 C언어이고 타자쳐서 하는 것은 똑같은데 무슨 차이점일까? 전공자에 입장에서 코린이(코딩 어린이)들을 위한 용어 정리를 쉽게 해보도록 하겠다.

-코드도 위아래가 있지! 절차지향
기본적으로 모든 코드는 절차지향의 특성을 띄고 있다. 아까는 C언어는 절차지향 C 는 객체지향이라고 하더니 이게 무슨 소리인가 할 수도 있다. 하지만, 코딩을 조금 하다 보면 이해할 수 있을 것이다.

기본적으로 코드를 짜면 위에 있는 코드부터 차례로 컴파일(컴퓨터가 코드를 실행할 수 있도록 번역하는 과정)하여 실행한다는 것을 알 수 있다.

코드가 기본적으로 위와 같은 특성을 띄는 이유는 무작위로 코드가 실행될 경우 매번 결과가 다르게 나올 수 있으며, 아래나 중간부터 시작하면 코드를 짜는 데 어려움이 많을 수밖에 없기 때문에 위에서부터 순차적으로 시작하는 절차지향을 채택한 것이다.

-코드 분석과 간단한 프로그래밍에는 유리해! 하지만 복잡하고 비효율적이야..
그러면 절차지향 프로그래밍의 장점은 무엇일까? 일단 처음 보는 코드를 해석하는 데 어려움이 많지 않다는 것이다. 특정한 개념을 잡고 가는 것이 아니라 순서대로 따라가다 보면 코드를 해석할 수 있으므로 처음 보는 코드도 해석하고 실행 결과를 예측하는 것이 편하다. 또한, 간단한 프로그래밍에서는 많은 자원을 쓸 필요 없이 단순 연산만 하면 되기 때문에 자원을 많이 요구하지 않는 것은 장점이라고 할 수 있을 것이다.

하지만, 장점만 있는 것은 아니다. 특정한 값과 속성을 가진 개체를 프로그램 내에서 생성해야 하는데 이를 구현하기 매우 까다롭다는 점과 좀 더 복잡한 프로그래밍으로 들어가게 되면 효율성이 떨어지고 코드가 복잡해질 수밖에 없어진다. 결국 절차지향 언어로는 모든 프로그램(특히 게임)을 구현하기는 매우 힘들어진다.

- 자.. 이게 클릭..아니 특성이야. 객체지향
위에 있던 코딩의 복잡성과 특정한 특성을 가진 개체들을 여러 개 생성해야 할 때, 기존 절차지향 프로그래밍으로는 한계가 보인다.

당신이 게임 개발자이며 RPG 게임을 만든다고 가정해보자. 각각 캐릭터의 특성과 스킬을 제작하는 역할을 해야 한다. 하지만 절차지향 언어로 진행하게 된다면 당신은 일일이 캐릭터라는 개념을 구현해야 한다. 이 얼마나 비효율적인가. 그래서 나타난 개념이 바로 '객체'이다.

그러면, 객체라는 것은 무엇인가? '특성을 가진 하나의 개체'라고 설명할 수 있을 것 같다. 쉽게 이야기해서 기존에 절차지향으로 캐릭터를 생성하려면, '모험가' 따로, '해적' 따로, '마법사' 따로.. 다음과 같이 같은 특성, 다른 수치값을 가지더라도 다 각각 따로 구현해야 한다. 하지만 객체지향 언어로 구현을 하려면 이들을 '캐릭터'라는 객체로 정의하고 각각 특성에 맞는 수치만 넣어주면 된다.

- 효율적인 코드, 하지만 무겁지
앞서 이야기한 대로 비슷한 특성을 가진 개체들을 하나의 객체로 묶어놓으면 되므로 코드가 길어지고 비슷한 특징을 가진 객체를 많이 다룰수록 효율적인 코드를 완성할 수 있다. 또한, 이러한 특성을 계속 이용하면 되기 때문에 응용성에서도 이득을 볼 수 있다. 단점이 있다면, 간단한 작업마저도 객체로 실행할 때가 있어, 효율성이 떨어질 수 있다는 점이다.

[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

최신기사

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0

Today

Hot Issue