티스토리 뷰

CS

클래스와 객체지향프로그래밍

김규현 2021. 5. 10. 22:22

 클래스와 객체지향프로그래밍을 얘기 하려면 우선 절차지향프로그래밍을 언급해야한다. 이름에서 알 수 있듯이 객체지향과 절차지향은 서로 반대에 위치한 느낌을 가지고 있다. 컴퓨터가 발명되고 컴퓨터를 컨트롤 하기위해 컴퓨터가 이해할 수 있는 언어가 개발되었다. 그 언어를 사용해 컴퓨터에게 명령을 내리는데 컴퓨터는 기본적으로 명령이 내려진 순서대로 동작을 한다. 따라서 초기의 프로그래밍은 모두 절차지향프로그래밍이었다. 하지만 컴퓨터에게 명령을 내리는 주체는 사람이기때문에 사용자가 편리함을 추구하면서 나온 이론이 객체지향프로그래밍이다.

 

 모든 데이터와 기능들을 순서대로 나열하여 실행시켰던 것에서 벗어나 코딩을 효율적, 효과적으로 하기 위해 각 기능들과 기능에 필요한 데이터들을 따로 모아 객체로 나누어 필요한 순간에 필요한 기능만 가져와 프로그래밍을 하기 시작했다. 이 객체에 대한 생각은 우리가 살고있는 이 세상에서 가져왔다. 우리가 살고있는 세상의 모든 것들을 구체적으로 살펴보면 모두 각자의 기능이 있고 서로 독립된 존재로 이 세상을 구성하고 있다. 객체를 설명할 때 자주 언급되는 자동차를 예로 보면, 자동차는 차체, 바퀴, 엔진, 창문, 좌석, 핸들 등등 수만가지의 크고 작은 부품들(데이터)로 만들어진다. 그리고 자동차를 이용하여 우리는 어딘가로 이동할 수 있다.(자동차의 기능) 하지만 우리는 한 가지 자동차만 가지고 있지는 않는다. 각 나라마다 자동차를 생산하는 회사가 여러개 있고 각 회사에서 생산하는 여러가지 다른 종류의 자동차도 있다. 이 특징이 객체지향프로그래밍의 주요한 특징이 된다. 

 

 객체지향프로그래밍에는 여러 용어들이 있다. 대표적으로는 클래스와 인스턴스 객체(이하 인스턴스)가 있다. 위에서 예를 들었던 자동차의 경우, 자동차를 만들기 위해서는 설계도가 필요하다. 자동차에는 여러종류가 있다. 승용차, 승합차, 경차, 버스, 캠핑카 등 각자의 목적에 맞는 유형이 있다. 그렇기 때문에 목적에 맞는 설계도를 만들어야 해당 자동차를 만들 수 있다. 클래스는 설계도에 해당하는 용어이다.  아래 코드는 클래스 작성의 예시이다. 

 

 

class Car () {
	constructor (body, engine, wheel) {
    		this.body = body
        	this.engine = engine
        	this.wheel = wheel
    	}
    
    drive () {
    	console.log("운전을 시작합니다.")
    }
    
{

 

 

 Car를 만들기 위해서는 constructor(생성자) 안에 선언된 매개변수들이 필요하다. 차체와 엔진 그리고 바퀴가 있어야 자동차의 형태를 갖추게 되는 것이다. 그리고 이 자동차의 기본 기능으로 이동하는 기능인 drive가 내장 되어있다. 하지만 이 클래스는 위에서 말했듯이 설계도이다. 실제로 자동차를 구현해야 자동차를 탈 수 있는 것이다. 인스턴스가 바로 이 클래스(설계도)를 통해 구현된 객체를 말한다.  아래 코드는 인스턴스를 만드는 예시이다.

 

 

const buleCar = new Car("big", "strong", "round")

blueCar.drive()

 

 Car클래스를 통해 blueCar를 만들었다. 이 차는 "큰" 차체와 "강한" 엔진과 "둥근"바퀴를 가지고 있다. 생성자의 파라미터로 "big", "strong", "round" 가 각각 들어가서 blueCar의 속성이 된다. 그리고 내장되어있는 drive란 기능을 실행시켜 운전을 할 수가 있게 된다.

'CS' 카테고리의 다른 글

AWS배포  (0) 2021.07.07
네트워크 심화  (0) 2021.07.05
HTTP/네트워크  (0) 2021.07.04
자료구조) 2. 1) Graph  (0) 2021.05.19
자료구조) 1. Stack, Queue  (0) 2021.05.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함