객체 지향 프로그래밍(OOP, Object-oriented programming)은 하나의 모델이 되는 청사진(blueprint)을 만들고(=> class), 그 청사진을 바탕으로 한 객체를 만드는(=> instance object) 프로그래밍 패턴이다. 절차 지향 프로그래밍과는 다르게 데이터와 기능을 한 곳에 묶어서 처리한다.
절차지향 | 객체지향 | |
---|---|---|
특성 | 컴퓨터의 처리구조와 유사 | 사람의 사고방식에 가까움 |
메모리 사용 | 적음 | 많음 |
처리 속도 | 빠름 | 느림 |
재활용성 | 낮음 | 높음 |
코드 이해 | 어려움 | 쉬움 |
디버깅 | 어려움 | 쉬움 |
ex) 메모리 관리가 중요하다면 -> 메모리를 적게 쓰는 절차지향
ex) 사람들과의 협업이 필요하다면 -> 코드 이해가 쉬운 객체지향
속성과 메소드가 하나의 '객체'라는 개념에 포함되며 이는 자바스크립트 내장 타입인 object 와는 다르게 클래스(Class) 라는 이름으로 불린다.
객체.메소드()
과 같이 객체 내에 메소드를 호출하는 방법을 의미하며 매소드 호출 방식은 화살표 함수를 쓰지 않는다.