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

  • 구름많음부산14.0℃
  • 맑음속초13.6℃
  • 맑음파주3.7℃
  • 구름많음고창군13.3℃
  • 맑음성산19.0℃
  • 맑음울산15.9℃
  • 구름많음영광군13.8℃
  • 구름많음서산13.1℃
  • 맑음남해14.6℃
  • 맑음구미13.1℃
  • 구름많음임실11.9℃
  • 연무여수14.7℃
  • 맑음안동12.8℃
  • 맑음강릉15.3℃
  • 구름조금흑산도16.2℃
  • 맑음청송군12.3℃
  • 구름많음남원12.2℃
  • 맑음해남16.4℃
  • 맑음보은12.2℃
  • 맑음대관령7.3℃
  • 맑음북강릉13.7℃
  • 맑음합천14.7℃
  • 연무백령도12.3℃
  • 맑음고산16.6℃
  • 구름많음창원12.8℃
  • 구름많음보령13.2℃
  • 맑음인천12.8℃
  • 맑음동해14.8℃
  • 구름조금광양시15.3℃
  • 맑음원주12.0℃
  • 맑음울릉도13.8℃
  • 구름많음세종12.5℃
  • 맑음대구12.7℃
  • 구름많음부여13.6℃
  • 맑음추풍령13.1℃
  • 맑음울진14.0℃
  • 구름많음북창원13.8℃
  • 구름많음고창13.5℃
  • 맑음철원10.0℃
  • 맑음영천13.4℃
  • 연무광주13.8℃
  • 맑음봉화11.2℃
  • 맑음장흥16.3℃
  • 구름많음북부산14.0℃
  • 구름조금수원12.5℃
  • 맑음춘천11.7℃
  • 구름많음김해시14.3℃
  • 구름조금순천15.3℃
  • 박무홍성13.8℃
  • 구름조금양산시14.4℃
  • 구름많음부안15.0℃
  • 구름많음진주13.5℃
  • 맑음문경13.8℃
  • 맑음천안12.4℃
  • 맑음거창14.9℃
  • 흐림순창군12.1℃
  • 구름조금함양군14.1℃
  • 구름조금보성군15.2℃
  • 구름조금서청주11.5℃
  • 구름조금밀양13.4℃
  • 맑음의성13.9℃
  • 구름많음군산14.5℃
  • 맑음충주11.8℃
  • 연무청주12.5℃
  • 맑음서귀포18.2℃
  • 맑음영월12.9℃
  • 맑음고흥15.1℃
  • 연무대전13.3℃
  • 맑음태백10.0℃
  • 구름조금통영14.6℃
  • 맑음영주12.2℃
  • 맑음제주18.2℃
  • 연무북춘천10.5℃
  • 구름많음산청12.0℃
  • 연무전주14.5℃
  • 맑음완도16.5℃
  • 맑음상주14.4℃
  • 맑음금산14.2℃
  • 맑음인제10.2℃
  • 맑음양평10.1℃
  • 맑음포항14.8℃
  • 구름조금의령군12.5℃
  • 맑음정선군11.3℃
  • 구름많음거제14.3℃
  • 맑음진도군15.4℃
  • 구름많음정읍13.7℃
  • 맑음동두천11.4℃
  • 구름조금장수10.7℃
  • 맑음영덕14.0℃
  • 맑음이천12.5℃
  • 연무서울12.8℃
  • 맑음제천10.4℃
  • 구름조금강진군16.1℃
  • 맑음홍천11.1℃
  • 맑음강화11.9℃
  • 맑음경주시15.4℃
  • 구름조금목포15.0℃
  • 2025.12.07 (일)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

최신기사

뉴스댓글 >

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

댓글 0

Today

Hot Issue