1. Software Engineering

2023. 12. 27. 14:40NAVER AI Tech/Computer Science

소프트웨어란?

- 컴퓨터 프로그램 + 관련 문서(readme.md) + 데이터의 집합

- 하드웨어와 대조적인 개념

- 다양한 분야가 존재 : 프론트엔드, 백엔드, 머신러닝, 데이터, 모바일 앱, DevOps,  클라우드, 보안 등등

 

소프트웨어 엔지니어링이란?

- 소프트웨어를 개발하는 과정에서 체계적이고 효율적인 방법을 사용하여 소프트웨어의 품질과 유지 보수성을 보장하는 학문 분야.

 

소프트웨어 개발 라이프사이클

1. Planning

2. Analysis

3. Desing(설계)

4. Implementation

5. Test, Integration

6. Maintenance

 

좋은 소프트웨어 설계란?

1. 모듈성 : 여러 함수가 모여 하나의 모듈을 이루고, 모듈끼리 서로 영향을 미침

2. 응집도 : 각 모듈을 구성하는 함수간의 관련있는 정도

3. 결합도 : 모듈 간 상호 의존성

** 높은 응집도와 느슨한 결합도를 가진 소프트웨어를 지향 + 상세한 문서화(readme)를 지향

 

소프트웨어 엔지니어링에서 AI가 차지하는 비중

 

'NAVER AI Tech > Computer Science' 카테고리의 다른 글

7. MLOps  (0) 2023.12.28
6. Debugging  (0) 2023.12.28
4. Docker  (1) 2023.12.28
3. 리눅스(Linux)  (1) 2023.12.27
2. 라이브러리 버전 관리  (0) 2023.12.27