개발자로 전향중

리팩터링 2판 1장 - 첫 번째 예시 3탄 본문

Book

리팩터링 2판 1장 - 첫 번째 예시 3탄

hovinee 2024. 12. 18. 17:22

1-8 다형성을 활용해 계산 코드 재구성하기

 

다형성이란?

*다형성(Polymorphism)**은 객체지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 같은 인터페이스나 부모 클래스를 공유하는 객체들이 서로 다른 방식으로 동작할 수 있는 능력

 

쉽게 말해, 같은 기능을 하더라도 객체에 따라 다른 결과를 만들어낼 수 있는 것

 

예시 (현실 비유):

  • "동물"이라는 공통된 행동: 모두 소리를 낼 수 있음.
  • 하지만, 각 동물마다 소리는 다름:
    • 개: "멍멍"
    • 고양이: "야옹"
    • 소: "음메"

나는 React를 쓰기 때문에..

React에서 다형성

React에서는 클래스 기반이 아닌 함수형 컴포넌트를 사용하면서, 다형성을 컴포지션(Composition), 조건부 렌더링, 동적 매핑을 통해 구현합니다.

React에서 다형성은 다음과 같이 사용할 수 있습니다:

  1. 공통 컴포넌트에 props를 전달하여 동작을 변경.
  2. 동적 렌더링을 통해 여러 컴포넌트를 같은 인터페이스로 관리.
  3. 컴포지션을 통해 재사용 가능한 컴포넌트 구성.

 

그냥 당연한 듯 써왔지만 다형성이란 개념이 들어가 있는 것이었다.. 다시 본문으로 돌아와서!!

 

예를 들어 amountFor() 함수를 보면 연극 장르에 따라 계산 방식이 달라진다. 이런 형태의 조건부 로직은 코드 수정 횟수가 늘어날수록 골칫거리로 전락하기 쉽다. 이를 방지하려면 프로그래밍 언어가 제공하는 구조적인 요소로 적절히 보완해야한다. 핵심은 조건부 로직을 다형성으로 바꾸기!

 

책에서 이해한 바를 GPT한테 질문했다.