코드 위의 하루 (A Day on the Code)

Chapter 1 정리 - 소프트웨어란 무엇인가? 본문

🍚전공이 밥 먹여준다믄/📕 소프트웨어공학

Chapter 1 정리 - 소프트웨어란 무엇인가?

code.with.siyeon 2025. 5. 12. 18:53

📌 과목 개요

  • 과목명: 소프트웨어공학
  • 교재: 『쉽게 배우는 소프트웨어공학 2판』 - 김치수 저
  • 중간고사 범위: Chapter 1 ~ Chapter 6
  • 시험 스타일: 서술형 위주, 개념 정의와 비교 설명, 다이어그램 이해 문제 등

📚 Chapter 1 핵심 개념 요약

1. 소프트웨어란?

  • 하드웨어를 동작시키기 위한 명령어들의 집합
  • 컴퓨터가 처리할 수 있도록 작성된 프로그램 + 데이터 + 문서를 포함

 

2. 소프트웨어의 종류

  • 시스템 소프트웨어: 운영체제, 컴파일러, 디바이스 드라이버 등
  • 응용 소프트웨어: 워드, 게임, 브라우저 등
  • 임베디드 소프트웨어: 디지털 카메라, 전자레인지 등에 내장된 SW

 

3. 소프트웨어의 특징

  • 무형성(Intangibility): 눈에 보이지 않음
  • 복잡성(Complexity): 작은 오류도 큰 문제 발생
  • 변화성(Volatility): 요구사항에 따라 자주 변경됨
  • 개발과 유지보수 비용이 큼

4. 소프트웨어 공학이란?

제한된 자원(시간, 비용) 내에서 신뢰할 수 있고 유지보수 가능한 소프트웨어를 체계적이고 공학적인 방법으로 개발하는 학문

 

5. 소프트웨어 위기(Software Crisis)

      • 1960년대 이후 소프트웨어가 점점 복잡해지면서
        예산 초과, 일정 지연, 결함 발생 등의 문제가 심각해짐
      • 해결 방안 → 소프트웨어공학의 등장

💡 자주 나오는 시험 유형

  • “소프트웨어 공학의 정의를 서술하시오”
  • “소프트웨어의 특징 3가지 이상을 쓰고 설명하시오”
  • “소프트웨어 위기의 의미와 해결 방안을 설명하시오”

🎯 교수님이 강조한 포인트

  • "소프트웨어는 유지보수 비용이 크다는 점"
  • "단순한 코딩이 아니라 체계적인 접근이 필요한 이유"
  • "소프트웨어 위기와 그것이 공학의 필요성을 만든 배경"

📌 내 오답노트 & 복습 포인트

  • 소프트웨어 정의에 “데이터”나 “문서”를 빼먹음
  • “복잡성”과 “무형성”의 개념이 헷갈렸음
  • 시스템 소프트웨어 vs 응용 소프트웨어 예시 혼동

📝 마무리 요약

  • 소프트웨어는 눈에 보이지 않지만, 사회 모든 시스템을 움직이는 핵심
  • 단순히 코드를 짜는 게 아닌, 복잡한 시스템을 관리하는 공학적인 사고방식이 중요
  • 소프트웨어공학은 실패하지 않는 소프트웨어를 만들기 위한 체계적인 학문

📘 다음 편 예고
《전공이 밥 먹여준다믄 - 소프트웨어공학 Chapter 2 정리》
소프트웨어 생명주기와 개발 단계의 이해