이번주 항해 99의 WIL은 객체지향프로그래밍 이다.
학교 전공 과정 내내 듣던 이야기 이지만, 꾸준히 알아볼 마음은 없이 학교 생활을 한 것 같다.
객체지향 프로그래밍(Object-Oriented Programming)은 프로그램을 설계하는 개념이자 방법론이다. 줄여서 OPP라고 부르며, 단어 의미 그대로 프로그램을 객체 단위로 나우고 그 객체들간의 상호 작용을 기본 개념으로 가지고 있다고 한다.
객체지향프로그래밍은 유연하고 변경이 용이하게 만들기 때문에 재사용성에 이점이 있다. 그렇기 때문에 대규모 프로젝트에서 많이 사용한다. 프로그램의 개발과 유지보수가 편리하다는 점에서 가장 큰 장점이라고 볼 수 있다.
- 추상화
객체 지향에서 추상화란 객체에서 공통된 속성과 행위를 추출하는 것을 의미한다.
한가지 추상적인 클래스로 공통적인 것을 묶고 그 이외 클래스에는 상속하여 다양하게 만든다.
추상화는 다른 객체들과 구분되는 핵심적인 부분에 집중하여, 복잡도를 관리할 수 있게 한다.
- 캡슐화
캡슐화는 연관있는 변수와 메소드를 묶어주는 작업을 말한다.
접근제어자를 이용해 외부로 부터의 접근을 제한하여, 객체내에서만 접근이 가능하게 해준다. 이를 정보은닉이라고한다.
외부 클래스 혹은 모듈에 의존적인 프로그램의 경우 변경이나 오류에 취약해진다. 정보은닉을 이용하게 되면 이러한 결합도를 낮추며 응집도를 높게 하는데 이롭다.
- 상속
클래스 개념이 도입 되면서 상속을 통해 부모클래스의 속성과 기능을 받아 사용하는 것을 말한다.
프로그램을 개발하다 보면 중복되는 속성과 기능이 있는 경우, 사용하면 중복되는 기능을 반복하여 작업하지 않아도 작업을 할 수 있다.
- 다형성
다형성이란 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 동일한 변수, 함수명 등이 다양한 방법으로 기능하는 것을 말하며
오버라이딩(Overriding), 오버로딩(Overloading)이란 형태로 제공된다.