Backend

    SOLID

    SOLID

    SOLID는 올바른 객체 지향 설계를 위해 지켜야 할 5가지 원칙이다. SRP (Single Responsibility Principle) 하나의 객체는 하나의 책임만을 가져야 한다. OCP (Open-Closed Principle) 객체는 확장에 대해서는 열려있어야 하고 변경에 대해서는 닫혀있어야 한다. LSP (Liskov Substitution Principle) 상위 타입 객체를 하위 타입 객체로 완전히 대체할 수 있어야 한다. 즉, 클라이언트가 상위 클래스의 선언만 보고도 하위 클래스의 객체를 무리 없이 사용할 수 있어야 한다. 다음과 같이 자동차 인터페이스가 선언되어 있다고 해보자. interface Car { void moveForward(); void stop(); } 클라이언트는 Car ..

    다형성 (Polymorphism)

    Polymorphism은 “many forms”를 의미한다. 넓은 의미에서 다형성은 하나의 entity를 여러 형태로 사용할 수 있는 것을 의미한다. 하나의 함수를 여러 형태로 사용하는 오버로딩과 오버라이딩 하나의 클래스를 여러 형태로 사용하는 generic 하나의 변수를 여러 형태로 사용하는 subtyping 모두가 다형성이 된다. 하지만, 일반적으로 다형성은 하나의 상위 타입 변수에 여러 하위 타입 객체를 갈아 끼울 수 있는 것을 의미한다. 다형성을 이용하면 여러 타입의 객체를 동일한 방식으로 사용할 수 있게 된다. 즉, 동일한 인터페이스를 갖고 사용할 수 있게 된다. 말하자면 여러 타입을 표준화하게 되는 것이다. interface Car { void ride(); } class Sonata impl..