AIB 섹션 5 컴퓨터공학 N513 Object-Oriented Programming
- object는 프로그래밍과 어떻게 연결이 되는가?
- 내가 작성한 소스코드에서의 함수의 영향력은 어느 정도인가?
- 클래스는 무엇을 위해 사용하는가?
- 객체, 클래스, 인스턴스의 차이는?
배울 것: oop 설계, OOP 개념
OOP: 어떤 기능을 수행하는 것들이 있을텐데, 추상화하여 그 수행하는 함수/메소드를 객체로 생각할 수 있다. 이 객체들을 재사용 가능하도록 코드를 짜기. 기능, 절차로 순서를 정할 필요 없이 object에 대해 어떤 추가 기능을 수행하도록 코드를 짠다. 여러 프로그램 패러다임 중 하나이듯이, 프로그래밍을 도와주는 도구로서 object들이다.
그런데 OOP는 어려움. 사람마다 생각하는 추상화 정도가 다를 수 있고, 애초에 사람이 생각하는 코드를 컴퓨터가 실행하는 것이므로, 이 둘 간의 상호 이해가 중요하다. 무분별하게 모든 부분을 객체화 시킨다면 단 하나의 기능에 대해 객체를 설정해주고 이것을 소스코드로 다시 확인해야 하는 불편함이 생긴다. 그리고 어떤 작업을 하느냐에 따라 oop가 전혀 중요하지 않을 수도 있다.
oop의 배경: 새로운 기능을 구현하고 변수를 만드는데 계속 새로운 함수를 만들어서 호출하고 변수를 저장함에 있어서 효율과 성능이 떨어지기 때문에 최소 단위로 즉 object로 분리하자는 개념으로서 oop가 시작됐다고 본다.
데이터 기반 의사결정: 데이터도 object라고 인식하면서 많은 도움이 된다고 한다. 그리고 컴퓨터 사양이 좋아지면서 여러 object를 사용하기에 수월하기 때문에 활용도와 필요성이 증가했다.
캡슐화: 특정 기능들을 묶는다. 기본적으로 속성과 함수를 클래스로 묶어서 선언하는 개념. 그 안에서만 사용하는 기능들이므로 접근제어도 사용된다. 즉 외부에서 속성을 볼 수 없도록 만드는 것
상속: 부모 클래스의 모든 기능을 사용할 수 있다.
포함: 코드를 작성할 때 다른 클래스의 일부 기능만 재사용할 수 있도록 한다. 예를 들어 클래스 A의 속성으로 클래스 B 인스턴스를 넣어서 그 기능을 사용
추상클래스: 기능이 없는데, 설계 틀만 있다. 이 클래스를 상속 받아서 하위클래스에서 기능을 만든다.
다형성: 상위 클래스 기능을 변경해서 사용한다.
클래스를 활용하기 위해서는 이것을 인스턴스화 해야 한다. object에 메모리를 할당하면 인스턴스가 된다.
여러 상황에서 oop가 적용된다.
웹 개발자 도구에 들어가면 특정 부분은 유저의 정보를 담고 있다.
oop 공부: 배민
댓글남기기