ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클래스의 상속 사용 판단 기준
    CS 전공 지식 2021. 1. 3. 22:25

     

     

     

    상속 장점 : 중복되는 코드를 제거할 수 있다.

     

    상속 단점 : 상속의 깊이가 깊어지면 유지 보수가 어려워질 수 있다.

     

     


    1. Single Resposibility ( 단일 책임 )

     

    너무 여러개의 책임을 한 클래스가 가지면 안된다.

    1개의 클래스가 1개의 일만 하도록 하기 위해 상속을 사용한다.

    이떄 1개의 클래스는 단일 책임을 갖게 된다. 

     


    2. Type Safety ( 타입이 분명해야 할 때 )

     

    예를 들어 운동선수들 중에 축구, 야구, 농구, 등 여러가지가 있는데

    이중 한가지 종목의 운동선수를 뽑고 싶을 때 상속을 사용한다. 

     


    3. Shared Base Classes ( 다자녀가 있다! )

     

    기본동작이 다양하게 구현되어야 하는 경우

    예를 들어 학습이라는 기본동작이 있는데 

    대학교 학과에 따라서 학습의 구현이 다양하게 구현될 수 있다.

    이럴 경우 상속을 사용한다.

     


    4. Extensiblity ( 확장성이 필요한 경우 )

     

    예를 들어 아래와 같이 확장성이 필요한 경우 상속을 사용한다.

     

    캔 객체 -> 콜라캔, 맥주캔, 

    곤충 객체 -> 개미 객체, 사마귀 객체, 바퀴벌레 객체, 파리 객체

    대학생 객체 -> 미대생 객체, 체대생 객체, 공대생 객체 

     


    5. Identity ( 정체를 파악하기 위해 )

     

    어떤 클래스인지 또는 어떤 객체인지 판단하기 위해서 상속을 사용할 수 있다.

     

    예를 들어 대학생인데, 체대생인지 미대생인지 정체를 파악해야할 경우에 상속을 사용한다.

     


     

    위와 같은 고려사항들을 계속 생각해보는 것이 본인의 개발 철학도 견고하게 할 수 있다.

     

    개발 철학을 견고하게 한다는 의미는 개발의 근거(왜 이렇게 개발하였는지)들이 많이 생긴다는 의미이다.

     

    인터뷰를 하거나 면접볼때는 이 코딩에 대한 근거가 되게 중요하다고 한다.

     

     

     

    즉, 코드를 왜 이렇게 짯는지 다르게 짜는 것보다 어떤 것이 좋고 어떤 것이 안좋은지 계속 생각하면서 

     

    코딩의 근거를 만들어서 개발하는 것을 추천한다고 한다.

     

     

     

    왜 꼭 이 플랫폼을 이용하여 개발해야만 했는지

    왜 꼭 이 라이브러리를 이용하여 개발해야만 했는지

    왜 꼭 이 아키택처를 이용하여 개발해야만 했는지

    왜 꼭 이 자료구조를 이용하여 개발해야만 했는지

    왜 꼭 이 알고리즘을 이용하여 개발해야만 했는지

    왜 꼭 이 언어를 이용하여 개발해야만 했는지

    왜 꼭 이 클래스를 작성해야만 했는지

     

     

     

    위와 같은 질문에 답을 하려면 다양한 선택지의 장단점을 모두 알고 있어야하고

    무언가 한 가지를 할때마다 장단점을 모두 고려하여 최선의 선택을 내리는 습관을 들여야겠다는 생각이 든다.

     

    728x90

    'CS 전공 지식' 카테고리의 다른 글

    동기 vs 비동기  (0) 2021.01.11
    스택 큐  (0) 2020.11.15
    이진 탐색  (0) 2020.11.11
    재귀함수  (0) 2020.11.11
    합병 정렬  (0) 2020.11.11
Designed by Tistory.