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

  • 구름많음백령도22.2℃
  • 흐림순천22.4℃
  • 구름많음의령군21.4℃
  • 구름많음세종23.9℃
  • 흐림진도군23.2℃
  • 맑음북부산24.9℃
  • 구름많음함양군21.4℃
  • 구름많음서산23.7℃
  • 맑음영월21.6℃
  • 구름많음추풍령22.7℃
  • 구름많음광양시24.8℃
  • 맑음봉화19.5℃
  • 구름많음대구23.1℃
  • 구름많음파주22.7℃
  • 구름많음대전25.5℃
  • 맑음동해23.4℃
  • 구름많음성산26.9℃
  • 구름많음부산24.8℃
  • 구름조금서청주25.3℃
  • 구름많음완도24.3℃
  • 구름많음보성군24.5℃
  • 구름많음진주23.2℃
  • 구름많음양산시25.2℃
  • 구름많음거제24.2℃
  • 구름많음해남23.9℃
  • 흐림흑산도24.4℃
  • 구름많음여수25.5℃
  • 맑음울릉도23.3℃
  • 구름많음통영24.9℃
  • 구름많음인천26.8℃
  • 구름많음부여23.7℃
  • 구름많음합천21.7℃
  • 구름많음창원25.0℃
  • 구름조금안동23.0℃
  • 구름많음구미24.3℃
  • 구름조금영주17.2℃
  • 흐림고창24.7℃
  • 맑음문경20.1℃
  • 구름많음거창21.8℃
  • 구름조금의성21.3℃
  • 구름조금상주23.7℃
  • 구름많음산청21.6℃
  • 구름조금이천21.9℃
  • 구름많음강화22.4℃
  • 구름조금홍성23.1℃
  • 구름많음철원22.5℃
  • 구름조금군산26.5℃
  • 구름많음정읍24.9℃
  • 구름많음밀양24.6℃
  • 흐림강진군24.9℃
  • 구름많음보은23.7℃
  • 흐림경주시23.4℃
  • 구름많음천안21.4℃
  • 맑음인제19.4℃
  • 맑음양평23.6℃
  • 구름조금속초22.5℃
  • 구름조금제천21.6℃
  • 구름많음순창군24.8℃
  • 구름많음남해24.6℃
  • 구름많음장흥25.8℃
  • 구름많음광주25.1℃
  • 구름많음임실23.8℃
  • 구름조금정선군19.2℃
  • 구름많음서울26.8℃
  • 구름많음보령24.3℃
  • 구름많음남원24.3℃
  • 구름조금홍천22.8℃
  • 구름조금청주27.3℃
  • 맑음북강릉22.2℃
  • 구름많음북창원24.8℃
  • 구름많음영천21.9℃
  • 맑음원주25.7℃
  • 맑음영덕21.8℃
  • 구름많음김해시23.9℃
  • 구름조금춘천24.0℃
  • 흐림울산23.5℃
  • 맑음강릉23.6℃
  • 구름많음고산26.1℃
  • 흐림부안25.2℃
  • 맑음울진22.4℃
  • 맑음태백17.3℃
  • 흐림고창군25.6℃
  • 비서귀포26.7℃
  • 흐림영광군24.9℃
  • 구름많음포항24.2℃
  • 구름많음동두천22.2℃
  • 구름조금충주22.5℃
  • 구름조금전주25.4℃
  • 흐림제주27.0℃
  • 구름조금청송군19.8℃
  • 맑음대관령17.7℃
  • 구름많음고흥25.6℃
  • 구름많음수원24.0℃
  • 구름많음금산22.5℃
  • 구름조금북춘천24.4℃
  • 구름많음목포26.5℃
  • 구름많음장수22.0℃
  • 2025.09.11 (목)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

최신기사

뉴스댓글 >

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

댓글 0

Today

Hot Issue