소프트웨어 공학이란

소프트웨어 생명 주기 전반을 체계적이고 서술적이며 정량적으로 다루는 학문

  1. 즉, 공학적 원칙을 소프트웨어에 적용하여, 사용자 요구를 만족시키는 신뢰할 수 있고 효율적인 소프트웨어 시스템을 구축하는 데 목적이 있다.

  2. 소프트웨어 공학은 단순한 코딩이나 프로그래밍을 넘어서는 개념이다. ‘프로그래머’ 또는 ‘코더’라는 용어는 소프트웨어 개발의 구현 측면만을 강조하지만, 소프트웨어 엔지니어는 소프트웨어 개발 프로세스 전체―요구사항 정의, 설계, 구현, 테스트, 배포, 유지보수―를 체계적으로 수행하며, 이 개발 프로세스 자체를 개선하고 발전시키는 데에도 관여한다.

  3. AI가 프로그래머를 대체할 것이다는건 대체로 동의. 오히려 AI를 통해 엔지니어가 비즈니스 도메인을 더 정밀하게 모델링하고 정의하는 데 집중할 수 있도록 만드는게 소프트웨어 공학 아닌가?