728x90
반응형

https://youtu.be/ZAFl330e7XU



1. 객체지향 소프트웨어 공학

1-1. 소프트웨어 개발 방법론
-  소프트웨어 개발 방법론은 절차적 방법론과 객체 지향적 방법론으로 나뉨
-  절차적 방법론은 전통적 구조적 방법론과 구조적 방법론이 있음
-  객체 지향적 방법론은 분석, 설계, 구현, 테스트, 유지보수로 나뉨
-  객체 지향적 분석은 객체 지향 설계를, 객체 지향 설계는 객체 지향 분석을 다룸
-  객체 지향 설계는 모듈 단위로 이루어지며, 히포 히포 엔에스 차트와 피디엘로 표현됨

1-2. 객체 지향의 개념
-  객체 지향은 세상을 객체 중심으로 보는 관점임
-  데이터, 행위, 연산을 따로 놀던 기존 방식에서 벗어나 하나로 통합하는 것이 목표임
-  객체 지향에서는 데이터, 행위, 연산을 하나로 묶어 통합함
-  객체 지향의 기본은 데이터, 행위, 연산을 하나로 통합하는 것임

1-3. 객체 지향의 특징
-  객체 지향은 데이터, 행위, 연산을 분리하여 봄
- (중요) 행위를 연산이라고 부르며, 데이터의 성질과 구조를 가짐
-  객체 지향의 기본은 데이터, 행위, 연산을 하나로 통합하는 것임
-  객체 지향은 절차적 방법론과 달리 객체를 중심으로 봄
-  객체 지향적 방법론은 데이터, 행위, 연산을 통합하여 기능을 구현함

2. 객체지향과 격체지향

2-1. 객체지향의 개념과 원리
-  데이터와 연산을 분리한 기존 방식과 달리, 객체 지향은 객체 간의 상호작용을 메세지로 이룸
-  집 짓는 과정을 예로 들어 객체 지향과 절차, 구조적 방식의 차이 설명
- (중요) 객체 지향의 핵심은 재사용 가능성으로, 사용된 요소를 다른 객체에 재사용 가능하게 함
-  하드웨어 시스템 또한 객체 지향으로 제작되며, 소프트웨어도 모듈 단위로 쉽게 만들 수 있음
-  객체 지향의 원리는 프로그램 개발, 하드웨어 조립과 유사함

2-2. 객체지향의 예시와 장점
-  소프트웨어 시스템을 PC처럼 모듈을 조립하여 구성할 수 있음
-  객체 지향의 장점은 소프트웨어와 하드웨어 조립을 비교한 예시 설명
-  객체 지향은 소프트웨어 개발을 위한 새로운 접근법으로, 누구나 쉽게 접근 가능
- (중요) 객체 지향은 소프트웨어의 재사용성을 높여줌
-  객체 지향의 핵심은 모듈을 객체화하여 개발, 독립성을 강조함

2-3. 격체지향의 개념과 특징
-  데이터와 연산을 분리하던 기존 방식과 달리, 격체적인 객체들을 다룸
-  객체 지향의 특징은 데이터와 연산이 결합된 시스템을 통해 객체 간 상호작용을 이룸
-  격체는 데이터와 연산, 함수, 처리, 절차, 매스를 함께 처리하는 기법임
-  객체 지향의 구성 요소는 데이터, 연산, 메세지, 상호작용으로 이루어짐

3. 객체지향 프로그래밍의 기본 원리 이해

3-1. 객체지향 프로그래밍의 개념과 원리
-  객체는 데이터와 데이터 간의 연산을 처리하는 절차임
-  객체 지향 프로그래밍에서는 데이터를 속성, 상태, 변수 등으로 볼 수 있음
-  객체와 객체 간의 관계를 설명하는 것이 객체 지향 프로그래밍의 핵심임
-  객체의 각각의 행위를 하나로 묶어 객체로 만듦
- (중요) 객체 지향 프로그래밍에서 객체는 데이터와 데이터 사이의 연산을 처리하는 독립된 모듈임

3-2. 객체 지향 프로그래밍의 구성 요소와 원리
-  객체 지향 프로그래밍의 기본 원리인 캡슐화, 추상화, 상호 작용(인터페이스) 등이 있음
-  캡슐화는 객체의 데이터와 연산 함수를 하나로 묶어 정보 은폐가 이루어짐
- (중요) 추상화는 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 부분에서 중점을 두어 일반화시킴
-  상호 작용은 객체가 다른 객체에 어떻게 작용하는지 설명하는 것임

3-3. 객체 지향 프로그래밍의 기본 원칙
-  객체 지향 프로그래밍의 기본 원칙은 캡슐화, 추상화, 상호 작용(인터페이스) 등을 포함함
-  캡슐화는 객체의 정보를 은폐하는 것으로, 정보원익을 목표로 함
-  추상화는 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 부분만을 추출함
-  상호작용은 객체 간의 상호 작용을 설명하며, 객체가 어떻게 작용하는지를 나타냄

4. 객체지향 원리

4-1. 객체지향의 이해
-  객체 지향 프로그래밍의 기본 원리인 객체지향의 기초를 설명함
-  객체의 행동을 모델링하는 '상위 클래스'와 '하위 클래스'의 관계를 다룸
-  '상위 클래스'의 모든 속성은 '하위 클래스'에서 계승되어 유지보수 용이함
-  '다중상속'은 여러 군데에서 '상위 클래스'의 속성을 받아들이는 것임
-  '상속성'은 하나의 상위 클래스부터 '하위 클래스'까지 이어지는 것임

4-2. 객체의 다형성
-  '다형성'은 한 메세지가 객체에 따라 다른 응답을 할 수 있는 것을 의미함
-  예를 들어, 숫자 클래스와 문자 클래스에서 '더하기'라는 메세지는 객체에 따라 다르게 응답할 수 있음
-  '다형성'은 객체의 다양성을 보여주는 것임
- (중요) 다형성은 객체 지향 프로그래밍의 중요한 원리 중 하나임

4-3. 객체 지향의 원리
-  객체 지향의 기초 원리를 설명함
-  소프트웨어 공학에서 단어의 중요성을 강조함
- (중요) 소프트웨어 공학에서 '다형성', '상속성', ' 다양성' 등의 단어를 이해하는 것이 중요함
-  다형성은 객체의 다양한 응답을 보여주는 것으로, 객체 지향 프로그래밍의 핵심 원리임
-  객체 지향의 기본 원리를 이해한 후, 다양한 문제를 해결할 수 있음

화자 1
00:10
자 전국에 계시는 우리 MTF 생방송 안방 가족 여러분 계속해서 뜨거운 감동의 수업을 함께 하겠습니다. 박수 좋아요. 자 이제 우리가 소프트웨어 공항 마지막으로, 달려가고 있습니다. 떨리고 있죠. 컴퓨터 아무것도 모르는 우리 병태 손자 컴퓨터 먹는 긴가 어 홈페이지 이끼요 이런 여러분들이 이제는 이제 막바지로 달려가고 있죠. 그죠 그래서 우리가 현재 앞 시간에서 어 우리가 인제 전통적 구조적 소프트웨어 개발의 방법론을 공부를 다 했죠. 그렇죠. 자 이제 바로 요 시간부터는 마지막 객체 지향에 대해서 공부를 하자 그죠 그래서 아주 쉽다 객체 지향적 세상은 객체 중심이다. 그죠 자 그래서 이제 한번 들어가 봅니다.

화자 1
01:02
자 다시 정리하면은 오늘날 여러분 이 소프트웨어 개발을 소프트웨어를 개발하는 방법은 소프트웨어 개발방법론 이제 정리하고 넘어가자 개발 방법론은 2가지가 있다. 크게 원래는 실은 이게 3가지예요. 3가지 개발 방법론은 우리가 이제 어떻게 절차 지향적이 있고요. 절차지향적 절차적 절차지향적 절차적으로 할게요 절차적 일반적이라 합니다. 일반적 일반적 방법이 있고 그다음에 우리가 전통적 했던 게 앞에서 전통적 이게 구조적이죠. 구조적 구조적인 거제 전통적 구조적 또는 전형적 전형적 하는 말도 좋고 그리고 이제 오늘 배울 객체적 객체 지향적이죠.

화자 1
01:53
객체적 이런 방법이 있는데, 요놈은 우리가 안 다루고 어 우리가 이제까지 배웠는 게 전통적 구조적 1 2로 배웠고 이제 어 요 시간부터 객체 지향적 1 2로 나눠서 공부를 합니다. 그래서 방법론 그래서 이 방법론은 이렇고요. 이런 방법론에 이런 방법론에 이제 약간 표현은 다르지만 그 개발하는 과정은 이건 방법론이고 단계 개발단계 개발과정은 어떻게 되노 어떻게 되나 똑같습니다. 분석과정 자 종합 정리한다. 분석과정 그리고 뭐 설계 과정 설계과정 그리고 이제 뭡니까? 적당한 언어를 선정해서 뭐요 구형과정 구형 코딩 과정 그리고 테스트 검사 과정 맞나 자 종합 정리 그리고 이제 유지보수 그죠 운영하면서 수정하는 유지보수 과정 요렇게 나눠 있잖아요.

화자 1
02:50
해서 전통적 방법에 이제까지 이제 이걸 배웠죠 객체 지향도 객체도 이제 분석 과정 객체 지향 중에도 분석과정 설계 과정 구형 과정 검사 과정 유지보수 과정을 지금부터 배우는 거 아니야. 이제 요 시간부터 배웁니다. 격차 지향 분석은 어떻고 오 에이고 그죠 오에이 객체 지향 설계는 어떻고 객체지향 분석을 OA라 하구요. 객체지향 설계는 오 디라제 오브젝트 오리엔티드 디자인 구현은 뭐예요? 오피라 하죠. 오피 그리고 구현 테스트 유지 보수를 배우는 겁니다. 똑같아요. 그죠 그래서 우리가 앞부분 정리하면 전통적 구조적 방법에서 분석 도구는 뭐야? DFD 계속 중요하기 때문에 한다.

화자 1
03:40
분석도구 디디 소단위 명세서 그다음에 ERD 그죠 또는 상태 전이도 STD 요런 것들을 가지고 분석 도구로 삼더라 이 분석 도구 명세서가 나오면 이걸 보고 설계를 하더라 뭐 상향식 설계 기법과 하향식으로 나눠지는데 가장 대표적인 설계는 뭐다 모듈 단위로 하라 모듈 설계 그리고 또 이제 이거 외에도 히포 히포 엔에스 차트 그렇죠. 그리고 뭡니까? 피디엘 우리가 정의를 다 했고요. 맞나요? 쭉 했습니다. 그렇죠. 요런 거 분석 설계 그리고 바로 앞 시간에서 우리가 구현을 배웠죠 구현은 적당한 언어 프로그램 랭귀지를 선택해서 이제 우리가 구현을 하되 구조적 프레임의 구현 방법을 배웠고요.

화자 1
04:30
그 다음에 검사도 가죠 검사 자 검사는 어떻게 되노 우리가 방법론은 화이트 박스 검사 화이트 검사와 블랙박스 검사가 있죠. 화이트박스 검사는 프로그램 검사고 블랙박스 검사는 기능검사를 했고 단계별 검사에는 이제 단위검사 통합검사 단위 그다음에 통합 그다음 인수검사 즉합성 검사 또는 그죠 정당성 검사 그리고 종합검사 시스템 검사가 있었고, 그러나 그래서 우리가 또 유지 보수도 다 봤죠 유지보수 어 우리가 수정 유지 보수 뭐 등등 4가지 있었죠. 그렇죠. 여기까지 정리를 앞 시간에 다 했습니다. 자 지금부터는 객체 지향 소프트웨어 공학 객체 지형 소프트웨어 절차 어 뭐요 격체지향 소프트웨어 공학에서 한번 격체지향 방법론에 대해서 한번 공부를 해보자 이 말입니다. 그죠 좋습니다. 정리되나 병태수전자 깔끔하게 되죠. 좋습니다.

화자 1
05:29
자 그럼 우선 여러분 객체 지향이 뭔가 객체지향 기법에 대해서 공부를 해야 된다. 객체 지향의 개념 자 여러분들 세상은 객체 중심 과거에는 집단 나라 사회 중심인데 앞으로 미래사회는 객체 중심이라니까요? 어 여러분 뭐 세상은 더 월드 내가 늘 이야기하지 더 월드 이즈 간시스트 오브 오브젝트입니다. 아 세상은 세상은 비컨시스트 오브 뭐뭐로 구성되는 머러 오버젝트 객체로 구성됩니다. 영어 시간에는 완전 더 월드 이즈 컨세스트 오브 오브젝터 예 맞아요. 이 세상은 전부 다 객체 중심이에요. 그렇죠.

화자 1
06:12
객체들이 뭔가 연관 관계를 가지면서 수많은 사건들이 발생하자 현재 여러분 저도 객체 카메라도 객체고 우리 피지도 객체고 우리 보조 PD도 객체고 분필도 객체고 책상도 객체고 스피커도 객체고 이런 객체들이 전부 다 모여 가지고 세상을 형성합니다. 헐레루야 그렇죠. 그래서 이 객체 지향은요, 여러분 자 일단 개괄적인 이야기를 먼저 들어보고 암기하는 거 아니다. 원리만 알면 장난이고요. 원리 모르면 어렵다는 거죠. 자 이제까지 절차 지향적이나 구조적에서는 뭐야? 여러분들 데이터와 이 데이터와 이 데이터가 행위 연산이죠. 연산이 따로 놀아왔어요. 따로 따로 놀아왔거든. 데이터 먼저 선언하고 프로그램을 짤 때 어떻게 데이터 선언하고 에이는 10 이 데이터를 선언하고요. 그리고 비는 20 데이터를 선언하고요.

화자 1
07:12
그리고 시는 행위를 합니다. 자 강의를 잘 들어야 된다. 데이터 따로 데이타 따로 행위 따로 즉 연산 따로 즉 데이타 데이타 따로 연산이죠. 어 연산 즉 행위 연산행위 처리 절차 처리 행위 또는 처리 절차 프로시저 다 같은 말이다. 데이터 따로 연산 따로 전부 다 놀았습니다. 그렇잖아. 내 어 지금 봐봐요. 내가 격체죠 내 격차 데이터제 데이터 엔티티 계체 데이타베이스는 NTT 우리가 프로그램에서는 오브젝트 객체 또는 데이터 원소 요소 노드 이거야. 나는 많은 행위를 해야죠 지금은 씨부립니다. 말 어 내 사랑하는 병태 순자를 위해서 씨부리고 있어 이런 행위를 해요. 또는 칠판에 걸려서 행위를 행위로 많이 씁니다. 모든 게 객 저 객체 따로 뭐야? 데이터 따로 행위 따로 표현을 했거든.

화자 1
08:11
이제까지 구조적 언어 절차 지향적 언어 다 이렇게 했잖아요. 데이터 따로 근데 이 데이터는 뭐다 반드시 데이터는 성질을 가지고 있죠. 성격과 구조를 가지고 있죠. 구조 성격과 구조를 가지고 있죠. 예 이게 인제 크게 속스러움을 가지고 있잖아. 데이터베이스의 속성 나라는 JGH 데이터는 내 속성 있잖아요. 서로 성질 급하고 싸움 잘하고 말 망하고 사람 뭐 이런 여러 가지 친절하고 부드럽고 여자한테 잘해주고 남자한테는 모여주고 이런 속성이 있는 거야. 그리고 이 데이터가 속성을 가지고 행위를 합니다. 참 이게 어려운 거 같지만 쉬워요 그래서 데이터는요 속성이 있고 행위 이거 행위를 연산 행위 처리 절차 함수라 합니다. 우리가 객체 지향에서는 이거 따로따로 놀았다는 게 따로따로 프로그램도 이거 따로따로 개발했잖아요. 이걸 합해버리자 통합하자 객체 지향의 가장 기본입니다.

화자 1
09:08
즉 데이터와 행위를 처리 절차를 함수를 하나로 묶어 버리는 게 객체지향기법의 기본입니다. 뭔 말인지 알겠나 자 그러면 한번 볼까요? 객체 지향의 개념은 이제까지 따로 놀았던 데이터와 연산 데이터는 속성을 가지고 있죠. 성격과 구조를 가지고 있는 데이터와 연산을 분리하고 있는 기존의 방식 기존의 방식은 뭐 절차적 방식 절차적 또는 구조적 방식이죠. 구조적 방식과는 달리 이 데이터와 연산이 결합된 객체들이 시스템을 이루는 것으로서 객체들 간의 상호작용은 메세지를 이용해서 이루어지는 기법이 객체 지향의 기본 원리입니다. 자 다시 이야기할게요 이런 이야기입니다.

화자 1
09:56
짐을 짓는데 짐을 짓는데 과거에는 어떻게 짓냐 하면요 다 사람들이 자 목수하고 이제 미장들이 좀 붙어가지고 벽을 1 만든다죠 벽 벽 만들 때 벽돌 전부 다 지죠 벽돌 짊어지고 와가 벽돌 하나하나씩 쌓아서 다시 미장하고 그렇제 그리고 여기에 인제 뭐요 또 페인트 칠하든지 어 빨간색 파란색 칠하고 또는 뭐 도배 해 가지고 벽이 하나 만들어지잖아. 벽이 만들어지잖아요. 이제까지 집은 그렇게 지었어요. 근데 객체 지향적으로 집을 지으라 카면 어떻겠냐 이 벽이라는 객체가 나와 있습니다. 벽이 만들어진 객체 벽이 있고요. 천정이 있고 만드는 게 아니고 다 만들어진 객체를 가지고 조립입니다. 조립 조립해버린 게 객체 지향입니다. 자 아주 중요한 이야기였다. 내가 여러분들 객취지향의 개념을 잡아야 됩니다. 다시 한번 이야기한다.

화자 1
10:43
집을 짓는데 과거 절차지향적이나 구조지향적은 어떻게 짓노 벽을 전부 일일이 다 벽돌 쌓아가지고, 미장 미장 알죠 미장 어 이 미장하고 도배하고 벽이 나와 그래서 천장도 저 땅부터 이래가 집을 떡 짓었어요. 근데 격체지향으로 집을 짓는 건 어떻다 자 벽이라는 객체 천장이란 객체가 다 제공됩니다. 언어에서 이미 벽이라는 객체 다 제공이 돼요. 이걸 가지고 조립이라니까 조립 이 격차 이 벽을 붙이고 구축해서 집을 만들어 버리는 거예요. 그리고 또 이 집을 문어뜯을 때도 벽만 뜯어가지고 이 벽을 또 딴 데 딴 데 갖다 쓸 수가 있습니다. 자 객체 지향은요, 가장 중요한 게 재사용 이유전 미유전 재사용 객체 지향으로 프로그램을 개발하면 집을 지으면은 거기에 이용됐던 요소들 벽이라는 욕소 벽이라는 객체를 딴 데 사용할 수 있다는 거야. 재사용 그런데 구조적이나 절차지향적 언어에서는 거기에 사용됐던 걸 사용 못 하죠.

화자 1
11:39
우리 현재 집에 여러분 집에 벽돌 막 벽 그거 딴 집에 딴 집 짓는데 들고 갈 수 있나 없나 몬 들고 가잖아요. 근데 조립식으로 지어봐라 풀어가지고 가면 되죠. 자 그래서 이 격측 지장은 어떤 개념을 현재 여러분 하드웨어 시스템은 어떻게 만들어지노 완전히 객체 지향으로 만들어진다니까 여러분 PC는 어떻게 만드노 PC 조립 다 하죠. 여러분들 여러분 컴퓨터 조립해야지 대기업 거 사면 안 된디 조립하잖아. 어떤 거 마더보드라는 보드 보드 판떼기 메인 메인보드 보드라는 격차 4호제 어 그리고 메모리 됨 램이라는 객체 4호죠 램 램 메모리 4호고 시피뉴 프로세스 시피뉴 사오죠 요즘 인텔 어 듀얼코아 그래서 듀오 인텔 듀얼코아 방식의 64비터 인텔 투까지 나오죠. 그래서 3.8기가 헤르츠 노트북에도 뭐 2.0기가 헤르츠를 훨씬 넘어가 버리죠 요즘은 이 하드웨어 속도를 소프트웨어가 몬따로 보죠.

화자 1
12:36
비스타 32미터 64 이제 끼우고 따라올라고 합니다. 소프트웨어 크라이시스 이야기 다 있죠. 자 싱피뉴얼 사화고 그래픽카드란 격체사화가 여러분들 뚝뚝뚝딱 조립해서 하드웨어 시스템 만들죠 만들죠 그래서 누구나 요즘 컴퓨터는 조립도 할 수가 있습니다. 누구나 제이지치 강의들은 누구나 내 강의에 보면요 샘플 무료강의 보면 조립하는 거 다 나와 그 강의 1시간만 들으면 누구나 CPU 사 오고 메모리 사 와서 뚝딱뚝딱 조립해서 컴퓨터 시스템을 만드는 아주 쉬워요 요즘 컴퓨터 하드웨어 피씨는 금방 만들어냅니다. 어 너무너무 쉽거든. 1시간만 강의 들으면 다 만들어요. 어 그래서 내 강의 듣고 할 짓 없으면요 컴퓨터 가게 조립가게 차려가지고 하는 선배들도 많데이 아나 진짜요 어 근데 이 소프트웨어는 굉장히 어렵잖아요. 막 프로그램 공부에 대한이 다 빠져야 되죠. 이 소프트웨어도 하드웨어처럼 쉽게 한번 아주 쉽게 한번 만들어보자 객체 지향을 쓰면 되는 거예요.

화자 1
13:31
소프트웨어도 어떻게 갖는다 조립하는 것처럼 자 이거 어떤 모듈 모듈 모듈 단위 프레임을 다 만들어 놓고 어떤 프레임 만드는데 이거 가져오자 조립한다. 치고 가 조립해버리자 이런 하나의 소프트웨어 시스템을 만들자는 겁니다. 소프트웨어 시스템 그러면 이런 PC 같은 경우는 어떠노 이렇게 만들어 놓고 이 PC 마음에 안 들면 제가 업그레이드할 때 요 그래픽 카드 좋다. 내 과거 있는 그래픽카드 가와서 또 여기 재구성할 수가 있죠. 이 컴퓨터에다가 이게 뭐야? 재사용 유저 아니 유저 그럼 소프트웨어를 안 가지요 이 소프트웨어 이용됐던 이 모듈을 다른 소프트웨어에 가져올 수 있죠. 이게 재사용입니다. 알겠나 이 소프트웨어도 하드웨어 조립하듯이 쉽게 하자는 게 객체 지향의 원리입니다.

화자 1
14:14
왜 이 소프트웨어를 구성하는 모듈들을 이 객체들을 전부 다 독립적 단위 프로그램으로 객체화시키면 즉 이 객체란 뭐냐 하면요 우리 앞에서 배운 이 모듈을요 모듈을 독립 독립성 강요하려면 뭐더노 응집 또는 높이고 결합 또는 낮추면 되지 그러면 이게 아주 좋은 모듈이 뭐가 되노 객체가 됩니다. 실은 객체로 둔갑합니다. 완전히 독립된 모듈이 구조적 프로그램에서 독립된 모듈이 뭐다 오버젝트가 된다니까 객체가 된다니까 그렇죠. 그럼 이렇게 이 모듈들은 아주 독립성이 강하도록 혼자 어 지팔질원들 수 있도록 만들어 놓으면 이놈은 재사용 가능한 겁니다. 그러니까 이런 소프트웨어 만들 때도 이런 모듈 모듈들을 가지고 있으면 갖다 끼워 맞추는 거 그래서 요즘 서켓 방식이랍니다. 근데 현재 우리 회사의 개발자들 전부 다 모듈을 다 가지고 있거든. 그러니까 우리 회사 들어오면 이런 모듈들을 다 만져볼 수 있어요.

화자 1
15:10
그 개발자가 웃긴 이 모듈도 내가 주 좋아 이미 만들어놨는데 야 봐라 너 선배들이 만들어 놨다 내가 그거 가지고 석회 인감 뿌리면 하나의 시스템이 나와 버립니다. 알겠나 해서 이 소프트웨어도 인제 앞으로 가면 갈수도요 소프트웨어 누구나 다 개발할 수가 있습니다. 그게 객체 지향의 목표다 PC 조립 컴퓨터 조립 누구나 할 수 있듯이 앞으로 이 프로그램 개발도 누구나 할 수 있도록 만들어지는 게 뭐다 객체 지향의 목적입니다. 지금도 그래요. 지금 과거 우리 때 대가리 다 빠져가면서 개발했지 우리 같은 경우는 완전히 절차 지향 아니고 집으로 말하면 벽 다 이래 하잖아. 코보 크 다 두드리고 완전히 대가리 다 빠지고 말입니다. 요즘은 그래 안 버려요 뚝딱뚝딱 가와서 조립해버립니다. 악연아 격체 지향 언어가 그렇게 좋은 겁니다. 그죠 그래서 이게 근본 원리다 이 말이야. 이 큰 이야기를 알고 넘어가자 이 말이죠. 하드웨어 피시 조립하듯이 소프트웨어도 모듈 이 모듈을 강력하게 독립적으로 만들어 놓으면 객체로 된다는 거죠.

화자 1
16:09
그죠 자 그런 이야기고 아이 앞에 뭐 방금 누구나 아하 괜찮다 자 격체 지향의 개념은 이제까지 분리되어 있던 데이터와 연산을 분리 어 분리하고 있는 기존의 방식과는 달리 데이터와 연산이 결합된 격체들의 시스템을 이루는 것으로서 격체적인 상호작용은 이 격체 그럼 이제는 이 격체가 뭡니까? 데이터와 연산 프로시죠. 같이 가지고 있는 격체죠 격체일 오브젝트 완 그럼 오브젝트 투 다른 격체와 뭡니까? 이 메세지는 상호 교환을 하는 거 움직이는 거는 메시지랍니다메섹지에 메세지로서 뭔가 행위를 한다는 겁니다. 그렇죠. 자 그래서 격체는요 데이터 플러스 행위 즉 함수 처리 절차 연산 매스들을 함께 처리하는 기법이 객체 지향입니다. 실제 자 그럼 이 객체 지향기법의 구성 요소들이 중요합니다. 반드시 문제 나온다 자 객체가 뭔가 다시 한번 보죠. 객체의 정의는 뭐냐 즉 데이터 데이터 데이터는 상태와 속성을 가지고 있죠.

화자 1
17:08
데이터와 행위 데이터가 하는 연산 행위 함수 뭐 연산 이거 다 나오제 처리 절차 프로시저 다 같은 말을 씨부린다 그리고 메스 더 메스 더 방법 다 같은 말입니다. 어 이 데이터 가지고 잘못됐어요. 데이터가 요거 갖다 이렇게 놔야 돼요. 데이터가 있고 데이터의 상태 속성 뭐 이런 거죠. 어 요런 데이터와 행위들이 결합된 겁니다. 즉 데이터와 데이터를 처리하는 함수를 묶어놓은 일체된 하나의 단위 하나의 강력한 독립된 모듈 중에서도 강력한 모듈 이제 응집성이 엄청 강하고 결합도가 약한 이런 걸 객체를 한다는 겁니다. 즉 데이터는 속성 상태 변수 등을 포함하고요. 함수는 즉 함수는 메스더 연산 처리 절차를 나타냅니다. 다 같은 말이다. 쉽게 객체가 뭐고 그 데이터와 데이터 하는 행위를 하나로 묶어놨는 걸 객체 지향에서는 뭡니까? 객체다 이렇게 이야기합니다.

화자 1
18:06
되겠나 이런 격체들을 가지고 움직여 버리는 이 격체들을 조립하는 게 객체 지향 프레임의 기본이다. 자 속성은 뭡니까? 이 객체가 가지고 있는 특성 성질이란 상태죠 그렇죠. 드리뷰도 이미 다 아는 이야기고 자 클래스 중요합니다. 클래스 여러분 또 이 몇 반이고 클래스 이름 묻죠 클래스는 뭐고 하나 이상의 유사한 객체들을 모아놨는 걸 클래스라 합니다. 말건 클래스죠 이 클래스 클래스는 아 유사한 객체들을 모아놨는 걸 클래스라 하고 이 클래스에는 여기 없는 상위 클래스와 상위 클래스와 하위 클래스가 있습니다. 또 상위 클래스 와 하위 클래스가 있더라 상위클래스 말 그대로 위에 있는 게요 상위 클래스고 이 위에서 믿어지는 게 뭡니까? 하위 클래스죠 상위 클래스 하위 클래스입니다. 그렇죠.

화자 1
18:59
상위 클래스의 성질이 전달되는 거 하위 클래스로 전달되는 걸 인헤리턴즈 상속이라고요. 자 일단은 클래스에는 상위 클래스와 하위 클래스가 있더라 자 우리 객체 지향의 기본 원리 기법을 배우고 있다. 자 객체지향 기법의 구성 요소들 객체 속성 클래스 이런 원리를 알아야 됩니다. 클래스 자 인스턴스는 실체지요 인스턴스 실제 데이터 즉 어떤 클래스에 속하는 구체적인 격체를 우리는 인스턴스 실체라 합니다. 알겠나 어떤 클래스에 속하고 있는 구체화돼 있는 객체를 우리는 뭐라 추상화 되어있는 객체가 아니고 구체화돼 있는 객체를 구체화돼 있는 객체를 실체라 합니다. 되겠죠. 너무나 쉬운 이야기 자 메세지는 이야기했죠.

화자 1
19:50
격체들 간의 상호작용에 사용되는 수단 격체의 어떤 행위를 하도록 지시하는 명령을 메세지라 이 격체 에이라는 격체에서 비라는 객체에 어떤 지시와 명령하는 것으로 상호 교환하는 우리는 뭐라 한다. 매세지라 합니다메섹지에 의해서 객체와 객체는 움직인다 이렇게 보면 되고요. 그다음에 메소드는 뭡니까? 방법적 연산 기능이죠. 메스워드는 이 객체가 하나의 격체가 할 수 있는 행위들이 지금 행위 행위 또 연상기능 그다음 처리 절차 같은 말입니다. 전부 다 프로시저 뭐 연산행위 처리절차 또는 함수 같은 말이다. 격체가 실행해야 할 구체적인 연산 처리 절차 함수 처리절차 뭐 여기 다 나오네 행위 이걸 우리는 메스드다 한다. 그죠 어 객체는 뭐 이 메스드와 데이터를 포함하고 있는 게 격체다 했습니다. 알겠죠.

화자 1
20:45
그래서 이런 기본 용어들 우리가 정리를 해 놓고요. 기본 용어들 자 그럼 이런 객체 지향 기법을 가지고 분석을 하고 설계를 하고 구현 특 프로그램을 짜고 할라하면 뭐다 기본 원칙이 있어야 된다. 자 객체지향기법의 기본원칙 또는 성질 또는 특성 다 같은 말이겠다. 책마다 표현이 다르겠죠. 자 캡슐화 기계체 지향 기법의 특성 중에 하나가 성인 캡슐라이 캡슐레이션 캡슐라이제이션 또는 인 캡슐레이션 객체의 데이터 연산 함수 등 모든 정보를 하나로 묶은 즉 모드러한 것으로 정보 은폐 다른 말해서 정보 은행으로 정보 은폐가 이루어지는 걸 우리는 캡슐 알죠 캡슐 여러분들 약도 그 캡슐로 된 약 먹잖아. 그럼 뭐야? 캡슐로 된 약이 뭐야?

화자 1
21:42
안에 뜯어보면 파란색 막 들어가 있는데, 캡슐화되어 있기 때문에 그 안의 내용을 모르죠 그래서 객체 지향에서는 이 처리할 객체를 뭐 캡슐화해서 처리하는 거예요. 캡슐 왜 캡슐화의 목적은 뭐고 정보 은폐입니다. 정보음폐 인포메이션 히딩 이어 나오네 정보원 벽이 이루어집니다. 그죠 캡슈라 어 알겠나 말 그대로 캡슈라예요. 캡슈라 그 다음에 정보원이면요 인포메이션 히링 캡슐에서 가장 중요한 개념으로 다른 격체에서 자신의 정보를 숨기고 자신의 연산말을 통하여 접근한 접근을 허용하는 걸 정보 은닉이라 합니다. 그죠 정보 은행 말 그대로 같은 말이죠. 캡슐화 캡슐화의 목표는 정보원익이다. 그렇죠. 그다음에 여러분 추상화 아 이거 추상화는 이미 이야기 다 했지 추상화 자 여러분들 격차 지향 기법의 기본 원칙 또는 특성이다.

화자 1
22:41
에스트랙션 캡슐은 뭐냐 불필요한 부분을 생략하고 객체의 속선 중 가장 중요한 부분에서 중점을 두어 일반화시킨 개념이자 이게 추상화란 말이야. 추상화 추상화는요 추상화는 다른 말로 상향식 개념입니다. 상향식 다른 말로 뭐고 일반화 같은 말이고 다른 말로 전체화 하는 말과 같은 말이고 다른 말로 개념화 다 잡아요. 이게 지금 추상화야 상향식 일반화 전체와 개념화 추상화 같은 말이죠. 이 추상화예요. 추상화 예를 들면 이런 거잖아. 이게 추상화예요. 여기에 택시가 있고 태학시 택시라는 객체가 있고요. 여기에 트럭이라는 트럭이라는 객체가 있고 여기에 여기에 승용차라는 객체가 있고 여기에 승합차라는 객체가 있답시다 이 모듈이죠. 어 그러면 이걸 이제 뭡니까?

화자 1
23:41
뭐로 일반화 할 수 있노 전체 뭘 위반할 수 있다. 오케이 차로 자동차로 자동차로 일반화할 수가 있죠. 차로 어 차 카 카로 일반화할수 있지 어 그니까 이런 거예요. 이런 거 이게 바로 뭐 상향식 일반화 전체와 개념화 추상화입니다. 알겠나 어떤 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 차는 뭐고 자동차는 간다는 거죠. 근데 택시는 뭐, 뭐야? 부탄가스로 가나 뭐로 가노 택시 요즘 LPG가 가고 일반 트럭은 가솔린 승합차는 경유를 가고 이래 막 다 승질이 나지만 간다는 거는 공통적인 소득성이야 그러니까 공통 속성을 뽑아서 하나 자동차로 일반화시키는 거 이걸 추상화예요. 추상화 알겠나 반대로 이거는 뭡니까?

화자 1
24:33
하향식은 이야기의 자양식은 구체화 어 세분화 세분화 모듈화 다 같은 말이 아니야. 하향식입니다. 이게 그죠 무슨말인지 알겠죠. 추상화의 개념 이 추상화입니다. 자동차에서 택시 트럭 승합차 승용차 여기에서 중요한 성질 간단한 것만 뽑아서 만드는 객체 이런 게 추상화죠 이런 모듈들을 추상화 자동차로 추상화 시켰다 이렇게 이야기합니다. 좋아요. 자 그다음에 원리가 뭐 지금 객체지향의 원리 배우고 있다. 성질 인스턴트 했고 예 상속성 인 헤리턴스 중요한 이야기죠 자 클래스는 우리가 상위 클래스와 하위 클래스가 있죠. 자 상위 클래스의 메세지에 존재하는 모든 속성을 하위 클래스가 계승하는 것 이게 바로 상속성입니다. 아까 상위 걸렸어 똑같은 거예요.

화자 1
25:32
자 자동차 이 상위 걸렸어요. 여기에 트럭 승용차 하위 그랬습니다. 상위 클래스고 상위 클래스고 하위 클래스고 상위 클래스의 성질 달린다 차는 간단한 이 성질이 전달되는 거 이게 뭐다 상속성 인 헤비턴스 되겠죠. 상위 클래스의 메세지에 존재하는 모든 속성을 하위 클래스가 계승하는 거 이거는 재사용과 유지보수를 증개하는 거죠. 또 이 속성은 단일 상속과 다중상속에서 단일은 1개의 상위 클래스부터 뭐 이건 이게 단일이고 다중은요, 여러 군데서 여러 군데서 받아들이는 거는 다중상속이다. 이렇게 알면 되겠죠. 쉽죠 상속성 예 상속성 그다음에 다양성은 뭐냐면은 아니 다양성 중요한데 다양성은 뭐냐 하면 이런 거예요.

화자 1
26:29
한 메세지가 격차에 따라 다른 응답을 할 수 있는 승진 자 이게 무슨 말이냐 이 말이야. 예를 들면 여기에 어떻게 이야기할까 숫자 클래스가 수원을 모아 숫자 클래스가 있고요. 여기에 문자 클래스가 있습니다. 문자클래스 이따 하자 숫자 클래스와 문자 자 숫자 클래스에서 예를 들면 더하기라는 메세지 인제 이게 메세지죠 이 더하기 이 더하기라는 메세지는 더 안다는 거예요. 더 안다는 거고, 문자 클래스에서 더하기라는 메시지는 같은 메세지인데 이거는 뭐야? 문자와 문자를 연결한다는 거거든. 에이 이게 에이와 비를 연결한다는 거고, 여기에서는 더한다는 거예요. 한 메세지가 더하기라는 한 메세지가 객체에 따라서 숫자 객체냐 문자 객체에 따라서 다르게 응답할 수 있는 성지 다형성 하나가 여러 군데 형태로 쓰일 수 있는 성지 다형성입니다. 다양성 알겠제 알겠나 JJH가 여러분한테는 스승이죠. 스승이에요. 스승으로 접근합니다.

화자 1
27:27
그런데 우리 여기 멤버들한테는 사장으로 접근합니다. 어 여러분한테는 또 우리 학교 학생들한테 교수로 접근하고요. 우리 집에 가면요 우리 집사람한테는 남편이 허저번드입니다. 예, 예 가정에 전혀 신경 안 쓰는 허저번드지만 허저번드고 우리 애들한테 아부지라죠 이게 다형성이야 객체가 가지고 있는 무슨 성 다형성 알겠나 다형성 어 객체에 따라 달라 어 우리 우리 와이프라는 격차한테는 남편으로 할 남편으로 메세지를 전달해요. 어 어 이제 남편으로 전달하지 메시지 별거 없죠 우리 와이프한테 던지는 메세지는 별 게 없습니다. 꺼라 자자 이 2마디죠 뭔 말인지 알겠나 여러분한테는 또 이게 스승으로 접근하죠. 말이 많이 여러분한테 메세지 전달하는 게 오케이 어 우리 우리 직원들한테도 말이 많아요. 우리 대학에 있는 애들한테 말이 많고 여러분들 말이 많은데 친구들한테 별말 안 부어라 마시자 이거 끝입니다.

화자 1
28:27
우리는 부부라 마시자 어 알겠나 가용성 설명 잘했지 하나의 격체가 어떤 격차에 따라서 똑같은 메세지를 가지고도 반응이 다르다는 거 여기서는 더하라 그러니까 여기는 연결하라 이 말입니다. 똑같은 메시지 더하긴데 여기는 연결이고 이건 더 하라는 거예요. 그죠 되겠습니까? 자 객체 지향의 기본 원리를 여러분 배웠죠 요 자체가 문제가 많이 나오제 그래서 이런 것들 말로 나오는데 우리는 원리를 들어가고 있기 때문에 장난이다. 특히 소프트웨어 공학은 여러분보다 중요한 단어만 가지고 접근을 해야 되지 긴 거 서술식 필요 없다. 소중히 필요성이 있다. 단어만 잡고 그 단어가 탁 나오면 답이라는 거 되겠나요? 좋습니다. 그죠 자 이렇게 해서 객체 지향의 기초를 닦아 놨습니다. 그죠 좋아요. 오늘도 방구석에서 고생했고 내일 만나 뵙기를 약속드리면서 오늘은 여기까지 하겠습니다.

728x90
반응형
posted by 아이윤맨
: