소프트웨어 Flashcards
소프트웨어
[정의] 프로그램과 프로그램의 개발, 운용, 보수에 필요한 관련 정보 일체, 컴퓨터 활용 및 운용 기술
[특징] (비가마-복변-순무제) 비가시성, 비마모성, 복잡성, 변경성, 순응성, 무형성, 복제성
좋은 소프트웨어가 갖추어야 할 4가지 특성
소프트웨어 2.0
[리드] 딥러닝 기반 SW 개발 자동화
[정의] 데이터를 입력받은 신경망이 학습을 통하여 스스로 최적화와 논리를 수행 프로그램을 실행하는 SW
[특징] 지속적인 메모리 사용(메모리 누수 가능성 Zero), 높은 이식성/민첩성(행렬곱셈 시퀀스, 네트워크 기반)
* 인간이 생각할 수 있는 것보다 더나은 코드로 구성 가능
[기술요소]
- 데이터 프로세싱 : 데이터 중심 AI(스스로 진화하여 학습), 초거대 언어 모델(GPT-3)
- 도구 변화 : MLOps (맞춤형 AI 모델 개발과 운영 서비스 제공)
[차별화] 소프트웨어 1.0 vs 소프트웨어 2.0
- 메커니즘 : 인간이 코딩하고 결과 도출 / Data와 ML기반 컴퓨터 스스로 논리 개발
- 실행 방식 : 연역적(인코딩후 결과 도출) / 귀납적(Data와 ML통한 알고리즘 도출)
- 중심 : 모델 플렛폼 / 데이터 플랫폼
- 도구 : DevOps / MLOps
소프트웨어 위기
[정의] 품질, 생산성, 공수, 납기를 만족시키지 못해 사용자로부터 신뢰를 잃게 되는 현상
[원인] (이비인규관)
- 이해부족 : 신기술에 대한 교육 및 훈련의 부족
- 비용상승 : H/W 대비 소프트웨어 비용 상승폭 증가
- 인력부재 : 유지보수의 어려움과 개발정체 현상 발생
- 규모증가 : 소프트웨어 규모의 대규모화, 복잡화에 따른 개발비용 증대
- 관리부족 : 프로젝트 개발 및 소요예산 예측의 어려움
[위기] (자관품)
- 자원 측면 : 예산 초과, 일정 지연
- 관리 측면 : 유지/관리 어려움, 요구/공급 불균형
- 품질 측면 : 비효율적 SW, 신뢰성/품질 저하