본문 바로가기

Web/JAVA

상속과 포함관계

상속과 포함관계


자바의 정석 7장 객체지향 프로그래밍2의 소단원에서 객체지향에서의 상속과 포함관계에 대한 설명이 나온다.


두 방법 모두 클래스 간에 관계를 정의하여 재사용성을 높이는 개념이라고 한다.



상속관계 : ~은 ~이다. ( is - a )


포함관계 ~은 ~을 가지고 있다. ( has - a )



Ex1 )    붕어빵은 빵이다.

            붕어빵은 빵을 가지고 있다.


=> 붕어빵을 만들 때 빵을 재료로 하므로 포함관계도 말이 되는것 같기도 하다

     하지만 빵의 한 종류이기 떄문에 스포츠카<=>자동차의 관계처럼 상속관계가 맞다.


Ex2 )    사각형은 네개의 점이다.

            사각형은 네개의 점을 가지고 있다.

     

 => 여기서는 사각형이 네개의 점이라고 표현하기에는 무리가 있어보인다. 선, 너비, 높이 등이 있기 때문일까?
      사각형은 네개의 점을 가지고 있다. 라는 표현이 맞으므로 포함관계가 맞다.



이 단원을 보고 여태까지 나는 포함관계에만 치우친 방식으로 코딩을 해왔다는 생각이 문득 들었다.


왜 상속, 추상화에 대해 좀 더 깊게 고민하지 않았을까?...


대학교 팀 프로젝트라는것이 성능과 질의 중요성과는 거리가 먼, 단순 결과만을 중시하기 때문인 것 같다.

난 그저 찍어내는 코더가 되고 싶은게 아니었는데.... 어느새 정신을 차려보니 너무나 뚜렷한 찍어내기의 길을 걷고 있었다.


service, serviceImpl, vo, dao, controller..... 그냥 컨트롤러에서 dao객체를 쓰면 되지 굳이 중간에 인터페이스를 두는 걸까?

이러한 기본적인 고민조차 하지않았던 내가 너무나 창피하다.



잘못된 코딩 원인


1. 대학과정에서 객체지향에 대한 개념을 정확히 깨우치지 못한채로 프레임워크, 패턴과 같은 다음 단계로 넘어갔기 떄문일지도 모르겠다.


2. 3학년 팀 프로젝트 과제를 계기로 스프링을 접하게 되었는데, 이후 1년동안 진행한 2개의 프로젝트를 목표단계까지 완성시키지 못했다.

    팀원의 저조한 참여..는 핑계고 기본기에 충실하지 않고 라이브러리, 플러그인에 관심이 쏠려 방향을 잘못 잡은 나의 잘못이다.


3. 프로그램의 규모에 관계없이 상속과 객체지향을 고민하며 코딩을 해본적이 없다.

    그저 카피앤페이스트의 반복, 단순 API 활용, 구글 검색 등의 작업만으로도 충분히 버거웠기 때문일까...



앞으로의 방향


하나의 기술에 집중하지 않고 자꾸만 새로운 기술, 흥미에 집착하게 되는 성격이 우선 제일 문제인것 같다.

당분간 구글링을 자제하고 자바의 정석책을 완독하고 객체지향에 치중된 새로운 프로젝트를 해볼 계획이다.


우선 자바의 정석부터 천천히, 완벽하게 이해해야겠지...

빨리 이 슬럼프라는 핑계의 나태해짐에서 벗어나고싶다.

'Web > JAVA' 카테고리의 다른 글

인터페이스와 추상클래스  (0) 2017.01.18