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

  • 구름많음목포27.5℃
  • 구름많음울산27.7℃
  • 흐림강화23.2℃
  • 구름조금합천24.6℃
  • 흐림충주23.7℃
  • 흐림인제21.2℃
  • 구름많음전주27.8℃
  • 구름많음영천25.5℃
  • 구름많음진도군27.9℃
  • 구름많음울릉도26.0℃
  • 구름조금부산27.8℃
  • 구름많음임실26.3℃
  • 흐림영주22.0℃
  • 흐림이천23.0℃
  • 흐림홍성23.1℃
  • 흐림북춘천22.0℃
  • 구름많음대전24.9℃
  • 비백령도18.7℃
  • 구름많음순천24.6℃
  • 흐림문경22.5℃
  • 구름조금고흥28.6℃
  • 구름많음산청23.8℃
  • 구름많음장수25.6℃
  • 구름많음대구26.9℃
  • 구름많음광양시26.7℃
  • 구름많음안동24.0℃
  • 구름많음영덕26.4℃
  • 구름많음순창군25.0℃
  • 흐림제천21.9℃
  • 구름많음고창군27.7℃
  • 구름많음의성23.4℃
  • 구름많음군산24.6℃
  • 흐림홍천22.1℃
  • 구름조금북창원29.1℃
  • 구름많음남원24.6℃
  • 맑음고산28.8℃
  • 구름많음밀양27.1℃
  • 구름많음보령
  • 흐림서청주23.3℃
  • 구름많음거창23.3℃
  • 맑음남해28.4℃
  • 구름많음창원27.8℃
  • 맑음통영26.9℃
  • 구름많음청송군23.5℃
  • 구름많음울진26.3℃
  • 흐림봉화22.1℃
  • 흐림강릉24.2℃
  • 구름많음강진군27.9℃
  • 구름조금성산28.3℃
  • 구름많음해남28.3℃
  • 흐림서산23.4℃
  • 흐림동두천22.2℃
  • 비서울23.7℃
  • 천둥번개북강릉22.8℃
  • 맑음여수26.4℃
  • 구름많음금산26.9℃
  • 비수원22.8℃
  • 흐림양평22.2℃
  • 구름조금북부산28.5℃
  • 구름많음보은23.5℃
  • 구름조금의령군26.0℃
  • 맑음거제27.7℃
  • 흐림춘천22.0℃
  • 구름많음부안26.9℃
  • 구름많음제주29.6℃
  • 흐림동해23.6℃
  • 구름많음서귀포28.7℃
  • 흐림대관령19.3℃
  • 흐림천안23.9℃
  • 흐림속초23.6℃
  • 흐림철원21.4℃
  • 흐림태백22.8℃
  • 구름많음고창27.7℃
  • 구름많음추풍령23.9℃
  • 비인천23.8℃
  • 흐림원주22.4℃
  • 흐림파주21.5℃
  • 구름많음진주26.7℃
  • 구름조금보성군27.6℃
  • 흐림흑산도26.6℃
  • 구름많음구미25.7℃
  • 구름많음함양군24.7℃
  • 구름많음부여24.3℃
  • 구름많음포항27.1℃
  • 구름많음양산시28.1℃
  • 흐림청주25.0℃
  • 흐림영월21.7℃
  • 구름많음광주26.7℃
  • 구름많음영광군27.6℃
  • 흐림정선군22.1℃
  • 구름많음장흥27.9℃
  • 흐림세종24.0℃
  • 구름많음경주시27.7℃
  • 구름많음상주24.1℃
  • 구름많음정읍27.9℃
  • 구름조금김해시27.9℃
  • 구름많음완도28.5℃
  • 2025.09.17 (수)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

최신기사

뉴스댓글 >

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

댓글 0

Today

Hot Issue