dev/✍️ computer science
OOP 란?
wugawuga
2022. 5. 31. 13:09
OOP (Object Oriented Programming)
객체 지향 프로그래밍
객체를 바탕으로한 프로그래밍 패러다임 이다.
프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
OOP 특징
- 캡슐화
- 접근 제어자를 통해 정보은닉
- 기능과 특성의 모음을 '클래스' 라는 '캡슐' 에 분류해서 넣는 것
- 상속
- 상위클래스의 특징을 상속 받아, 속성과 기능을 이어받아 사용 가능
- 코드의 중복제거, 재사용성 증대
- 다중 상속은 불가 (상속은 반드시 하나만 가능, 필요에 따라 인터페이스 사용)
- 추상화
- 모델링 개념, '공통의' 속성이나 기능을 묶어서 클래스를 설계
- 다형성으로 확장할 수 있도록 설계
- 다형성
- OOP 답게 해주는 가장 큰 특징
- 하나의 변수명, 메소드명 등이 상황에 따라 다른 의미로 해석될 수 있는 것
- 역할과 구현을 분리, 오버라이딩을 통해 서비스의 기능을 유연하게 변경, 확장 가능
- 클래스와 인스턴스(객체)
- 클래스 : 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메소드로 정의한 것
- 인스턴스 : 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것
OOP 장단점
장점
- 코드 재사용 용이
- 유지보수 쉬움
- 대형 프로젝트에 어울림
단점
- 처리속도가 상대적으로 느림
- 객체가 많아지면 용량도 커짐
- 설계시 많은 노력과 시간 필요