1. 소프트웨어 공학과 객체 지향
1-1. 소프트웨어 공학 개론
- 소프트웨어는 인간의 실생활에서 대행하고, 필요 없어지면 폐기되는 과정을 거침
- 소프트웨어 공학은 소프트웨어 개발 방법론을 중심으로 개발론과 공학론이 있음
- (중요) 전통적, 전형적, 구조적 방법론과 객체 지향법론이 있으나, 현재는 객체 지향법론이 주류임
- 분석 도구로 DFD, DD, 알디, STD 등을 사용하며, 모듈 설계가 가장 효과적임
- C언어를 사용해 구현하며, 구조적 프로그래밍이나 객체 지향 프로그래밍을 활용함
1-2. 객체 지향의 기본 원칙
- 객체 지향은 데이터와 행위를 하나의 객체로 정의하는 것임
- 객체의 속성, 클래스, 메서드, 인핸셔너, 상속 등을 이해해야 함
- 객체 지향의 기본 원칙에는 다양성, 추상화, 일반화, 상속 등이 있음
- 객체 지향 기법은 추상적이기 때문에 객체 지향 분석, 설계, 구현 요소를 이해해야 함
- 객체 지향 분석 단계에서 문제를 정의하고, 객체 모형을 통해 해결 방안을 모색함
1-3. 객체 지향 분석과 설계
- 객체 지향 분석 단계는 문제 정의, 객체 모형 만들기, 동적 모델링과 기능 모형화로 나뉨
- 문제를 정의한 후, 객체 모형을 통해 해결 방안을 모색하고, 이 과정을 분석 단계라 부름
- 설계 단계에서는 시스템 설계와 객체 설계로 나뉨
- 객체 설계는 객체 생성, 기능 구현을 통해 클래스 정의를 하고 객체를 생성하며, 코딩을 함
- 코딩은 클래스 정의, 객체 생성, 기능 구현의 과정으로 이루어짐
2. 객체지향설계
2-1. 객체지향분석 개요
- 객체지향분석에서 이용되는 모델링 기법 중 하나가 객체모델링임
- 객체모델링은 현실 세계의 객체들을 데이터베이스에서 모델링하는 것임
- 객체모델링에서 엑다에스를 사용하는 방법과 함께 객체지향분석의 방법론을 제시한 학자들이 있음
- 객체지향분석의 방법론에는 넘바오의 방법론, 북어의 방법론, 자콥슨의 방법론, 코드와 요돈의 방법론 등이 있음
- 객체지향분석을 위한 소프트웨어 공학과 시스템 설계의 중요 개념과 조건을 이해해야 함
2-2. 객체지향설계의 특징
- 객체지향설계는 객체 모델링, 동적 모델링, 기능 모델링을 포함함
- 객체 모델링은 객체들의 특성과 관계를 모델링하는 것으로, 동적 모델링은 객체들의 행위와 상태를 모델링함
- 기능 모델링은 객체의 동작 기능을 모델링함
- 객체, 객체의 특성, 객체 간의 관계를 모델링하는 것이 객체 모델링임
- 동적 모델링은 객체의 행위와 상태를 표현하는 것으로, 객체와 객체 사이의 관계를 모델링함
2-3. 객체지향설계의 설계 모델
- 객체지향설계는 시스템 설계와 격체 설계를 분리하여 설계함
- 추상화, 자료 정보의 은폐, 모듈화, 기능 독립성, 상호 독립성을 바탕으로 설계 모델을 만듦
- (중요) 모듈은 모듈 간의 응집성을 높이고, 모듈 간의 결합도를 낮춰 독립성을 보장하는 개념임
- 객체 단위로 프로그램을 만들고, 재사용이 가능하도록 함
- 객체 지향 설계는 소프트웨어를 개발하는 프로그래머에게도 영향을 미침
3. 객체지향 프로그래밍과 유지보수
3-1. 객체지향 프로그래밍의 중요성
- 객체지향 프로그래밍은 소프트웨어 분쟁을 줄이고, 가족적인 팀을 구성하도록 도움을 줌
- 모듈을 개발하면 누구나 쉽게 프로그램을 만들 수 있지만, 모듈과 소켓을 결합하면 시스템을 만들어낼 수 있음
- (중요) 개발이라는 단어보다 솔루션이 더 중요하며, 솔루션 해결책을 제공하는 방법론이 더 중요함
- 앞으로는 일반인들이 자기가 원하는 프로그램을 만들 수 있는 시대가 도래할 것임
3-2. 객체 지향 설계와 객체 지향 언어의 선택
- 객체 지향 설계의 핵심은 분석 방법을 통해 모듈을 생성하고, 이를 조립하여 시스템을 만드는 것임
- 객체 지향 언어는 프로그래밍, 객체 지향, 객체 오리진드 프로그램으로 크게 나뉨
- 객체 지향 언어는 클래스 기반 언어와 객체 기반 언어로 나뉘며, 이는 각각 데이터와 연산을 묶는지, 객체와 클래스를 묶는지에 따라 다름
- (중요) 객체 지향 언어를 사용하면 객체 지향 프로그래밍을 코딩할 수 있음
3-3. 객체 지향 테스트와 유지보수의 중요성
- 객체 지향 테스트는 단위 테스트, 통합 테스트, 확인 테스트, 인수 테스트로 나뉨
- 유지보수는 동일하며, 수정적 유지보수와 적응적 유지보수가 모두 적용됨
- 객체 지향 언어는 데이터와 연산을 묶어 재사용이 가능하도록 설계함
- 데이터와 연산을 분리하는 기존의 접근 방식과는 다르게, 객체 지향 언어는 객체와 클래스를 하나의 시스템으로 묶음
화자 1
00:11
친구에 계시는 우리 엠투엠 생방송 안방 가족 여러분 오늘도 뜨거운 가슴으로 환상적인 수업을 함께 하겠습니다. 하하 예 여러분 좋습니다. 자 이제 드디어 우리 정보처리기사 오늘 마지막 생방송 이제 여러분들 대단히 고생했습니다. 매일 저녁 여러분 7시만 되면은 전국에서 벌떼처럼 덤벼 들어가지고 내 강의를 저하고 호흡을 같이 했죠. 모래시계 보듯이 개콤보 보듯이 웃차사 보듯이 그죠 모래시계는 6.25 때 방송인데 여러분 아주 절찬리에 아주 고생하셨어요. 오늘 드디어 마지막 소프트웨어 공화 이제 대단한의 막을 내립니다. 그죠 오늘 뜻깊은 날 생중계의 마지막 날 아 병태 순자 예 눈물이 아플 순자야 울지 말고 아직 남았다. 예 아직 남아 있습니다. 그죠 좋아요.
화자 1
01:10
여러분 자 오늘 마지막 생중계 잘 우리가 멋있게 에 아주 화이팅하는 마음으로 정리를 잘 한번 해보자 자 현재 이 소프트웨어 공학 그죠 우리 20문제 이미 따랐다 그죠 아주 쉽다 가장 핵심적인 단어 위주로 공부를 하라 그렇죠.
화자 1
01:28
이 소프트웨어가 하나의 소프트웨어가 그죠 처음에 분석되고 설계되고 구현이 되고 검사 단계를 거쳐서 탄생되어서 우리 인간의 실생활에서 우리 인간 일을 대신해 주면서 운영되고 유지보수 되고 또 필요 없어지면 폐기될 때까지 우리 인간의 삶하고 똑같은 그죠 그래서 소프트웨어 라이프 사이클을 중심으로 소프트웨어 공학론이라는 학문이 이제 나오는 거지 그래서 품질 좋은 신뢰성 있는 우리 인간의 길을 훨씬 생장성으로 할 수 있는 소프트웨어를 만들어보자는 측면에서 우리가 공부하고 있고 거기에서 이십 문제 물어주는 거 너무나 당연한 이야기 맞나요? 그래서 내가 한번 더 정리하고 넘어가 볼까요?
화자 1
02:16
다시 한번 종합적으로 정리를 하면은 이런 소프트웨어를 개발하는 방법론은 개발하는 과정은 크게 절차 지향적 절차지향적 그죠 예 일반적이죠. 일반적이고 그다음에 전형적 그죠 이건 전통적 다른 말로 전통적 또 구조적이죠. 구조적 실험 구조적이 더 좋아요. 구조적 있고 그다음에 객체적 객체 지향적 개발 방법론이 있는데, 우리는 이놈은 필요 없고요. 우리가 전통적 전형적 구조적 방법과 객체 지향방법론을 가지고 현재 뭘 하나 이 소프트웨어를 만들기 위해서 분석하고 구정 개발을 하고 검사를 하고 운영하면서 유지하면서 보수 수정을 하더라 이거 묻는 과정이다.
화자 1
03:10
이 말 아닙니까 그죠 그래서 우리가 다시 이야기합니다마는 전통적인 이미 끝나고 현재 객체 지향적 진행 중에 있죠. 그렇죠. 그래서 분석 도구로 자꾸 반복해보자 시험 여기 나오니까 그래서 이 분석 도구로 우리는 DFD 하드에서 이제 DD 소 단위 명세서 그다음에 이알디 그다음에 STD 이런 놈을 가지고 이제 설계를 하죠. 설계 도구는 상향식과 하향식으로 크게 나눌 수 있고 모듈 설계가 가장 좋은 방법 법이고 그리고 뭡니까? 또 설계 기법에서 우리가 히포 그리고 NS 차트 그리고 PDL 그죠 이런 걸 하구요. 맞나요? 그리고 이제 구현 과정 구현해서 인제 우리가 흐름도를 이용해서 코딩을 하죠.
화자 1
04:00
그죠 가장 적당한 언어를 선정해라 언어를 선정해서 구현을 하고 구조적 프로그래밍이든 객체 지향 프로그래밍이든 구현을 하고 검사를 합니다. 그죠 이 검사에는 또 우리가 뭡니까? 화이트 박스 검사와 브레이크박스 검사가 있고 그리고 이제 단계별 검사에는 단위검사 통합검사 문화재개 너무나 쉽죠 그다음에 우리가 인수검사 종합검사로 나눌 수가 있습니다. 그죠 그래서 유지보수까지 우리가 이야기가 갔는 거 아니냐 그리고 바로 지난 시간에 객체의 지향을 배우자 그래서 객체지향 이론을 우리가 다 공부했죠. 객체지향 더 월드 이적한 세스트 오브젝트 객체지향 그래서 객체의 정의 객체는 뭐다 과거에는 처리할 데이터와 이 데이터 하는 행위들을 분리해서 프레임 했는데 이제는 이 데이터와 행위를 하나로 묶자 객체화 해서 프레이밍하는 게 객체 지향의 기본이다. 집으로 말하면 조립식이죠.
화자 1
04:59
그죠 조립식을 집을 지으니까 그 객체는 또 다른 물건 그 건물에 재사용할 수 있는 게 객체 지향의 또 메리트라는 이야기를 하면서 객체지향에서 객체가 뭔가 그렇죠. 그리고 속성이 무엇인가 그렇죠. 그다음에 클래스가 뭐냐 상위 클래스 뭐 하위 그래서 그렇죠. 그다음에 메스더가 뭐냐 메스더 그리고 인헨턴서 상속이 뭐냐 그렇죠. 이런 이야기들 그럼 격체의 성질 객체 지향 기법의 성질 특성 기본 원칙이 뭐더나 우리가 여러 가지 성질이 있었죠. 그렇죠. 그런 것 중에 다양성 생각나죠. 다양성 우리 와이프까지 이야기했습니다. 다양성 이야기 추상화 추상화 그죠 또 일반화 전체화 같은 말이라고 했죠. 상속도 이야기했고 우리가 또는 여러 가지 또 거기에 많은 이야기들을 했습니다. 그죠 정리를 반드시 원칙론을 정리를 하고요.
화자 1
05:59
이제 객체 지향은 굉장히 추상적이기 때문에 역시 몇 가지 단어만 가지고 있으면 됩니다. 자 오늘은 객체 지향 방법론으로 한번 들어가 봅니다. 자 객체 지향 기법도 생명주기를 가지고 있죠. 만약 개발 단계는 1가지 뭐든 어떤 형태든 분석 단계를 거쳐야 되고 설계 구현 테스트 그리고 유지보수 그죠 유지 보수 단계를 거치는데 격체 지향 방법을 분석하는 걸 우리는 오에이라 합니다. O웨이 오브젝트 오리엔티드 어내리시스 그죠 객체 지향 분석이 분석은 어떻게 하는지 객체 지향 설계를 오디 오브젝트 오리엔티드 디자인 객체지향 설계 격체지향 구현을 오피 오버젝트 오리엔티드 프로그래밍 오피라 하죠. 그죠 그래서 객체지향에서 분석 설계 구현 요놈이 문제 나올 수가 있는 거제 자 그런 겁니다.
화자 1
06:50
자 그러니까 실세계의 업무를 실세계의 업무 프로젝트죠 업무 프로젝트 우리 인간이 사용하는 업무 수동화돼 있는 업무 현실 세계의 업무를 이제 격체지향으로 프레임에서 구현을 하는 거 어떻다 분석 단계가 있죠. 분석 분석 분석은 오에이죠. 객체 지향 분석을 특별히 오에이고 전통적 방법에서는 구조적 분석이라 하고 스트랙티드 어날리시스라 하고 객체지향에서는 오브젝트 오리엔티드 어날리시스라는 거죠. 그래서 이 분석 과정 이 분석 과정에서 문제를 정의하고요. 이것만 알면 시험 이거 나온다 이 문제를 객체 모델링 객체 모형을 모델링 하는 거죠. 모델링 데이터베이스에서 모델을 해야지 에 객체모형 그 다음에 동적 모형 동적 모델링 기능모형 새해당 이 문제를 문제는 또 업무를 하죠.
화자 1
07:44
프로젝트를 이 프로젝트를 객체 모형 중요하다 동적 모형 기능 모형 자 요 과정만 알면 되는 겁니다. 요런 과정을 거쳐서 거치면 이제 모형화 다 되어 있는 게 분석이 되는 거예요. 그다음에 설계가 들어가죠 이 설계를 오디라 하잖아. 오브젝트 오리엔티드 디자인인데 설계는 2가지가 있어요. 시스템 설계와 객체설계 요 채로 말하면 단어만 알면 된데 에 그리고 이제 코딩하죠. 코딩하는 걸 오브젝트 오리엔티드 프로그래밍에서 코딩을 합니다. 자 이 코딩은 클래스를 정의 먼저 하고요. 객체를 생성시키고 기능을 호출합니다. 그죠 클래스 정의 클래스 정의 클래스 정의 클래스 안에 객체를 생성시키고 이 객체들의 기능을 호출하면은 코딩이 되는 겁니다. 아주 조립 하는 거다 이 말이죠. 조립 그리고 테스트를 하고 유지보수를 한다는 거 그렇죠.
화자 1
08:43
그래서 시험에 나오는 거는 요 말이다. 오웨이 ODOP 방금 요거 요게 문제가 나오는 겁니다. 그래서 끝났어요. 실은 이렇게 간단한 건데 1번씩 보자는 겁니다. 그죠 OAODOP 좋습니다. 좋아요. 객체 지향 기법의 하나의 기법이고 자 객체 지향 분석 다시 오웨이 오브젝트 어날리시스 애널리시스 애널리시스 문제의 정의 프로젝트의 정의로부터 시스템을 모델링하는 단계죠 모델링하는 거 모델링하는 게 바로 분석입니다. 분석 마델화 하는 거 문제를 정의하고 이 정의로부터 뭐 객체를 모델링하고요. 그 다이나믹 동적 모델링을 하고 기능 모형화 기능모델링을 정의함으로써 신세기 프로젝트를 모델링하는 단계 작업을 격체 지향 분석 작업이다.
화자 1
09:38
분석 단계다 실생활을 실세기의 프로젝트죠 실세기에 실제 전산해야 할 프로젝트를 모델링 하는 거야. 모델링 기법으로 다 아는 거죠. 그래서 이미 자 마델링 자 마들링은요, 크게 3가지 이게 나와 객체 다음 중 객체 지향 분석에서 이용되는 모델링 기법이 아닌 것 이래 나온다 쉽죠 객체모델링 자 동적 모델링 기능 모델링 한번 보자입니다. 격체 모델링은 다른 말로 정보 모델링이라 하제 현실 세계의 프로젝트를 우리 이미 데이터베이스에서 모델링 배웠지 현실 세계의 데이터를 이제 모델링하는 게 정보 모델링이죠. 그죠 그래서 이 정보 모델링에서 우리는 ERD를 가지고 했잖아. 1가지다 이 말입니다.
화자 1
10:22
객체 모델링을 일명 정보 모델링 즉 시스템에서 요구되는 객체들의 특성과 객체들 사이의 관계를 규명하는 모델링이 바로 객체 모델링 객체들의 관계 객체들과 객체들의 특성과 그 객체들의 관계를 모델링하는 게 객체 모델링이고 일명 정보 모델링이다. 요것만 알면 된다. 예 좋습니다. 그리고 동적 모델링에서 규명된 객체들의 행위와 상태 땡그래미 객체들의 특성과 관계 자 정리하자 객체 모델링은 객체들의 특성과 관계 모델링 특성과 관계 격체 모델링이고 동적 모델링은 뭡니까? 그 객체들의 행위 행위와 상태 되겠죠. 데이터와 프로시저죠 행위와 상태를 표현하는 모델링 됐습니다. 요 말만 특성과 관계를 모델링 하는 건 객체모델링이요. 행위와 상태를 모델링 하는 거는 동적 모델링이다.
화자 1
11:20
알겠나 자 기능모델링은 자료 흐름도 DFD를 이용하여 각 객체에서 수행되는 수행이나 각 격체가 수행되는 동작을 모델링 하는 동작 기능모델링은 동작이죠. 식 동작이니까. 기능이죠. 요거 됐습니다. 자 어렵게 이 긴 말 필요 없잖아. 격체 모델링이 뭐고 그 객체의 특성과 관객 공약 격체 모델링 됐다. 특성과 관계 동적 모델링 행위와 상태 공약 격체들의 행위와 객체 간의 상태 공약 그렇죠. 기능 모델링은 객체의 동작 기능입니다. 말 그대로 자 요 3가지 모델링을 하는 걸 우리는 격체 지향이 뭐다 분석이다. 또는 모델링이다. 이래 이야기합니다. 셋째, 이 말만 알면 됩니다. 객체 모델링 동적 모델링 기능모델링 좋습니다. 좋고요. 자 이런 격체 지향 분석을 여러 가지 학자들이 또 제안을 했거든. 그래서 이름만 알면 되겠죠.
화자 1
12:19
자 객체 지향 분석의 방법론을 제시한 게 넘바오 넘바우의 방법론이 있습니다. 그죠 넘바오 방법 넘바오 이론이라고 한다. 알아만 놓으세요. 다음 중 객층 지향 분석의 방법론이 아닌 것 제목 정도만 나온다는 거지 넘바우는 가장 일반적인 방법이고 분석 활동을 객체 동적 기능 모델로 일반적으로 나누어 수행하는 게 넘바우의 방법이다. 되는 거 됐고요. 그다음에 북어 부어 부어라는 학자가 제시한 객체지향 부성의 방법은 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 것 미시적이 나오고 거시적이 나오면은 부어다 뭐 나오지도 않습니다. 그 다음에 자콥스는 뭐냐 하면 유저 케이스 동그라미 유저 케이스를 강조 유저 케이스를 강조해 사용하는 분석 케이스문을 이용했다는 거 자동화 도구입니다. 유저 케이스 가면은 자콥슨 예 됐습니다. 그리고 코드와 요돈 코드와 요로돈 또는 코드와 요돈 방법은 이알 다이어그램을 사용하여 분석했다.
화자 1
13:15
ERD 그죠 우리 NTT 릴레이션 다이어그램으로 모든 프로젝트를 분석했는 게 코드와 요돈이다. 그래서 넘버오 부어 작곡선 코드와 요돈 이놈은 객체 지향 분석의 방법론을 제시한 학자들이다. 또는 방법론이다. 되겠나 싶죠 어 객체 동적 기능 넘바워 일반적인 거고요. 미시적 거시적 부와 유저 케이스 그다음에 이알디 자 요렇게 중요 단어 이 소프트웨어 공학과 시스템 무슨 중요 단어만 탁탁 알고 그 중요 단어 있으면 답이야 대체 공부하는 방법이다. 암기할 필요 없습니다. 그죠 중요한 단어 공략 전략 좋습니다. 중요 단어를 잡아라 예 좋아요. 자 그다음에 자 격체 지향 설계 간단합니다.
화자 1
14:05
오디를 오브젝트 오리엔티드 디자인인데 이 개념은 격체 지역 분석상의 생성한 모델 여러 가지를 분석 모델을 설계 모델로 변환하는 작업 당연한 거고, 자 2가지 시스템 설계와 뭐가 있다는 거죠. 시스템 설계와 격체 설계가 따로 따로 설계한다는 거고, 여기에는 추상화 너무나 자료 정보 은폐 정보원이 모듈화 기능 독립성 상소성을 바탕으로 하며 이 중 가장 중요한 개념은 뭐다 모듈입니다. 모듈 이 모듈이 굉장히 중요해 가장 좋은 모듈 군 모듈의 조건이 뭐더나 군모듈은 뭐다 그 모듈 간의 요소들에 간의 응집성을 높이고 모듈 간의 결합도 결합성 결합도는 낮추면은 뭐 모듈에 뭐가 된다. 독립성이 보장되죠. 독립성이 이빠이로 경상도 말로 이빨 독립성 보장이 이빠이로 되면은 좋음 모듈이다. 이 좋음 모듈이 곧 뭐가 뭐로 탄생한다. 이 좋은 모듈은 곧 이 좋음 모듈은 곧 뭐로 볼 수 있다.
화자 1
15:03
오케이 오버젝트로 하나의 독립된 단위로 된 오버젝트로 보일 수 있다. 그죠 이렇게 흘러갑니다. 알겠나 그래서 모듈 단위로 프로그램하라 객체 단위로 프로그램 하라 이 말입니다. 요즘은 그래서 이 객체 이 모듈은 아주 독립성이 보장되는 이 객체 이 모듈은 재사용에 관한 다른 시스템에서도 고대로 가서 조립할 수 있는 리유죠 재사용이 가능한 게 멋지다 이 말이에요. 재사용 리유저입니다. 재사용 그러니까 어려운 소프트웨어도 PC 조립하듯이 그렇죠. 마더보드 시피뉴 메모리 매니저님 그래픽카드 모아 하드디스크 모아서 하나의 하드웨어 시스템을 만들듯이 앞으로 소프트웨어도 이런 모듈들을 가지고 어느 누구나 쉽게 자기가 원하는 소프트웨어 프로그램을 만들자는 게 객체 지향의 원리입니다. 그러다 보니까 자동화 도구가 자꾸 나오거든요. 그래서 요즘 프로그래머는요 내가 늘 이야기하지 프로그래머가 아니야.
화자 1
15:59
우리 때처럼 정통 코블로 대가리 빠져 가면서 개발해야 그 맛이 나는데 요즘은요, 이미 개발된 모듈을 가지고 게시판 모듈 있죠. 회원가입 전자결재 모듈 갖다가 붙이면 돼 에 그래서 인제 보통 IT 업체예요. 여러분 들어가서 모듈 훔쳐오면 됩니다. 모듈 알겠나 그러니까 우리 회사 같은 경우도 여기 막 직원들이 서로 들어올라 하는 와 가지고 모듈이 막 있거든. 이 모듈을 그냥 조립하면 다 짓게 되는 거야. 그러니까 경력자를 뽑습니다. 경력자 개발자는 경력자 왜 어떤 회사에 있었냐 데려오면 그 회사의 모든 모듈이 가져오는 거예요. 그러다 보니까 게임 쪽이나 개발 쪽에 인제 막 이 개발자들의 몸값이요. 막 올라갑니다. 완전히 박찬호입니다. 박찬호 그래서 이거 인제 소프트웨어 분쟁이 많거든요. 사람 빼가고 이런 게 굉장히 많아요.
화자 1
16:43
그래서 인제 그걸 그래 쓰면 안 되는데 실컷 키워 놓으면요 모듈 가지고 딴 데 가버리고 그러다 보니까 굉장히 소프트웨어 팀은 인간적이고 가족적이고 이렇게 팀이 구성돼야 그 팀 회사가 성공으로 가는 거지 그러나 왜 이 개발 특성상 왜 모듈을 하다보니까 그 모듈만 가지고 있으면 누구나 할 수 있는데, 뭐 그 모듈과 소켓 방법을 꼽아 뿌면은 시스템이 나오는데 뭐 그러다 보니까 이제는 개발이라는 단어보다 솔루션이 중요합니다. 그죠 개발은 이미 옛날 말입니다. 그죠 개발되어있는 모듈이 많아요. 이 모듈을 어떻게 부와 적합 조립해 가지고 가장 그 업무에 맞는 시스템을 솔루션을 제공하느냐 그래서 요즘 우리 IT 쪽에서 개발이라는 단어보다 솔루션이라는 단어를 더 많이 쓰는 솔루션 해결책을 제시할 수 있는 방법론 이미 개발은 너무나도 많이 돼있어요. 여러분 그렇죠. 인터넷상에서도 이 개발된 모줄 엄청난 그 모듈을 땡겨 와가지고 그 객체를 땡겨 와서 소켓으로 연결해 버리면은 끝나는 거지 그래서 요즘 프로그램은 누구나 개발할 수 있습니다.
화자 1
17:40
그죠 피시 조립하듯이 그러니까 앞으로는 아주 일반인들도 그냥 클릭클릭 하느라도 자기가 원하는 프로그램을 만들 수 있는 시대가 곧 도래하고 그런 프로그램들이 나와요. 그런 프로그램들이 자동화 도구 케이스 케이스 투리라고 제너레이터 발생기 즉 모듈들을 발생시켜주는 제너레이터 형태로 나오거든. 요번에 나와 있는 MSS 기반 디벨롭프 같은 경우도 제가 훑어보니까 굉장히 케이스 자동화 도구가 자동차 객체들을 많이 제공하는 겁니다. 과거에 전부 다 뚝딱뚝딱 그럼 계열에 빠져 만들어야 되는 거 탁탁 제공을 당해 뿌리는데 뭐 PC 조립하듯이 알겠나 그러니까 이제는 뭐 이 개발자와 사용자가 어 이 단계가 이 벽이 무너지는 시대입니다. 그죠 그러니까 이제 의미의 원리만 공부해 가지고요. 여러분 조금만 하면 IT 기술자처럼 가장해서 평생 잘 살 수가 있습니다.
화자 1
18:33
그죠 이런 기술을 가지고 가장기술을 가지고 전 세계에 우리는 휴먼웨어 솔루션을 제공하는 JJH의 제자들이 됐소 좋습니다. 자 객체 지향 설계됐고요. 이 설계 방법도 여러분 1가지입니다. 설계방법도 이제 넘바우의 격체지향 설계가 있고 부어있고 코드 연어다 요런 사람 나오면 전부 다 필요 없고 뭐다 어 객체 지향 관계되는 분석 방법이나 설계 방법을 가지고 논문을 학위를 받은 사람들이구나 이런 말하면 돼요. 뭐 넌바워 부어 코드 용어단 무조건 객체 지향에 관계된 사람이다. 그 방법론을 제시하고 설계 방법을 제시했습니다. 각각의 설계 기법 몰라도 좋습니다. 예 자 객체 지향 구현은 뭐요 객체 지향 가능한 언어를 선정해야 되겠죠.
화자 1
19:20
설계량이 생성된 설계 모델과 명세서를 근거로 코딩하는 단계 프로그래밍 하는 단계 개발하는 단계다 그래서 이제 객체지향 언어에 대해서 알아야 되는데 요즘 인제 객체지향 언어는 크게 프로그래밍 객체지향 오피 오브젝트 오리엔티드 프로그램 이렇게 해 가지고 객체 기반 언어 뭐 중요하진 않습니다. 클래스 기반 언어 객체 지향성 언어인데 객체기반 언어로 대부분 에이다. 그리고 액터 같은 게 있고요. 격체의 개념만을 지원하는 거고, 클래스 기반은 글루 가는 게 있습니다. 그죠 객체와 클래스의 개념을 모두 지원하고 격체의 개념만 지원하고요. 격체지향적 언어는 격체 클래스 상속의 개념을 모두 지원하는 게 이제 전문 객체 지향 언어인데 대표적인 게 시물락 또 스몰통이 많이 이용됐고요. 우리 현재 씨 뿔뿔이 대표적인 객체지향 언어고요. 그다음에 오브젝트 오브젝티브 씨 뭐 이런 언어들 현재 또 인터넷상의 언어들도 상당한 부분 객체 지향성 언어로 달려가고 있습니다. 자 이런 언어를 배우면 여러분들보다 객체 지향 프로그래밍을 코딩할 수 있다는 겁니다.
화자 1
20:20
알겠나 그래서 언어를 한번 구경해 보시고요. 자 객체 지향 테스트도 1가지죠 우리가 전통적이나 어 구조조가 똑같습니다. 테스트에는 단위 테스트 통합테스트 확인 테스트 인수 똑같은 말이야. 단위는 이제 모듈이죠. 객체의 검증에 따라 마지막 읽어보시면 되고요. 단위 통합 모듈 통합 확인이 인수 테스트라고 하죠. 확인 인수 적합성 뭐 이런 데스트 같은 말이다. 자 시스템 테스트 어쨌든 다른 말로 종합 테스트제 이미 이거는 우리가 구조적 방법하고 똑같이 적용하면 됩니다. 똑같은 적용하면 되겠다는 거요 좋습니다. 자 그다음에 유지보수도 똑같아요. 유지보수는 뭐 또 있으면 아예 없죠 아예 똑같이 자 유지보수도 똑같이 적용한다는 거 유지보수도 수정적 유지보수 적응적 유지보수 이렇게 똑같이 적용합니다. 되겠습니까?
화자 1
21:11
그래서 객체 지향은 어 뭐 우리가 구조적 방법하고 똑같지만 분석 설계 구현 검사 유지보수 강의를 거치지만 그 방법론이 뭡니까? 기존에는 데이터와 연산을 따로 분리해서 프로그램을 짰는데 객체 지향은 데이터와 연산 하나를 묶어버리죠 하나로 해 가지고 조립식 집으로 말하면 조립식을 집을 짓고 그 조립식 이용되던 그 객체가 그 시스템이 무너질 때 또 딴 데 재사용할 수 있다는 거고요. 과거의 언어들은 구조적 또는 절차 지형적 언어들 같은 경우는 집을 지을 때 하나하나 벽돌을 다 쌓아 가지고 그 벽을 만들고 그 집이 무너지면 다 무너져 버리는 재사용이 안 되는 것 포커스는 뉴즈였습니다. 되겠나요? 좋아요. 좋습니다. 자 요렇게 아주 핵심 정의 핵심 단어를 가지고 정리를 했고 한 5분 10분 쉬다가 가지고 마지막 강의로 넘어가겠습니다. 잠시 후에 돌아오겠습니다.
'전진하(JJH)교수님의 강의 > 정보처리기사 산업기사' 카테고리의 다른 글
[정보처리] 소프트웨어공학 - 소프트웨어프로젝트관리 2 (0) | 2024.08.09 |
---|---|
[정보처리] 소프트웨어공학 - 소프트웨어프로젝트관리 1 (0) | 2024.08.09 |
[정보처리] 소프트웨어공학 - 객체지향소프트웨어공학 1 (0) | 2024.08.08 |
[정보처리] 소프트웨어공학 - 전통적소프웨어개발론 2 (0) | 2024.08.08 |
[정보처리] 소프트웨어공학 - 전통적소프웨어개발론 1 (0) | 2024.08.08 |