소프트웨어 엔지니어링

J. Hwang·2024년 9월 11일
0

소프트웨어 엔지니어링이란, 소프트웨어를 개발하고 유지\cdot보수하는 분야이다.

소프트웨어는 컴퓨터 프로그램, 관련 문서, 데이터의 집합이다. 소프트웨어의 하위 분야로는 프론트엔드, 백엔드, 풀스택, 머신러닝/AI, 데이터, 모바일 앱, 게임, DevOps, 클라우드, 보안 등이 있다.

좋은 소프트웨어 설계를 위해서는 모듈성을 갖추고 높은 응집도와 낮은 결합도를 지향해야 한다.
모듈이란 고유한 목적, 기능을 가지는 단위로써, 여러 함수가 모여서 하나의 모듈을 이루게 된다. 따라서 소프트웨어를 설계할 때에는 모듈 구성을 잘 하는 것이 중요하다.
응집도는 시스템의 모듈 구성 요소가 목적을 달성하기 위해 관련되어 있는 정도를 의미하는데, 응집도가 높다는 것은 각각의 모듈이 긴밀하게 엮여 있고 각 모듈이 하나의 역할을 담당하는 것이다.
결합도는 모듈들의 상호 의존성으로, 모듈들이 지나치게 긴밀하게 연결되어 있으면 하나의 모듈에 오류가 있을 때 다른 모듈에도 영향을 미치게 되므로 결합도를 낮게 설계하는 것이 좋다.

AI 엔지니어링이란, AI를 개발하고 웹/앱 서비스에서 AI 모델이 동작할 수 있도록 하는 것이다. 서비스에 AI 기술들을 적용하기 위해서 AI 기술 뿐만 아니라 소프트웨어 엔지니어링도 이해하는 것이 필요하다.

References

https://www.samsungsds.com/kr/techreport/what-is-ai-bigdata.html

profile
Let it code

0개의 댓글