안녕하세요. Zomder 입니다.

     

    이번에는 클래스, 객체지향에 대하여 공부한 내용을 적어보려고 합니다.

     

    예전에 객체지향에 대해서 공부 할 때는 이론적인 부분에 대해서 배웠는데

     

    일단 이론 부터 정리를 해보겠습니다.

     

    절차 지향 언어의 특징

    • 일을 처리하는 순서와 과정이 중요하다.

    • 순서, 과정이 달라지면 새로운 작업 모델이 필요하다.

    • 컴퓨터의 작업방식을 프로그래밍에 적용한 것이다.

    • 재사용성이 매우 낮다.

    객체 지향언어의 특징

    • 사람이 행동하고 생각하는 방식으로 프로그래밍 한다.

    • 순서, 과정이 중요하지 않다.

    • 이해하기 쉽고, 모듈화하기가 쉽다.

    • 재사용성이 높고, 유지보수가 용이하다.

    • 설계 중심 언어다.

     

    각각 언어의 특징에 대한 이론적인 부분은 이렇습니다.

    그렇다면 어떻게 하면 객체 지향적으로 코딩을 할 수 있을까 생각해 보았습니다.

     

    일단 현실의 객체를 프로그래밍 할 때 해당 객체가 가지고 있는 요소가 코딩에 적합한 속성으로써 

    완벽히 일치하지 않는다는 사실을 알아야 했습니다. 예를 들면 고객 번호 같은 ID-Number같은 속성

    들도 충분히 추가 될 수 있는 것이죠.

     

    아래는 초보자를 위한 java-Programming 이라는 책에서 빌려온 객체 지향 프로그래밍 프로세스 인데요.

    지금까지 막연히 글로 순서를 설정하고 코딩하는 방식을 사용했던 저는 나름의 객체 지향 프로그래밍하는

    방법에 대해 생각을 정리 할 수 있는 부분 이었습니다.

     

     

    1. 아이디어 도입 : 구현될 프로그램에 대한 요구를 나타낸다.

    2. 아이디어 분석 : 주체의 관점에서 아이디어를 분석한다.

    3. 객체  추출     : 주체의괸점에서 객체를 추출한 후 속성과 동작을 나타낸다.

    4. 객체  모델링  : 개발자의 관점에서 객체의 속성과 동작을 정제한다.

    5. 클래스로 변환: 객체를 클래스로 변환한다.

    6. 인스턴스 생성 및 사용 : 메모리에 인스턴스로 생성 후 사용한다.

    대략 위의 과정을 거치는 겁니다. 

    예를 들어 저를 객체로 만들어 추출하면

    속성

    닉네임, 직업, 나이

    동작

    글을 작성, 코딩 공부, 독서, 운동

    이렇게 추출 할 수 있겠죠.

    하지만 객체 모델링에서 객체의 속성과 동작을 "블로거" 라는 목적(주체)에 맞게 정제 하게 되면

    속성

    닉네임

    동작

    글을 작성, 코딩 공부

    이렇게 동작과 속성을 원하는 부분만 남겨 놓고 나머지는 없애면 되겠죠. 같은 객체를 보고도

    필요에 따라 원하는 것을 추가하고 뺄 수 있는 것입니다. 이런게 객체 지향의 가장 큰 이점이 아닌가 합니다.

     

    너무 뻔한 가요?ㅎㅎ

    사실 머리 속에 있는 것들이 너무 많으면 되려 정리가 너무 안되더라구요.

    그래서 나름의 공부도 하고 생각도 정리할 겸 글로 써 작성해보았습니다.

     

    선배님들의 많은 생각 공유 해주시면 공부하는데 참고하도록 하겠습니다.

    Posted by Zomder