PC 조립 2024. 8. 9. 05:53
728x90
반응형

https://youtu.be/14xSCdGIewQ?si=l4um4dmgcBSfbX_U

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

https://youtu.be/DLnbyxAkNLc



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분 쉬다가 가지고 마지막 강의로 넘어가겠습니다. 잠시 후에 돌아오겠습니다.

728x90
반응형
posted by 아이윤맨
:
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 아이윤맨
:
728x90
반응형

https://youtu.be/oSMy3WR9c3U



1. 소프트웨어 개발

1-1. 소프트웨어 개발의 생명주기
-  소프트웨어의 탄생과 죽음을 고려한 생명주기를 강의함
-  소프트웨어 개발의 초기 단계인 분석 과정을 설명함
- (중요) 분석 과정에서 DFD, 소단위 명세서, DBS, 개체 관계도, 상태 전이도 등을 사용함
-  분석 도구를 요구명세서나 분석명세서로 불림
-  분석 단계의 산출물이 시스템의 요구를 명세화한 요구명세서임

1-2. 설계 도구와 방법론
-  설계 단계에서 상향식과 하향식 설계 방법을 설명함
-  상향식 설계는 소 단위부터 설계하여 위로 통합하는 방식임
-  하향식 설계는 큰 그림에서 세분화하여 구체화하는 방식임
-  하향식 설계에는 모듈화가 중요하며, 모듈 간의 결합도가 강한 모듈이 우수함
-  히포, 총괄도표, 독식, NS 차트 등 하향식 설계 도구를 소개함

1-3. 전통적 소프트웨어 개발 방법론
-  전통적 구조적 소프트웨어 개발 방법론을 다룸
-  프로젝트 관리, 분석, 설계, 구현, 검사, 유지보수 등 단계를 소개함
- (중요) 전통적 방법론에서 1과 2로 배우는 프로젝트 관리, 구조적 방법론, 객체 지향적 방법론, 유지보수를 강조함
-  분석, 설계, 구현, 검사, 유지보수의 단계적 접근법을 설명함
-  문제 풀이와 마찬가지로 각 단계별 핵심 포인트를 암기하는 것이 중요함

2. 프로그래밍과 언어의 구현 방법

2-1. 프로그래밍과 구현의 이해
-  프로그래밍은 적절한 컴퓨터 언어를 선정하여 프로그램으로 옮기는 과정임
- (중요) 구현은 설계된 설계명세서를 기반으로 모듈 단위로 설계하고, 코딩하는 단계임
-  테스트는 만드는 과정에서, 디버깅과 단위 테스트가 독립적으로 이루어져야 함
-  코딩의 기본 원칙은 설계를 원칙으로 해야 하며, 간단명료하게 해야 함
- (중요) 테스트는 없어야 하며, 단위 테스트까지가 구현 단계임

2-2. 구조적 프로그래밍의 특징
-  구조적 프로그래밍은 복잡성을 줄이고, 분기 없이 코딩하며, 모듈 단위로 작성함
-  하향식 프레임 작성, 순차, 반복, 선택 구조로 제어하며, 단일 입구와 단일 출구 구조로 작성함
- (중요) 프레임은 입력 단일 입구로 들어와 처리되어 단일 출구로 나가도록 작성함
-  목표는 프로그래밍 언어를 선택하는 것임

2-3. 프로그래밍 언어의 분류와 특징
-  프로그래밍 언어는 저급언어(머신 랭귀지), 중급언어(어셈블링), 고급언어(함수, 객체 지향)로 분류됨
-  저급언어는 번역이 필요 없으며, 중급언어는 번역이 필요, 고급언어는 번역 필요
-  프로그래밍 언어를 선택할 때는 업무에 맞는 언어를 선택해야 함
-  각 언어마다 특징이 있어, 프로그래밍 언어의 특징을 익혀야 함

3. 소프트웨어 개발과 검사 방법

3-1. 소프트웨어 개발과 객체 지향 언어
-  기계어를 짜는 사람 대신 객체 지향 언어를 사용함
- (중요) 객체 지향 언어는 고급 언어로 프로그램을 코딩함
-  웹 언어를 배워서 인터넷에서 프로그램을 짤 수 있음
-  프로그램은 소스 코드를 바탕으로 실행 가능한 형태로 만들어짐
-  소스 프로그램은 어셈블리나 컴파일러로 만들어짐

3-2. 소프트웨어 개발의 테스트 및 검사
-  소프트웨어 개발 후, 검사를 통해 오류를 찾아내야 함
-  검사는 화이트박스 검사와 블랙박스 검사로 나뉨
- (중요) 화이트박스 검사는 모듈 내부의 논리적 오류를 검사함
-  블랙박스 검사는 소프트웨어 외부의 기능 검사를 함
-  검사 방법에 따라 단위 검사, 통합 검사, 정당성 검사, 인수 검사, 시스템 검사로 나뉨

3-3. 검사 방법에 따른 분류
-  단위 검사는 모듈 검사를 포함함
-  통합 검사는 모듈들을 통합해서 전체 모듈을 검사함
-  정당성 검사는 사용자 요구와 소프트웨어의 일치 여부를 검사함
-  인수 검사는 사용자의 요구에 따라 소프트웨어를 검사함
-  시스템 검사는 소프트웨어가 전체적으로 작동하는지 검사함

4. 소프트웨어 개발과 유지보수

4-1. 소프트웨어 개발 과정
-  분석, 설계, 프로그래밍, 검사 등 소프트웨어 개발 과정을 거침
- (중요) 개발 과정에서 오류 수정, 기능 추가 등 개선 사항이 발생함
-  소프트웨어의 변환과 개선이 이루어지는 것이 중요함
-  시스템을 분석하고 설계하여 개발 구축 계약을 맺음
-  계약 후 유지보수 계약을 통해 실제 운영 환경에서 시스템을 적용함

4-2. 유지보수의 중요성
-  유지보수는 소프트웨어 개발 후 폐기 전까지 오류 수정과 기능 추가를 포함함
-  전체 소프트웨어 개발 과정에서 가장 많은 비용이 유지보수에 듬
-  유지보수는 수정 유지보수, 완전 유지보수, 예방 유지보수로 나뉨
-  수정 유지보수는 오류 수정, 완전 유지보수는 완성도를 높임
-  예방 유지보수는 미리 예측하여 오류를 줄이는 방법임

4-3. 객체 지향적 방법론
-  전통적 소프트웨어 개발 방법론은 구조적 측면에서 분석, 설계, 구현, 유지보수를 다룸
-  객체 지향적 방법론은 분석, 설계, 구현, 유지보수의 측면에서 객체 지향적 접근법을 취함
-  유지보수 측면에서 객체 지향적 방법론은 수정, 예방, 완전 유지보수를 다룸
- (중요) 유지보수는 부작용을 줄이고, 프로그램의 변환과 개선을 위한 중요한 과정임

화자 1
00:12
한국에 계시는 우리 MTM 생방송 안방 가족 여러분 오늘 또 뜨거운 가슴으로 환상적인 수업을 함께 하겠습니다. 아 좋아요. 병재 손자 좋아요. 어때 드디어 좋습니다. 자 현재 우리가 소프트웨어 공학 드디어 정보처리 기사에 마지막 감옥 마지막 쪽으로 달려가고 있죠. 그죠 여러분 열심히 하고요. 계속해서 마지막까지 화이팅 합시다. 그죠 해서 자 현재 우리가 소프트웨어 공학 이 소프트웨어 공학은 우리 기사 학생들은 소프트웨어 공학이고 산업기사는 시스템 분석과 설계제 특히 우리 기사 학생들은 이 과목 듣고 시스템 무슨 설계만 싹 들으면은 산업기사까지 응시하라 했겠죠. 그죠 이왕이면 자격증 2개 알겠나 또 뭐 가산점도 똑같고요.

화자 1
01:04
어 자격증 2개 또 자격 수당도 두 개 나온다 해서 시험장에 가보면은 보통 어 오전에 기사 치고 오후에 산을 기사 친다 그죠 그러니까 바로 연속해서 시험을 응시할 수가 있습니다. 그죠 그래서 소프트웨어 공학 듣고 CDA 분석에 참 잠깐만 강의 듣고 우리 기사 학생들 반드시 산업기사와 동시에 응시해라 병대소인지 알겠죠. 자 그래서 우리가 현재 소프트웨어공학 특히 공부는 어떻게 한다. 소프트웨어 공학은 추상적인 과목이다. 그죠 아주 원론적인 과목이다. 보니까 중요한 단어들만 탁 엑기스 잡아가지고, 가슴에 와닿는 게 답이다. 암기 길게 암기할 필요 없다. 중요한 핵심 단어들만 딱딱 알고 제목 정도만 현재 우리가 교재가 잘 되어 있습니다. 제목 정도만 다 알아도 만점 모일 수 있는 강의 특히 제이제이치가 수천 번 전쟁을 쳤죠 실무 프로젝트를 했는 살아있는 강의를 듣고 있다라는 거 좋습니다. 자 좋아요.

화자 1
02:01
자 오늘 들어가기 전에 이제까지 했는 걸 좀 정리를 할까 그렇죠. 오늘날 소프트웨어 라이프 사이 소프트웨어는 어떤 생명주기를 가지고 있나 우리 인간하고 똑같죠 탄생해부터 죽을 때까지 소프트웨어가 움직이는 걸 소프트웨어의 나이폴 사이클인데 그게 이 소프트웨어 탄생을 위해서 뭐 한다. 제일 먼저 우리 업무를 전산화 해야 할 소프트웨어 해야 할 업무를 분석을 낮에 정리함 하고 넘어가자 분석 애널리시스 그죠 분석가를 엘라리스트 어낼리시스터라고 이야기합니다. 자 그래서 분석하는 과정에 그냥 말로 분석하나 분석 도구가 있죠. 분석 도구가 있더라 분석도구 어떤 게 있었나 그죠 DFD 데이타 플로우 다이어 그럼 출제가 많이 되죠.

화자 1
02:54
DD 데이타 사전 그다음에 소단위 명세서 미니스펙 소단위명세서 또 여러분들 잠깐 실제 언급은 안 했습니다만 우리가 DBS 했기 때문에 ERD NTT 릴레이션 다이어그램 개체 관계도 그다음에 상태 STD 도 있어요. 상태 전이도 상태의 전이도 그죠 상태 전이도 요거는 우리가 DBS 다 했기 때문에 안 했다. 개체 관계도 그죠 그 개체와 개체의 속성과 개체와의 관계를 도표현해 나는 거 소단위 명세서 그죠 소단위 명세서 자료 사전 뭐 안 써도 아니죠. 자료사전 자료 사제사 그다음에 자료 흐름도 자료 흐름도 흐름도 요 5가지가 분석 과정 분석 단계에서 어 요런 5가지 도구를 가지고 업무를 분석한다. 그죠 아 그래서 분석 단계의 산출물이제 그래서 그렇죠.

화자 1
03:52
이 분석도구를 다른 말로 또 뭐야? 요구 우리가 현재 개발할 시스템 소프트웨어의 요구를 명세화했는가 요구명세서 또는 분석명세서라고 하잖아. 자 이런 도구를 가지고 우리가 또 뭐 했노 그 다음 단계 설계를 했죠. 설계를 예 설계를 합니다. 자 이 설계에는 여러분 또 뭐 있더노 길게 할까 현재 어디까지 봤나 분석까지 봤고 오늘 설계까지 다 했죠. 우리가 설계 자 이 설계 도구는 뭐가 있습니까? 설계도구 종합 정리함 해준다. 이 설계도구는 크게 설계 기법에는 상향식 도구가 있고 상향식 설계를 어떻게 한다.

화자 1
04:35
밑에서부터 소 단위 모조리 소 단위부터 설계를 해서 위로 통합설계하는 걸 상향식 설계를 하지 이 상향식 설계 다른 말로 추상화죠 추상화 설계라 하고 또는 개념화 다 같은 말이다. 개념화 일반화 전체화 다 같은 말이죠. 이런 게 있고 그다음에 하향식 설계도구가 있죠. 하향식 하향식은 뭐고 큰 데스 이래 큰 데서 큰 놈을 세분화시키죠 세분화 디바이덴 꽝커 그렇죠. 이렇게 하향식이죠. 그래서 이거는 세분화 구체화 다 같은 말이다. 이런 말에 현혹되지 마라는 겁니다. 구체화 상세화 중요한 건 뭐다 모듈화죠 모듈화 실은 이 모듈화는 하향식인데 아주 중요하기 때문에 따로 빼서 공부를 했잖아요. 그래서 지난 시간에 이 모듈에 대해서 아주 정리를 했죠.

화자 1
05:32
모듈 모듈의 응집도가 강하고 모듈 간의 결합도가 강한 모듈이 단위 프로그램이 우수하다 그래서 어 이 응집도와 결합도 또 공유도 제어도까지 정리를 다 했습니다. 그리고 이거 외에 또 설계 도구가 뭘 썼습니까? 히포 히포 그죠 계층군 하향식 설계도구 히프 와이죠. 하향식 설계도구 입출력 어 입력 프로세스 출력을 도표화하는 입력 기능 출력 기능 처리 기능을 도표화해내는 거 하향식이었죠. 하향식 도구고 역시 그리고 여기에는 또 종류가 뭐 있었습니까? 총괄도표 독식 목자 이런 게 있었죠. 또 그래서 하향식 설계 도구였고 그다음에 NS 차트가 있었죠. NS 차트 NS 차트가 있었습니다. NS 차트는요 바로 구조적 프로그램의 제어 구조가 순차 구조 반복 구조 선택 구조였잖아요.

화자 1
06:29
그죠 저 일반 일반적 프로그래밍에서는 보트문을 많이 썼는데 이 무조건 분기문 무조건 어 어 분기를 대신 뭐하나 순차 반복 선택을 하는 거잖아요. 그죠 그래서 이걸 도표해 놨는 게 NAS 차트란 말이야. 여기에 넣으면 순차 구조 그리고 선택 구조 반복 구조는 또 2가지가 있었죠. 2활 반복이 있었고, 리핏 언틸이 있었대요 그죠 2활 반복 2활 반복과 리핏 언틸 2와이 같은 경우는 문장 수행을 N번 한다면, 니피드 언틸은 M 플러스 1번 하겠죠. 그죠 요놈 구조가 있었고, 그다음에 요놈을 영어로 표현하는 PDL이 있었죠. PDL 요런 것들이 설계 도구였습니다. PDL은 뭐고 이 제어 구조 3개를 영어로 표현해 놨잖아요. 그죠 어 요런 거 지난 시간에 이렇게 했나 분석설계 이렇게 했습니다. 그리고 우리가 소프트웨어 이 개발 방법론은 크게 인제 뭐가 있더노 전통적 전통적으로 우리는 다른 말로 구조적이죠.

화자 1
07:27
구조적 구조적 소프트웨어 방법이 있고 뒤에 배울 객체적 객체 지향적 소프트웨어 방법이 있잖아요. 그죠 그래서 현재 전통적 구조적 소프트웨어 방법 1 2로 배우고 객체지향적 소프트웨어 개발방법도 1과 2로 배우고 그죠 고 앞전에 뭐다 프로젝트 관리 프로젝트 관리를 1과 2로 배웠고 맞나요? 현재 이런 식으로 우리가 진행을 하고 있습니다. 어디까지 왔노 바로 지난 시간 여기까지 했죠. 어디까지 분석 도구 공부를 다 했고 그리고 설계도구를 공부를 됐습니다. 만나 병태순자 그리고 오늘 뭐 분석 설계 끝났으니까 구현 구현이 쉽죠 코딩하고 그 다음에 검사하고 어디까지 유지보수 메인터넌스 요 3단계를 오늘 배우는 거 아냐 됐나 그래서 강의 다 듣고 난 뒤에 1편의 드라마처럼 분석해서 설계 구형 검사 유지보수를 쫙 이 그림 그리면 이게 바로 문제 아니야.

화자 1
08:26
되겠나 좋습니다. 예예 경제수전자 잘 되나 좋아요. 자 그러면은 지난 시간까지 분석과 분석과 설계를 했고 오늘은 이제 전통적 소프트웨어 개발 방법론에 이제 뭐 구현해 들어가 보자 구현 예 자 소프트웨어 개발 방법 하는 거는 고전 전통적 구조적 방법이 있고 객체 지향적 있죠. 현재 우리는 구조적 방법을 배우고 있다. 구조적 에 구조적 프로그래밍 구현 자 이 구현은 뭐 여러분 말 그대로 임플리먼트 구현 다른 말로 프로그램 적당한 컴퓨터 언어를 선정해서 프로그램으로 옮기는 과정 프로그래밍 또는 코드화 만드는 과정 코딩 같은 말이죠. 자 임플리트 구현 프로그래밍 코딩 다 같은 말입니다. 또 너무 작게는 개발이라 해야죠 개발 개발 같은 말이죠.

화자 1
09:20
자 설계 단계에서 설계된 설계명세서가 아마 그런 거였죠 설계명세서 설계도구들 뭐 있었습니까? 상향식 하향식 그렇죠. 그리고 모듈 두 모듈설계를 주로 많이 하고 히포 에너지 차트 PDL 이런 게 맞게 코딩하는 단계 설계를 보고 코딩하는 단계고 모듈 단위 코딩과 디버깅이 독립적으로 이루어지고 단위 테스트가 이루어지는 단계입니다. 구현단계에서도 만들면서도 요 테스트는 테스트 과정이 하는 게 아니고 만드는 과정에서 하는 거죠. 그런 과정에서 하는 그러니까 단위 테스트까지가 이루어지는 단계가 구현단계다 수정 또 만들면서 수정하죠. 주로 코딩 디버깅 단위 테스팅 그죠 이 구현단계는 실제 코딩 코딩하면서 잘못된 거는 또 뭐 해야 되나 수정 작업을 벌레를 죽이는 작업 해 가지고 디버깅이라 하고 그죠 그리고 또는 약간의 테스트를 해야 되죠. 맞나 안 맞나 이걸 테스팅 그죠 단위 테스팅 단위 테스팅까지가 실험 구현 단계다 이 말입니다. 그렇죠.

화자 1
10:19
자 코딩의 기본 원칙은 너무나 쉽다 설계를 원칙으로 해야죠 설계도를 원칙으로 해라 아 될 수 있으면 간단명료하게 해라 그리고 디버깅이나 수정이나 또 테스팅이나 같은 말이죠. 없어야 되는 테스팅이 용이하도록 하라 무조건 심플하게 하라 이런 뜻입니다. 당연한 거고요. 이제 우리는 구조적 프로그래밍을 한번 보자 스트럭치도 프로그래밍한 거죠. 자 말 그대로 복잡성을 줄이고 일반적으로 일반적으로 하는 복잡성을 줄이고 분기 없이 분기 없다. 카는 게 뭡니까? 고투문 없애라 이 말입니다. 고 분기 없이 코딩하여 읽기 쉽게 작성하라 그리고 모듈 단위로 작성하는 게 좋다. 그래서 이 모듈 단위를 작성하는 걸 모듈러 프로그램 모듈화 하라 이 말이야. 모듈화 모듈화 하라 될 수 있으면은 독립적 단위 프로그램을 많이 만들어라 단위 프레임을 만들어 가면서 하라 이 단위 프레임을 나중에 통합하는 형태로 하라 이런 뜻이다. 이 말입니다.

화자 1
11:13
그리고 하향식 프로그래밍을 하라 그죠 상향식보다는 하향식 프레임 하는 게 구조적 프레임의 기법이 하향식이 좋다. 전체를 쪼개라 이 말입니다. 전체를 쪼개면서 하라 이걸 뭐 디바이드 앤 쿼크라죠 분할과 정복을 하라 이게 분할과 정보 이론에 입각해서 개발하라 이 말입니다. 분할과 정보이론 디바이드 앤 쿼커 하향식 그 다음에 무조건 분기 배제 즉 고트문 쓰지 말고 될 수 있으면 뭐다 바로 순차 반복 선택 구조 이 3가지 제어구조를 이용하라 이 말입니다. 이런 3가지 제어구조를 이용하는 게 구조적 프로그램이다. 이 말이고요. 또 반드시 단일 입구와 단일 출구 구조로 만들어라 이 말입니다. 중요한 이야기들이 다 구조적 프레이밍의 특징이죠. 복잡성을 줄이고 붕괴 없이 코딩하고 모듈 단위로 하고 하향식 프로그램을 하고 어 고투문보다는 순차 반복 선택 구조로 문장을 제어하라 이 말이고요. 단일 입구와 단일 출구를 갖는 구조로 하라 이 말입니다.

화자 1
12:08
프레임 짜는데 어 입력 단일 입구로 들어와서 처리돼 가지고 단일 출구로 갖는 형태로 작성하라 이 말입니다. 서론 볼용 결론으로 작성하라 이 말이지 가정 심플하게 하라 이 말입니다. 그래서 여러 개의 들어오는 입구가 있으면 안 되죠. 단일 입구와 단일 출구 구조 자 요 단어들 중요한 약이다. 부조리 프레임의 특징들 구조적 프레임은 이런 특징을 가지고 있어야 된다는 말씀이죠. 구조적 프로그램의 특징이 좋겠습니다. 특징 되나 자 요런 게 문제가 나오제 아 좋아요. 자 구조적 프레이밍은 요렇게 하라 이 말입니다. 구현은 그리고 뭐 요거는 이미 앞부분에서 이야기 다 했죠. 자 이런 거 구현 단계에선 여러분 보고 분석하고 설계하고 난 뒤에 프로그램 언어를 선택해야 되잖아. 이 구현은 말로 하나 컴퓨터가 알아듣는 언어를 시켜야 될까 아 앵감해 허폐 디끼요 그래서 프로그래밍 언어를 여러분들 선택을 해야 되겠죠.

화자 1
13:08
왜 프로그램 언어에 대해서 즉 프로그램 넘기지 않아야 되는 거예요. 그래서 운영체제에서 이야기를 다 했는 걸 다시 한번 부각시켰다 강의를 다 했기 때문에 살짝 넘어가자 오늘날 프로그래밍 언어 컴퓨터 언어라 하죠. 컴퓨터 랭귀지라고 그렇죠. 프로그래밍 랭귀지 컴퓨터 랭귀지 같은 말입니다. 어 프로그램에 작성하는 이용되는 언어 컴퓨터가 알아듣는 언어 그죠 자 이거는 크게 어떻게 나눈다 저급언어 로우 레벨 랭귀지 중급언어 미들 고급 언어로 나눴죠 저급언은 컴퓨터 머신랭귀지제 컴퓨터가 바로 알아들을 수 있는 1과 영어로만 만들어진 언어 기계어라고 합니다. 기계어 번역이 필요 없죠 지가 직접 알아들으니까 얘는 1과 0으로 1과 0으로 어 모든 프로그램 짤 때 1 110010 이런 식으로 프로그램 짜는 게 저급 언어죠 저급 언어 그러니까 뭐 1일 때는 5볼트 0일 때는 뭐 1볼트 우확 우와 불거지 운전하듯이 이 프로그램을 보고 초창기 컴퓨터는 움직였습니다.

화자 1
14:07
그래 버튼 식으로 하고 그래서 이걸 번역이 필요 없죠 직접 알아들어서 이런 언어 자 이게 어렵기 때문에 대가리 다 빠지기 때문에 중급 언어 나와 중급어는 어셈블링 된 거지 이놈을 모아모아서 특정 기호로 표현했다. 해 가지고 어셈블리 심블링이라 하고 이놈은 번역을 해야 되는데 뭐 알아 듣기 때문에 컴퓨터가 뭐 알아 듣기 때문에 번역기 번역 프로그램이 어셈블러가 있고 마크로 어셈블러가 있다고 이야기 다 했고 환상적으로 투 패스죠 투패서 생각나나 이야기 다 했고요. 고거보다는 이제 우리 인간이 자연에서 사용하는 은어라 해가지고 일명 내추럴 랭귀지라고도 하제 그런데 이거는 번역하는 방식에 따라서 통역방식의 임초 프리터 랭귀지가 있고 번역방식의 컴파이오 랭귀지가 있더라 이런 이야기 다 되었습니다. 자 통역 방식은 현재 고급 언어는 몇 종류 120여 종 이상 개발되어 있습니다. 어 컴퓨터 언어가 그중에서 통역 방식은 5가지밖에 없다. 했죠.

화자 1
15:05
그죠 베이직 언어 스노볼 리스프 에이피엘이다. 나머지는 전부 다 뭐 다 번역 방식이었는데. 이 교육 방식은 또 뭐다 절차적 언어와 구조적 언어와 객체 지향적 언어가 있다. 절차 지향적 언어가 있고 구조 지향적 언어가 있고 객체지향적 언어가 있더라 강의를 다 했기 때문에 가볍게 복습하는 마음으로 빨리 씨부르고 있다. 알겠나 어 그래서 절차지향적 언어를 이제 말 그대로 프레임 짤 때 아주 순차 절차적으로 탁 요놈 서학원한테요 요렇게 하는 거고요. 구조적 언어는 이런 식으로 하는 거고, 객체지향 언어를 또 오늘 배우겠죠. 객체 중심으로 하는 겁니다. 그죠 대표적인 게 포추란 고블이 있고 구조적 언어에서 파스칼시 객체 지향하는 비주얼 자바 뭐 스몰토 스몰토 뭐 이런 언어 그다음에 씨 뿔뿔 뭐 이런 언어들이 쭉 있습니다. 그래서 뭐 이런 어 이런 언어 중의 하나를 선택해 가지고 여러분들은 구현을 하되 코딩을 한다는 겁니다. 적당한 언어 업무 분석 설계에 맞는 그 업무에 맞는 언어를 선택해야 되죠.

화자 1
16:04
언어마다 또 특징이 다 있죠. 옛날에 포츠랑 같은 경우는 과학기술용입니다. 주로 수계산 숫자 처리를 전문으로 하는 언어고요. COVOL은 업무처리 사무처리용 언어거든. 그래서 이런 언어마다 조금 특징이 조금 있습니다. 예 그래서 그 언어의 특징을 익혀가지고 이제 프로그램을 개발하라 이 말이죠. 그럼 어느 언어 공부를 여러분이 해야 된다는 거죠. 요즘은 기계 기계어로 짜는 사람 없지 제일 규칙밖에는 없고 셈블리도 거의 안 짭니다. 거의 다가 고급 언어를 짠데 고급 언어 중에서도 요즘은 전부 다 뭐를 짠다 객체 지향 언어를 가지고 프로그램을 코딩합니다. 지금 여러분들이 뭐 베이직 배우고 포처럼 안배우고 코볼 배운 사람 없제 보통 컴퓨터를 배운다면 객체 지향 언어를 배우지 비주얼 언어나 요즘은 자바 이런 언어들 그런 언어들 웹 웹용 언어 인터넷에서 프로그램 잡을 수 있는 인터넷 언어를 많이 배운다 이거죠.

화자 1
16:56
그래서 당연한 이야기고 그 다음에 여러분들 뭐 INTERFLITER 랭귀지와 컴파일러 랭귀지는 이미 운영체제에서 해지 인터브리트 통역 방식이기 때문에 실행 속도는 늦고요. 번역 속도는 빠르고 요거는 되죠. 그 오브젝트 목적 코드가 인터프리트는 없죠 요 목적 코드가 생긴다. 문서가 없다는 겁니다. 바로바로 통역해 주기 때문에 이미 정리가 됐고 이 다 아는 거죠. 어셈블리 랭귀지나 내추럴 랭귀지로 만든 프로그램이 뭐다 소스 프로그램 다른 말로 소스 파일 소스 코드 소스 모듈 같은 말이죠. 이걸 어셈블레나 마크를 어셈블려나 인터프리트나 컴파일러가 번역을 해주죠 번역기가 이걸 합해서 뭐라 한다. 트랜스레이터 번역기라고 하잖아. 4가지 번역기 공부를 다 했다. 번역을 해주면은 이게 기계어로 일관형으로 된 언어로 나타나죠. 일관형으로 구성된 프로그램을 오버젝트 코드 오버젝트 프로그램 오버젝트 파일 오버젝트 뭐 같은 말을 쓰는 거죠.

화자 1
17:50
이걸 이제 뭐다 노드와 링크가 올로케이션 할당 연결 재배치 로딩 작업을 해서 실행 가능한 프로그램으로 만들어 준다는 거 맞지 그래서 이야기 너무나 잘합니다. 그래서 여러분들 성적 처리를 승점 씨로 했다. 그죠 소수 프로그램이고 이걸 컴파일러가 번역해 줬습니다. 폴란드 시나 터보시 번역해 주면 뭐가 생긴다. 승점 OBJ라는 목적 프로그램 목적 코드가 생기고 이게 노드와 링크에서 4가지 작업이 마치면 뭐가 생긴다. 실행 가능한 승점 XA가 생기죠 소스 프로그램 목적 프로그램 실행 프로그램 이 실행 프로그램을 클릭하든지 실행을 하면은 여러분 시킨 대로 컴퓨터는 움직여 주겠죠. 되겠나 이런 이야기들 이렇게 구현을 하고 이런 과정을 통해서 실행 프로그램을 만듭니다. 잘 만들면 판매를 하죠. 잘 만들면 패키지화 해서 팝니다. 아래 한글처럼 MS 오피스처럼 윈도우처럼 막 판매를 하는 거죠.

화자 1
18:45
알게나 저도 이런 프로그램을 만들어서 많이 파란 사람이고 지금은 프로젝트를 많이 개발하고 있는 여러분 야전사령관 육군본부에 앉아가지고, 그리고 말만 씨부리는 사람이 아니고 방금 전쟁터에서 전쟁 치고 있는 사람의 강의를 살아있는 강의를 듣고 있습니다. 할렐루야 알겠나 전쟁터에서 지금 방금 돌아와 있죠. 또 이 강의하고 또 전쟁 치러 가는 실전 어 사령관의 강의를 듣고 있는 거야. 어 육군본부에 앉아가 아무것도 모르고 씨 부리는 어 아무것도 모른 교수들 강의 듣는 게 아니고 알겠나 스승 잘 만났제 예 그런 이야기입니다. 자 IT 강국 좋은 이야기 자 그다음에 인제 구현 구현은 업무마다 다르게 지기 때문에 여기서 어떻게 이야기할 수가 없고요. 자 그다음에요. 검사 이제 구현을 코딩했단 말이에요. 코딩할 때 머리카락 다 빠지제 프로그래머여 점을 조심하라 그런 이야기를 했제 님이 남이 되고 예 그래서 구현을 하고 난 뒤에 이제 뭡니까?

화자 1
19:45
내가 개발을 프로그램 언어로 제대로 했는지 뭐 한다. 검사를 하는 거죠. 검사 테스트죠 테스트 테스트 테스팅 검사 단계 중요합니다. 검사는 말 그대로 소프트웨어 개발된 소프트웨어의 오류를 찾아내서 내기 위한 단계 그죠 예 그래서 이 검사 기법 검사하는 방법은 크게 검사 기법 방법에 따른 분류가 있고요. 검사단계에 따른 분류 검사 단계에 따른 분류 다른 분류를 좀 써줘야 좋겠습니다. 검사 방법에 따라서는 크게 요 제목만 알면 된다. 화이트박스 검사와 블랙박스 검사가 있다. 화이트박스 검사 일명 프로그램 검사다 프로그램 검사 즉 화이트박스 검사는 내가 짜는 프로그램 내부에 오류가 있나 없나를 검사하는 겁니다. 즉 소프트웨어 즉 프로그램의 내부 작업을 검사하는 것으로서 모듈 안에 작동을 검사한다.

화자 1
20:37
그러죠 모듈란에 단위 프로그램 안에 프로그램 안에 그죠 논리적 오류가 있나 논리적 경로냐 타이핀 잘못 쳤느냐 콧마를 점을 찍었느냐 뭐 이런 거죠. 이런 거 프로그램 검사를 하는 거죠. 프로그램 내부검사 이걸 화이트박스 검사고 블랙박스 검사는 동그라미 기능검사입니다. 기능 5리는 없는데 기능이 제대로 되나 안되나 어 1 플러스 이래 했으면 2가 나오나 1 플러스 1했는데 3 나오면 기능이 잘못됐네 그제 이렇게 기능 검사가 뭐다 블랙박스 검사 즉 소프트웨어 외적인 면을 검사하는 것은 각 기능이 완전히 작동되는가 검사하는 검사로서 일명 기능검사를 하는 거다 블랙박스 검사다 요것만 기능검사는 뭐 블랙박스 검사다 요것만 알면 되는 겁니다. 그래서 성능 오류다 또는 부정확한 기능 부정확한 기능 뭐요 부정확한 기능 인터페이스 오류 등의 검사하는 거다 그래서 자 블랙박스는 어 기능검사고 하여튼 그것만 알면 된다는 거죠.

화자 1
21:34
자 요거는 검사 방법에 따른 분류고요. 또 검사 단계에 따른 분류는 요렇게 요렇게 했습니다. 단위검사 단위검사 끝나고 통합검사 정당성 검사 시스템 검사다 그죠 자 요거 중요하다 자 단위 검사는 모듈 검사죠 단위검사는 일명 모듈 검사를 한다. 모듈 검사 여기 있을까? 모듈 검사라고도 합니다. 이제 단위 작업 독립적인 단위 모듈 야외재 모듈 소단위부터 검사하는 거요 소프트웨어 설계에서 최소단위 모듈을 모듈을 검사하는 거 모듈검사다 그래서 단위 검사고요. 통합검사는 뭐다 이런 모듈들을 통합해서 검사하는 거죠. 말 그대로 단위 검사를 끝이고 난 단위 검사 후 모듈을 결합시켜서 전체 모듈에 대한 검사하는 겁니다.

화자 1
22:21
그죠 그래서 통합검사에는 또 상향식 통합 검사가 있고 하향식 통합 검사가 있는데, 상향식 통합 검사는 여러분 드라이브를 이용한다는 것 드라이브하는 단어 몰라도 좋다. 하향식에는 스토브 스토브 스토브 스토브 스토브를 이용한다는 거 요 단어 말목이에요. 검사는 이제 단위 검사를 마치고 난 뒤에 그 모듈들을 통합해서 하는 검사다 이렇게 하면 되는 거고, 정당성 검사는 인수검사 다른 말로 적합검사라고도 합니다. 정당성 검사는 적합 또는 인수검사야 요놈은 뭐 사용자 동그래미 자 나는 자 검사 이상이 없는 거예요. 사용자한테 가서 의뢰자한테 개발자가 자 봐라 자 이거 다 만들었는데 니 봐라 하는데 사용자가 딱 보고 야 이거 마음에 안 든다. 내가 이래 만들어 달라 했지 왜 이래 만들었노 즉 사용자 허가를 받는 거예요. 사용자 검사라고 하는 거죠. 그게 정당성검사 인수검사 자 사용자 요구사항과 소프트웨어가 일치하는가를 검사하는 거죠.

화자 1
23:18
어 사용자 요구를 이렇게 했는데 니 요구대로 제대로 됐는가 이제 내한테 돈 준 사람 개발을 의뢰한 사람한테 검사받는 게 정당성 검사 인수검사 되겠나 그래서 에러가 없으면 인수해 가라 이 말입니다. 적합검사 또는 사용자 검사라고 하지 그죠 그리고 또 시스템 검사가 있는 거예요. 시스템 검사는 뭐다 종합검사제 그죠 모든 전체를 다 개발된 소프트웨어가 해당 컴퓨터에 완전히 수행되는지 전체적으로 검사하는 걸 종합검사 다른 말로 시스템 검사를 합니다. 되겠나 자 검사 단계에 따른 분류 단위검사 오케이 물률검사 통합검사 오케이 정당성 검사 인수검사 저 시스템 검사 이 단계를 거치면서 검사 검사가 완료되더라 이 말입니다. 검사 방법은 각 단계마다 화이트박스 검사가 있고 블랙박스 검사가 있다. 기능검사와 프레임 검사를 각 단계마다 적용시키는 거죠. 적용시키는 거죠. 적용시키는 겁니다. 적용시키는 겁니다. 되겠죠.

화자 1
24:13
단위검사 통합검사 정당성 검사 시스템 검사 단계별로 검사 단계별에 따라서 단계별로 한다는 겁니다. 됐나 쉽죠 핵심적인 이야기들 아 그렇구나 그래서 검사 과정에서 이런 걸 거쳐서 검사를 하는구나 이런 이야기예요. 그죠 좋습니다. 자 그 다음에 마지막으로, 이제 검사를 해 가지고 이상이 없으면은 이제 시스템 운영되제 이제 막 운영됩니다. 오프레이팅 되면서 이제 업무가 바뀔 때마다 다시 그 프레임 약간 약간 수정이 되고 그죠 운영 수정되는 걸 유지보수라 하죠. 그죠 운영 오퍼레이팅 되고 그 수정이 되는 걸 우리 메인터넌스 유지보수라고 하죠. 에 자 유지보수요 유지보수 자 유지보수는 소프트웨어 개발된 후 시작부터 폐기될 때까지 오류를 수정하거나 새로운 기능을 추구하고 운영되기 위한 소프트웨어를 변경하는 과정을 유지보수 과정이 하고 전체 소프트웨어 개발 과정에서 가장 많은 비용 동그라미 비용이 가장 많이 듭니다.

화자 1
25:13
자 이거 아주 중요한 이야기다 여러분 실제 컴퓨터는 우리 회사도 그래요. 크게 보면 우리는 전체 다 개발 과정 개발하고 개발 구축이라 하죠. 개발구축 그리고 운영이 있거든. 운영 에 그러면 이제 개발 구축과 운영이 운영 메인트넌스죠 유지보수에 있어요. 그니까 보통 계약을 이렇게 2번 합니다. 자 어떻게 국가에서 또는 어떤 기업체에서 우리 회사한테 우리 회사의 경영관리 시스템을 전산화해도 해서 의뢰를 하제 그럼 우리가 가서 분석하고 설계하고 프로그램 짜서 이제 납품을 했지 그러면 고때까지 계약을 그 개발 구축계약합니다. 하고 난 뒤에는 그 다음 계약이 뭐냐 하면은 운영계약 유지보수 계약을 합니다. 왜 당신의 회사의 업무가 늘 바뀔 때마다 우리 직원들이 늘 수정을 해줘야 되잖아요. 그럴 때 보면은 여러분 개발 구축 비용보다는 운영 운영이 우리 회사에 훨씬 좋은 겁니다. 왜 운영 비용이 훨씬 메리트가 있는 거거든. 그래서 우리 같은 경우 개발은 막 적자 보호해줍니다.

화자 1
26:11
해줘도 운영 비용에서 빼먹는 거예요. 1달에 얼마씩 달라 어 이게 좋은 거거든. 그래서 보통 우리 SI 업체 이런 프레임 소프트웨어를 전문으로 개발하는 업체를 SI 업체라 카거든. 시스템 통합업체라고 합니다. 에스아이 시스템 인터그레션 업체인데 이 에스아이 업체에서 그걸 잘해야 되는 거죠. 개발은 조금 안 남더라도 운영을 보고 유지보수 비용을 많이 책정을 하면 생산성이 있는 거죠. 그래서 나중에 여러분들 또 전산실 저처럼 IT 전문가가 됐을 때는 유지보수 쪽에 계약을 잘해야 되는 겁니다. 그리고 두 사람 모르고 개발비 많이 받고요. 유지보수 돈 적게 받아 가지고 완전히 적자 회사가 망합니다. 그래서 SI 업체가 망하는 게 이런 아주 간단한 원리를 모르기 때문에 말이 망해요. 우선 목돈 받을라고 개발비 많이 받고 나왔는데 유지보수 공짜로 해줄게 했다가 쫄딱 망하는 업체가 했다. 그죠 왜 비용은 여기서 많이 들어가거든.

화자 1
27:05
이해되나 그래서 유지보수가 굉장히 비용이 많이 들어간다는 거 이거 중요한 이야기고 또 유지보수는 크게 수정유지 보수 수정 유지 보수가 있고요. 실제 수정 종류만 하면 됩니다. 적응 유지보수 완전 유지보수 예방유지 보수가 있다는 거죠. 알겠죠. 유지보수는 수정 오케이 적응 오케이 완전 오케이 예방 좋습니다. 그죠 자 유지보수를 할 때 생기는 에러 이거 부작용이라 하죠. 부작용은 코딩 부작용 자료 부작용 문서와 부작용이 있다는 거 요것도 제목 정도 말 못했다. 코딩 잘못해서 유지보수 안 되는 거 있고요. 그럼 데이터가 잘못돼 가지고 안 되는 경우가 있고 문서화가 잘못돼 가지고 개판되는 경우가 있고 문서화 굉장히 중요합니다. 어 문서화 자 외계인 코드는 뭐냐면 에어라인 코드는 이게 뭐냐 하면 문서화를 잘못해서 발생시킨 게 문서화 이 뭐냐 아주 오래되어 유지보수 작업이 어려운 프로그램 코드를 외계인 코드 즉 요거 이 외계인 코드의 방지책은 뭡니까?

화자 1
28:02
프로그램 내에 문서화를 철저히 해두면 된다는 거죠. 자 외계인 코드는 뭐냐 하면 아주 옛날에 개발돼 가지고 개발돼 가지고 이거는 손도 못 대는 거 유지보수를 할 수 없는 이런 코드 소속 프로그램을 외계인 코드를 하거든. 그러면 이런 외계인 코드는 문서화가 안 돼 있는 거예요. 그럼 외계인 코드를 없앨려카면 뭐냐 10년 전에 프로그램에도 문서가 잘 돼 있으면은 그 문서를 보고 충분히 유지보수를 할 수 있다는 거거든. 그래서 문서화의 중요성을 강조하는 겁니다. 문서화 알겠나 항상 매뉴얼 여러분 그렇잖아요. 이 문서화가 굉장히 중요하거든. 매뉴얼이 있으면 설명이 필요 없잖아. 모든 하드웨어 노트북 같은 거 사도 매뉴얼 다 있죠. 우리 소프트웨어도 개발하고 난 뒤에 문서를 딱 만들어주거든. 매뉴얼을 다 줍니다. 그럼 매뉴얼 주면요 수정 유지보수도 좋고 사용하기도 좋고 그런 말이죠. 이 매뉴얼이 없으면 손도 못 대는 코드 이걸 외계인 코드라 한다는 겁니다.

화자 1
28:53
이해되나 아 자 여러분들 자 인제 서서히 그림이 만들어지죠 우리가 이제 아무것도 몰랐는데 소프트웨어 개발한 단계 분석 과정 이야기하고 했고 설계하는 과정 이야기했고 구현하는 과정 이야기했고 검사하는 거 이야기했고 유지보수 하는 이야기 소프트웨어인 라이프 사이클에 입각해서 공부를 딱딱 했습니다. 시험 뭐 나오는지 말아죠 분석도구 설계도구 구현 검사 방법 유지보수 이게 문제가 나오는 거예요. 자 그런데 방금 봤는 것들은 전부 다 뭐다 전통적 구조적 방법이죠. 구조적 구조적 이제 남아있는 게 뭡니까? 이런 것들을 이제 신개념 미래적인 개념 객체적 객체 지향 지향적으로는 객체 지향적 방법론은 어떻게 분석하고 설계하고 구현하고 검사하고 유지보수 보는지 요 측면에서 보는 거 이제까지 봤는 거는 뭐다 구조적 측면에서 봤고 즉 전통적 측면에서 봤다. 이 말이야. 전통적 소프트웨어 개발 측면에서 봤고 지금부터는 물어보죠.

화자 1
29:52
자 객체 지향적 측면에서 한번 시부려 보자 이런 이야기다는 말씀입니다. 자 유지보수 다음 과정 있습니까? 예 함 보죠. 없죠 좋습니다. 자 요렇게 해서 전통적 소프트웨어 개발 방법론 구조적 소프트웨어 개발 방법론 분석에서 구현까지 유지보수까지 환상적으로 정의를 했습니다. 자 오늘 또 생중계 생방송 고생하셨고요.

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

https://youtu.be/rXKI-Q1nSkI



1. 소프트웨어 개발방법론과 업무분석 도구 이해

1-1. 소프트웨어 개발방법론 개요
-  소프트웨어 공학은 생산적인 프로그램을 개발하는 방법론을 다룸
- (중요) 소프트웨어 개발방법론에는 전통적 방법론과 객체 지향적 방법론이 있음
-  전통적 방법론은 구조적 분석, 객체 지향적 방법론은 객체 지향적 개발로 볼 수 있음
-  본 강의에서는 전통적 방법론에 초점을 맞춤

1-2. 요구사항 분석과 분석 도구 이해
- (중요) 요구사항 분석은 업무를 전산해야 하는지, 소프트웨어로 개발해야 하는지 판단하는 과정임
-  분석 도구로 DFD, DD, 미니스펙이 사용됨
-  DFD는 데이터의 흐름을 추정하며, 화살표로 변천 과정과 기능을 표현함
-  이때, 화살표, 저장소, 단말기, 입력, 출력 각각의 요소가 주요 업무의 흐름을 나타냄

1-3. 업무분석 도구 - DFD
-  DFD는 업무의 흐름을 도식화한 것으로, 프로세스, 자료 흐름, 저장소, 단말기, 입력, 출력의 6가지 요소로 구성됨
-  각 요소는 업무의 변천 과정을 표현하며, 이를 관리하는 방법을 이해하는 데 중요함
- (중요) DFD를 통해 복잡한 업무 흐름을 한눈에 파악할 수 있음
-  결과적으로, DFD는 업무분석을 위한 도구로, 소프트웨어 개발에서 필수적인 도구임

2. 소프트웨어 설계

2-1. 업무 분석 도구 이해
-  DFD, DD, 미니스펙을 업무 분석 도구로 사용함
-  DFD는 개체와 관계 속성, 관계를 정의한 도표로, 같은 개념으로 간주됨
-  DD는 자료 흐름에 대한 자세한 정보를 기록한 스펙 명세서로, 메타데이터로 간주될 수 있음
-  메타데이터는 데이터의 정보를 담고 있는 데이터임
-  시스템 카탈로그, 데이터 디렉토리 등 데이터 사전을 저장하는 곳으로, 데이터의 정보를 담고 있는 데이터가 메타데이터임

2-2. 소프트웨어 설계 방법론
-  소프트웨어 설계 과정은 계획과 상세 설계로 나뉨
-  상세 설계는 코드, 아이오, 파일, 프로세스 설계로 나뉨
-  소프트웨어 공학은 비용, 컴퓨터 구조, 운영 체제, 데이터 통신보다 추상적이고 통념적인 설계 방법론임
-  소프트웨어 공학은 구조적 설계 기법으로, DFD와 미니스펙을 기반으로 함
- (중요) 구조적 설계 기법은 자료 흐름을 중심으로 설계하는 방법론으로, DFD를 통해 분석이 가능함

2-3. 설계의 종류와 특징
-  시스템 소프트웨어 설계의 종류는 상향식과 하향식이 있음
-  상향식 설계는 시스템을 추상화하고 일반화하는 과정으로, 시스템의 추상화 개념화를 의미함
-  상향식 설계는 개발할 시스템 소프트웨어를 기반으로 하는 설계 방법론임
-  하향식 설계는 개발하려는 시스템에 적용할 방법론을 기반으로 하는 설계 방법론임
-  하향식 설계는 시스템의 상세 기능을 분리하여 개발하는 방식임

3. 소프트웨어와 시스템

3-1. 소프트웨어와 시스템
-  하드웨어와 소프트웨어의 결합이 컴퓨터 시스템을 이룸
-  소프트웨어는 논리적 시스템을, 하드웨어는 물리적 시스템을 의미함
-  소프트웨어는 다양한 프로그램으로 구성되며, 이는 여러 단위 프로그램으로도 불림
-  소프트웨어 단위를 모듈이라 부름
-  독립된 단위 프로그램을 모듈이라 정의함

3-2. 소프트웨어 설계 방법
-  소프트웨어 설계 방법에는 상향식과 하향식 설계가 있음
-  상향식 설계는 작은 단위 프로그램을 세분화하고 통합하는 방식임
-  하향식 설계는 큰 프로젝트를 세분화하고 구체화하는 방식임
- (중요) 현재 구조적 설계에서 가장 널리 이용되는 기법은 모듈화임
-  모듈화는 하향식 설계의 한 기법으로, 큰 프로젝트를 작은 문제로 분할하여 해결함

3-3. 모듈의 중요성
-  모듈은 큰 소프트웨어를 작은 시스템으로 분할하고 모듈 단위로 개발하는 것임
-  모듈은 독립된 단위 프로그램으로, 결합도가 낮아야 함
-  모듈 단위로 개발할 때, 모듈의 응집도를 높이고 결합도를 낮춰야 함
-  모듈의 응집도는 모듈 안의 구성 요소 간의 관계로, 이 관계가 밀수록 높을수록 좋음
-  종속성이 많으면 에러 발생 가능성이 높아지므로, 모듈의 독립성이 중요함

4. 소프트웨어 개발 및 모듈 분석 기법

4-1. 소프트웨어 개발의 응집도와 결합도
-  응집도는 기능적 응집도, 기 순차적 응집도, 순 기순 그 다음에 통신적 응집도 순으로 등급이 높아짐
- (중요) 결합도는 서로 다른 모듈 간의 상호 의존도와 상호 의존성을 측정
-  결합도의 강약에 따라 모듈의 독립성이 높아짐
-  기능적 응집도와 결합도가 가장 높을수록 좋은 모듈을 만들 수 있음

4-2. 모듈의 공유도와 제어도
-  공유도는 상위 모듈 수를, 제어도는 하위 모듈 수를 의미
-  공유도가 많을수록 모듈의 독립성이 높아짐
-  제어도는 모듈이 제어하는 모듈의 수를 의미
-  제어도가 높을수록 모듈의 독립성이 높아짐

4-3. 소프트웨어 설계 기법
-  히포, IPO, PDL 등 다양한 분석 도구를 사용해 소프트웨어 설계
-  히포는 하향식 소프트웨어 개발 도구로, 구성, 도식, 목차 등을 포함
- (중요) IPO는 시스템 소프트웨어 3요소를 나타내는 도구
-  PDL은 구조적 프로그래밍에서 사용하는 논리 표현 도표

5. 소프트웨어 설계

5-1. 소프트웨어 설계의 분석
-  소프트웨어 개발의 과정은 분석, 설계, 구현, 유지보수로 구성됨
- (중요) 소프트웨어 분석은 문제의 정의, 요구 사항 파악, 데이터 모델링으로 이어짐
- (중요) 문제의 해결책을 찾기 위해 데이터 수집, 관계 분석, 유사 관계 찾기 등이 포함됨
-  분석 결과를 바탕으로 한 설계가 소프트웨어 개발의 핵심임
-  설계는 문제 해결에 필요한 구체적인 사항들을 문서화하는 과정임

5-2. 설계 도구와 방법론
- (중요) 전통적 소프트웨어 개발 방법론에서 설계 도구는 DFD, 상향식, 하향식 등이 있음
- (중요) 히포엔 디DL은 프로그램 디스크립션 기법으로 구조적 프레임워크를 제공함
-  구조적 프레임워크는 도식이 아닌 영문자로 표현하는 방식임
- (중요) 구조적 설계 기법은 의사 코드 또는 구조적 영어로도 불림
-  객체 지향 분야에서는 분석과 설계, 구현, 유지보수를 통해 소프트웨어 공학을 접근함

5-3. 설계 사례와 유지보수
-  DFD와 상향식, 하향식 설계가 소프트웨어 개발에 활용됨
- (중요) 구조적 설계 기법은 전통적 소프트웨어 개발 방법론에서 중요한 도구임
-  분석 도구로는 DFD, 설계 도구로는 히포엔 디DL이 있음
-  유지보수는 전통적 소프트웨어 개발 방법론과 객체 지향 분야에서 각각 다름
-  소프트웨어 공학의 핵심은 문제 해결과 유지보수에 있음

화자 1
00:10
자 전국에 계시는 우리 MTM 생방송 안방 가족 여러분 계속해서 뜨거운 감동의 수업을 함께 하겠습니다. 좋습니다. 이렇게 밥 먹어라잉 손자 웃어요. 허허 좋습니다. 자 현재 우리가 소프트웨어 공학 자 이런 거는 가볍게 만점을 물어야 되겠죠. 그래서 소프트웨어 공학의 개요 그다음에 이제 우리가 어 소프트웨어에서 프로젝트 관리를 1~2편으로 나눠서 프로젝트 관리를 공학 측면에서 어떻게 하는지 가볍게 봤죠 그렇죠. 자 이제 이제 이 개발 방법론 소프트웨어를 이 소프트웨어 공학은 생산적인 프로그램을 개발하는 방법론을 배우는 거다 그죠 그래서 소프트웨어 개발방법론에 들어갑니다. 그죠 그래서 이 소프트웨어 개발방법론은 전통적인 방법이 있고 객체 제한적인 방법이 있어요.

화자 1
01:04
그죠 전통적인 개발 방법론이 있고 객체 지향적인 개발방법론이 있더라 됐습니까? 그래서 자 우선은 전통적 개발방법 전형적 고전적 개발방법론부터 보자 이 말이야. 그죠 출제도 많이 됩니다. 여기서 자 전통적 소프트웨어 개발 방법론 2편으로 할게요 자 우리가 이제 소프트웨어 개발의 방법을 다시 이야기하면은 이 소프트웨어를 개발하는 방법론의 소프트웨어 공학 측면에서 보면요 방법론에는 크게 전통적 전통적 이 고전적 또는 뭐 전능적 이건데 이 전통적 개발해봐 전통적을 다른 말로 우리는 구조적이라 합니다. 스트락처 등 구조적 이게 더 중요한 말이죠.

화자 1
01:49
구조적 스트럭처도 개발 방법 전통적 구조적 방법이 있고 그다음에 객체적 객체 객체죠 객체 오브처럼 객체 지향적 격체적 객체 지향적 개발 방법론이 있습니다. 그죠 그래서 요번 시간 이 구조적 방법론 즉 전통적인 방법은 1과 2로써 출제 빈도가 높고 객체지향적 12 요렇게 우리가 할게요 알겠습니까? 해서 2군데 다 출제 빈도가 아마 가장 높다 이 말입니다. 그래서 이 전통적 소프트웨어 개발 방법을 우리는 다른 말로 구조적 소프트웨어 개발방법이라 한다. 그제 그러니까 우리 앞 시간에 배웠죠 그죠 아 우선 요구사항을 분석하제 우선은 실제 좀 그래요.

화자 1
02:35
실제 이제 실무에서도 타당성 검토부터 하자 어떤 업무를 어떤 수행해야 할 거 업무 현재 전산해야 할 업무를 우리는 뭐라 하더노 프로젝트 프로젝트죠 그죠 이 프로젝트를 인제 하기 전에 타당성 검토부터 하잖아요. 그죠 검토를 한다. 이 업무를 전산해야 될지 안 될지 소프트웨어로 개발을 해야 될지 말아야 될지 시스템으로 만들어야 될지 말지 그죠 검토를 하면 타당성 검토를 하고 난 뒤에 그다음에 어 만들자. 이거 만들면 아주 생산적이다. 아주 이제 수작업하는 거보다 수작업하는 것보다 소프트웨어로 개발해서 운영하면은 생산성이 극대화되겠다. 판단이 되면 뭐다 분석 있죠. 분석 분석 그리고는 이제 설계 그리고 구현 검사 맞나요? 검사해 가지고 에러가 없으면 실무에 투입이 돼서 유지보수 단계를 거치면서 가동이 된다는 거죠.

화자 1
03:30
에러가 발생하면 다시 뭐다 에러가 발생하지 않는 경우 에러가 발생하면 다시 처음부터 돌아가라 그래서 에러를 수정하는 작업을 뭐다 벌레를 죽이는 작업 디버깅 이라 했잖아. 자 정리한다. 벌레를 다이 죽이는 작업 그래서 어 발생된 에러를 수정해주는 작업을 DEBOOK이라 한다. 그러죠 그래서 에라를 우리는 뭐라 한다. 벅이라 하죠. 벅 벌레가 발생했다. 요런 용어를 쓴다 했죠. 그래서 요런 단계를 거쳐 가지고 프로그램 개발이 되는데 요 개발 방법론도 크게 뭐 전통적인 방법이 있고 객체 지향적이 있고 전통적으로 우리는 뭐다 구조적 방법이 있다. 이 말입니다. 자 그러면은 이 전통적 소프트웨어 개발방법론 구조적 소프트웨어 개발의 방법론에 제일 먼저 분석 요구사항 분석 구조적 분석이자 분석은 어떻게 하는지 보자 이 말입니다. 되겠나 요게 핵심이제 분석입니다.

화자 1
04:25
요구사항 분석 단계 다른 말로 구조적 분석 STRECTURE ANALIS 그죠 ANALIS 고객 자 사용자 요구사항을 명확히 정의 분석하는 것이다. 당연한 거고, 요구 조건을 요구명세서로 기술해야 되겠죠. 그 분석을 그냥 말로 씨부리면 되나 분석한 걸 마지막 최종 이 분석 단계에서 최종 산출물이 뭐겠노 그 분석 명세서죠 요구명세서 요구 조건 명세서다 그죠 그래서 이 분석 단계에서 이용되는 도구가 뭐냐 즉 요구명세서는 뭐냐 하면 3가지 다 DFD DD 아 그다음에 미니 미니스펙입니다. 미니스펙 자 이 중요하다 자 요 3가지를 뭐다 바로 구조적 분석 도구라 합니다. 구조적 분석 도구 자 구조적 분석 도구다 그죠 또 다른 말로 요구 명세서입니다.

화자 1
05:21
요구명세서 자 분석 단계에서 주로 소프트웨어 공학 차원에서 뭐 DFD와 DD와 미니스펙 이 3가지 도구를 이용해서 내가 전산해야 할 업무를 분석한다니까 저 요구 조건을 명세화합니다. 오케이 요구조건 명세서 다른 말로 구조적 분석 도구를 한단 말이야. 자 이름 용어를 잘해야 돼 소프트웨어 공학 헷갈리는 게 어떤 어떤 책에는 요구 조건 명세서 어떤 책에는 용어명세서 어떤 책에는 구조적 분석도구 막 이러니까 헷갈리는 거예요. 알겠어요. 오케이 그러니까 이것만 알면 되는 거야. 시험에 구조적 전통적 소프트웨어 개발 방법론에서 많이 이용하는 구조적 분석 도구가 아닌 것 이래 나오거든. 알겠나 그래서 구조적 분석 도구로 3가지를 쓰는데 이 3가지에 대해서 알면 되는 겁니다.

화자 1
06:14
그죠 이 3가지 도구 이 3가지 툴을 이용해서 업무를 분석하거나 즉 분석 단계에서 사용하는구나 될라 순자야 웃어요. 병태야 요즘 이거 인제 안 쓸게 내 말이 유행어를 써야지 되겠습니까? 좋아요. 자 구조적 분석도구 즉 업무분석 단계에서 이제 업무를 분석하는 도구 즉 DFD DD 미니스펙 있다는 거 좋습니다. DFD는요 데이타 플로 다이어그램에서 가장 많이 씁니다. 자료 흐름도입니다. 자료 흐름도 다른 말로 버블차트라제 자료의 흐름을 데이터의 흐름 및 변천 과정을 변천 과정과 기능을 도형 중심으로 기술하는 방법이다. 그래서 여러분들 자 DFD의 구성 요소 출제가 많이 됩니다. DFD는 데이타 프로 다이아그램은 어떤 요소로 구성돼 있는가 이거 아니냐 그죠 그래서 요거 땡그림이요. 약간 마름모적인 땡그림 요건 프로세스입니다.

화자 1
07:13
요 프로세스 처리죠 처리 각종 처리하는 기호다 프로세스 자료 프로세스 처리고 그다음에 요 화살표는 흐름 흐름 흐름입니다. 그대로만 보면 돼요. 그다음에 저장소는 이렇게 2개 여기 저장소 데이터 저장소예요. 여기 2개 끊는 거 처리 주문을 저장하라 이 말입니다. 그다음 단말기 요거는 이제 입출력 장 단말기 입력 출력 의미하죠. 단말기 그래서 요 4가지 도구 실제 요 4가지 그림으로 모든 데이터의 흐름을 추정하자 되겠나 어 그러니까 예를 들면은 뭐 요거대로 하면 주문 확인 주문 확인하는 처리사항이 있다. 확인을 처리해야 된다. 그러면은 주문확인의 자료 흐름은요, 주문 요청서로 갑니다. 주문 요청서 실무에서도 좀 다루죠 주문 요청서 그리고 이게 인제 처리된 주문이 저장된다는 거지 저장소에 이래 놓으면 처리된 저장 주문은 저장 된다. 이 말입니다. 저장되고 그렇죠.

화자 1
08:13
그리고 인제 또 주문자한테 이제 뭐 이 주문자한테 최종 결과가 간다는 거죠. 주문자 응 자 시스템의 처리 과정 요기호다 말이에요. 요기요 마름모 기호 동그라미 자료의 흐름 화살표 자료 저장소 화살표 2개 줄 2개 외부 존재 라이오 이름 그죠 요런 게 요렇게 되는 이런 이런 그림들이 막 미스되겠죠. 어 이런 것들 혼합돼서 만들어지는 게 뭐야? DFD 다 이 말입니다. DFD 알겠나 업무 분석 업무를 이제 이런 이런 걸 전부 도식화 하는 거죠. 이 업무가 이렇게 이렇게 변해서 이렇게 가고 저렇게 해가고 이걸 전부 다 만류하는 게 아니고 방금 이 4개의 도형으로 탁 이렇게 하는 거예요. 아시겠습니까? 예 요게 바로 디에프디고요. 시험에 많이 나온다 DFD의 요 기호 요거 기호 이 프로세스 기호 요거요 자료 흐름기호 요놈 저장소 기호 요거는 아이오 단말기 기호 입출력 기호입니다.

화자 1
09:10
됐나 예 자 요거 정리하시면 되고 우리가 데이터베이스에서 여러분들 어 그거 배웠잖아. 어 ER 엔터티 릴레이션다 ERD 똑같은 거죠. ERD ERD도 또 업무 분석 도구로도 좀 이용됩니다. ERD는 데이터에 개체와 관계 속성과의 관계를 규명한 도표잖아요. 그죠 그래서 개체 속성 관계로 구분해 아 이제 어 개체 동그라미 어 개체 네모 속성 동그라미 어 생각나죠. 그래서 같은 개념이다. 이 말입니다. DFD였습니다. DFD 자 그다음에 DD는요 DATA DIG셔너리죠 DD는 자 DD 자료 흐름도에 있는 자료를 더 자세히 더 자세히 정의하고 기록한 스펙 명세서입니다. 명세서 그래서 이 자료 사전에 이 자료 사전을 또 다른 일종의 우리 메타데이터로 정했다.

화자 1
10:08
이건 앞세안 메타 데이터는 뭐고 메타 데이터 메타 데이터는 데이터에 대한 정보 데이터죠 데이타의 데이터제 데이타의 데이타냐 어 메타 데이터는 정보 데이터지 정보 데이터 어떤 어떤 데이터의 정보를 담고 있는 데이터가 메타데이터잖아. 데이타베이스에서 메타 데이터를 보관하는 테이블이 뭐고 시스템 카돌로고 다른 말로 또 데이터 디셔널이라 했잖아요. 생각나는 메타데이터를 메타 데이터를 기억하는 게 우리가 시스템 카돌로 또는 데이터 디셔너리 그때 또 데이타 사전 데이터 디셔너리 또는 데이터 디렉토리라고 이야기했죠. 그래서 메타 데이터를 저장하는 거죠. 메타 데이터를 저장하는 게 뭐다 데이터 디셔너리 또 데이터베이스에서는 이거 생각나죠. 시스템 카달로우 시스템 카달로 카탈로그 그다음에 또 데이타 디셔너리라고 했잖아요.

화자 1
11:07
데이타 딕셔너리 생각나나 데이터 사전 시스템 카달로우 데이터 디지털이 뭐 메타 데이터를 했죠. 메타 데이터는 뭐다 실제 데이터의 정보를 가지고 있는 데이터 어 그래서 우리가 카돌로 자동차를 살면은 자동차 카들로그 보면은 그 자동차에 대한 정보가 그 카달로그에 다 담겨져 있잖아요. 그죠 그래서 데이터 사전 그런 뜻이고 자 데이터의 사전 기호도 시험에 잘 나오죠. 이게 이꼴은 자료의 정의죠 요거 자료의 정의 기호고 요놈은 자료의 반복이고 자 요것만 하면 된다. 정의 반복 요건 오미션 생략이고 요놈은 연결이고 자료와 연결이고 요놈은 선택이 요 선택이죠. 에이 요거 비 있으면 선택의 선택이에요. 요거는 자료의 설명 주석 주석 주석입니다. 그래서 여러분들 기호만 알면 된다.

화자 1
11:54
요 기호들은 뭐 데이터 사전에 이용되는 기호다 자 자료의 정의하는 거고, 반복을 의미하는 거고, 생략을 의미하는 거고, 연결을 의미하는 거고, 선택이고 설명이고 주석이죠. 코멘트 그래서 데이타 사전에 기호 시험에 간혹 출제 많이 된다. 또 DFD의 기호 그죠 동그라미 화살표 평행선 저장소 그렇죠. 요거 반드시 알아놔야 됩니다. 업무 분석 도구 여러분들이 업무를 분석하는데 이런 걸 이용하고요. 가장 늘 이용되는 게 뭐 DFD죠 DFD 가지고 거의 다 업무의 흐름을 업무의 흐름을 분석을 다 하는 거예요. 실무에서 굉장히 복잡다잉 예 근데 내가 여기서는 기호만 가르쳐 왜 시험에는 기호만 나오니까 에 그렇죠. 그리고 또 이제 우리가 정보처리 실기에서도 따온 다룬다. 실기 강의를 환상적으로 해놨습니다.

화자 1
12:48
그래서 실기강의는 역시 필기 단과지만 내 강의만 보면 역시 빠져나올 수 없죠 모든 문제가 계속해서 적중이에요. 적중 거의 100프로 적중이다. 에 그래서 요거는 필기 듣고 바로 또 실기는 그대로 신청해서 들으면 됩니다. 알겠나 에 자 소단위 명세서요 미니스펙이라고 해 가지고 DFD 상의 처리 내용을 논리적 절차에 맞게 설명한 문서로써 프로세스 명세서라고도 합니다. 그죠 그래서 요놈 구조적 언어 의사결정표 디시즌 테이블이죠. 요거 디시즌 테이블 테이블 등을 이용해서 기술합니다. 디시저 의사결정표 에 의사 결정표 디시즌 테이블 등을 요거는 뭐 요렇게 말만 아니면 소단위 명세서 일명 프로세스 명세서를 한다. 자 그래서 중요한 건 업무 구조적 분석도구 업무분석도구 3가지 DFD의 기호 디디의 기호 소단위명세서 됐나 좋습니다. 좋아요.

화자 1
13:47
요렇게 정리하시면은 되겠다. 이 말이고요. 자 그다음에 이제 분석을 했으니까 설계 단계로 들어가야 될 거 아니냐 그죠 그러니까 전통적 개발 방법론 다른 말로 구조적 개발 방법론 그러니까 이름도 구조적 설계죠 설계 스트럭처 디자인 예 스트럭처 더 스트럭처 더 디자인 이슈 디자인 디자인 좋습니다. 자 소프트웨어 설계 과정은 여러분 잘 크게 계략설계와 상세설계로 나눈다 그죠 처음에 설계를 그냥 하는 게 아니라 전체 설계를 합니다. 계략설계 제너럴림 설계죠 제너럴 이제 그 디자인입니다. 요거 계량설계는 전체적인 설계도 전체 통합설계라 하지 전체 설계고 상세설계는 디테일이다.

화자 1
14:38
디테일 디테일 디자인 해가지고 아주 세 상세하게 하는 거 이렇게 크게 일반 통념적으로 크게 하고 그다음에 요 속에 작은 것들을 설계하는 걸 상세설계를 합니다. 에 그래서 고 우리 산업 기사는요 이 설계가 문제가 많이 나와 디테일 설계를 조금 또 물리적으로 나누면 코드설계 어 내가 처리할 데이터를 코드로 만드는 설계 그다음에 아이오설계 그죠 아이오설계 그다음에 파일설계 또 프로세스 설계 프로그램 또는 프로세스 설계 뭐 이런 식으로 분해됩니다. 그러니까 우리 소프트웨어 공학 기사에서는 이거보다는 이제 통념적이고 추상적인 이야기가 많이 나오고요. 우리가 산업 기사는 여러분 아주 조금 더 구체적으로 더 나와요. 알겠나 그러니까 소프트웨어 공학과 시스템 부수 설계는요 앞부분에 비용 컴퓨터 구조나 운영 체제 데이터베이스나 데이터 통신보다는 조금 더 추상적인 과목이다. 어떤 논리적인 프로그램 개발 방법론이니까.

화자 1
15:33
그렇지 그래서 여러분 암기하면 안 돼 내가 이게 인제 뭐 마을에서 나왔지 다 필요 없어요. 그죠 암기보다는 개념으로 중요한 단어만 탁 집어서 시험을 쳐야 됩니다. 그래서 왜 추상적인 학문이에요. 안구나 논리적인 소프트웨어를 이제 개발하는 방법론을 구현하니까 건물을 막 만들어내는 것보다는 보이지 않는 소프트웨어를 소프트웨어라는 건물을 짓는데 좀 추상적이다. 보니까 여러분들 아주 단어 위주로 공부를 해야 된다. 절대 암기하고 무슨 이렇게 서술식 그리고 이 소프트웨어 공학이나 실제 무슨 설계는 문제 풀어보면 말이 길어요. 다음 중 틀린 말인가 아닌 거 잘못 설명해 이렇게 지금 문제가 나와 이거 1234로 굉장히 길어 들어 딱 보고 단어 몇 개 가지고 집어내야 된다. 그죠 딱 보면 답이 나온다 그러니까 가장 빨리 시험칠 수 있는 게 소프트웨어 공학을 딱 보면 발음만 탁탁 나와요. 어 단어 단어 단어 되겠나 고렇게 공부하는 겁니다. 자 이런 구조적 설계 기법은 뭐고 자료 흐름 다른 말로 자료 흐름 중심설계 기법이죠.

화자 1
16:33
그죠 자료 흐름을 중에 구조적 분석 도구인 산출물인 DFD DD나 미니스펙 등을 보고 설계를 하기 때문에 DFD가 뭐고 자료 흐름 도표잖아요. 요걸 보고 설계를 하다보니까 요걸 다른 말로 자료 흐름 중심설계 기법이라 합니다. 이 구조적 설계 기법을 오케이 그래서 스펙이 준비된 이후에 맞아요. 이놈이 나오고 이걸 보고 설계한다는 거예요. 분석도구 DFD를 보고 요놈을 보고 설계 들어간다는 것 아닙니까 그런 이야기 자 이런 설계의 종류는 자 이런 시스템 소프트웨어를 설계하는 종류는 크게 상향식 설계와 하향식이 있습니다. 근데 실은 모듈도 모듈화도 모듈 모듈라이데이션 모듈화도 여기 포함되는데 중요하기 때문에 빼내는 거예요. 그죠 자 그래서 설계의 종류는 상향식 설계와 요걸 모주라가 있다는 거죠. 여기 뭐야?

화자 1
17:28
상향식 설계를 우리는 다른 말로 시스템의 추상화 개념화 일반화 다 같은 말입니다. 상향식 설계 상향식 설계는 어떻게 하노 자 상황에서 설계는 여러분들 내가 개발해야 할 시스템 소프트웨어가 있습니다. 소프트웨어 크죠 이 어 소프트웨어보다 더 큰 개념의 시스템이지 시스템 자 내가 이야기했째 오늘날 컴퓨터 하드웨어를 움직여주는 명령어 명령어들이 집합이 뭐고 프로그램이고 프로그램들을 총칭적으로 부르는 말이 뭐다 소프트웨어고 그죠 이 소프트웨어 중에 논리적인 소프트웨어가 뭐고 어 그 논리적인 아니 저 이 소프트웨어 다른 말 시스템으로 부를 수도 있죠. 논리적인 시스템을 우리는 소프트웨어라 하고 물리적인 시스템을 우리는 뭐다 하드웨어죠 하드웨어 그래서 오늘 컴퓨터는 물리적인 시스템인 하드웨어와 논리적인 시스템 소프트웨어가 결합이 돼야만이 우리 인간의 업무를 처리하는 컴퓨터 시스템이 되는 거 아니요. 근데 우리는 배우는 지금 논리적인 시스템인 소프트웨어를 배우고 있잖아. 맞나요?

화자 1
18:28
그럼 이 시스템 논리적인 시스템 소프트웨어는요 실제로 우리가 뭐 프로그램 개발하면은 회계관리 또 여러분들 아래한 것도 시스템이죠. 어 그니까 윈드우도 그렇고 이 시스템이 이제 아래한글 같은 것도 어떻게 되어 있나 여러분들 아리아 한글이라는 소프트웨어가 프로그램 하나가 이 안에 수많은 프로그램들이 돼 있죠. 이 안에 불러오기 프로그램 저장하기 복사하기 글자 모양 바꾸고 뭐 폰트만 수많은 프로그램들이 모여져 가지고 아래 한글이라는 프로그램이 만들어지잖아. 맞나 그래서 이 컨실 이 소프트웨어 밑에 요 단위 프로그램들을 우리는 뭐라 한다. 단위 프로그램이죠. 단위 단위 하나의 하나의 단위 프로그램이라고 해요. 단위 프로그램 또 단위 작업이랑 단위 작업 요 단위 프로그램을 우리는 뭐라 한다. 단위 프로그램에 단위 프로그램을 조금 가공해 버리면 이게 모듈이 됩니다. 모듈 모듈은 독립된 단위 프로그램이에요.

화자 1
19:26
독립된 단위 프로그램 모듈은요, 단위 프로그램이지만 독립이라는 개념이 들어갑니다. 독립된 단위 프로그램을 우리는 모듈이다. 이래 이야기하거든. 음 그래요. 그러니까 자 이런 프로그램을 이 소프트웨어를 설계하는데 여러분 봐봐요. 상향식 설계가 있고 뭐가 있다. 하향식 설계가 있어 자 이 개념만 알면 모든 문제 다 맞춘다 자 이게 원리입니다. 제이저치 만이 할 수 있는 강의예요. 자 이런 프로그램 아래안거리라는 시스템이 있는데, 이 아래안글 실험도 작은 단위 프로그램들이 모여 가지고 구성 요소들이 모여가지고 되잖아. 그렇지 이 아리안거리라는 소프트웨어를 개발하는 방법은 상향식이 있고요. 바텀업 상향식이 있고 하향식이 있다니까 상향식은 뭡니까? 전체를 밑에서부터 우러 추상화 이런 것들을 모아서 아래 한글이나 추상화 추상화 일반화 개념화 전체와 다 같은 말입니다.

화자 1
20:26
전체화 일반화 전체와 개념화 추상화 프로그램 개발을 그렇게 하는 거예요. 밑에서부터 개발해서 통합해서 나가는 거예요. 이런 걸 작은 데 작은 데서부터 작은 것들을 모아 모아 모아 가지고 통합해야 되는 과정을 상향식 설계고 이걸 뭐다 작은 것들을 작은 세분화 돼 있는 걸 추상화하는 거죠. 또는 일반적으로 만드는 거죠. 전체적으로 만드는 거죠. 개념적으로 만드는 거죠. 오케이 자 이런 말 헷갈리면 안 된다. 전체화 일반화 개념화 추상합니다. 되겠어요. 음 이에 반해서 하향식은 뭡니까? 하향식은 어떤 거고, 이 큰 놈을 큰 프로젝트를 쪼개자 구체화시키죠 구체화시키죠 하향식이니까. 구체화 세분화 상세화 시키는 겁니다.

화자 1
21:13
구체화 세분화 상세화라니까 그렇지 그래서 우리가 일정 관리에서도 뭡니까? 이 컴프로젝트의 일정을 다 잡기 힘드니까 이놈을 쪼개제 쪼개죠 이 쪼개는 작업이 뭐든 WBS잖아요. WBS 워커 브랙다운 스트락처 아닙니까 오케이 어 그래서 하향식 설계죠 하향식 설계 이 하향식 이제 설계인데 이 하향식 설계에서 좀 더 단위 프레임 위주로 만든 게 모쥬라입니다. 모듈 같은 개념이에요. 모쥬라 모듈 독립된 단위 프로그램 그래서 설계 이 소프트웨어를 설계하는 방법은 상향식과 하향식과 모듈화가 있는데, 가장 좋은 건 뭐다 모듈화입니다. 그래서 오늘날 이 구조적 설계에서 가장 늘 이용되는 기법은 뭐다 모듈 어 모듈라이제이션 모듈화 하는 거예요. 모듈화 되겠나 해서 여러분 개념을 잘 알아내야 되겠다.

화자 1
22:11
어 모듈화 하향식 설계에서 나오는 하나의 기법이죠. 에 자 모듈아입니다. 자 그래서 이 모쥬라에 대해서 공부하자는 거예요. 어 모쥬라 다 같은 말이라 헷갈리면 안 돼요. 오케이 자 이 모듈은 뭡니까? 기능 단위로 기능 단위가 모듈죠 모듈 단위로 세분화한 설계 방식 큼 큰 하나의 시스템을 아래 한글 시스템을요 아래 한글 문서 편집기 프로그램을 불러오기 프로그램 전 거작하기 프로그램 그렇지 그다음에 뭐 이런 거 여러 가지 있죠. 인제 요런 것들이 요게 단위 프로그램 단위 프로그램 모조리 모조리 모조리 모조리예요. 되겠나 복잡하고 큰 프로젝트를 문제를 단순하고 작은 문제로 분할하여 문제를 해결하는 방법이죠. 그래서 이걸 우리는 디바이딩 광크 분할과 정복입니다. 분할과 분할과 정복 이론입니다. 정복 이론이라 카제 요건 좀 어려운 이야기인데 학부 과정에선 잘 안 나오죠.

화자 1
23:07
그래서 참고로 요런 개념을 분할과 큰 프로그램을 분할해 가지고 정복해버리죠 분할 큰 거 한꺼번에 정복 뭐하고 큰 놈을 나눠가지고 잡아먹어 버린 거죠. 이제 내가 프로그램 개발하는 거예요. 큰 걸 소단위로 나눠서 단위 작업으로 한다는 게 뭐 분할과 정복이론 에 디바이데인 퀄커 정복이다. 이 말입니다. 꽝크 어~6에 뭐, 뭐 철자가 중요한 거 알죠 분할과 정복 이론 그죠 그래서 분할과 정복 이론을 가지고 뭐 모듈라 작업을 한다. 그런 이야기요 자 이제 모듈에 대해서 좀 더 들어가 봅니다. 반드시 모듈은 잘 알아야 된다. 모듈의 모듈화의 정의 큰 소프트웨어를 큰 시스템을 독립적인 동그래미 부분으로 분할하고 모듈 모듈 단위로 나누는 작업이죠. 작은 작업단위 소단위 또는 작은 작업 단위 작업 단위로 나누는 작업을 모듈하다 이렇게 하는 거죠.

화자 1
24:05
작업단위 이걸 우리 모듈이 한다는 것이 모듈 대개나 독립된 단위 프로그램 모듈의 정확한 뜻은 독립된 딴 데 딴 모듈 영향을 안 받는 혼자만의 어떤 기능을 가지고 있는 독립된 단위 프로그램 작업 프로그램입니다. 그죠 자 여러분 모듈의 독립성을 높이는 방법 즉 이게 뭐고 조모듈 군모듈 조우 모듈의 조건이죠. 군모듈 자 모듈 단위로 이제 프로그램을 개발하는데 모듈 철저히 해야 되나 엠오 디뉴 엘레이 너 있었던 거 좋으면 이왕이면 이제 모듈 자급은 뭐다 하향식 설계 기법 중에서 모듈라 작업을 하지 그러면 이 이 모듈 프로그램을 개발을 잘해야 돼요. 이 단위 프로그램을 이 소단위 프로그램 좋은 모듈 만드는 조건이 뭐야? 좋은 모듈 군 모듈의 조건 이거야. 중요합니다. 그 모듈의 응집도는 높이고 결합도는 낮췄습니다. 아주 중요하다 그래서 모듈의 응집도를 높이고 결합도를 낮춰버리면 이 모듈은 뭡니까? 독립 독립성이 추구됩니다.

화자 1
25:03
독립성 추구가 돼요. 독립성 독립이 좋은 겁니다. 여러분들 어 이 종속성 종속성이 좋지 않죠 종속성 그래서 모듈이 좋음 모듈은요, 독립적으로 놀아야 돼요. 독립적으로 놀고 이 독립된 모듈들이 모여서 시스템을 형성하는 큰 소프트웨어를 형성하는 게 따봉입니다. 종속적인 거는 많은 에러를 발생시킬 수 있죠. 그죠 그래서 독립성을 추구할라 카기보다 모듈의 응집도는 높이고 결합 또는 독립성 추구가 되는 모듈은 뭐다 좋은 모듈이다. 이 말이에요. 알겠나 그래서 그러면 응집도는 뭐냐 이 말이에요. 모듈 자 한 모듈 안에 한 프로그램 안에 한 모듈 안에 각각의 구성 요소들이 있을 거 변수 상수 여러 가지 요소들이 있을 거 아니야. 요소 간의 관련성입니다. 한 모듈 안의 관계죠 모듈 안에 한 모듈 안에 구성 요소들의 관계를 그 모듈에 뭐 응집도 일만큼 응집되어 있느냐 이 말이에요. 그 응집도의 종류는 반드시 알아놔야 됩니다.

화자 1
26:00
여러분 기능적 음집도 기 순차적 응집도 순 기순 그 다음에 통신적 응집도 통 절차적 응집도 절 통절 기순 통절 시간적 응집도 씨 논리적 응집도 논 우연적 응집도 우 반드시 순서 알아놔야 된다. 자 7개 1 2 3 4 5 6 7개의 응집도로 나눠져요 그중에서 가장 응집도가 강한 게 뭐다 기능적 응집도입니다. 가장 약한 게 뭐다 우연적 우연하게 결합되는 이 응집도가 약하잖아요. 우리 조직 안에서도 회사 안에서도 구성 요소인데 응집도가 쫙 강해야 그 회사는 성공을 합니다. 맞나 맞나 그거제 어 근데 기능적 응집도 이게 제일 좋은 거예요. 우연적 응집도는 약합니다. 밑으로 가면 갈수록 응집도는 약하죠. 그죠 알겠습니까? 그래서 응집도의 7가지 가장 높은 게 뭐다 결음이죠.

화자 1
26:55
그래서 순사를 우논 시절 통순기 귀순통절 신혼 후 이거 반드시 외워야 돼 이런 거는 손바닥에 적어가도 된다. 이런 거는 이런 거는 큰일이 아니야. 여러분들 왜 나는 원리를 다 하는데 뭐 이게 단순 암기잖아. 그래서 뭐 내가 다 아는 건데 살짝 적었다 이거는 큰일이 아니에요. 그런 거는 손바닥에 적어 가든지 마빡이에 적어 가든지 마빡이 상관없어요. 예, 응집도가 약한 거예요. 자 결합도는 뭐냐 하면은 결합도는 커플링 서로 다른 2모듈 간의 서로 다른 에이라는 모듈과 비라는 모듈 간의 관계입니다. 그죠 관계 우리가 상호 의존도 상호 영화성을 측정하는 게 결합도다 말아요. 이 결합도의 종류 이것도 역시 알아놔야 돼요. 내용결합도 그죠 공통결합도 제어결합도 외부결합도 스탬프 도장이죠. 스탬프 결합도 자료결합도입니다. 그죠 가장 강한 거는 내용으로 결합되어 있는 게 가장 강하단 말이야. 내용결합도 강하고 가장 약한 결합도는 자료 결합도입니다.

화자 1
27:55
알겠나 어 강약 강약 결합도가 약합니다. 그죠 그렇지 그러면 가장 좋은 모듈은 뭡니까? 응집도 중에 뭡니까? 기능적 응집도와 결합도 중에는 뭡니까? 자료결합도죠 자료결합도가 형성되면 가장 좋은 가장 굿 모듈이다. 이 말입니다. 알겠나 자 여러분 중요하다 모듈의 독립성을 높이는 방법 좋은 모듈 좋은 소프트웨어를 설계하는 거는 뭐다 그 모듈 간에 모듈 간의 응집도는 높이고요. 모듈 간의 결합도는 낮춰줘라 이 말입니다. 그러면 그 응집도의 종류 결합도의 종류가 이 정도였는데 가장 우수한 거는 기능적 응집도와 자료결합도가 결합이 되는 게 가장 뭐다 우수한 모듈을 만들어 내더라 그런 이야기다 알겠나 좋습니다. 반드시 시험에 나온다 여러분들이 모듈의 응집도 결합도 그죠 그래서 응집 또는 강하고 결합 또는 약해야만 되구요.

화자 1
28:52
그다음에 이거 외에도 또 모듈을 해석하는 게 또 있어요. 공유도 있습니다. 공유도 PENN 아웃이 있습니다. 잘 쓰지는 않는데 시험에 가끔 나올 수도 있다. 자 공유도는 뭐냐 하면 어떤 모듈 만약 E라는 모듈이 합시다. 어떤 E라는 모듈의 제가 호출하는 모듈의 수를 표시하는 거예요. 상위 모듈 수입니다. 현재 E라는 모듈의 공유도는 PANIN 값은 얼마냐 이렇게 물으면요 PANIN 얼마야 이놈은 뭐 이 상위 모듈 비 씨 디를 다 이렇게 공유를 하죠. B CD니까 PENIN이죠. PENIN 그러니까 PENIN은 뭐요 공유도는 3이죠. 3 제어도는 뭐예요? 저어도 제어도는 어떤 E가 호출되는 자 E가 호출되는 이거 페닌이고 이건 페닌 페닌 이렇게 되죠. 페닌 이놈 이제 제어하는 거 이 모듈이 제어하는 모듈 수입니다. 이 펜아웃이죠. 이건 펜아웃 펜아웃은 뭐다 제어도입니다. 이게 이가 제어하죠.

화자 1
29:49
제어하는 펜 아웃 제어하는 모듈 수니까 이걸 얼마 2죠 펜아웃은 E입니다. 펜아웃 E 알게나 그래서 여러분들 어떤 모듈의 공유도 어떤 모듈에 뭡니까? 제어도 달아 놓는 게 좋죠. 그래서 거 페닌은 페닌 페닌 페니는 상위 모듈 수를 의미하고 어떤 모듈의 펜아웃은 하위 모듈 수를 의미합니다. 되겠나 그래서 펜아웃에 연결된 이거 모듈 수를 또 다른 말로 제어폭이라 합니다. 제어폭 인제 저도의 제어 폭은 뭐다 바로 모듈 수입니다. 모듈수 연결된 모듈 수를 펜 아웃이 제어폭이고 제어폭이 보통 7 플러스 마이너스 2로 되는 게 가장 좋다. 이렇게 하거든. 참고로 어 한 모듈에 한 모듈을 적어갈 수 있는 개수가 7 플러스 마이너스 2니까 뭐 5개에서 9개가 가장 좋다. 이렇게 이야기를 합니다. 참고로 제어폭 이게 갑입니다. 7 플러스 마이너스니까 5개에서 9개 되겠죠.

화자 1
30:49
창고로 알아 놓으시고 자 요런 공유도 그러니까 공유도가 많다는 건 좋은 거예요. 그죠 내가 이 공유를 할 수 있는 게 많다는 것은 좋음 모듈입니다. 그래서 참고로 우리가 응집도 결합도 공유도 제어도 이놈들이 뭐 좋음 모듈을 만들어내는 척도다 이런 이야기요 되겠나요? 예 아주 중요한 이야기입니다. 예 이제 우리가 전통적 소프트웨어 개발 방법론에 이제 설계 분석과 이제 설계 기법이었죠. 설계 좋습니다. 자 뒤에 있나요? 아 예 좋습니다. 또 있네요. 자 방금 이 설계 분석과 설계 자 분석 도구는 다 정리하자 뭐 DFD가 있고 디디가 있고 뭐가 있노 미니 스펙이 있었죠. 에 좋아요.

화자 1
31:36
그죠 어 그리고 구조적 설계 우리가 예 구조적 설계 기법은 상향식 설계와 하향식 설계가 있고 가장 일반적인 설계가 뭐다 좋은 게 모듈화죠 모듈화 모듈이 설계 기법이데 그래서 이 모듈에 대해서 정리를 했잖아요. 그죠 이 모듈을 평가하는 척도는 뭐다 모듈의 응집도 모듈의 결합도 중요하다 유도 제어도 됐죠 자 그러면 이거 외에 바로 소프트웨어 설계하는 기법은 또 뭐 있냐 있다. 이 말이야. 히포 그리고 NS 차트 그다음에 PDL 요런 것들도 있더라 자 히포는 뭐냐 하면 히어라키 플러스 IOIPO다 이 말입니다. 그죠 히어라키 가는 게 계층이 되겠죠. 계층 하면 나와서 생각나는 게 뭐고 하양식이죠. 하양식 추리단 말이에요. 추리 그죠 추리 구조로 설계하는 거죠. 히포는 어 그래서 분석 및 설계나 분석 도구나 설계나 문습할 때 사용하는 기법입니다.

화자 1
32:32
에 또 설계에도 이용되고 분석할 때 이용 기법으로 IPO 입력 프라세스 출력 즉 시스템 소프트웨어 3요소를 나타내는 거고, 하향식 동그래미 자 히포는 하향식 소프트웨어 개발 도구다 하향식 설계도구입니다. 하향식 동굴입니다. 왜 이미 계층 오케이 그리고 이 히포의 종류는요 구성은 도식 목차 몰라도 좋다. 단어 말만 됩니다. 도식목차 총알도표 상세 도표로 구성됩니다. 자 몰라도 좋다. 왜 시험에 요 말만 나오니까요? 히포의 구성 요소 종류는 뭐 도시 목차 총괄도표 상세도표 단어만 알아라 왜 소프트웨어 공학의 출제 범위가 여기밖에 안 된다. 좋습니다. 요런 거고요. 그 다음에 엔에스 차트는 뭐냐 하면 나치 슈나이드만 독일의 학자들입니다. 나치 슈나이맨을 만든 차트다 요거는 구조적 프로그래밍 방법에 사용되는 논리 표현 기법의 도표예요. 그렇지 구조적 설계 기법 중의 하나고요.

화자 1
33:30
3가지 제어구조를 한다는 거요 자 구조적 프로그래밍에서 순차구조 선택 구조 반복 구조입니다. 중요하다 순차 선택 반복이 구조적 프로그램의 기본 제어 구조입니다. 구조적 전통적 구조적 프로그램의 기본 제어구조 순차 선택 반복 이 3가지 구조로와 구조가 소프트웨어 개발하는데 제어구조라는 거야. 순차구조 선택구조는 이퍼덴 에이스고요. 반복 구조는 2가지 2화의 반복 있고 리피트 언틀리 반복 있디 자 요게 인제 순차 구조 요놈 하고 요놈 되고 요놈 되고 아주 순차적으로 제어하는 거고요. 자 선택 조건을 선택해요. 선택이다. 선택 구조는 뭐냐 어떤 조건을 주되 이퍼 이퍼 조건 나오고 그래서 이 조건이 맞으면은 그러면은 이걸 하고 그렇지 않으면은 이거 처리하라는 거 선택 구조도 그죠 선택 부족의 그림 알아놓으면 되고요.

화자 1
34:23
그다음에 요거는 2화의 반복이야 보 2화일은 뭐냐면 조건이 맞는 동안에 이 문장을 반복하라 이 말입니다. 조건이 맞을 동안은 조건이 맞을 동안입니다. 동안 2활 동안이고 요거는 뭐야? 리피트 언틸문은 뭐냐 하면 조건이 맞을 때까지 반복하라 이 동안하고 1개가 달라요. 이거는 어 이 문장은 이게 반복문 이 문장 에스 스테이트물 이걸 먼저 실행하고 조건을 문장을 실행하고 조건 조건이 맞을 때까지입니다. 여기까지 몰라요. 좋습니다. 여러분들 리피트 언틸 반복이 있고 두 발 동안 있고 까지가 있는 거예요. 그렇죠. 그래서 요런 것들이 엔에스 차트다 즉 엔에스 차트의 반복 구조 선택 구조 순차 구조 정도만 아시면 된다는 거예요. 그죠 그리고 피디엘은 뭐냐 하면 프로그램 디스크립션 랭귀지 해가지고 구조적 프레이밍의 제어구조를 기술한 것으로서 의사 코드 또는 구조적 영어 영어 구조라고도 합니다. 즉 이런 거에 뭐야?

화자 1
35:19
뭐라 이렇게 도식으로 하는 게 아니고 영문자로 두 반목어의 문장 은틸 이런 식으로 설계하는 게 뭐다 PDL이라는 거죠. 그죠 영어로서 하는 거 그래서 구조적 영어라고도 한다. 이런 이야기다 됐나 자 방금 본 것들이 바로 구조적 설계 기법들입니다. 즉 전통적 소프트웨어 개발 방법 중 설계하는 도구들이야 셋째, 분석도구 다시 정리하자 뭐 DFD 디디 미니스펙이고요. 설계도구로 설계도구로 뭡니까? 상향식 설계도구 하향식 있고 모슈라가 있는데, 그 외에 뭐 히포 엔에스 PDL이 있다는 거 대게 나 히포 엔에서 피디엘 조스입니다. 자 이렇게 해서 우리가 이제 전통적 소프트웨어 개발 방법론의 분석과 설계를 했죠. 그죠 그래서 내일이가 다음 시간에는 뭐 나머지 인제 분석 설계했으니까 구현은 어떻게 하고 그리고 검사는 어떻게 하고 유지보수는 어떻게 이제 보면 되고 어 전통적은 이렇게 보고요. 그다음에 요즘 많이 하는 거 뭐야?

화자 1
36:19
객체 지향 그 객체 지향에서 분석은 어떻게 하고 설계는 어떻게 하고 구현은 어떻게 하고 유지보수는 어떻게 하는가? 요렇게 요렇게 되면 이야기가 다 끝나죠. 소프트웨어 공학 가볍게 끝납니다. 헐렐루야 좋습니다. 좋고요. 시험에 나오는 거 완벽 속성으로 엑기스만 모아서 하는 거다 아주 정리가 잘 되었습니다. 그죠 부처님 손바닥 제이제이치 손바닥입니다. 좋습니다. 자 여러분 어쨌든지 오늘 2시간 동안 생방송 고생하셨고 자 내일 또 만나 뵙기를 약속드리면서 오늘은 여기까지 하겠습니다.

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

https://youtu.be/bn-JuYCIuBs



1. 소프트웨어 공학 개요

1-1. 소프트웨어의 개요
-  소프트웨어는 수정이 가능한 부드러운 제품임
-  컴퓨터는 하드웨어와 논리적, 물리적으로 동작함
-  소프트웨어를 포함한 시스템을 소프트웨어 시스템이라 부름
-  소프트웨어는 인간의 일을 대신 처리하는 자동화된 기계임
-  소프트웨어는 컴퓨터 언어로 명령을 내리고, 하드웨어로 실행됨

1-2. 소프트웨어의 특성
-  소프트웨어는 신뢰성, 효율성, 이식성, 편리성, 유지보수성, 재사용성 등을 가져야 함
- (중요) 소프트웨어는 신뢰성이 있어야 하며, 컴퓨터에 설치된 시스템이 되어야 함
- (중요) 소프트웨어는 효율적으로 개발되어야 하며, 모든 컴퓨터에 호환되어야 함
- (중요) 소프트웨어는 1대의 컴퓨터에만 국한되지 않고, 다양한 컴퓨터에 이식될 수 있어야 함
-  소프트웨어는 사용자의 요구에 맞게 동작해야 하며, 유지보수성이 높아야 함

1-3. 소프트웨어 공학의 개요
-  소프트웨어 공학은 소프트웨어의 특성과 개발 방법론에 대한 학문임
-  소프트웨어 공학은 컴퓨터 구조, 운영체제, 데이터베이스, 네트워크 통신 등을 다룸
-  산업기사 시스템 설계는 소프트웨어 공학과 유사한 성격을 가짐
-  소프트웨어 공학은 시스템을 설계하고, 프로그램과 데이터를 분석하고 개발함
-  소프트웨어 공학은 컴퓨터를 통해 정보를 처리하고, 관리하는 방법에 대한 학문임

2. 소프트웨어의 특성과 위기

2-1. 소프트웨어의 특성 이해
-  소프트웨어의 기본 요소는 입력, 처리, 출력으로 구성됨
-  입력 요소는 데이터와 프로그램을 포함하며, 처리 요소는 프로그램의 실행과정을 의미함
-  출력 요소는 결과의 재입력이 포함되며, 피드백은 입력과 출력 사이의 차이를 보정함
- (중요) 시스템 소프트웨어의 5가지 요소는 입력, 처리, 출력, 제어, 피드백임

2-2. 소프트웨어 위기의 이해
-  소프트웨어 위기는 소프트웨어의 품질 저하를 의미함
-  소프트웨어 위기는 소프트웨어 개발 속도가 하드웨어 개발 속도에 따라가지 못할 때 발생함
- (중요) 이는 소프트웨어의 요구와 공급 간의 격차에서 비롯됨
-  소프트웨어 위기는 빠른 소프트웨어 공학의 발전이 필요함

2-3. 소프트웨어 위기의 예시와 해결방안
-  소프트웨어 위기는 현재 하드웨어 발전 속도에 뒤처지는 경우 발생함
-  이는 소프트웨어 개발자가 사용자 요구를 충족시키지 못하는 문제를 야기함
- (중요) 소프트웨어 위기를 해결하기 위해서는 적절한 제어와 피드백이 필요함
-  특히, 인적 자원의 부족이 소프트웨어 위기를 초래하는 주요 원인임

3. 소프트웨어 위기와 공학

3-1. 소프트웨어 위기의 이해
-  소프트웨어 위기는 하드웨어 속도를 따라가지 못하거나 사용자 요구 조건을 충족시키지 못하는 것임
- (중요) 소프트웨어 위기를 초래하는 요소는 인적 자원의 부족과 소프트웨어 생산성 저하임
-  기술력과 로또 복권이 미래의 인생 목표가 될 수 있는 유일한 가능성임
-  IT 기업에서 소프트웨어 생산성 저하로 인해 많은 인력 부족 현상 발생함
-  기술자를 양성하여 우리나라에서 소프트웨어를 수출하는 것이 중요함

3-2. 소프트웨어 공학의 개념과 발전
-  소프트웨어 공학은 소프트웨어의 품질과 생산성 향상을 목표로 함
-  소프트웨어 공학은 체계적이고 학문적인 이론에 기반을 두고 빈틈없이 소프트웨어를 잘 만들어내고 위기를 극복함
-  소프트웨어 공학은 60년대에 소프트웨어 위기의식이 생겨났을 때부터 시작되었음
-  70년대에는 구조적 분석 설계 기법이 도입되고, 80년대에는 다양한 분석 설계 방법론이 등장함
-  90년대 이후 객체지향 기술의 도입과 소프트웨어 재사용, 재공학 개념의 등장으로 진보함

3-3. 소프트웨어 생명주기
-  소프트웨어 생명주기는 소프트웨어의 탄생, 운영, 폐기로 구성된 주기적인 개발 과정임
-  소프트웨어 생명주기 모형 중 가장 일반적인 모델은 정의 단계, 개발 단계, 유지보수 단계로 나뉨
-  소프트웨어 생명주기는 정의 단계에서 분석 단계를 거쳐 타당성 검토, 프로젝트 계획, 개발을 진행함
-  소프트웨어 생명주기를 개발 단계로 나누면 개발, 유지보수, 폐기의 순환적 과정이 보임
-  각 단계에서 기술자의 능력, 의사 전달, 프로젝트 복잡도, 관리 능력 등이 소프트웨어 생산성에 영향을 미침

4. 소프트웨어 생명주기

4-1. 소프트웨어 생명주기 개요
-  소프트웨어 생명주기란, 프로젝트를 개발해 출시하는 과정을 말함
-  소프트웨어 생명주기는 분석, 설계, 구현, 유지보수의 단계로 구성됨
-  분석 단계는 요구분석, 타당성 검토, 계획을 포함함
-  설계 단계는 계획설계, 제너럴 설계, 디테일 설계로 나뉨
- (중요) 유지보수 단계는 검사, 테스트, 실행으로 이루어짐

4-2. 소프트웨어 생명주기 모형
-  소프트웨어 생명주기 모형은 폭포수 모형, 단계별 모형, 프로토타임 모형, 나선형 모형, 포지티브 모형, 알라이드 모형으로 나뉨
-  폭포수 모형은 전통적이고 전형적이며, 하향식 모델임
-  타당성 검토, 계획, 분석, 설계, 구현, 테스트, 유지보수가 포함됨
- (중요) 폭포수 모형은 하향식 모델이며, 2개 이상의 단계가 체계적으로 진행되며, 각 단계가 상위 단계에 영향을 미치지 않음
- (중요) 유지보수 비용이 가장 많이 드는 단계임

4-3. 폭포수 모형의 특징
-  폭포수 모형은 전통적이고, 실무에서 사용되는 하향식 모델임
- (중요) 타당성 검토와 계획, 분석, 설계가 각각 포함되며, 분석을 통해 명세서를 도출하고, 이를 바탕으로 설계를 진행함
-  분석 단계에서는 시스템 분석, 요구 사항 검사, 소프트웨어 생산 적합성 판단을 포함함
-  분석 결과를 바탕으로 타당성 검토를 하고, 이후 계획을 수립함
-  이후 분석, 설계, 구현, 테스트, 유지보수를 거쳐 실제 운영되면서 시스템이 가동함

5. 소프트웨어 개발 모델

5-1. 소프트웨어 개발 과정
-  소프트웨어 개발은 크게 업무 분석, 설계, 구현, 임플리먼트, 테스트, 가동, 운영 단계로 나뉨
-  업무 분석과 설계를 시스템 업무분석가와 프로그래머가 담당함
-  가동시키고 운영하는 사람은 오퍼레이터라 부름
-  소프트웨어 개발은 오퍼레이터와 프로그래머로 나뉨
-  자격증은 정보처리 기사, 기술사는 기사급이고, 박사급은 프로그래머 자격증임

5-2. 소프트웨어 개발 모델
-  소프트웨어 개발 모델에는 프로토타입 모델과 나섬형 모델이 있음
-  프로토타입 모델은 사용자 요구사항을 정확히 파악해 개발된 소프트웨어 견본품 모델을 만듦
-  사용자의 요구사항과 맞지 않으면, 모델을 수정하고 시험함
- (중요) 프로토타입 모델은 요구사항을 정확히 반영하는데 중요한 역할을 함
-  나섬형 모델은 위험 분석 기능을 추가한 대규모 프로젝트에 적합한 모델임

5-3. 나섬형 모델과 4세대 모형
-  나섬형 모델은 계획 수립, 위험 분석, 공학적 개발, 고객 평가를 반복적으로 수행함
-  4세대 모형은 사용자와 개발자가 사용할 수 있는 동적 언어를 이용한 비절차적 모형임
-  4세대 모형은 절차 없이 개발된 모형으로, 앞당겨야 할 절차 없이 바로 개발이 가능함

6. 소프트웨어 공학 개론

6-1. 소프트웨어 공학의 등장과 소프트웨어 라이프 사이클
-  소프트웨어 공학은 소프트웨어 개발 과정을 학문으로 만듦
-  소프트웨어 생산성, 비용 절감, 정확한 프로그램 제작을 위한 도구, 절차를 연구함
-  소프트웨어 라이프 사이클은 분석, 설계, 구현, 검사, 유지 보수 단계로 구성됨
-  분석 단계에서는 소프트웨어의 타당성과 요구사항을 조사함
-  설계 단계에서는 업무 분석, 요구사항 분석, 분석을 바탕으로 설계도를 작성함

6-2. 소프트웨어 개발 모형과 병행 개발
-  레이더 모형은 재사용을 통한 병행 개발을 위한 모형임
-  병행 개발을 위해 각 팀별로 병행 개발을 위한 단계를 추구함
- (중요) 리드만이 제시한 소프트웨어 개발 모형을 기반으로 재사용과 병행 개발을 강조함
-  소프트웨어 개발 모형은 분석, 설계, 구현, 검사, 유지 보수 단계로 구성됨
-  소프트웨어 유지 보수는 비용이 많이 들기 때문에 유지 보수 단계를 강조함

6-3. 소프트웨어 공학의 사례와 중요성
-  강사는 실제 회계 관리 프로젝트를 통해 소프트웨어 공학의 중요성을 경험함
-  프로젝트에서 분석과 설계가 가장 중요하다고 강조함
-  코딩과 유지 보수가 가장 비용이 많이 들기 때문에 유지 보수 단계를 강조함
-  소프트웨어 공학은 오랜 시간 동안 산업 전반에 걸쳐 중요한 역할을 해옴
-  소프트웨어 공학은 소프트웨어의 생산성, 효율성, 안정성을 높여줌

화자 1
00:12
전국에 계시는 우리 엠투엠 생방송 안방 가족 여러분 오늘도 뜨거운 가슴으로 두사부 일체일 정신으로 감동의 수업을 함께 하겠습니다. 아 좋아요. 좋습니다. 예 아 자 이제 야 여러분들 이제 대단하다 4과목 이미 우리가 컴퓨터 구조 운영체제 데이타베이스 그다음에 네트워크 데이터 통신 우리가 산업기사 학생들은 정보통신 똑같은 거죠. 그죠 공통과목 4과목 가볍게 맞췄다고 그죠 여러분도 모르는 사이에 이제 컴퓨터의 세계 에 정보처리와 점점 가까워지는 그대 그대가 되었죠.

화자 1
00:59
자 이제 오늘부터는 마지막 과목 이제 우리 기사 학생들은 소프트웨어 공학 소프트웨어공학 우리 산업기사는 시스템 부스가 설계 그죠 그래서 과목이 아 성격이 똑같습니다만 요 어 기사 소프트웨어 공학과 산업기사 시스템 무스 설계는 다르게 강의를 한다는 거죠. 우리 소프트웨어 공학은 계속해서 생중계로 들어가고요. 내가 또 동시에 이제 우리가 산업기사 시대분석에는 강의를 모 하니까 요놈은 앞 시간에 했는 걸 녹화로 아마 여러분한테 나갈 겁니다. 그래서 고려하시고 자 우선 소프트웨어 공항으로 들어가 봅니다. 자 좋습니다. 자 이 소프트웨어 공학은요, 역시 20문제 나오죠. 소프트웨어공학 20문제 출제가 됩니다. 그죠 아주 어 이 소프트웨어 공학 역시 뜨거운 것 같습니다. 개념만 잡아 놓으면 장난이고요. 만약에 암기한다면, 상당히 어려워질 수가 있습니다.

화자 1
01:54
그죠 그래서 아주 개념적인 이야기들이다. 소프트웨어공학 자 요 논문은 이제 총 8개의 챕터에 걸쳐서 우리가 하거든. 예 여러분 좋아요. 어 이 소프트웨어 공학의 개요 소프트웨어 공학의 개요에서 보통 한 2문제 정도 예상되겠죠. 물론 때에 따라서 3문제도 나오지만 평균 한 2문제 정도요 그리고 중요한 게 이제 1 2로 나눠졌는 거 소프트웨어 프로젝트 관리 그죠 그리고 전통적 소프트웨어 개발 방법론 방법론 어떻게 개발하겠다. 그리고 최신 객체 지향 소프트웨어개발 방법론 소프트웨어 공학 아 요 중요하다 그죠 그래서 인제 요 각각에서 이제 보통 4~5문제씩 그죠 4~5문제 정도 나온다 이렇게 생각하면 됩니다. 어 보통 그리고 마지막 소프트웨어 공학의 발전 추세에 있어도 한 2문제 뭐 1~2문제 정도 예상됩니다.

화자 1
02:52
그렇지 그래서 통상 요런 기준으로 우리가 소프트웨어 공학 20문제가 나온다는 거죠. 그래서 시험을 떠나서 어떻게 하면은 품질 좋은 생산 좋은 프로그램을 개발할까 소프트웨어를 만들까 시스템을 만들까 하는 이야기다 그죠 그래서 한번 자 전반적인 이야기 요 정도로 우리가 하고요. 자 이제 한번 첫 번째 챕터 2에서 3문제 나오는 걸로 들어가 봅니다. 소프트웨어 공학의 개요 에 자 이 소프트웨어 시스템 소프트웨어는 여러분 이미 뭐 너무나 잘하는 거죠. 그죠 이 소프트웨어는 뭐고 부드러운 제품 부드러운 제품 즉 수정이 가능하죠.

화자 1
03:32
플렉시블 수정이 가능한 어 제품을 우리는 소프트웨어다 그죠 유연하고 그죠 부드럽고 이런 거 그래서 이제 어 그니까 인제 컴퓨터에서는 바로 수정이 가능한 프로그램을 우리는 소프트웨어라 한다는 말씀 프로그램 즉 소프트웨어는 컴퓨터 하드웨어를 동작시켜주는 우리 인간인연인 명령어들의 집합 즉 프로그램입니다. 그죠 프로그램 그러니까 명령어들이 모여서 인스트럭션들 명령어만 모여 가지고 하나의 프로그램이 되고요. 이 프로그램들을 우리가 총체적으로 뭘 하나 소프트웨어를 하잖아요. 그죠 그래서 어 이 명령어는 뭐로 내리노 컴퓨터가 알아듣는 언어로 내려야 되겠죠. 그래서 이미 우리가 운영 체제에서 컴퓨터가 알아듣는 프로그램 냉귀지 컴퓨터 냉귀지 이미 정의를 다 했습니다.

화자 1
04:24
만나 병태야 그래서 거 이 프로그램 랭귀지는 한번 정리하면은 우리가 저급으로 로우 레벨 랭귀지가 있고 미들 레벨 랭귀지 하이레벨 랭귀지가 있다고 이야기 다 했제 그래서 노우 레벨 랭귀지는 컴퓨터가 바로 알아듣는 일과영으로 구성된 뭐 기계 머신 랭귀지고 중급 언어는 뭐다 1과 0을 모아모아서 특정 기호로 표현 표현하는 언어 모았다에서 어셈블리 랭귀지를 의미하고 이제 고급 언어는 뭐다 우리 이거 인간이 사용하는 자연어 내추럴 랭귀지죠 그죠 내추럴 랭귀지는 또 뭡니까? 번역 개념의 컴파일러 랭귀지가 있고 폭력 개념의 인터프리터 랭귀지가 있다는 거 그래서 컴퓨터 언어 정리를 다 했잖아. 맞나요? 그래서 이런 컴퓨터라는 언어로 우리는 명령을 내렸죠 이 명령에서 컴퓨터 하드웨어는 움직인단 말이에요.

화자 1
05:17
그래서 이 명령어들이 모여서 뭐다 하나의 프로그램이 되고 또 이런 프로그램을 우리는 총체적으로 뭐라 부른다 소프트웨어다 이렇게 부르는 거죠. 소프트웨어 또는 소프트웨어 시스템 같은 말이에요. 소프트웨어를 불러드렸고 또는 논리적인 시스템은 소프트웨어요. 물리적인 시스템이 뭐다 바로 하드웨어를 의미하지 그렇지 그래서 컴퓨터는 물리적인 시스템인 하드웨어와 논리적인 시스템 소프트웨어가 모여서 우리 인간의 일을 대신 해준다. 우리 인간의 일을 대신 처리해주는 자동화 된 기계다 그죠 그래서 컴퓨터는 데이타 우리 인간의 데이터를 프라세싱 오토 프라세싱 해서 우리 인간의 원하는 정보를 만들어 준다고 해 가지고 컴퓨터는 뭐 한마디로 DPI라고 이미 우리는 뜨거운 걸 쓰므로 다 알고 있죠. 그래서 이런 거 이미 정리됐다. 그러죠 소프트웨어 이 소프트웨어는 이제 하드웨어에 비해서 뭡니까?

화자 1
06:11
논리적이고 유연하고 수정이 가능하고 이 하드웨어는 뭐다 물리적인 전자 장비들이고 그죠 한번 만들어 놓으면 수정할 수 없는 것들 물리적인 요소들 눈에 보이는 것들 이미 정의를 다 우리가 잘 했습니다. 좋고요. 자 그러면 이 과목에서 소프트웨어 특성 품질을 보죠. 소프트웨어는 어떤 특성을 가지고 있느냐 우리가 컴퓨터가 얻은 언어로 소프트웨어를 만들죠 원래 정보처리기사는 뭐하는 사람이고 데이터를 정보로 만들어주는 즉 컴퓨터한테 명령을 내릴 수 있는 사람 어 컴퓨터와 대화할 수 있는 사람 프로그램을 의미하죠. 그죠 그래서 우리 정보처리 기사 산업기사는 프로그램머 IT 기술자를 양성하는 국가 자격증이라는 거 그렇죠.

화자 1
06:58
근데 이놈이 요즘은 또 각종 시험에 가산점을 주다 보니까 공무원 가산점이나 각종 임용고시 가산점이나 가산점 쪽에 많이 이용됩니다마는 IT 강국을 위해서는 뭐 이 소프트웨어 개발자가 많이 양성돼야 된다는 거 늘 내가 이야기하는 것 아닙니까 그럼 이런 좋은 소프트웨어는 어떠냐 특성은 뭐냐 이 소프트웨어는 신뢰성이 있어야 되겠죠. 프로그램은 신뢰성이 없는 프로그램은 프로그램이라 할 수 없제 항상 정확하고 우리 인간의 일을 대신에 어 컴퓨터는 대신시키는 명령어들의 집합이기 때문에 신뢰성 그다음 아주 효율적으로 개발이 돼야 되고 이식성인 이식성이 높아야 된다. 이식성이 뭐다 이 소프트웨어는 1대의 컴퓨터에만 돌아가는 게 아니고 한번 한번 만들어 놓은 소프트웨어는 모든 컴퓨터의 포팅 이식될 수 있도록 다 돌아갈 수 있는 이식성이 높은 게 좋은 거다 이 말이고요. 그다음에 이 소프트웨어는 뭐야? 편리해야 되겠죠.

화자 1
07:52
우리 사용자가 원하는 대로 동작을 해주는 프로그램이어야 된다는 거 그리고 유지 보수성 메인 테너스 그리고 소프트웨어는 항상 수정이 쉬워야 되겠죠. 유지보수 유지보수가 되도록 개발이 돼야 된다는 거 유지보수 항상 업무는 변하니까 그렇제 그리고 또 재사용 유저 아주 중요한 이야기 리유저 재사용 1번 개발된 소프트웨어는 어 1번으로 끝나는 게 아니고 이 모듈 어 이 프로그램 이놈은 또 딴 데도 계속 이용할 수 있으면 좋더라 그죠 재사용성이 용이해야 된다. 이런 것들이 소프트웨어의 특성이다. 그죠 그래서 어려운 건 아니고 살짝살 당연한 거 아닙니까 소비자의 특성은 신뢰성이 있어야 되고 효율성 이식성 편리성 유지보수성 재사용성이 용이해야 된다는 거 당연한 이야기를 한번 눈으로 살짝 보면 되는 거야. 됩니다. 예 좋습니다.

화자 1
08:45
자 그래서 여러분 이제 시스템의 구성요소 또는 소프트웨어의 구성요소 이런 소프트웨어를 또 다루는 논리적인 시스템이라 하잖아요. 그죠 이런 시스템 즉 소프트웨어는 어떻게 구성되느냐 물론 시스템 분석과 설계에서도 합니다마는 또 하나 이제 여러분 저 어 이야기를 하면은 우리 기사 학생들은요, 그 기사 산업기사도 응시해도 좋습니다. 에 그러니까 기사하고 산업기사하고 4과목 똑같거든. 1과목만 달라요. 즉 기사는 지금 배우는 소프트웨어 공학이고 우리 산업기사는 시스템 부서 설계거든. 근데 또 제목만 다르지 또 여러 가지 공통적인 게 너무나 많다 그죠 그래서 소프트웨어 공학을 듣고 우리가 또 인제 시험칠 때 원서를요 기사도 내고 산업기사도 내면 좋습니다. 그죠 어 그래서 가산점도 똑같이 적용되니까. 보통 시험장에 가면은 기사를 시험치고 산업 기사를 치거든.

화자 1
09:40
그죠 기사를 시험치고 산업기사니까 기사 학생들은 둘 다 응시하란 말이야. 기사도 원서 내고 산업기사도 왜 공부와 똑같은데, 뭐 그렇죠. 그래서 자격증 2개 따면 됩니다. 기사 합격하고 산업 기사 합격해도 자격증은 2개 나옵니다. 기사 의문수첩 산업기사 수첩 그죠 기사 학생들은 산업기사를 응시하면 좋다. 왜 소프트웨어 공학 듣고 시험만 치면 되고 혹시 뭐 시스템 분석 설계 공부하고 싶으면 고 과목만 따로 또 들으면 되잖아. 이해되나 꼭 들을 필요는 없습니다만 산업기사는 꼭 합격이 되겠다. 하면은 기사 소프트웨어 공학 듣고 산업기사는 단과 형태로 시스템 무슨 설계만 들으면 되잖아. 그러면은 우리는 산업기사도 응시할 수 있고요. 산업기사 학생들은 뭐 기사를 응시 못합니다. 자격 요건 때문에 알겠제 특히 우리 기사 소프트웨어 공학 듣고요. 시스템 무슨설계 거의 또 과태 과태료 한번 살짝 보고 둘 다 응시해 주면 좋다. 자격증 2개 기사 식당에 두 군데 갈 수 있다.

화자 1
10:39
알겠나 병 대야 돌려야 좋습니다. 자 그런 이야기 자 이런 소프트웨어의 구성 요소는 이제 크게 인제 3요소 요가 입력 처리 출력이 3요소고요. 제어 피드백까지가 포함되면 이제 시스템 소프트웨어에 5요소 이래 이야기하거든. 중 어 뭐 아주 쉽죠 반드시 시스템은요, 소프트웨어 시스템 뭐 이건 뭐 하드웨어 시스템도 1가지다 이 시스템은 크게 반드시 5가지 요소 적게는 3가지 요소를 갖춰야 된다는 거 반드시 입력 파트가 있어야 해야 되겠죠. 프로그램도 그렇고 컴퓨터도 그렇고 입력 설명하자 알겠죠. 데이터를 입력받는 거 데이터와 프로그램 그리고 처리 프라세싱 그리고 그 결과를 출력해 주고요. 또 이 처리가 제대로 되기 위해서 적절한 제어가 일어나야 되고 그리고 피드백은 뭐냐 피드백은 중요합니다.

화자 1
11:30
여러분 입력 처리 출력은 시스템 소프트웨어 3요소요 제어하고 피드백은 5 요소다 근데 피드백은 뭐냐면 이제 입력을 통해서 처리된 결과가 출력이 돼 나왔는데 결과가 이게 나왔어요. 근데 내가 원하는 결과는 이거예요. 에 그래서 컴퓨터가 처리된 어 소프트웨어로 처리된 결과가 내가 원하는 결과하고 다르지요 에 상이하다 이 말이에요. 다르다 이 말이에요. 에 달랐을 때 어 새로운 결과 내가 원하는 결과를 다시 도출하기 위해서 피드백 피드가 뭐고 먹이를 다시 공급해야 되겠지 데이터를 재입력하는 과정 재입력 과정이 피드백이야 재입력 단계 알겠나 자 재입력은 뭐다 피드백은 어 컴퓨터로 처리했는데 입력 과정 처리 적절한 제어에 의해서 처리가 되고 출력이 됐는데 그 결과가 내가 원하는 결과가 아니란 말이야.

화자 1
12:24
알겠나 그래서 내가 원하는 결과를 얻기 위하여 다시 데이터를 재입력하는 과정은 뭐다 피드백이라는 거죠. 피드백 그래서 자 피드백까지가 시스템의 5요소요 입력 IPO는 3요소입니다. 그죠 그래서 IPOCF는 5 요소다 라는 거 실제 좋습니다. 자 이거 뭐 아주 쉬워 소프트웨어 공학은 여러분들 이제 핵심적인 것만 알면 너무나 쉬운 거잖아요. 나머지는 슬슬 보고 넘어갑니다. 그죠 자 소프트웨어 위기 중요하다 이게 무슨 말이냐 하면 소프트웨어 위기 예 자 소프트웨어의 크라이시스를 하죠. 소프트웨어 크라이시스 예 위기다 이 소프트웨어 위기는 바로 소프트웨어의 품질 저하를 초래합니다.

화자 1
13:13
품질저하 질 높은 프로그램을 개발해야 되는데 떨어지는 에 그러니까 소프트웨어의 이 특성을 만족모하는 소프트웨어 이게 인제 소프트웨어 위기의 결과인데 이 소프트웨어 위기가 뭐냐 이 말입니다. 즉 소프트웨어 개발 속도가 하드웨어 개발 속도에 따라가지 못하는 문제가 위기라고 하는 거죠. 자 이게 뭔 말이냐 현재 여러분 피씨 같은 경우도 우리 여러분 가지고 있는 펜티움 컴퓨터에 있죠. 그런 성능이 64비터예요. 64비트 어 하드웨어는 현재 64비터 컴퓨터입니다. 1번에 64개의 금덩어리를 처리할 수 있는 64개의 금덩어리를 될 수 있는 힘을 가지고 있는 거예요. 이 하드웨어를 지시하는 소프트웨어 즉 소프트웨어 중에서도 OS죠 이 소프트웨어는 현재 여러분 32비트입니다.

화자 1
14:02
32비트 소프트웨어 기술은 현재 31미터 수준이야 어 이거 기계는 기계는요 컴퓨터는 64개의 금덩어리를 될 수가 있는데, 그걸 즉시 내리고 명령 내리는 소프트웨어 기술은 뭐다 32미터밖에 안 되는 거거든. 나는 64개를 될 수 있는데, 맞나 시키는 게 뭐고 32개씩 들어 32개씩 들어 이러는 거예요. 그래서 현재 하드웨어가요 이 프로세스 시피뉴 기술이 어 하드웨어가 훨씬 소프트웨어보다 발전돼 있어요. 배인상 그러니까 하드웨어 시피뉴 소프트웨어 OS죠 하드웨어 대표적인 게 이 프로세스죠 마이크로 프로세스 기술이 소프트웨어 대표적인 게 OS 아니야. 운영체제보다는 배 이상 지금 빠르게 발전돼 있거든. 그죠 이걸 뭐다 소프트웨어 크라이시 위기다 소프트웨어 이게 빨리 발전해야 된다. 이 기계가 이만큼 발전돼 있으면은 이 기계를 움직여주는 명령어들의 형태도 구조 그리고 64비트가 돼야 되는데 지금은 32비트가 표준이죠.

화자 1
15:01
여러분의 사용하는 윈도우가 32비트 OS고 여러분 집에 있는 PENTIUM 컴퓨터는 64비터 플라세심을 가지고 있는 기계약 CPU를 가지고 있는 맞제 그러니까 요런 걸 우리는 소프트웨어 위기예요. 그러니까 소프트웨어 빨리 소프트웨어 공학적으로 발전을 시켜 가지고 하드웨어와 동등한 어떤 속도로 나가야 되겠다는 게 이제 나가지 못하는 게 소프트웨어 위기라는 거죠. 알겠나 요즘 뭐 나와있는 비스타는요 비스타도 여러 가지 버전이 있죠. 그죠 홈프리미어 이런 거는 32비터지만 뭐 비즈니스라든지 엔터프라이즈 같은 경우는 64비터를 구현하고 있습니다. 그래서 지금 소프트웨어 기술이 많이 좋아집니다마는 현재까지 하드웨어에 어떤 속도보다는 늦다는 거죠. 그래서 하드웨어 항상 빠르게 먼저 움직인다는 거 이거 소프트웨어의 크라이시스다 그리고 또는 뭐 또 다른 말하자면, 소프트웨어 요구와 공급 간의 격차죠 그죠 요구 요구는 큰데 공급이 항상 딸리는 겁니다.

화자 1
15:58
어 그것도 소프트웨어 위기라 카고 특히 소프트웨어가 즉 소프트웨어 개발자가 사용자 유저의 요구 조건을 충족시키지 못하는 거도 소프트웨어 위기를 초래하는 거지 그렇지 사용자는요 아주 빠른 프로그램 아주 간편한 걸 요구하는데 이 개발자가 그 사용자의 요구를 따라 가지고 소프트웨어가 따라가지 못하는 문제들 그리고 또는 가장 또 중요한 게 인적 자원의 부족이에요. 현재 내가 뭐하노 100만 양배설을 주장하잖아요. 그죠 지금 여러분들 대졸자 이렇게 많은데 정말 IT 강국 IT 기술자는 정말 턱없이 부족하다 우리 회사도 안 가지고요. 지금 우리가 있는 게 가상 디지털 자재인데요. 여기에 우리 협회들이 있어요. 벤처 기업의 오너들이 정규직으로 모이면 제일 문제가 인적자원의 부족이야 사람이 없단 말이에요.

화자 1
16:51
지금 여러분 세상은요, 취직이 안 돼가 난리인데 여러분 대학 졸업하면 갈 데 없는 난리인데 우리 IT 쪽에서는 사람이 없어서 난리란 말이야. 이 큰 문제죠 그니까 이 대학이 여러분 큰일 났습니다. 정말 기업이 요구하는 시대가 요구하는 기술자를 양성해야 되는데 전혀 기술과는 동떨어진 시대와 동떨어진 학생들만 배출하다 보니까 여러분들은 이태백이 되죠. 20대 태반이 백수 백수인데 우리 IT 기업은 사람이 없어 난리예요. 사람 기술자 특히 소프트웨어 개발자가 없어져 난리예요. 지금 알겠나 그래서 요번 기회에 특별한 인생의 목표가 없는 사람은 우리 IT 세계로 오세요. 병재야 순자야 오너라 아주 괜찮은 세상입니다. 이게 자기 만족이 있고 행복이 있고 꿈이 있는 곳이다. 그래서 기술력 내가 그랬잖아. 앞으로는 연생 역전의 기회는 2가지밖에 없다. 기술 아니면 뭐고 로또 복권해요.

화자 1
17:43
로또 복권 어 그래서 로또 복권보다는 기술이 좋은 거다 그죠 그래서 인제 사람이 없는 것도 인적 자원의 부족입니다. 그죠 IT 기술자가 전 세계적으로 굉장히 부족하고 우리나라에도 여러분들 굉장히 부족하다 그죠 그래서 개인적으로 저도 온라인 오프라인에서 내 제자들 IT 기술자들 양성을 하고 있는데, 아주 부족해요. 그래서 나는 100 천만양명소의 천만 양명소리를 주장하죠. 그죠 그래서 우리나라도 이런 기술자를 양성해서 우리나라에서 쓰고 전 세계 수출하는 그게 휴머니어란 거는 휴머니어 내 말이다. 휴머니어 예 완성 어 완성된 사람 제품화된 사람 기술자를 의미하는 거예요. 그죠 그래서 인적 자원의 부족도 소프트웨어 위기를 초래하는 하나의 요소입니다. 그죠 그래서 이런 것이 다 뭐다 소프트웨어 위기를 발생시킨다.

화자 1
18:34
이런 소프트웨어의 품질 저하를 초래하더라 다시 소프트웨어 위기는 하드웨어 속도를 따라가지 못하는 거 또 공급 요구의 요구 요구인데 어 공급이 이제 요구를 못 따라가는 거 그다음에 사용자의 요구 조건을 충족시키지 못하는 거 또는 기술자의 부족 이런 것들이 소프트웨어 위기를 초래하더라 그런 말씀이야 좋습니다. 좋아요. 쉽지요 IT 강국 100만양병설 좋습니다. 자 그럼 소프트웨어 공학은 뭐냐 이 말입니다. 소프트웨어 엔지니어링 에서 필요하죠. 한마디로 가장 품질 좋은 소프트웨어를 만들기 위한 도구 방법 절차들을 총칙한 게 공학이다. 이제 소프트웨어 개발하는 것도 공학 차원에서 조직화하고 기술하자는 거제 그렇죠.

화자 1
19:26
그리고 소프트웨어 위기를 극복하기 위한 방안으로 연구된 하나의 학문인데 소프트웨어 공학은 그러니까 소프트웨어 위기가 발생을 하잖아. 이 위기를 막아보자 위기 와서 소프트웨어의 품질을 높이자 이런 게 소프트웨어 공학의 목적이죠. 그러니까 소프트웨어의 품질과 생산성 향상 상상이 소프트웨어 공학의 목적이 되는 거다 그냥 아마 또나게나 만드는 게 아니고 아주 체계적으로 학문적으로 이론에 입각해 가지고 빈틈없이 소프트웨어를 잘 만들어보자 그리고 소프트웨어 위기를 극복하자 품질을 높이자 소프트웨어 생산성을 향상시키자 이게 뭐다 소프트웨어 공학입니다. 소프트웨어 공학 와 배우라고 하면 이거죠. 알겠나 소프트웨어 품질 향상이다. 그죠 품질 향상하기 위해서 도구 방법 절차들을 학문화했는 것들이 소프트웨어 공학이다. 이런 이야기죠 우리가 배우는 과목이다. 그죠 도구 방법 절차입니다.

화자 1
20:18
도구 방법절차 아주 쉽제 자 소프트웨어 공학의 발전을 참고로 잠깐 보면요 이제 60년대 이전에는 뭐 소프트웨어 공학하는 개념이 없었죠. 거의 다가 하드웨어 위주였으니까 그 소프트웨어 공학이 시작이 되었고 60년대에는 소프트웨어 위기의식을 느끼기 시작합니다. 하드웨어는 발전이 잘되는데 소프트웨어는 아주 그 당시에 어셈블리 수준이었죠. 70년대 들으면서 이제 구조적 분석 설계 기법이 도입되제 이제 소프트웨어를 분석 설계도 구조화시키자 구조적 이런 개념이 있었고요. 소프트웨어 생명주기와 개발 도구가 70년대 등장을 하고 왜 80년대에는 다양한 분석 설계 방법론이 등장하고 하드웨어 가격이 또 하락하면서 다양한 소프트웨어가 등장하고요. 이제 90년대에서 현재는 이제 객차지형이죠. 소프트웨어 공학에서 객체지향 기술의 사용 도입으로써 이제 컴퓨터가 대중화되기 시작합니다.

화자 1
21:17
대중화 그리고 4세대 언어 포 제너레이션 랭귀지가 도입되고 소프트웨어 뉴즈 재사용 재공학 개념이 도입이 돼요. 재사용 재공학 개념이 도입이 되더라 그리고 이제 케이스라든지 형상 관리 등의 기술이 진보가 됩니다. 기술이 진보되었다는 거고, 자 이 소프트웨어 생산성을 따지는 요소에는 그죠 투입된 비용 노력 등에 대한 생산량을 의미하는 거고, 자 이런 소프트웨어 생산성 생산성은 뭐고 제일 적은 인원으로 제일 적은 비용으로 가장 품질이 좋은 프로그램을 개발하는 거죠. 그렇지 그러니까 원가는 적게 들고 원가는 적게 들고 이 상품은요, 아주 품질 좋은 게 가장 물건 만드는 데 기본이 됐듯이 이 소프트웨어도 1가지 소프트웨어도 이제 뭡니까? 원가 하는 게 인력이죠.

화자 1
22:12
어 이 소프트웨어를 개발하는데 투입되는 개발자들 투입 인력을 적게 하고 기간이죠. 기간을 짧게 하고요. 그죠 인력과 기간 또는 거기에 비용 비용을 적게 들여가지고 아주 품질 좋은 품질 좋은 우수한 소프트웨어를 만들어내는 게 가장 생산성을 높이는 거 아니냐 당연한 이야기 그 이야기다 그죠 이런 생산성에 미치는 영향들은 뭐다 개발자의 능력이다. 기술자의 능력 에 아주 어 우수한 기술자가 프로그램 개발하는 거 하고 초짜하고 다르죠 그러다 보니까 우리 IT 쪽에는 이제 경력자들을 많이 법제 대학 졸업한 초짜들 데려오면 아무것도 못 하거든. 돈 주고 가르켜 줘야 되기 때문에 그러다 보니까 이제 경력자들을 많이 선호합니다. 그러다 보니까 이제 뭐 이게 막 어 왔다리 갔다리 하죠.

화자 1
22:59
박찬호가 돼가지고 예 개발자의 능력 또 원활한 의사 전달이나 프로젝트의 복잡도 내가 개발할 프로젝트의 복잡한 거 기술 수준 또는 관리능력 등이 소프트웨어 생산성을 좌우하더라 하는 건 당연한 이야기들이다. 그런 이야기들입니다. 좋습니다. 뭐 공부할 건 없죠 이거는 소프트웨어공학 한번 눈으로 봐주는 이야기 그다음에 여러분 소프트웨어 생명주기 자 요번 챕터에서 이게 중요하죠. 소프트웨어의 생명주기다 소프트웨어의 라이프 사이클이다. 이렇게 하죠. 라이퍼 사이클이다. 요 있네 소프트웨어 라이프사이클 생명주기 그니까 여러분 봐봐요. 1송이에 국화꽃이 피더라 피우기 피우기 위하여 천둥도 치고 소쩍새도 울고 비바람도 치듯이 하나의 프로그램 하나의 소프트웨어 하나의 시스템 같은 말이다. 탄생되기 위해서 여러 단계를 거칩니다.

화자 1
23:58
그냥 바로 만들어져 만들어지는 거 아니다. 그죠 이런 걸 우리는 소프트웨어 생명적이 다른 말로 소프트웨어의 개발 단계라 한다잉 개발 같은 말이에요. 개발 단계 개발 과정 다 같은 말입니다. 자 어떤 단계를 거쳐 가지고 소프트웨어는 탄생되고 그리고 운영되고 폐기 되는지 그죠 그런 이야기다 소프트웨어가 개발되기 위하여 분석 단계 설계 단계 구현 단계 그다음에 유지보수를 각 공정단계로 구성한 모델을 우리는 소프트웨어의 나이프 사이클이라 하잖아요. 나이프 사이클 음 그래서 여기 인제 이 소프트웨어 나이프스타입의 모형이 여러 가지가 있어요. 그중에서도 가장 일반적인 소프트웨어 생명주기는 뭐냐면 그게 정의 단계가 개발 단계 유지보수 단계로 이렇게 나눠요 정기 단계는 분석 단계라고 하거든요.

화자 1
24:49
정의 단계 그게 인제 분석 단계인데 내가 개발해야 할 이 소프트웨어 프로젝트의 타당성 검토 검사 개발해도 될지 안될지 개발해서 어 개발 전보다 생산성이 일어날지 안 일어날지 그죠 타당성검토 그다음에 프로젝트 계획 그다음에 분석 요분석 요런 걸 우리는 정의 단계에서 하는 거거든. 개발 단계는 이제 실제 설계를 해야죠 개발하기 위해서 디자인하고 구현 컴퓨터 언어로 코딩 하는 거죠. 구현하고 그리고 구현되어 있는 프로그램이 소프트웨어가 제대로 됐나 안됐나 검사하는 걸 개발 단계에서 하고요. 유지보수 단계는 이제 개발됐기 때문에 검사에서 이상이 없기 때문에 실제 사용하죠.

화자 1
25:29
운영하고 운영하다가 수정되는 업무를 수정해주는 유지보수 메인터넌스죠 그죠 그래서 그게 정의 개발 유지보수 단계인데 에 그니까 이제 하나의 소프트웨어는 어떻다 분석 그죠 이 분석 그러니까 분석 단계 다른 말로 정의 단계 그죠 그러니까 타당성 검토와 계획 단계와 요구 분석 단계가 인제 이 분석 단계에 인제 1번과 2번은 분석 단계에서 하겠죠. 그죠 그리고 설계는 크게 계략설계 제너럴한 설계 전체적인 설계 디테일 설계 그죠 계략설계 제너럴 디자인 그다음에 디테일 아주 상세히 설계가 있습니다. 설계를 하고 그다음 구현 단계는 이제 구현모의 코딩이죠. 프로그래밍이죠. 코드화한다. 다른 말로 프로그램으로 작성한다. 프로그래밍이라 하잖아요. 코딩 프로그래밍 같은 말이죠.

화자 1
26:24
구현 임플리먼트 단계고 그다음에 이제 구현단계 뭐 구현단계는 여기까지 다 구현단계라 할 수가 있습니다. 그다음에 인제 뭐다 또 검사단계 검사단계 테스팅 그다음에 실행 실제 실행을 한번 해보죠. 그죠 여기고 그다음에 이상이 없으면은 이제 뭐 운영 및 유지보수 단계에서 시스템이 정상화 가동이 되겠죠. 오퍼레이팅이 되죠. 오퍼레이팅 가동이 되면서 이제 전산화가 이루어지되 하나의 소프트웨어 탄생돼서 우리 인간의 업무를 대신해 줍니다. 그러나 어 그래서 소프트웨어 생명주의죠 이게 생명은 프로젝트 내가 개발해야 할 이 프로그램을 우리는 프로젝트 업무를 프로젝트라 하죠.

화자 1
27:11
프로젝트 프로젝트 프로젝트를 한다이 프로젝트 또는 뭐 업무적 업무 업무 그래서 요런 분석 설계 구현 유지 보수 좀 더 구체적으로 이야기하면은 이제 어 요구분석 타당성 검토 계획과 요구분석 그리고 계량설계 상세 설계 코딩 통합 검사 검사 단계 실행단계 운영 및 유지보수요 되겠습니까? 그래서 소프트웨어의 라이프 사이클이다. 이런 사이클을 가지고 어 하나의 소프트웨어가 탄생되더라 그런 이야기입니다. 그죠 자 좋습니다. 자 소프트웨어 그다음에 생명주기 모델을 한번 보자 방금 봤는 것들은 일반적인 거죠. 일반적인 거고, 이걸 이제 각 소프트웨어 공학자들이 에 이 컴퓨터 학자들이 여러 가지 모형을 만들어 놨어요. 그죠 그 모형의 특징들을 잠깐씩 보자 이 말이죠.

화자 1
28:11
그래서 대표적인 생명주기 모델 모형은 한 6가지가 있죠. 그죠 어 가장 고전적인 게 폭포수 모델 워터폴 모델입니다. 어 그 다음에 단계별 모델 그다음에 프로토타임 모델 그리고 나선형 모델 그다음에 포지티 모델 알레이디 모델이 있다. 그죠 그래서 뭐 가끔씩 어 이 중량의 포커스 모델입니다마는 각 모델 소프트웨어의 라이프 사이클의 모형에 대한 문제가 출제가 많이 되죠. 그죠 자 제일 먼저 폭포수 모델을 한번 할까 폭포수 모델 이 폭포수 모델 얘기하면 워터폴이죠. 말 그대로 워터폴 인자 그대로니까 분석 설계 구현 검사 유지보수 단계를 폭포수처럼 만들어 놨다 이 말입니다. 그죠 에 그래서 이놈은 전통적 또 전형적 고전적 모델입니다. 그죠 전통적하고 전형적이고 타이프컬한 모델이다.

화자 1
29:07
그리고 하향식 모델이제 아 반드시 하향식 밑으로 늘어가죠 요 단계가 끝나면 요 단계 요 단계 끝나면 요 단계 아주 체계적으로 이렇게 프로그램을 개발하는 단계라 해 가지고 하향식 모델이 많이 폭포수 폭포는 어 이 폭포는 위에서 밑으로 항상 내려가잖아요. 올라오는 건 없제 그러니까 하향식 모델이란 게 중요한 거고, 반드시 전단계 앞단계 끝나야만 다음 단계를 진행하는 그런 특징을 가지고 있고 2개 이상의 단계가 변경되어 수행되지는 못합니다. 예를 들면 타당성 검토와 계획 같이 진행이 안 된다는 거죠. 에 그래서 폭포스 모델은 제일 먼저 타당성 검토를 하제 그죠 내가 현재 소프트웨어 시스템을 해야 할 프로젝트 이 프로젝트 프로젝트를 한다. 이걸 내가 현재 소프트웨어를 개발해야 할 의무 어 내가 현재 소프트웨어로 개발해야 할 업무를 뭘 한다. 프로젝트랍니다.

화자 1
30:03
프로젝트 어 그럼 이 업무가 이제 전사나 소프트웨어로 만들어져도 될지 안될지 타당한지 안달한지 타당성 검소를 하셨다 타당성 검사 거기 검토 과정에는 이제 뭐 처음에 이제 타당성 이 프로젝트의 요구 요구 사항을 요구 사항을 검사하죠. 검사 그리고 또는 뭐 현장검사 에 어 이 검사를 하는 거죠. 타당성 검사 또는 요구 사항 검사를 하고 그리고 아 이거 소프트웨어로 만들면은 생산적이겠다. 안 만든 것보다는 수작업하는 것보다는 프로그램으로 하는 게 낫겠다. 판단되면 이제 뭡니까? 계획이 들어가죠 프로젝트 계획이 들어가죠 어 계획이 들어가고 난 뒤에 실제 이제 분석이 들어갑니다. 분석 에 시스템 어너리시스 분석 분석 어너리시스가 들어갑니다. 분석이 들어가고 그냥 분석된 요거 분석해서 나온 명세서를 보고 설계 디자인 들어갑니다. 디자인 똑같애요.

화자 1
31:00
우리 집 짓는 거하고 그럼 이제 디자인 설계도를 보고 컴퓨터 노래를 승정해서 구현을 해줬구요. 임플리먼트 다른 말로 코딩 다른 말로 프로그래밍 프로그래밍 컴퓨터를 옮기고 그리고 테스트하죠. 테스트 그죠 이상이 있나 없나 테스트를 해 가지고 이상이 있으면 뭡니까? 이상이 없으면은 인제 개발 완성이죠. 이상 에러지 에러 에러가 발생하지 않으면은 이제 실무에 투입돼서 이제 운영되면서 유지보수 유지보수 이 유지보수에서 비용이 가장 많이 듭니다. 유지보수 그죠 하고 이상 있으면 에러가 발생해 버리면 에 이 에러가 발생하는 걸 우리가 에러를 어 우리 컴퓨터에서는 벌기란다 벌레라 하죠. 벌레 에 벌레 뻑이다. 이러거든요. 뻑뻑 났다 이러거든요. 애락하는 말보다 실무에서는 벅이다. 벌레 아니 나방벌레를 벅이랍니다.

화자 1
31:53
벅 옛날에 그 애니아 컴퓨터가 돌아갈 때요 갑자기 컴퓨터 잘 돌아가다가 써버렸어 그래가지고 컴퓨터를 움직이는 사람이 가보니까 그 컴퓨터 컴퓨터 톱니바퀴로 돌아가는데 그 톱니바퀴 안에 나방벌레가 딱 끼어 있었거든. 그래서 컴퓨터가 작동 안 되고 소프트웨어가 에러가 터지는 걸 그때 거기서 유래돼 가지고 버그이 발생했다. 나방벌레가 벌레가 생겼다 이래 이야기한다. 참고로 알아놔라 예 부엌입니다. 그래서 에러가 발생하면 다시 뭡니까? 분석 단계로 새로 가죠 그죠 어 이렇게 에러를 수정하는 작업을 우리는 무슨 작업이 아니라 디버깅이라 합니다. 디버깅 벌레를 다이 죽이는 작업에서 디버깅을 한다. 벌레를 자 컴퓨터에서 소프트웨어를 수정하는 작업 수정작업을 뭘 한다. 디버깅 왜 디버깅이고 벅 벌레를 다 죽인다 해 가지고 디버깅을 합니다. 그죠 그래서 이게 소프트웨어 왜 라이브 사이클 중에서도 폭포수 모형이죠.

화자 1
32:49
폭포수 타당성 검토를 끝나면은 계획이 들어가고 계획이 끝나면 분석하고 업무분석을 하고 그리고 끝나면 디자인하고 끝나면 구현하고 구현이 끝나면 검사하고 그죠 검사하다가 에러가 발생하지 않으면은 이제 실제 운영되면서 그 프로그램을 약간 약간 수정이 되겠죠. 업무의 업무를 보면서 약간약간 수정되는 거 유지보수 그죠 이런 식으로 시스템이 가동되고 그죠 에러가 발생하면은 에러를 수정하는 작업이 뭐다 디버깅 작업을 한다. 되겠나 하향식 모델이라는 거 폭포수 모델 그죠 폭포수 모델 가장 고전적인 소프트웨어의 나이크 사이클이다. 어 가장 전통적이고 실제 여러분 실무에서 반드시 이런 과정을 거쳐가면서 프로그램이 개발된다.

화자 1
33:35
그래서 여러분 보면은 크게 이야기하면 업무 분석 업무 분석 어닐리시스 에 에이 음 분석 그다음에 설계 디자인 그 다음에 구현 임플리먼트 또는 코딩 그리고 테스팅 그죠 그리고 이제 가동 오퍼레이팅 오퍼레이팅 되죠. 가동되면서 항상 뭐다 메인터랜스 유지보수가 돼야죠 유지보수 에 항상 고정적인 게 아니고 가동되면서 그 업무를 반영해서 약간 약간 수정해 주는 거죠. 그렇죠. 그래서 이 단계예요. 이 단계 근데 업무를 분석하고 설계하는 이런 사람을 우리는 에세이라 합니다.

화자 1
34:20
시스템 애널리스트 언낼리지스터 시스템 업무분석하고 코딩하고 테스팅 하는 사람이 프로그래머에서요 프로그래머 이게 우리는 프로그래머라 하고 프로그램 마 프로그램 작성하는 사람 가동시키고 이제 사용하는 컴퓨터 시스템을 운영하는 사람은 오퍼레이트라 합니다. 오퍼레이터 오퍼레이터 오퍼레이터다 하지 그죠 그래서 컴퓨터에서 인제 이 에세이 이제 저 같은 사람의 에세이 시스템 애널리스트 분석과 그리고 실제 이제 우리 팀장들이 프로그램머가 되는 거고요. 그다음에 고 밑에 부사수들이 컴퓨터를 가동시키는 오퍼레이트가 된다. 그래서 컴퓨터의 직업은 크게 오퍼레이터 그리고 프로그램머 에세이로 나눠집니다. 에세이 그죠 우리 정보처리 기사는 프로그래머 자격증이고 기술사가 뭐다 에세이죠. 에세이 여러분들 기사 자격증 따고 1년 동안 실무 경력이 있고 실력이 있으면은 정보처리 기술사도 있다.

화자 1
35:17
기술사 그래서 기술사가 굉장히 어렵고 완전히 박사급이죠. 그죠 그래서 나중에 기술사까지 애널리스트까지 돼라 데소 알겠나 이런 게 있다는 거 참고로 알아 놓으시고요. 자 폭포수 모델 여러분 봤제 소프트웨어를 개발하는 단계죠 개발단계의 방법론이다. 음 자 그리고 이제 프로타입 모델은요, 원형 모형이다잉 자 요거 자 사용자 요구사항 땡그래미 요구사항 나오면 프로토 타입 요구사항을 정확히 파악하기 위해 실제될 개발된 소포트웨어 견본품의 모델 하우스부터 만들어주는 거죠. 어 사용자가 어 이런 걸 만들어도 가는데 뭐다 다 만들어 가지고 이런 거 나오면 뭡니까? 이거 안 맞죠.

화자 1
36:04
그럼 사용자의 요구사항을 불충족시키는 거지 어 그러니까 실제 만들기 전에 경본품을 딱 만드는 모델하우스 아파트 짓기 전에 모델하우스 딱 만들어 가지고 소비자들한테 니가 살고 싶은 집이 말라 이렇게 모델 하우스 오픈하듯이 그죠 이 프로타임 모델은 뭐고 만들기 전에 사용자 요구사항을 정확히 이론적으로 파악해서 실제 개발된 소프트웨어 견본품 모델 하우스를 만들어 최종 결과물을 예측하는 모형이 프로토타입 포토폴리오 프로토타입 그죠 모델이다. 포포스 모델의 단점을 보완했다. 포포스 모델은 어떻습니까? 타 당선 끝나고 끝나고 끝나고 다 만들어 나오죠. 만들고 난 뒤에 요구사항하고 안 맞으면 다시 만들어야 되잖아요. 그죠 그러니까 고걸 보완했다. 자 프로타임 모형 요구사항을 수집하고 신속한 설계를 하고 그다음에 프로타임 구축 가상 모형을 만들죠 만드는 모델하우스를 만들었고 고객 평가가 들어갑니다.

화자 1
37:04
소비자들한테 당신이 요구하는 의뢰자한테 사용자한테 이 프로그램이 맞나 소프트웨어가 맞나 시스템이 맞나 그죠 프로그램이 맞나 소프트웨어가 맞나 시스템이 맞나 이렇게 물어보는 거고, 그리고 좀 틀리면은 뭡니까? 고객하고 뭐다 프로타입을 조정하죠. 이 모델하우스를 약간 잠깐 수정을 해서 실제 이제 세일에다 구현이 되는 겁니다. 알겠나 그래서 원형모델이다. 뭐는 프로토타입 모델 프로 프로토 타입 프로타임 모델은 모델은 원형모형이라는 거 되겠어요. 사용자의 요구사항을 정확히 파악하기 위해 소프트웨어 견본품을 만든다. 되겠나 좋습니다. 그죠 이정도만 알아도 충분하다 프로타임 모델 그러다 보면은 사용자 요구사항을 최대한 반영을 많이 하겠죠. 그죠 이거 만들어 둬야 하는 사람의 어 그 요구사항들을 만들어주는 게 최고입니다.

화자 1
38:02
그래서 보통 실제 실무에서 가장 중요한 게 뭐냐 하면 이 소프트웨어를 만들고 의뢰하는 사람하고 개발자하고 그 차가 너무 커요 그 차를 인제 굉장히 줄여 가야 되고요. 그러니까 경력자들은 과거 경험이 많은 사람들 그걸 잘 알아서 잘 만들고요. 경험이 없는 사람들은 많은 실수를 하지 그러니까 ITU에는 우리가 경력자가 그렇게 많이 필요한 거예요. 왜 과거 경험 이 짠밥 짠밥이제 그래서 완전히 다르다 그죠 똑같은 어떤 소프트웨어를 만드는데 아 이게 초급자 중급자 고급자에 따라서 완전히 달라집니다. 기간 비용 초급자는 돈 10억 들여서 만들고 이 고급 사용자들은 짠밥 많은 사람들은 1억 가지고 만들어 버리잖아요. 그죠 그래서 그런 것들이다. 결국 인적 자원의 능력이다. IT 기술자의 실력이 컴퓨터는 좌우한다는 거지 알겠나 그런 이야기입니다. 좋습니다.

화자 1
38:52
프로토타임 모델 좋고 자 낯선형은 뭐냐 나선형은 이제 보엠이라는 컴퓨터학자가 제안했는 건데 포포스 모델의 장점과 프로토마이드 장점에 뭐 위험분석 동그래미 위험분석하면 나선형이다. 위험분석 기능을 추구한 모델입니다. 나선형 꽈배기 모형 가장 현실적인 모형으로 대규모 프로젝트에 적합 대규모 프로젝트에 적합하다는 거죠. 그러니까 4단계를 뭐야? 자 계획 수립 단계 그리고 위험 분석 위험 분석이 들어가고 그다음에 개발 공학적 개발 고객 평가를 4단계로 해 가지고 꽈배기처럼요 조금조금씩 나선형 계획수립 위험분석 요렇게 요런 식으로 나선형 이제 나선형 나선형 이런 식으로 개발 단계를 4단계로 분류해 가지고 반복해 나가는 아 이런 모델이제 이게 나선형 모델이라 합니다. 뭐 위험분석 기능을 추가했다. 어디에 폭포수 모델의 장점과 프로타임 모델의 장점이었어요. 되겠나요?

화자 1
39:48
자 나선요 계획 수립 위험분석 공학적 개발 고객평가 이놈을 뺑빽뱅 조금씩 쪼금씩 쪼금씩 반복적으로 수행하면서 소프트웨어를 개발하는 모형이다. 뭐가 나선형 모형은 모델은요, 좋습니다. 나선형 그 다음에 인제 포 사지티 포 제너레이션 테크니컬해 가지고 4세대 4세대 모형은 뭐냐 사용자와 개발자가 쉽게 사용할 수 있는 뭐 동그라미 포지엘 4세대 언어를 이용한 비절차적 모형입니다. 절차가 없는 모형이다. 앞당계 전부 절차가 있었죠. 무슨 단계 무슨 단계인지 절차가 없는 모형이고 중요한 건 포지엘 포지엘 같은 경우 인제 객체 지향 언어들이죠. 그죠 요구사항 수집을 하고 설계를 하고 뭐 포지를 이용해서 생성한다. 뭐 소프트웨어를 그리고 검사하는 단계다 그죠 그래서 포지엘 관한 말 아시고요.

화자 1
40:45
자 R 레이더 모형은요, 어 뭐냐 하면 혼합모델에서 이 4GT 기법의 모형에다가 리우저 재사용 리우저 재사용을 이용하여 각 팀별로 병행 개발을 위한 병행 개발을 위한 모형입니다. 병행개발 동그라미 그렇죠. 그래서 네이디 모형은 뭐 책에도 잘 안 나오지만 제가 한번 썼다 그죠 그래서 레이디 모형은 재사용 동그라미 재사용하면 레이디 모형 뭐 병행 개발을 위한 모형이다. 병행해서 개발에 들어가는 각 단계를 병행해서 추구를 한다는 거 그죠 RAD 모형이었습니다. 그래서 이 소프트웨어 공학의 개요 어렵지 않제 그래서 여러분들 소프트웨어 중요한 건 뭐였습니까? 소프트웨어 공학이 왜 등장했느냐 소프트웨어 공학은 소프트웨어 개발하는 과정을 학문으로 만드는 거죠.

화자 1
41:27
그래서 소프트웨어 공학과 컴퓨터 공학과 대학에서 이제 공학 차원에서 이제 컴퓨터 프로그램을 이제 만들어 내가는 과정 왜 하느냐 소프트웨어의 품질 저하를 막기 위한 즉 소프트웨어 위기를 극복하기 위한 학문이 이제 아니 그러나 소프트웨어 생산성 있는 돈 적게 들고 재빠르게 정확한 프로그램을 만들기 위하는 그 도구 방법 절차들을 연구하는 학문이 뭐다 소프트웨어 공학이고 이 소프트웨어를 개발하는 단계를 우리는 뭐라 한다. 소프트웨어의 라이프 사이클이라 하고요. 그 단계는 크게 뭐다 분석 단계 설계 단계 구현 단계 검사 단계 유지 보수 단계가 있더라 그죠 그래서 분석 단계는 뭐다 크게 보면은 내가 이거 개발해야 할 소프트웨어의 타당성 검토를 하지 타당성 조사를 합니다.

화자 1
42:16
아 그러면 개발해도 좋다 하면 그 다음에 뭐가 들어가노 어 근데 인제 분석이 들어가죠 그 업무분석 요구사항 분석 어널리시스 분석 단계를 마치고요. 그리고 설계 들어갑니다. 설계 제너럴한 설계 전체 설계를 하고 DITAL 하나하나씩 전부 설계도를 만들어냅니다. 설계도를 만들고 난 뒤에 이제 적당한 컴퓨터 언어를 선정해서 코딩 구현 개발 등하제 개발 단계 등화재 직접 대가리 딱 빠져가면서 개발을 하잖아요. 그래서 개발이 끝나고 나면은 제대로 됐나 안됐나 가는 게 뭐다 검사 단계죠 그래서 검사 단계에서 에러가 발생하지 않으면 완제품이다. 완성이 돼서 실무에 투입이 돼서 이제 컴퓨터 프로그램이 커뮤니티 돌아가자 돌아가면서 우리 인간의 업무를 대신 해주고 그리고 바뀐 업무는 유지보수 메인터넌스요 계속 메인터넌스를 통해서 계속 가동이 되고 나중에 사용 안 하면 폐기를 하는 거고요.

화자 1
43:11
에러가 발생하면 디버깅 수정 작업을 거치고 이런 사이클을 우리는 뭘 한다. 소프트웨어의 생명주기다 하나의 소프트웨어가 탄생에서부터 죽을 때까지 분석 설계 구형 검사 유지보수 단계를 거치면서 소프트웨어는 돌고 돈다 돌고 돈다는 그런 이야기 알겠죠. 실무에서도 정확하게 그 과정대로 일을 합니다. 그래서 특히 소프트웨어는 여러분의 영원한 스승 제재치가 산전수전 공주전 다 겪었다 수많은 프로젝트를 내가 했잖아요. 그래서 어 참 이 강의할 때마다 아주 새로운 게 많아요. 그래서 내가 제일 처음 프로그램 개발했던 게 여러 가지가 있는데요. 실제 회계 관리하는 걸 만들었거든. 회계관리 만들 때 이 과정을 그대로 그걸 겪었습니다. 그래서 만들고 난 뒤에 내가 만든 게 이제 중소기업의 3천만 원씩 그 당시 팔렸거든. 90년 91년도예요.

화자 1
44:08
그리고 그건 어 만들고 난 뒤에 포항 앞바다에서 대승통곡을 했고 그때 인생의 가장 큰 행복을 맛봤던 거예요. 행복은 돈이 아니고 그죠 돈이 아니고 내가 꿈꾸던 걸 내가 못하는 걸 할 수 있게 되는 그 과정에서 이 과정을 다 거쳤고요. 그래서 가장 중요한 단계가 실은 분석 설계나 코딩은 별거 아니다. 분석 설계가 굉장히 중요합니다. 그리고 코딩 검사 유지보수 가장 비용이 많은 드는 단계는 뭐다 실은 유지 보수다 그래서 컴퓨터 소프트웨어는 크게 개발 과정이 있고 개발 구축이죠. 그리고 운영단 운영이 있거든. 실은 비용은요, 개발 쪽에 들어가는 것보다 나의 운영 운영비가 훨씬 많이 들어가요 그래서 메인터넌스의 가장 큰 비용이 들어간다는 거죠. 여러분들 착각하면 안 된다. 개발 비용보단 개발해 놓은 놈을 운영 유지 보수하고 운영하는 데 비용이 엄청나게 많이 들어가요 그래서 개발비 운영비 이렇게 보통 분리를 하거든.

화자 1
45:06
그래서 고런 것도 알아놓으시고 자 오늘 소프트웨어 공학 첫 시간 계류를 가지고 했죠. 그렇죠. 이 시험 나오는 건 만화재 소프트웨어의 라이프 사이클에서 나오겠죠. 뭐 그리고 소프트웨어 크라이시스가 뭔지 그렇죠. 요 두 놈이 바로 시험에 등장하는 문제들이다. 그거 아니면 낼 게 없더라 됐나요? 자 요렇게 해서 소프트웨어 공학 첫 번째 챕터 개요를 마칩니다. 그죠 한 10분 쉬다가 이제 다음 챕터로 만나 뵙겠습니다. 잠시 후에 돌아오겠습니다.

728x90
반응형
posted by 아이윤맨
:
PC 조립 2024. 8. 8. 08:49
728x90
반응형

https://youtu.be/YZm8tWZqzkE?si=jZseL-ajrK4avxrT

728x90
반응형
posted by 아이윤맨
:
PC 조립 2024. 8. 7. 14:36
728x90
반응형

https://youtu.be/sdepQcpUDfI?si=CoGxVzfGvuYDHtSO

728x90
반응형
posted by 아이윤맨
:
PC 조립 2024. 8. 7. 14:36
728x90
반응형

https://youtu.be/EOpjsrPfFNY?si=4KtH0trxhbAxL7MD

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

https://youtu.be/7p87HmRcB1I



1. 통신 프로토콜과 OSI 참조 모델

1-1. 통신 프로토콜의 기본 요소
-  프로토콜의 요소는 구문, 의미, 순서로 구성되어 있음
- (중요) 구문은 전송 데이터의 형식이나 코딩, 신호 레벨에 대한 규정을 포함함
-  의미는 정보 전송을 위한 협조 사항과 오류 관리를 위한 규정을 포함함
-  순서는 속도 조절과 메세지 순서 조정에 관한 규제를 포함함

1-2. 프로토콜의 기능과 OSI 참조 모델
-  프로토콜의 기능은 메세지를 분해, 조립, 재합성하는 것을 포함함
- (중요) 캡슐화를 통해 정보를 보호하고, 흐름 제어, 오류 제어, 동기화 등의 기능을 수행함
-  OSI 참조 모델은 개방형 시스템의 상호 접속 규정으로 국제 표준화 기구에서 규정한 것임
-  7개의 층으로 구성되어 있으며, 각각의 층은 서로 다른 환경에서 통신이 가능하도록 하는 약속을 나타냄

1-3. OSI 참조 모델의 특징
- (중요) 7개의 층은 프로토콜을 표준화시킨 것으로, 이를 통해 서로 다른 컴퓨터 간 통신이 원활하게 이루어질 수 있음
-  각각의 층은 서로 다른 환경에서 통신이 가능하도록 하는 약속을 나타내며, 이는 프로토콜의 기능에 필수적임
-  7개 층의 개념은 시험에 출제될 수 있으므로 이해와 암기가 필요함
-  이해와 암기를 통해, 서로 다른 환경에서도 데이터의 원활한 전송이 가능함을 이해할 수 있음

2. 통신 프로토콜의 이해와 계층적 구조

2-1. 인터넷 생중계와 인터넷 방송의 관계
-  인터넷 생중계와 인터넷 방송에서 전문가는 인터넷 홍보에 참여함
-  연예인들의 콘텐츠 생성과 연예인들과의 친밀도를 강조함
-  키우는 가수인 정체임의 노래를 회사 중심으로 만들었음
-  정체임의 노래 "스스로 숟가락 젓가락"을 인터넷 생중계에서 들려줄 수 있음
-  인터넷 생중계에서 발표되지 않은 노래를 들을 수 있음

2-2. 통신 프로토콜의 계층적 구조
-  통신 프로토콜의 하위 계층이 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 그리고 전송계층의 7개 계층으로 구성되어 있음
-  하드웨어적인 약속인 물리계층과 소프트웨어적인 약속인 상위 계층으로 나뉘어 있음
- (중요) 상위 계층은 하드웨어적 약속과 소프트웨어적 약속으로 구성되어 있음
-  물리계층은 가장 하위계층으로, 하드웨어적 약속을 정의하고 사용함
-  상위 계층은 소프트웨어적 약속을 가지고 기계적이고 논리적인 기능을 제공함

2-3. 하위 계층과 상위 계층의 특징
-  물리계층은 하드웨어적 약속을, 데이터 링크 계층은 전송 매체를 사용하여 통신기기 사이의 연결을 규정함
-  네트워크 계층은 네트워크 연결 관리 및 경로 배정 등을 담당함
-  전송계층부터는 투명한 데이터 전송 기능을 제공하며, 단말기 간의 데이터 전송을 처리함
- (중요) 상위 계층은 하드웨어적 약속과 소프트웨어적 약속을 모두 고려하며, 전송계층부터는 이들 약속이 투명하게 적용됨
-  각 계층은 전반적인 통신 시스템의 일부분이며, 한 계층이 아닌 여러 계층이 연결되어 있음

3. 네트워크 프로토콜의 계층 구조와 기능

3-1. 네트워크 프로토콜의 계층 구조
-  네트워크 프로토콜은 물리계층, 데이터링크 계층, 네트워크 계층, 전송계층, 세션계층, 표현 계층, 응용 계층으로 구성되어 있음
- (중요) 각 계층은 특정 기능(데이터 전송, 네트워크 연결, 정보 표현 등)을 담당하며, 해당 계층의 역할에 따라 다른 프로토콜을 사용함
-  물리계층과 데이터링크 계층은 네트워크 계층으로 묶여 처리됨
- (중요) 전송계층은 세션 계층으로 분류되며, 네트워크 계층이 담당함
-  표현 계층은 응용 계층으로 통합되며, 상위 계층의 정보 교환을 담당함

3-2. 각 계층별 프로토콜의 기능과 역할
-  TCP/IP 프로토콜은 인터넷이라는 통신망이 사용하는 표준 프로토콜로, OSI 참조 모델의 일곱 가지 약속을 병행함
-  텔레트는 원격 접속을 가능하게 하며, 파일 전송 등에 사용됨
-  SMTP는 전자우편 서비스를 제공하며, 네트워크 매니지먼트 프로토콜인 UDP가 포함됨
-  DNS는 도메인 네임을 IP 주소로 변환하는 서비스로, 네트워크 계층에 사용됨

3-3. 프로토콜 간의 상호 작용과 네트워크 환경
-  TCP/IP 프로토콜은 네트워크 계층에서 데이터 전송을 담당하며, 전송계층에서는 데이타그램 프로토콜이 사용됨
-  네트워크 계층에서의 주소 지정과 경로 설정은 인터넷 계층에서의 프로토콜에 의해 처리됨
- (중요) 각 계층은 서로 다른 프로토콜을 사용하지만, 모든 계층이 서로 연결되어 통신 환경을 이룸
-  네트워크 계층의 정보 교환은 상위 계층에서 이루어짐
-  각 계층의 특징과 프로토콜의 역할을 이해하는 것이 네트워크 환경을 이해하는데 중요함

4. 인터넷 계층과 프로토콜의 이해

4-1. 인터넷 계층의 개념과 프로토콜 이해
-  인터넷 계층은 네트워크의 물리적 구조를 나타냄
-  인터넷 계층에는 아이피피 프로토콜과 에이아이피 반대 기능인 에이아이피를 포함함
- (중요) 인터넷 계층에서 작동하는 프로토콜의 종류들이 시험에 나옴
-  링크 계층은 실제 데이터를 송수신하는 역할을 함
-  링크 계층에 이용되는 프로토콜로는 이드넷, HDLC 등이 있음

4-2. 프로토콜의 종류와 기능
-  프로토콜은 인터넷 계층에서 작동하는 기본 단위임
- (중요) 링크 계층에서 링크 단위로 사용되는 프로토콜의 종류가 시험에 나옴
-  프로토콜의 기능은 인터넷 계층에서 작동하는 프로토콜에 따라 다름
-  주소 개념인 에드레스 네졸루션 프로토콜과 RNAIP가 반대 기능을 가짐
-  프로토콜의 종류와 기능을 알고 있어야 인터넷 계층의 작동 원리를 이해할 수 있음

4-3. 프로토콜의 중요성과 시험 준비
-  프로토콜은 인터넷 계층에서 작동하는 핵심적인 프로토콜임
-  프로토콜의 종류와 기능을 알고 있어야 데이터 통신의 큰 틀을 이해할 수 있음
- (중요) 프로토콜 관련 시험에서는 종종 프로토콜의 역할과 기능에 대한 이해가 필요함
-  프로토콜의 역할과 기능을 알고 있어야 시험에서 높은 점수를 얻을 수 있음
-  시험 준비를 위해서는 각 프로토콜의 특성과 기능을 완벽하게 이해해야 함

화자 1
00:10
자 전국에 계시는 우리 엠투엠 생방송 안방 가족 여러분 계속해서 뜨거운 감동의 수업을 함께 하겠습니다. 예 좋습니다. 자 한번 또 쉬었죠. 10분 자 오늘 요 마지막 크 또 데이타 통신의 마지막입니다. 마지막 또 책걸리 함 해야 되제 그리고 또 요 오늘 주말이죠. 이제 오늘 또 즐거운 금요일 주말입니다. 이제 오늘 여러분 어 데이터통신도 끝나고 그죠 좋습니다. 자 마지막 화이팅 합시다. 그죠 그래서 우리가 바로 앞 시간에서 우리가 이제 데이터 통신에서 우리가 아주 중요한 이론들 회선망들도 배웠죠 그리고 특히 인터넷은 조금 아쉽지만 제가 짧게 이야기를 했습니다. 그렇죠. 그래서 고 인터넷에 관련되는 장비들 고런 게 고런 것들이 시험이 나오고 실제적인 이야기는 아직까지는 문제화 되지 않는다.

화자 1
01:10
그 장비들 중에서 우리가 그죠 어 더 중요했던 거 허브 집선장치 그리고 나우터 경로 배정기 잠깐 넘어가 보죠. 예 자 여기 여기 잠깐 우리가 그 장비들을 잠깐 이야기하면 허브 집선장비가 있었고, 그다음에 라우터가 있었죠. 라우터 라우터는 여러분 경로 배정을 해주는 경로 배정기지 그죠 그래서 내가 전에 무슨 과목이고 우리가 그래프에서 데이터베이스 자료 구조 그래프에서 우리가 경로 배정할 때 통신망 중에서 우리가 AOEC 네트워크와 뭡니까? AOVCING 에이오 브이 어 에이오 VC 네트워크 있다. 했잖아요. 그죠 이건 별로 중요하지는 않습니다. 중요하지 않고 그때 인계 경로를 이야기한데 생각나는 인계 경로 그래서 이 인계 경로는 뭡니까? 에이라는 데서 비를 가는데 수많은 경로들이 있겠죠.

화자 1
02:01
이런 경로 이런 경로 경로들이 가는 길들이 여러 가지가 있는데, 에 가는 길들이 뭐 여러 가지가 있겠죠. 있는데, 어 이 에스 비까지 가는 데 최장 경로를 의미하면 최장경로 최장경로요 그래서 인계경로는 이 가는 길 여러 가지 그 가는 방향 중에서 가장 긴 경로를 인계 경로라고 최장 경로를 의미한다고 요 정도만이면 된다. 더 이상 공부할 필요는 없고요. 그래서 보통 경로 배정기가 경로 배정해서 최장경로를 찾아 가지고 이 최장경로를 피해 가는 거겠죠. 그죠 알겠나 그래서 나우터가 이런 인계 경로를 다 탐색을 한다는 이야기입니다. 알겠습니까? 그래서 요런 거 너무 신경쓰지 말고 예 특히 내가 수업시간에 했는 것만 하면 되고 어떤 책을 보면 아주 뭐 말도 안되게 막 어디서 뺏겨 가지고 하는 그런 거 신경 쓸 필요는 없다. 완벽 속성으로 하는 거다 그죠 물론 아주 깊이 있게 하면 좋습니다마는 특히 이 시험은 시험 대비잖아요.

화자 1
02:59
그죠 그래서 대학 과정 우리 대학 전산과 4년 과정에 준해서 강의를 하고 있습니다. 그래서 대학원 과정이나 석박사 과정에서는 다루지 않는다. 그래서 인기 경로 요 정도만 아시면 되고 또 장비 중에서는 우리가 브릿지도 있었고, 생각납니까 게이트웨이 그죠 이런 게 우리가 정리를 했습니다. 좋아요. 바로 방금 앞 시간에 우리가 정리가 됐고 자 이제 마지막 데이터 동시에 마지막 프로토콜 이야기 넘어가 봅니다. 통신 프로토콜 좋습니다. 자 프로토콜은 이미 정의는 설명했지 통신 규약이다. 그죠 서로 다른 A라는 컴퓨터와 비라는 컴퓨터와 통신을 하기 위해서는 환경이 통신환경이 맞아야 되고 이 서로 다른 서로 다른 통신환경을 이제 맞춰주는 약속 통신 규약에 뭐다 프로토콜이다. 이런 이야기를 했죠.

화자 1
03:53
그죠 여러분하고 나하고 대화하기 위해서 서로 약속이 맞아야 돼 우리나라 말로 그죠 우리나라 말로 아주 또 대학생들 여러분 수준에 맞는 용어로 강의를 해야 가장 크게 프로토콜 형성이 잘 되지 맞나 그래서 내가 늘 여러분 유치원이면 여러분들이 현재 국민학생이면은 여러분한테 맞는 용어로써 내가 강의를 해야 돼요. 내가 왜 명강이고 여러분한테 맞는 말들 딱 딱 서제 맞나 대가리 이런 말 잘 알아듣잖아. 근데 어려운 해도 이카면 못 알아듣잖아요. 그래서 통신 규약이 탁 맞아야 됩니다. 그죠 친구 간에도 통신 규약이 서로 탁탁 맞아야만 사랑이 그 우정이 피어나고 사랑도 안 가지지 이 프로토콜이 안 맞으면 찌질고 볶고 싸우고 절단 나는 거야. 순자야 알겠나 그래서 선의 봐라 이 말이죠. 결혼하기 전에 저 남자하고 내하고 통신 규약이 맞는가 프로토콜이 맞나 안 맞나 맞춰봐야 되겠죠. 자 설명할 필요도 없다.

화자 1
04:49
자 이런 예 아이고 목이 프로토콜의 요소가 3가지다 살짝만 구문 구문 신텍스 의미 시멘틱 순서 타이밍 그렇죠. 구문 의미 순서가 프로토콜의 기본 구성 요소 사업 요소다 이 말입니다. 요거 아니면 구문은 뭐야? 전송 데이터의 형식이나 코딩 코딩 가는 게 부호화 일괄형으로 디지털화하는 거고, 신호 레벨에 대한 규정이죠. 구분 그리고는 의미요 전 정확한 정보전송을 위한 협조사항과 오류 관리를 위한 규정 예 이게 고맙습니다. 땡큐 아 땡큐 좋아요. 그리고 순서는 서로 다른 2기기 2장비 간에 속도 조절과 메세지의 순서 조정에 관한 규제인 거죠. 그래서 통신 프로토콜은 구문 의미 순서가 3 요소다라는 것 아시고요.

화자 1
05:48
또 프로토콜의 기능은 이렇게 눈으로 살짝 봐 놓으면 된다. 담편화 메세지를 분해하고 또는 메세지를 다시 조립하고요. 재합성 그다음에 캡슐화 캡슐화 우리 캡슐 이거는 다음 과목 이미 예고합니다. 객체 지향에서 의한 캡슐화 우리 약도 뭡니까? 이 캡슐 알죠 캡슐된 약 안에 들어가 보면 빨간 약 노란약 해 가지고 이 보따리와 캡슐화 해 가지고 약을 먹잖아. 정보 전달도 1가지입니다. 캡슐화를 해야만이 정보가 은닝이 되고 정보가 보호하고 보호가 된다. 그러니까 캡슐화를 하고 흐름 제어라든지 오류 제어 소시재와 현재 동기화 다 중화 이런 여러 가지 기능을 누가 해준다. 프로토콜이 다 해주는 겁니다. 통신 프로토콜 때문에 우리는 아무런 불편함 없이 서로 다른 환경에서도 데이터를 주고받을 수 있다는 거예요. 그래서 프로토콜의 기능 요런 거 살짝살짝 봐주면 되겠죠. 좋습니다. 예 좋아요.

화자 1
06:45
자 그다음 볼까나 자 통신 프로토콜 됐고요. 자 OSI 참조 모델 반드시 출제가 된다. 예 자 OSI 참조할 모델은 뭐냐 쉽게 말해서 이 오픈 시스템 인터크레이션 즉 개방형 시스템의 상호 접속 규정이다. 이런 뜻인데 요거는 이제 국제표준화기구 인터네셔널 스탠다드 오그니제이션 기구에서 국제표준화기구에서 규정한 표준통신규약입니다. 그죠 이 프로토콜을 표준화시킨 프로토콜이 뭐다 OSI 세븐리어다 7개 층이다. 이 말입니다. 뭔 말인지 알겠나 국제 표준화하기 위해서 서로 다른 컴퓨터 통신을 하기 위해서 이 7가지 약속을 맞춰라 그 7가지 약속을 뭐라 한다. OSI 7개 층이라 합니다. OSI 국제표준화 기구에서 만든 7가지 약속 7개 층 내이어라 합니다. 네이어 예 7개 층입니다. 그래서 읽어보시면 알고요.

화자 1
07:43
통신 기능과 7개의 계층으로 7개 약속을 맞춰라 이 말입니다. 한번 읽어보시고 중요한 건 아니고요. 자 OSI 참조 모델 기본 요소 개방형 시스템이고 응용계체 접속 규정 물리 매체 살짝 중요한 건 아니고 보면 됩니다. 자 중요한 거는 7개 층의 개념이자 7개층 좋습니다. 자 OSI 7개층 구조 반드시 문제 나온다고 보면 된다. 자 A라는 컴퓨터하고 여러분 B라는 컴퓨터가 서로 다른 환경이지 그지 A는 노트북 북이고 B는 데스크탑이고요. A에는 윈도우 엑스비가 깔렸고 B에는 윈도우 95가 예를 들면은 유니스가 깔려 있고 그죠 그리고 환경이 많이 달라요. 이래 서로 다른 컴퓨터끼리 아무런 문제 없이 대화 즉 통신이 되려면은 뭐가 필요하다 프로토콜이 필요하죠.

화자 1
08:40
프로토콜 프로토콜이 필요한데 이 프로토콜을 표준화시킨 프로토콜 즉 국제표준화하기 위해서 이래 서로 다른 컴퓨터끼리 통신할라카면은 7개 약속을 맞춰라 그 7개 약속이 뭐다 OSI에서 규정한 7개 층이다. 이 말입니다. 7개의 약속이 맞으면은 뭐가 가능하다 아무런 문제 없이 데이터가 왔다리 갔다리 갔다리 왔다리 가능하다는 거요 알겠습니까? 왔다리 갔다리 갔다리 왔다리 갑자기 생각나는 게 하나 있더니, 숟가락 젓가락 젓가락 숟가락 이게 뭐냐 하면은 여러분 이거 내가 말이요. 인터넷 생중계 인터넷 방송 내가 전문이잖아요. 그죠 이렇게 왜 전문 아니라고 전문이다. 예 이래 하다 보니까 내가 어 뭐 연희의 엔터테인먼트도 관여를 좀 해요. 그래서 우리 회사에서 지금 준비하고 있는 게 일단 홍보 좀 하자 인조이 점 티비 엔조이 점 티비라는 사이트가 이제 준비하고 있습니다. 엔조이 점 티비 앞으로 사랑해 주세요.

화자 1
09:39
UCC 여러분들이 영상을 올려놓고 또는 유명한 연예인들도 이제 컨텐츠를 만들고 이런데 그러다 보니까 내가요 또 요거 연예인들하고 되게 친합니다. 진짜인데 그죠 내가 또 키우는 가수가 하나 있습니다. 정 뭐시기라고 이제 신인 가수인데 곧 떠요 텔레비전도 가끔씩 나오는데 내가 키우는데 여러분 좀 성원 좀 해줘라 왔다리 갔다리 노래가 아주 재미있어요. 그 친구가 인제 노래를 우리 회사 중심으로 이렇게 만들었거든. 그 제목이 숟가락 젓가락이야 어 그거 함 들려줄까 아직 오픈 안 됐어요. 우리 저 피디님 들려줄 수 있어요. 진짜 야 이거 괜찮지 공부 중에 뭐 노래 한번 듣고 하자 머리 아픈데 마지막 대단하 병태순자 괜찮겠나 어 이거 왜 테레비에도 발표 안 된 노래다 아닙니까 이거 우리 인터넷에서 먼저 듣고 여러분 딱 티비 이제 요거 듣고 나면 티비에 나와요.

화자 1
10:31
그러면 저거 제이제이치 교수님이 밀어주는 친구구나 어 이래 아니 뭔데 병대 손자 괜찮나 노래 함 듣고 갈까 진짜요 제목이 숟가락 젓가락인데 지금 생중계인데 들어올 수 있어요. 진짜 어 우리 피디님 진짜 가는데 좋다. 함 듣자 그러면 그러면 노래 지금 어 나 있나 큐 함 주세요. 내가 춤 한번 추게 어 근데 노래 나올 때는 그 뭐 그 친구 이거 얼굴을 열면 좋은데 이름이 정일송이라고 박달 가요제 대상 받은 친구인데 내가 아주 밀어주고 있습니다. 자 그럼 노래 1번 듣지 뭐 큐 좋다. 자 레디 노래 1번 들어갑니다.

화자 1
11:08
웃긴다 숟가락 젓가락 큐 너 별이 슈욱 사랑하고 싶어 자 여러분 이거 시간 관계상 다는 못 들었고 우리가 핵심적인 사항을 들었네 노래 괜찮아요. 병태 괜찮나 웃어요. 순자 괜찮아 웃어요. 서울 근처에 살아요. 그래요. 좀 사랑해 주세요. 그래서 야 참 좋잖아.

화자 1
12:05
인터넷 생중계에서 강의하다가 아주 발표되지 않은 아직 이제 지금 심의 받고 있는 이 노래를 탁 듣는다는 거 매력이 재밌제 그래요. 이게 우리가 공부만 하는 게 아니고 이제 노래도 좀 듣고 근데 트로트라고 이게 댄스형의 트로트입니다. 댄스댄스형 그래서 여러분 거 어 좀 사랑해 주시고 아 딱 보면은 앞으로 그 친구 나올 아 제이지에이치 생각하시오. 어 괜찮지 병대손자 노래 괜찮제 좋습니다. 예 그럼 노래도 들었고 이제 수업 들어가자 근데 무슨 이야기 하다가 왔다리 갔다리 하다가 숟가락 젓가락이 나와 가지고 어 또 시험 치는데 숟가락 젓가락 그런 거 답 없다. 좋습니다. 아 좋아요. 그래서 이런 통신 프로토콜이 맞아야 원활하게 했는데 1~7 약속 7개 약속이 뭐다 국제표준화하기 위해서 요거 약속 맞춰라 이 말입니다. 그죠 알겠나 자 그러면 7개의 약속 7개의 계층이 어떻게 되느냐 이 말입니다. 그죠 자 제일 하위 계층이 물리계층입니다. 물리계층 그리고 순서부터 알아야 돼요.

화자 1
13:03
자 물리계층 피지컬 레이어 그 다음에 데이타 링크 계층 그다음에 네트워크 계층요 네트워크 계층 예 저 그리고 전송계층 별짓 당한다. 여러분 합격시킬라고 이 나이에 29나이에 별짓 노래 들려주고 이게 스승의 이 뜻을 알겠나 명제야 소녀야 웃어요. 천송계층 세션 계층 표현 계층 응용 어플리케이션 계층 7개의 약속 7개의 단계가 있다는 겁니다. 7개의 단계가 서로 맞아야 된다는 겁니다. 그렇죠. 자 이 단계를 크게 나누면요 물리 계층과 네트워크 계층 여기까지가 하드웨어적인 약속이다. 하드웨어적인 규정입니다. 하드웨어 즉 물리적 약속이죠. 물리 기계적인 거다 이 말이죠. 물리적 하드웨어 약속이고요. 여기 하위 계층이라 합니다.

화자 1
13:53
하위 계층들 하위 계층이라 하고 전송 계층에서부터 응용계층까지를 소프트웨어적인 약속이야 자 에이라는 컴퓨터와 비라는 컴퓨터 서로 통신을 하려면은 하드웨어적인 약속과 소프트웨어적인 약속이 맞아야 되잖아. 하드웨어적인 약속은 밑에 세계층이고 소프트웨어적인 약속 무슨 약속 논리적 약속 이놈을 우리는 상위계층이라 합니다. 그죠 상위계층이라 한다. 그래서 OSI 7계층은요, 상위 계층 몇 계층 4개 층과 하위 계층 몇 계층 3개 층으로 구성되어 있습니다. 그죠 하위 계층은 뭐다 하드웨어적인 약속이다. 물리적 약속이고 상위 계층 4개층은 뭐 소프트웨어적인 약속이다. 이렇게 알면 되겠죠. 그니까 각 계층의 특징들이 있거든. 그걸 여러분 다 암기할 필요 없고 자 물리적인 냄새가 나면 가장 물리적인 건 뭐다 물리 계층이고 그다음 물리적인 거 가면 갈수록 논리에 가까운 거죠.

화자 1
14:51
에 이것만 알면 돼 어 시험에 어 가장 기계적인 거 나오면 물리 계층이야 가장 소프트웨어적인 거 나오면 응용 계층이에요. 알겠습니까? 알겠나 예 3개의 물리 계층과 4개의 상위 계층으로 구성되어 있습니다. 그죠 자 그러면은 각 계층을 한번 봅시다 그죠 내 말이 맞나 안 맞나 다 암기할 필요 없다. 각 계층의 특징들 크게 하드웨어적인 거냐 소프트웨어적인 거냐 보시면 됩니다. 희한하게 다 맞아떨어지게 돼있지 그래서 요 계층에 대한 문제는 반드시 나온다고 보면 된다. 반드시 문제가 나와요. 자 물리계층은요, 가장 하위계층입니다. 7계층 중에서 가장 기계적인 약속 그죠 그러니까 두 장비가 봐야 기계적 정기적 기능적 절차적인 규정을 정의했다. 기계적 전기적 물리적 이런 말도 나온다 물리 계층이죠. 자 여기 나오네 물리적인 전송 매체와 전송 신호 방식을 정의했다.

화자 1
15:50
되겠나 요게 물리계층의 특징이다. 됐죠 어 아주 하드웨어적인 약속들이다. 이 물리 계층에 이용되는 프로토콜은 뭐냐면은 이름만 알고 있었는데, RS2320 X 규정 엑스 1 등이 표준 프로토콜입니다. 표준 프로토콜 그러니까 물리계층에서는 요 두 요런 규정 물리적 세팅을 한다는 거예요. 그죠 표준 프로토콜입니다. 프로토콜 자 요 인제 그러니까 물리 계층에 이용되는 프로토콜 하면 답은 뭐다 알에서 엑스 21 엑스 25 아닙니다. 21이다. 예 반하면 되겠습니다. 자 그 다음에 데이터링크 계층은요, 데이터링크 계층은 물리계층에서 규정한 전송 매체를 사용하여 통신기기 사이의 연결 우리 알죠 연결 및 데이터 전송 기능과 관리를 규정하는 겁니다.

화자 1
16:44
그죠 그래서 흐름 제어라든지 동기와 오류제어 순서제어 기능을 제공하고 여기에서 이용되는 프로토콜은 HDLC 어디서 많이 봤죠 HDLC 프로토콜과 LABP 프로토콜이 데이터 링크 계층의 약속을 만들어주는 프로토콜이다. 이렇게 생각하면 된다. 실제 그 다음에 네트워크 계층은 뭐다 두 네트워크 서로 다른 네트워크이죠. 네트웍을 연결하는 데 필요한 데이터 교환 기능의 제공 및 관리를 어 네트워크 연결하는 계층이다. 이 말이야. 그러니까 네트워크 연결관리 또는 PETIC 관리 에 또는 경로 배정 네트워크 경로 배정 주소 설정 데이타그램 또는 가상외선 개설 생각나죠. 축적 교환 방식에서 나오는 거지 시스템 접속 장비 관리 뭐 이런 것 등등 있는데, 중요한 게 네트워크 연결 관리는 네트워크 계층에서 한다는 거 여기 이용 두 번째는 프로토콜이 뭐다 엑스 이십오 그리고 IP 인터넷 프로콜 프로토콜 등이 표준 프로토콜로 정해져 있습니다. 되겠죠.

화자 1
17:43
그래서 특징들을 눈으로 살짝살짝 봐 놓으시면 되고 여기까지가 뭐다 하위 계층이다. 그죠 하위 계층이고 하드웨어적인 냄새들이 무럭무럭 나는 계층들이고 그 다음에 전송계층부터는 상위계층이라 한다. 그죠 전송 트랜스포터 레이어 해가지고 다른 네트웍들의 종점 간에 신인성 있는 투명한 데이터 전송 기능 즉 종점 간의 단말기 간에 투명한 데이터 전송 기능을 제공하고요. 함 읽어보시면 되고요. 종점 간의 저 종점 나옵니다. 종점 간의 전송 연결 세점 데이터 전송 연결 해제 기능을 제공하고 흐름 제어 네트워크 서비스 정도에 따른 최적화 다중화 여기 이용되는 프로토콜은 바로 TC CP와 UDP 등이 표준 프로토콜이다. 그죠 트랜스미션 컨트롤 프로토콜과 어 음 UDP 프로토콜이다. 그죠 예 UDP 예 좋습니다. 이렇게 보시면 된다. 결국은 이런 것도 여러분들이 1번씩 눈으로 보고 써보시면 되겠습니다. 각 중요한 단어들만 잡아내면 되겠다.

화자 1
18:44
자 그리고 이제 세션 계층은 한마디로 대화 제어 송수 신청 간의 관련성 유지를 하고 대화 제어 대화 나오면 대화 세션입니다. 대화 대화 정보 대화 제어를 담당하는 계층 연결 설정 요즘에 대화 관리 대화는 단방향으로 하니까 반위중적인 이런 것이 세팅하는 게 데이터 동기마 관리 데이터 교환관리 개념 그죠 그래서 대화 카는 말이 나오면은 세션계층이다. 하시면 되고요. 인제 표현을 해야 되겠죠. 내가 정보표현을 해야 돼 프리젠테이션은요, 이제 간에 표준형식으로 재구성 기능을 사용하죠. 데이터의 재구성 코드 변환 구문검색 이런 용어들 나오는 거고요. 자 마지막 응용계층에서 정보가 왔다리 갔다리 하겠죠. 응용계층은 사용자가 OSA 환경 접근할 수 있도록 서비스를 제공하죠. 응용 프로세스 간의 정보 교환 실제 정보 교환 어디서 일어난다 응용 계층에서 일어납니다. 즉 전자사싸움이나 파일 전송 등의 서비스 등이 제고됩니다. 되겠나 그래서 요 3개 4개 계층들은 뭐다 상위 계층이고 소프트웨어적인 냄새가 나죠.

화자 1
19:42
가장 소프트웨어적인 게 응용계층 그다음에 표현 계층 세천 계층 그렇죠. 그래서 각 계층 간의 여러분들 특징들을 반드시 알아놔야 되고 순서 중요하다 다시 한번 하자 물리계층 데이터 링크 계층 뭡니까? 네트워크 계층 전송계층 세션계층 표현 프리젠테이션 계층 응용계층 그렇죠. 요거 아주 중요하다 다시 물리계층 데이터 잉크 계층 네트워크 계층 전송계층 새청 계층 표현계층 프리젠테이션 계층 언용계층 요거 일곱 개의 약속들 계층들 반드시 문제가 나온다고 보면 돼 그리고 각 계층의 특징은 우리 노트에 있는 정도 여러분들 보시면 좋겠습니다. 됐습니다. 예 자 오일세븐레이어 됐구요.

화자 1
20:37
자 이제 TCPIP 프로토콜을 봅시다 자 이 TCPIP 프로토콜은 뭐고 인터넷 프로토콜이다. 한마디로 인터넷이라는 통신망이 사용하는 프로토콜이 바로 TCP IP 프로토콜이죠. 인터넷 프로토콜입니다. 정의는 TCPRP는 트랜스미션 컨트롤 프로토콜 인터넷 프로토콜은 인터넷에 연결된 모든 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜 인터넷에 이용되는 프로토콜이 TCPRP 프로토콜이라는 거야. 역시 TCP IV 프로토콜도 OSI 세븐 레이어를 약간 병행해야 되는 거야. 그죠 국제표준화기구에서 만든 7개의 약속을 요렇게 바꿔놨는데 자 일곱 개 약속 아 이제 OSI 참조 모델 칠 계층요 아주 중요하죠. 물리 계층 데이터링크 네트워크 하위 계층 전송 계층 세종 계층 표현 계층 응용 계층 상위 계층 그렇죠.

화자 1
21:33
하위 계층 상위 계층이 있는데, 요놈은 어떻게 응용 계층에서부터 저소년 계층 이 상위 계층을 다 이렇게 아 요 3가지 응용 계층에서 요 3가지를 그림이 좀 이상하다 지울께 아 여기 있네요. 여긴 여기 여기는 에이 참 이렇게 요 3가지 계층을 뭐야? 응용계층으로 하나로 만들었죠. 그죠 어 아 요게 그다음에 전송계층은 바로 대응시켰고 대응시켰고 네트워크 계층 다른 말로 이것도 네트워크 계층이다. 같은 말을 써요 드워크 계층으로 대응시켰고 데이타 링크와 물리계층 이 2놈을 링크 계층으로 표현을 했습니다.

화자 1
22:11
자 TCPIP도요 OSI 7기층하고 똑같은데, 이놈 뭐 하는 거지 요 3놈의 뭐로 표현했노 응용계층으로 요 3가지를 그리고 세션 계층을 전송 계층으로 네트워크 계층을 인터넷 계층으로 데이터링크와 물리계층을 링크 계층으로 즉 7개의 계층을 몇 개 층으로 4개 층으로 만든 프로토콜이 뭐다 TCPIP 프로토콜이고 인터넷에서 사용하는 표준 프로토콜이다. 이 말입니다. 그렇죠. 그래서 티씨파이 프로토콜 내가 암기하죠. 링크 계층 인터넷 계층 다른 말도 네트워크 계층 해도 된다. 그리고 전송계층 응용계층 자 TCPIP의 사계층이 아닌 것 이렇게 문제가 나온다 그죠 다시 링크 계층 인터넷 계층 방송 계층 응용 계층의 TCP 결국 OSI 7개 층을 압축했는 거다 이렇게 보시면 됩니다. 좋습니다. 자 그럼 각계층에 이용되는 프로토콜 한번 볼까나 예 보자 웃어요.

화자 1
23:11
따라와 빠져봅시다 예 자 응용 계층은 역시 응용 프로그램 간의 데이터 송수신 제공을 하고 응용 계층에 이용되는 프로토콜요 가장 많은 것들이 나오겠지 텔레프로토콜 이건 텔레 라이제 가상 터미널 프로토콜 그죠 원격 접속 이 단어면 원격 접속이제 원격 접속 다른 말 또 원격 제어죠 원격제어 맞지 현재 여러분 집에 컴퓨터를 우리 기술팀이 기술직원이 원격 접속해 가지고 바로 원격으로 접속해서 제어를 한다. 여러분 컴퓨터를 다 고쳐주잖아. 그죠 그래서 가상 터미널 방식을 쓰는 겁니다. 알겠나 어 내 컴퓨터 그럼 원격 텔레프로토콜에 의해서 내 컴퓨터가 내 컴퓨터에 내가 해주면 여러분 컴퓨터요 어 내가 원격으로 여러분 컴퓨터를 볼 수 있는 거거든. 이게 해킹의 원리입니다.

화자 1
24:00
나는 이제 내 컴퓨터에 접속 딱 시키면은 여러분 컴퓨터가 뭐하는지 다 볼 수가 있어 옛날에 내가 그 뭐요 막 그 우리 사이트를 공격하는 사람을 잡아냈거든. 뭐 글을 막 나쁜 글을 올려가지고 접속을 딱 해서 텔넷으로 텔넷 프로토콜로 원격 터미널에 접속 딱 붙으니까 어 막 무슨 문서를 이게 어떤 작은 어떤 신문사의 기자였어요. 막 글을 쓰더라고. 내가 전화 딱 해가 당신 지금 어 침략하제 깜짝 놀래더라고. 어떻게 알고 그래가 막 잘못했다고 딱 다 보이거든. 그 사람이 치는 거 내 모니터에 다 보여 니 뭐 하고 있지 방금 니은 침략하자 깜짝 놀랜 거야. 그래서 역시 제이제이처가 찾아와서 잘못했다. 카고 그렇게 또 어 그런 일도 있었어요. 그죠 그래서 이게 참 재미있는 일이 많다 여기 응용계층의 프로토콜이다.

화자 1
24:55
그죠 에 그래서 자 FTP는 너무나 잘 알죠 파일 트랜스미션 프로토콜 파일 전송하는 데 이용되는 프로토콜 에프티피 때문에 우리는 파일을 왔다리 갔다리 그죠 서로 다른 컴퓨터에서 파일 저수 FTP 마이 화제 FTP 여러분 상식적으로 하고 있는 거고, SMTP는 뭡니까? 이게 이제 전자우편 프로토콜이죠. 이 SMTP 프로토콜이 이 메일을 가능하게 하제 그렇죠. 심플 메일 이제 어 프로토콜이죠. 자 SMTP는 뭐냐면 강의망 관리 망관리 프로토콜입니다. 어 심플 네트워크 매니지먼트 프로토콜이고 자 DNS는 뭡니까? 도메인네임을 IP 주소로 변환한 뭐 프로토콜보다는 어떤 일종의 시스템이죠. 서비스 또는 시스템입니다. 뭐 꼭 프로토콜로 이야기할 수는 없고요. 요거는 요런 것들은 프로토콜이고 그래서 응용 계층에 이용되는 뭐 프로토콜 이 정도 여러분들 아시면 되겠다.

화자 1
25:49
텔렛 FTP SNMP DNS 서비스 자 전송 계층은 호스트들 간에 시뮬레이션 통신 제공을 하는 거고, 여기 이용되는 프로토콜은 TCP 트랜스미션 컨트롤 프로토콜과 전송 제어 프로토콜과 UDP가 뭐냐 하면 유저 데이타그램 프로토콜이죠. 그죠 데이타그램 뭡니까? 가상 경로를 미리 경로를 아 어 경로를 찾아가는 뭐요 축적 교환 방식이 하나였죠 UDP 2가지 프로토콜 이용되고 자 프로토콜 이용 여기 시험에 나온다 자 인터넷 계층은 다른 말로 네트워크 계층에도 무방하다 네트워크 계층 이 네트워크 계층인데 데이타 전송을 위한 주소지정 경로 설정을 제공합니다. 그죠 여기 이용되는 계층은 프로토콜 IP 인터넷 프로토콜과 ICMP 인터넷 컨트롤 메시지 프로토콜 IGMP 인터넷 그룹 매니지먼트 프로토콜이고 AI는요 어드레스 리소스 프로토콜입니다. 어드레스 네졸루션 프로토콜이죠.

화자 1
26:49
그죠 주소 개념이고 RNAIP는 이거 반대 기능이에요. 에이아이피와 알의 반대다 그죠 리절브 어드레스 네졸루션 프로토콜입니다. 요런 반대 기능을 합니다. 그래서 각각 기능은 다 알 필요 없고 여러분들이 요런 프로토콜이 인터넷 계층에서 작동하는 프로토콜이구나 프로토콜의 종류들이 시험에 나온다는 거지 그래서 요 정도 요 정도 다 놓으시면 좋습니다. 좋고요. 자 그다음에 우리가 이제 마지막으로, 마지막으로, 한번 봅시다 링크 계층 그죠 링크 계층 마지막 계층 실제 데이터를 송수신하는 역할을 하고 이드넷 그다음에 I802 HDLC XEO RISMYC 요런 프로토콜들이 링크 계층에 이용된다. 역시 여러분 잘 몰라도 좋다. 각각 우리가 프로토콜의 종류 정도만 하면 되겠습니다. 되겠나 좋습니다.

화자 1
27:45
그죠 자 여러분 데이터 통신에 마지막 과목 아 오늘 그래도 좋다. 이 마지막 곡의 과목에 그죠 또 우리가 말이야. 이거 아직 오픈되지 않는 식목도 들어보고 어 이 숟가락 젓가락 아까 왔다리 갔다 이거 잠깐 들어봤죠 그 노래 아직 심의 과정이 있습니다. 아직 오픈 안 돼서 이제 곧 이제 1달 뒤쯤 되면 이제 방송을 달 거예요. 인제 가끔씩 이제 나옵니다. 사랑해 주시고 자 인터넷 생중계 참 어 이 강의하면서 노래도 듣고 여러분 혹시 보통 뭐 권하지 마라 아주 자유롭게 그죠 우리가 하고 자 이제 자 오늘로써 여러분 또 이제 곧 내일은 주말이다. 좋죠. 데이타 통신을 끝냈습니다. 자 데이타통신료 여러분 어렵지 않죠 가장 어려운 과목이 데이터 초기하지만 하는데 저 여러분 선배들한테 물어보면 가장 쉬운 게 또 데이터 통신이다. 그죠 내가 했는 요 정도 안에서 자 부처님 손바닥 제이제이치 손바닥 요안에서 문제가 다 나온다 그죠 그래서 빠져 빠져나갈 게 없어요.

화자 1
28:45
간혹 데이터 통신에서 다루지 않는 문제가 나오면 안 보면 돼 예 그런 것도 틀려져 국산권이 원래 데이터 통신을 방대합니다. 대학에서 하나의 과예요. 정보통신공학과 이 하나의 과고 또 대학은 석박사 과정에서도 이 하나의 과로 형성되어 있는데, 그걸 우리가 다 다룰 수는 없잖아. 그래서 구석구석 간혹 이상한 문제로 출제가 되거든. 그런 문제 신경 쓸 필요 없다. 그래서 내가 했는 거 안에서 여러분들 98프로 나오고요. 2프로 혹시 나온다고 해서 안 배웠다고 하지 마라 왜 워낙 방대하고 최대한 그 방대한 걸 다 압축했고요. 지금 정보통신공학과 학생들 내 강의 들으면 와 미치겠다. 할 겁니다. 어떻게 4년 동안 배워놓은 거 저희 제시를 한방에 끝내버리고 합니다. 그죠 그만큼 함축 있게 완벽 속성으로 정리했기 때문에 정보처리 문제는 빠져나갈 수가 없다는 거 걱정하지 말고 이렇게 해서 데이터 통신 우리가 환상적으로 정리했죠. 재밌었죠.

화자 1
29:43
데이터 통신의 가장 큰 개념을 잡아가지고, 통신 시스템이 뭔가 정보통신 시스템을 배웠고요. 그다음에 이제 우리가 전송기술 전송 이론을 2파트에 걸쳐서 빼앗고요. 또 전송제어 역시 2파트에 걸쳐서 빼앗고 맞나 그리고 데이터 회선만 2파트에 걸쳐서 배웠고 이제 오늘 마지막으로, 프로토콜 1파트로 구성되어 있죠. 총 8개의 챕터를 했고 가장 출제가 많이 되는 게 뭡니까? 2파트씩 해내는 것들 알겠나 2 3 4 5 뭐야? 67 요 챕터가 가장 출제가 많이 됩니다. 그죠 물론 오늘 냈는 프로토콜에서도 문제가 1~2문제 나온다 됐나 정리가 아주 한 편의 드라마처럼 한편의 영화처럼 여러분 잘 되었을 줄 믿습니다. 그죠 웃어요. 좋아요. 좋습니다. 자 이렇게 해서 데이터 통신도 뚝딱 해 먹었다. 오늘 주말 책걸이 함 하고 다음 마지막 주 마지막 한 과목 남아 있습니다.

화자 1
30:41
자 역시 화이팅을 하고 이제 여러분 주말 잘 보내시고 다음주에 산뜻한 마음으로 만나 뵙겠습니다. 오늘은 여기까지 하겠습니다.

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