프로필사진

OOP 6

[객체 지향 프로그래밍] SOLID 원칙

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. SOLID 원칙을 지키면 유연하고 유지보수하기 쉬운 견고한 코들르 쓸 수 있다고 한다. 프로그램의 크기가 커질 수록 SOLID 원칙을 잘 지키는 것이 중요하다. 하지만 작고 간단한 프로그램을 만드는데 이 원칙을 지키면 오히려 시간 낭비가 될 수도 있다. SOLID 원칙에는 아래 다섯가지가 있다. 1. 단일 책임 원칙 (Single Responsibility Principle) : 모든 클래스는 단 한가지의 책임만을 갖고, 클래스 안에 정의되어 있는 모든 기능은 이 하나의 책임을 수행하는데 집중되어 있어야 ..

[객체 지향 프로그래밍] 다형성(Polymorphism)

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 다형성이란? 다형성의 원래 정의: 여러가지의 형태를 갖는 성질 객체 지향 프로그래밍에서의 다형성: 하나의 변수가 서로 다른 클래스의 인스턴스를 가리킬 수 있는 성질 예시 Circle이라는 클래스와 Rectangle이라는 클래스가 있을 때, 각각의 클래스가 모두 넓이를 계산하는 area라는 메소드를 가지고 있다고 해보자. 한편, 추가된 모든 도형의 넓이 총합을 계산해주는 클래스가 다음과 같이 있다고 할 때, class Canvas: def __init__(self): self.shapes = [] def a..

[객체 지향 프로그래밍] 상속

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 버거집에서 계산원과 배달원이 있을 경우, 위와 같이 클래스 간에 중복되는 코드가 많다..!! 이때 해결점을 제시할 수 있는 게 바로 상속 상속이란? : 두 클래스 사이에 부모-자식 관계를 설정하는 것 : 'A는 B다'일 때, A는 자식클래스, B는 부모클래스 여기서 잠깐!! 상속과 관련된 깨알 메소드 (1) 클래스명.mro(): 해당 인스턴스의 클래스가 어떤 부모 클래스를 가지는지 보여줌 (2) isinstance(생성된인스턴스, 클래스명): 첫번째 파라미터의 인스턴스가 두번째 파라미터 클래스의 인스턴스인..

[객체 지향 프로그래밍] 캡슐화

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 캡슐화란? 객체의 일부 구현 내용에 대한 외부로부터의 직접적인 액세스를 차단하는 것 객체의 속성과 그것을 사용하는 행동을 하나로 묶는 것 1. 외부로부터의 직접적인 액세스를 차단 변수나 메소드를 초기 정의 시 __를 앞에 붙이면 클래스 밖에서 호출할 수 없음 예시는 아래와 같다. Class Citizen: """주민 클래스""" def __init__(self, name, age, resident_id): """이름, 나이, 주민등록번호""" self.name = name self.__age = age s..

[객체 지향 프로그래밍] 추상화

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 추상화란? 정의: 어떤 것을 사용할 때, 몰라도 되는 부분은 감추고, 꼭 알아야하는 부분만 드러내는 것 프그래밍에서 추상화란? : 프로그래머들이 특정 코를 사용할 때 필수적인 정보를 제외한 세부사항을 가리는 변수나 함수의 정의도 일종의 추상화라고 볼 수 있음!!

[OOP] 객체 지향 프로그래밍에 대한 기본 개념

* 이 글은 코드잇의 코스를 수강하고 정리한 글입니다. * 나중에라도 제가 참고하기 위해 정리해 두었으며, 모든 내용을 적은 것이 아닌, 필요하다고 생각되는 부분만 추려서 정리한 것임을 미리 밝힙니다. 객체란? : 우리가 살아가면서 보는 모든 존재로, 속성과 행동으로 구성된 존재 : 예시1) 자동차 객체의 속성은 색깔, 의자 개수, 차의 크기 등의 속성이 있으며, 행동과 행동을 가지고 있음 : 예시2) 인스타그램 유저 객체의 속성은 이메일 주소, 비밀번호, 친구 목록 등이 있으며, 행동과 행동을 가지고 있음 -> 물리적으로 존재하지 않는다 해도 속성과 행동으로 구성된 존재이므로 객체이다. 객체 지향 프로그래밍이란 객체 지향 프로그래밍의 정의 : 프로그램을 여러 개의 독립된 객체들과, 그 객체들 간의 상호..