객체 지향(Object Oriented) 이란?

 

1) 객체 | 기능(Operation)과 함수(Method)로 구성.

ex) 식당 주문 Process.

 

2) 인터페이스와 클래스 | 객체가 제공하는 기능(Operation)을 명세하는 인터페이스. 실제 객체의 구성의 집합은 클래스.

ex)

{매장 클래스에 명세된 Interface 목록}

 - 날짜 및 영수증 번호 등.

 - 결제 수단 집합 배열.

 - 주문을 받는 Method.

 - 결제 Method.

 - 상품을 건네주는 Method.

 

3) 메세지 | 클래스에서 인터페이스의 명령에 따라 객체의 기능(책임)을 전달하는 매개체.

ex)

 (1) 매장의 환경 설정 값을 확인한다.

 (2) 손님이 들어오면 주문을 받는다.

 (3) 해당 상품에 대해 결제를 진행한다.

 (4) 결제가 정상적으로 완료되면 상품을 제조하여 손님에게 건네준다.

 

4) 의존 | 각 객체가 서로를 생성하거나, 서로의 기능(Operation, Method)을 사용해야하는 흐름에 따른 이념.

ex)

{매장 클래스에서 발생된 결제에 대해서 산술 클래스에 의존하여 산술을 처리하는 방식}

...

#include "clsCalc.h"

...

double clsStore::CalcProcess(short snType) {

clsCalc objCalc = new clsCalc();

 

if(snType == CASH)

objCalc.CalcCash();

else if(snType == CARD)

objCalc.CalcCredit();

 

delete objCalc;

}

...

 

1. 캡슐화(Encapsulation) | 클래스를 모듈화하여 코드 은닉 및 내부 구조 변경의 유연성을 증진시키는 기법을 사용하는 과정.

ex) 공통 모듈화

 - 상품 결제 시 결제 금액, 부가세, 봉사료 등을 계산하는 클래스.

 - 매장 멤버십 고객 포인트 처리에 대해 계산하는 클래스.

 - 직원 출, 퇴근 관련 인사 관리를 담당하는 클래스.

 

** 데미테르의 법칙(Law of Demeter) 준수 **

 (1) 메서드에서 생성한 객체의 메서드만 호출.

 (2) 파라미터로 받은 객체의 메서드만 호출.

 (3) 필드로 참조하는 객체의 메서드만 호출.

 

2. 다형성(Polymorphism)과 상속(Inheritance)

[ 다형성 | 한 객체(혹은 메소드, 기능(Operation))를 재사용 필요에 의해 여러 타입으로 변경하여 사용하는 기법. ]

[ 상속 | 상속해주는 클래스(부모(super))가 상속받는 클래스(자식(parent))에게 자신의 기능(Operation)의 권한을 위임시켜주는 기법. ]

 -> 인터페이스 상속 | 추상 함수만을 가지는 추상 클래스를 상속시키는 기법.

 -> 구현(Class) 상속 | 기능 재사용을 목적으로 하는 일반 클래스를 상속시키는 기법.

 

ex)

 (1) 오버라이딩(Overriding)

  - 부모 클래스에게 상속받은 메소드를 자식 클래스에서 이름과 인자, 반환 값을 모두 같게 재 선언하되, 다른 기능(Operation)을 부여하는 기법.

 (2) 오버로딩(Overloading)

  - 부모 클래스에게 상속받은 메소드를 자식 클래스에서 이름은 같되 인자의 구조는 달라야하며, 반환 값은 제한받지 않는 방식으로 기능(Operation)을
부여하는 기법.

 

** 상속 기법의 사용에 있어 드러날 수 있는 문제점 **

 1) 부모 클래스의 변경으로 인해 해당 부모 클래스에게 상속을 받은 자식 클래스들의 수정이 불가피해질 수 있음.

 2) 다중 상속이 불가능한 환경에서는 클래스의 불 필요한 증가가 불가피해질 수 있음.

 3) 유사하지만 전혀 다른 기능을 가지는 각기 다른 클래스 구현 시 혼란을 야기시킬 수 있음.

 --> 상속보다는 각 클래스의 조립을 통해 기능을 엮는 방법도 고려하기에 충분하다.

 

3. 추상화 | 데이터나 프로세스 등을 의미가 비슷한 개념이나 표현으로 정의하는 과정.

ex)

 (1) 계산에 대한 로직 추상화

  - 현금, 카드 및 기타 결제 수단 관련 클래스.

  - 멤버십 포인트 사용 관련 클래스.

  - 할인 수단 관련 클래스.

 (2) 직원 인사에 대한 로직 추상화

  - 출, 퇴근 관련 클래스.

  - 각 직원 별 매출 집계 관련 클래스.

 

 

이제 다음 포스트에서 위의 객체 지향적 사고를 바탕으로 구성된 설계 원칙(SOLID) 기법에 대해 알아보도록 하자.

 

 

출처: 최범균, 『개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴』, 인투북스(2014)

'IT > Design Pattern' 카테고리의 다른 글

객체 지향적 설계 원칙 : SOLID  (0) 2018.12.14
디자인 패턴 (Design Pattern) 이란?  (0) 2018.09.17

 디자인 패턴 (Design Pattern) 이란?

 

- "초기에는 새로운 요구 사항을 빠르게 개발해 주었는데, 시간이 지날수록 간단한 요구 사항 조차도 제 때 개발이 안되는 상황"을 방지.

- 요구 사항의 적용에 있어 유연함(Flexibility)를 얻을 수 있음.

 

위와 같은 객체 지향적 소프트웨어 개발 방법론이다.

 

* 절차 지향 (Procedural Oriented) | 데이터를 조작하는 프로시저(혹은 함수)로 프로그램을 구성하는 기법.

장점 : 절차적으로 수행되는 코드에 의한 시간 단축.

 -> 하드웨어의 발전이 더딘 과거 개발 환경에서의 큰 이점으로 작용.

단점 : 수정 사항 반영 시 기존 개발된 절차에 영향을 받는 부분을 전반적으로 수정해야 하기 때문에 효율성 저하.

 -> 하드웨어 사양의 발전으로 인하여 절차적 수행에서의 시간 단축은 큰 의미가 없어짐.

 

* 객체 지향 (Object Oriented) | 데이터와 프로시저를 객체(Object)로 묶어 관리. 객체 구조에 의존된 기법.

장점 : 객체 구조에서 데이터와 프로시저의 독립성과 프로젝트의 유연성을 동시에 갖출 수 있음.

 -> 거대한 솔루션 급 소프트웨어의 추가 개발과 유지 보수, 커스터마이징까지를 생각한다면 비용을 고려했을때 절차 지향 기법보다 효율적.

 -> 대다수의 소프트웨어 업체의 퀄리티가 이러한 객체 지향적 설계에 대한 노력에 의해 평가됨.

단점 : 초기 설계 단계가 매우 중요한만큼 절차 지향보다 더 많은 시간과 노력이 소모됨.

 -> 초기 단계에서는 더딜 수 있으나 추후 안정성을 고려한다면 반드시 사용되어야 할 기법 중 하나.

 

디자인 패턴은 객체 지향적 기법을 적용한 소프트웨어에서의 효율적이라고 정형화된 어떠한 규칙을 나타낸다고 볼 수 있다.

 

디자인 패턴을 들어가기에 앞서, 객체 지향에 대해 더욱 알아보도록 하자.

 

 

출처: 최범균, 『개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴』, 인투북스(2014)

'IT > Design Pattern' 카테고리의 다른 글

객체 지향적 설계 원칙 : SOLID  (0) 2018.12.14
객체 지향(Object Oriented) 이란?  (0) 2018.09.18

WE BOUGHT A ZOO (2011)

| MATT DAMON, SCARLETT JOHANSSON

 

 

실화를 바탕으로 제작된 영화라서 그런지 몰라도, 인물 배경과 환경이 다른 영화에 비해 더 사실적으로 표현되어지는 것 같았다.

I think, because of based on true stroy, surrounding environment and people relation was expressed like more reality life compared to the other movie.

 

아내를 잃은 슬픔을 가진 한 가족이 도심에서 어떠한 이유로 인해 시골 동물원에 포함돼있는 집으로 이사를 가면서 이야기는 시작된다.

A one family, have a sadness losing their's her, has starting the story move out house included the country zoo on account of something reason.

 

맷 데이먼과 스칼렛 요한슨은 주로 액션 영화에 많이 출연한 누구나 알고있는 배우이지만 이 영화에서는 가족적인 모습을 다분히 보여준다.

Anyone knows thier, Matt Damon, Scarlett Johansson, mostly starred in famous action movie. But, this movie has seen feature of typical family.

 

이야기의 큰 틀은 아버지(Matt Damon)와 아들(Colin Ford)의 갈등에서부터 맷 데이먼과 스칼렛 요한슨의 사랑으로 마무리 되어짐을 볼 수 있다.

Big outline of this story was seen ended from problem between dad and son (often saw that) to love for Matt Damon and Scarlett Johansson.

 

전체적으로 여러 이야기가 나타나지만 옴니버스의 형식은 아닌 서로 다른 갈등 사이의 조화를 가족이라는 구성 요소를 통해 잘 이뤄냈다.

That have a many story, not feature of omnibus movie, was came true through balance using family component of between the other story.

 

"We bought a zoo"에서 'zoo'는 어원 그대로는 동물원이라는 뜻이 있지만, 영화 문맥 상 가족 간의 애정이 될 수 있고 사람과 동물과의 교감의 어떤 형태가 될 수도 있다고 생각한다.

In "We bought a zoo", a 'zoo' have a mean literally zoo but, i think a zoo could have a means a love of family, something feature of consensus between people and animal in scenario.

 

불현듯, 우리도 주변의 얘기를 귀 기울여 들어보면 다중적인 표현을 사용하는 경우가 많다는 것을 알 수 있다.

Unexpectedly, we could have know that there are many multiple expression in out contury. if we do listen attentively around of us talks.

 

마찬가지로 이 영화에서도 감정표현에 서투른 아버지와 아들의 대화 속에서 이런 다중적인 표현을 자주 확인할 수 있었다.

Likewise, this movie also could have recognize these multiple expression in thier awkward conversation.

 

아들이 진정 원하는 것은 모른 채 본인의 입장에서 최선의 애정을 아들에게 주지만 아들의 입장에서는 그것은 아버지의 최선의 애정이라고 느끼지 못했기에 늘 불만을 가진 표정을 짓고 있는 것을 화면 곳곳에서 확인할 수 있었다.

Father gave affection his do the best without knowing what his son really want. But his son couldn't have a feel his father's enough affection inner his circumstance. that's reason is not consider for the other typically. We can saw dissatisfied face on his son in all over the screen.

 

우리의 주변에도 사실 봉사, 선교단체 등 비영리 단체의 이름으로 도움을 주는 사람들, 혹은 타인에게 베풀기를 주저하지 않는 사람들을 종종 볼 수 있다.

Around of us, we can find so easily people who help us have named by the Mission Organization, Servant or do not hesitate person.

 

그들이 잘못된 건 아니지만 우리가 스스로 타인에게 필요할 것 같다고 생각하는 도움이 아닌, 정말 타인이 진정으로 원하는 도움(미안한 마음에 말을 하지 못하는)을 베풀어주는 것이 효율적으로 보인다.

Their's help is not fault. However, i think more efficient method that give a real solution problem out of their mouth not in out of our thinking(don't express on account of sorry heart).

 

 

 

 

 

그렇게 된다면, 도움을 주는 사람이 하고 싶은 비효율적 봉사가 아닌 받는 사람에게 맞춘 도움을 통해 베푼 도움에 대비해 몇 배 이상의 감동을 선사할 수 있는 효율적인 도움이 될 수 있을 것이다.

If so, we could have a help the most efficient assistant on several tims more. Not assistant just we want.

 

이 영화의 색체와 동물들의 모습을 묘사한 장면은 다큐멘터리라고 해도 무방할 정도로 아름답다.

Scenes in this movie, we could have a see beauty colors and animal in wild enough saying like a National Geographic Documentary.

 

하지만, 그 안에 속해 이야기를 만들어내는 사람들 사이의 갈등과 해결, 관계의 모습은 그 이상으로 아름답다.

However, we can have find out a beauty things more than that in shape of harmony, have a solution to occured conflict in relation among people.

 

 

 

 

때때로 우리는 주위의 자연에 감탄하며 도심과 멀어진 삶을 동경하곤 한다.

Sometimes, we would used to yearn for life away from the city for admiring around of ours background.

 

하지만 그것이 항상 답은 아니라는 것을 이 영화를 통해 다시 한 번 확인할 수 있었다.

However, we could have understand these background is not always answer through this screen.

 

진정 도심을 떠난 행복은 사람들사이의 관계속에서 더욱 쉽게 찾을 수 있고, 그러한 사람들 사이의 아름다움은 뉴질랜드 폭포를 DSLR로 찍은 사진보다도 더 아름답다는 것을.

We can understand a real happiness in life far away from city is relation around of people. These real happiness is beauty more than taking pictures for DSLR camera.

 

마음이 편안해지고 훈훈한 미소가 남는 영화였다.

Feel comfotable, leave a wram smile.

 

 

 

 

<이미지 출처 - 네이버 영화, https://movie.naver.com/movie/bi/mi/basic.nhn?code=76627>

'English > Reviewing' 카테고리의 다른 글

Music & Lyrics  (0) 2018.08.16

+ Recent posts