개주 훈련일지/📚 코살대 교본 학습

소프트웨어 공학 소개

lshfood2 2025. 10. 27. 16:16

병원, 학교, 은행, 장난감, 휴대폰, 자동차 등

어디를 가든, 무엇을 사용하든 우리는 이제

소프트웨어의 영향을 강하게 받는 시대가 되었다.

 

오늘은 현대 생활에서 빼놓을 수 없는

소프트웨어에 대해 간단히 포스팅해보자.

 

[소프트웨어의 4가지 특징]

프레드 브룩스는 소프트웨어가 갖는

특징을 다음 네 가지로 요약하였다.

 

1. 복잡성 (complexity)

2. 순응성 (conformity)

3. 변경성 (changeability)

4. 비가시성 (invisibility)

 

▼ 복잡성

소프트웨어는 자동화하려는 대상이

복잡할 뿐 더러 수많은 내부 요소들로 이루어져

서로간에 상호작용이 많고 복잡하다.

 

▼  순응성

소프트웨어는 요구나, 환경, 데이터의 변화에 따라

적절히 변형되는 특징이 있다.

 

▼  변경성

소프트웨어는 문자로 구성된 프로그램이므로

쉽게 변경할 수 있고 자주 변경되기도 하지만

복잡하고 규모가 커지면 간단한 수정도

연계되는 요소가 많아 어려운 작업이 될 수 있다.

 

▼ 비가시성

소프트웨어는 매체에 저장되지만 개념적이고 무형적이다.

자동차나 핸드폰은 생산물을 보고 구조를 쉽게 파악할 수 있지만

소프트웨어는 구조가 코드 안에 숨어 있어 쉽게 드러나지 않는다.

 

[소프트웨어의 분류]

소프트웨어는 다음과 같은

세 가지 유형으로 분류된다.

 

1. 맞춤형 소프트웨어

2. 패키지 소프트웨어

3. 임베디드 소프트웨어

 

▼ 맞춤형

특정 고객의 수료를 만족하기 위해 개발된 소프트웨어

따라서 특정 고객이 아닌 다른 사용자나 기관에겐 무가치하다.

기관 내부에서 개발하거나 필요에 따라 외주를 맡기기도 한다.

개발 성패는 사용자의 요구에 절대적으로 좌우되기 때문에

요구 변경에 민첩하게 대응할 수 있는 개발 방법 적용이 필요하다.

 

▼ 패키지

시장에 내놓고 판매하기 위한 것으로 주료 개인용 컴퓨터나

스마트폰, 범용 컴퓨터에서 실행되어 사용되는 소프트웨어다.

업무 환경에 있어 맞춤형보다 저렴하고 신뢰도가 높은 장점을 지니지만

특정 기관에게는 맞지 않을 수 있다는 단점을 지닌다.

(ex - 워드 프로세서, 파워 포인트 등)

 

▼ 임베디드

하드웨어 장치에 탑재되어 수행되는 소프트웨어를 말한다.

대량의 소비자와 상품을 추구해나가므로 다른 분류에 비해

소프트웨어 카피의 수량이 압도적으로 많다.

(ex - 삼성 냉장고의 냉장관리 시스템, 테슬라의 자율주행시스템)

 

[소프트웨어 엔지니어링과 프로그래밍의 차이]

소프트웨어는 프로그래밍 이외에도 요구사항을 파악

또는 확인하고 구성요소를 설계하며, 유지보수하는

여러가지 다른 일이 함께 포함된다.

 

프로그래밍이 소프트웨어 공학에 포함될 순 있지만

아래와 같은 차이점을 지닌다.

 

1.

프로그래밍은 개인적인 작업이지만,

소프트웨어 엔지니어링은

여러사람이 함께 하는 협업이다.

 

2.

프로그래밍은 소프트웨어 개발의

일부분인 코드 작성을 의하지만

소프트웨어 엔지니어링은 전체 작업을 포함한다.

 

3.

프로그래밍 작업의 초점은 실행에 맞추어져 있지만

소프트웨어 엔지니어링은 실행은 물론, 문제에 대한

소프트웨어적 해결책, 타당성, 미래의 사용처까지 포함한다.

 

======================================

※ 결론!

소프트웨어 공학은 프로그래밍 이외에도

소프트웨어 개발 과정에 필요한 다양한 작업을 포함한다.

 

또한 개인마다 다른 방식과 생산성을 넘어서서 

팀으로 함께 더 높은 수준의 소프트웨어 제품을

개발하기 위한 엔지니어링 기법을 다루는 것이다.

'개주 훈련일지 > 📚 코살대 교본 학습' 카테고리의 다른 글

소프트웨어 공학의 접근법  (0) 2025.10.31
연산자  (0) 2025.10.31
변수와 자료형  (0) 2025.10.31
자바 프로그래밍의 기본  (0) 2025.10.30
소프트웨어 공학 개발  (0) 2025.10.29