티스토리 뷰

코드스테이츠 부트캠프

객체 지향

als982001 2023. 1. 13. 11:43

1. 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)

 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴이다. 예를 들어, 자동차의 청사진을 만들고 이를 바탕으로 여러 자동차를 만드는 것을 말한다. 이 때, 청사진을 class, 객체를 instance라 할 수 있다.

 

1-1. 클래스 정의

클래스는 함수로도 정의할 수 있고 class라는 키워드를 이용해서 만들 수도 있다. (class는 ES6 이후부터 가능)

// 1. 함수로 정의
function Phone(brand, color, name) {}	

// 2. class로 정의
class Phone{
	constructor(brand, color, name) {
    }
}

let myPhone1 = new Phone("samsung", "black", "galaxy10");
let myPhone2 = new Phone("apple", "white", "iPhone8");

 

1-2. 속성과 메소드

 클래스에서는 속성과 메소드를 정의할 수 있다. 예를 들어, 자동차의 이름, 자동차의 브랜드 등은 속성이라 할 수 있으며 연료 주입, 운전 등은 자동차의 메소드라 할 수 있다.

function Human(name, age) {
	// 속성 정의
    this.name = name;
    this.age = age;
    
   // 메소드 정의
   Human.prototype.run = function() {
   	// 사람이 달리는 것을 구현
   }
}

class Human {
	constructor(name, age) {
		// 속성 정의
    	this.name = name;
        this.age = age;
    }
    
    // 메소드 정의
    run() {
    	// 사람이 달리는 것을 구현
    }
}

let gildong = new Human("gildong", 20);
gildong.age;	// 20
gildong.run();	// 길동이 달림

 

2. OOP의 기본 개념

2-1. 캡슐화 (Encapsulation)

 데이터와 기능을 하나의 단위로 묶는다고 하여 캡슐화라고 한다. 이를 통해 구현은 숨기고 동작은 노출시킬 수 있으며, 언제든 구현한 것을 수정할 수 있다.

 

2-2. 추상화 (Abstraction)

 추상화는 내부 구현은 복잡할지언정, 실제 노출되는 부분은 단순하게 만든다는 것이다. 계를 들어, 자판기의 버튼을 누르면 음료수가 나오는데, 자판기를 이용하는 사람들은 어떤 원리에 의해 음료수가 나오는지 알 필요가 없다. 그저 버튼을 누르면 음료수가 나온다는 사실만 알면 된다. 이렇듯, 추상화를 통해 인터페이스가 단순해지며 예기치 못한 사용상의 변화를 막을 수 있다.

 

2-3. 상속 (Inheritance)

 상속은 부모 클래스의 특징을 자식 클래스가 물려받는 것이다. 이를 통해 기존의 클래스에서 다양한 파생된 것들을 간편하게 만들 수 있다.

 

2-4. 다형성 (Polymorphism)

 다형성은 말 그대로 다양한 형태를 가질 수 있다는 뜻으로, 비슷한 클래스들끼리 비슷한 행동을 해야 할 때, 일일이 하나 하나 그 기능을 구현할 필요 없이 상속을 통해 조금씩만 변형시켜 이용할 수 있게 해야 한다는 것이다.

'코드스테이츠 부트캠프' 카테고리의 다른 글

프로토타입 체인  (0) 2023.01.15
프로토타입  (0) 2023.01.13
고차함수, 내장고차함수  (0) 2023.01.12
Section 01 회고  (0) 2023.01.11
간단한 회원가입 페이지 만들기  (0) 2023.01.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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
글 보관함