인터페이스

    Go: 인터페이스와 타입 단언 (Interface, Type Assertion)

    인터페이스 인터페이스는 이기종간 기능을 약속하여 서로 다른 기기일지라도 오직 기능적인 관점에서 일관성을 유지하기 위해 사용한다. 같은 개발자라도 가지고 있는 기술에 따라 기술 스택이 달라지지만, 코딩이라는 기능은 가질 수 있는 것처럼 말이다. 인터페이스는 아래와 같이 정의하는데, Go 에서는 구조체에 정의하는 메서드에 대해 인터페이스를 사용하는 것을 명시하지 않는다. 인터페이스는 타입으로 선언하며 Develop 이라는 인터페이스는 코딩이라는 기능을 가질 수 있음을 말한다. 인터페이스는 실질적인 구현에 대해서는 이야기하지 않고, 오직 그 기능이 가능한 지에 대해서만 신경쓴다. type Develop interface { Coding() } 조건에 만족하려면 인터페이스를 만족하기 위한 조건은, 메서드를 가진..

    PHP: 추상화 (추상 클래스, 인터페이스, 트레이트)

    추상화 추상화를 한다는 것은 형식만 선언한 채 구현은 사용자에게 맡기는 것을 이야기합니다. 메서드의 이름, 파라매터, 반환 값 등을 선언만 한 채 상속과 같은 개념을 사용하여 내용을 구현합니다. 추상화를 사용하면 구현에 상관없이 특정한 인터페이스에 맞춰서 메서드를 콜하거나 데이터를 받음으로서 소통할 수 있다는 좋은 점이 있는데, 상속과 함께 이것을 사용하면 확장성이 눈에 띄게 상승합니다. 추상 클래스 추상 클래스는 일부는 구현하지 않고, 일부는 구현한 상태로 제공하며 상속의 형태로 진행하기 때문에 계를 표현하는 용도로 쓰는 것이 좋습니다. 일반적인 클래스와 마찬가지로 메서드와 프로퍼티를 가질 수 있지만 추상 메서드는 private 가시성으로 선언될 수 없습니다. abstract 추상 클래스는 abstra..