inblog logo
|
오니의 개발 블로그

    프로그래밍 정리본 - OOP/POP

    기술면접을 대비한 프로그래밍편 OOP/POP
    오니's avatar
    오니
    Jun 16, 2024
    프로그래밍 정리본 - OOP/POP
    Contents
    객체지향 프로그래밍 OOP용어 정리SOLIDOOP의 단점Swift의 OOP프로토콜 지향 프로그래밍, POPSwift의 POP

    객체지향 프로그래밍 OOP

    Object Oriented Programming
    • 수직적 방향 설계
    • override를 통한 다형성에 초점
    • 캡슐화를 통한 보안성

    용어 정리

    • 캡슐화: 연관있는 함수와 변수를 묶는 방법
    • 은닉화: 외부에서 객체 속성에 접근 못하도록 막는 법

    SOLID

    • Single responsibility principle
      • 1개의 객체에는 1개의 책임만
    • Open-Closed principle
      • 확장에는 열려있으나 변경은 폐쇄적이여야 한다.
    • Liskov substitution principle
      • 정확성을 유지하면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
    • Interface segregation principle
      • 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
      • 인터페이스를 크게 만들지말고 분리해서 사용할 것
    • Dependency inversion principle
      • 의존 역전 원칙
      • 추상화에 의존해야지 구체화에 의존하면 안된다.
      • 하위 모듈에 의존하지 않고 인터페이스에 의존해야 한다.

    OOP의 단점

    1. 암시적 공유: 의도치 않더라도 부모의 모든 것을 공유 받는다.
    1. 단일 부모
    1. 참조타입만 가능

    Swift의 OOP

    • private은 상속되지 않는다. → Static으로 작동한다.

    프로토콜 지향 프로그래밍, POP

    Protocol-Oriented Programming
    • 수평적 방향 설계
      • 객체간 의존성이 낮다
    • 값 타입에도 적용이 가능하다.

    Swift의 POP

    • let은 protocol에서 설정이 불가능하다.
    • @objc optional func으로 선택적으로 구현이 가능하게끔도 가능하다.
    Share article
    Contents
    객체지향 프로그래밍 OOP용어 정리SOLIDOOP의 단점Swift의 OOP프로토콜 지향 프로그래밍, POPSwift의 POP

    오니의 개발 블로그

    RSS·Powered by Inblog