본문 바로가기

동아리

자바 3차시

객체 지향 프로그래밍 (Object Oriented Programming; OOP)

좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임, 로직을 상태(state) , 행위 (behave)로 이루어진 객체를 만드는 것

-> 객체 지향 프로그래밍은 객체를 만드는 것.

 

부품화

프로그램은 실체가 없고, 무한, 유연함이 장점. 이러한 특성은 오해나 모순 등의 문제점을 유발

-> 소프트웨어도 문제점을 그대로 상속, 따라서 부품화로 해결

 

현재는 부품화를 제거하는 추세

-> 기술의 경량화, 컴퓨터가 더 작아짐, 그 결과 부품화 하는 것이 반감됨.

객체 지향과 부품하는 동일하지는 않음, 소프트웨어의 큰 흐름은 객체 지향이 만들어지는데 공헌.

 

예) 자바의 메소드

목적 

- 연관되어 있는 로직들을 결합해 메소드라는 완제품을 만드는 것

- 메소드를 부품으로, 하나의 완제품이 독립된 프로그램을 만드는 것

- 메소드를 사용하면, 코드의 양을 극적으로 줄일 수 있고. 메소드 별로 기능이 분류되어 있어, 필요한 코드를 찾고, 문제의 진단도 쉽고 빨라짐.

 

프로그램이 커지면 엄청나게 많음 메소드들이 생겨나게 되어, 메소드와 변수를 관리하는 것은 점점 어려운 일이 되기 시작하고 해결해야할 문제가 새로 생기게 됨, 이를 해결하는 것이 OOP.

 

은닉화, 캡슐화

제대로 된 부품이라면, 어떻게 만들어졌는지 모르는 사람도 부품을 사용하는 방법만 알면, 사용이 가능해야 한다.

즉, 내부의 동작 방법을 단단한 케이스 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있다.

이를 정보의 은닉화(Information Hiding) / 캡슐화 (Encapsulation) 라고 한다.

 

인터페이스

각각의 부품은 미리 정해진 약속에 따라서 신호를 입출력하고 연결점의 모양을 표준에 맞추는 연결점

인터페이스란 이질적인 것들이 결합하는 것을 막아주는 역할도 함.

'동아리' 카테고리의 다른 글

앙상블  (0) 2020.11.20
로지스틱 회귀  (0) 2020.11.15
나이브 베이즈  (0) 2020.09.24
SVM 알고리즘  (0) 2020.09.23
랜덤 포레스트  (0) 2020.09.23