[면접준비] 클래스형과 함수형의 차이를 설명해주세요. 어떤 방식을 주로 사용하였고 그 이유가 뭔지 답변해주세요. (24/04/05)

2024. 4. 5. 09:58공부/면접 준비

함수형

전달받은 인자값을 중심으로 결과값을 반환하는 간결한 방식의 프로그래밍으로
데이터를 함수 내부에서 따로 저장하거나 하지 않는다.
한 번에 하나의 작업만 수행하는 함수들의 조합으로 로직을 처리한다.

 

클래스형

객체지향 프로그래밍.

SOLID원칙

  • S (SRP)
    • 단일 책임 원칙 (Single responsibility principle)
    • 한 클래스는 하나의 책임만 가져야 한다.
  • O (OCP)
    • 개방-폐쇄 원칙 (Open/closed principle)
    • “소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”
  • L (LSP)
    • 리스코프 치환 원칙 (Liskov substitution principle)
    • “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” 계약에 의한 설계를 참고하라.
  • I (ISP)
    • 인터페이스 분리 원칙 (Interface segregation principle)
    • “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”
  • D (DIP)
    • 의존관계 역전 원칙 (Dependency inversion principle)
    • 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.
    • 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

 

어떤 방식을 주로

클래스형 프로그래밍.

SOLID 원칙을 지켜 프로그래밍 하려 노력은 하지만, 사실상 함수형 프로그래밍과 혼용하고 있는것 같습니다.