소프트웨어는 단순히 코드를 작성하는 기술이 아니라 복잡한 문제를 체계적으로 해결하기 위한 공학적 활동입니다. 그러나 많은 개발 학습은 언어나 프레임워크 중심으로 이루어지며, 이러한 방법이 왜 필요한지에 대한 근본적인 공학적 원리는 충분히 다루어지지 않는 경우가 많습니다. 이책은 소프트웨어의 본질과 소프트웨어 위기에서 출발하여 분할과 정복, 추상화, 모듈화와 같은 핵심 설계 원리와 다양한 개발 프로세스의 진화 과정을 체계적으로 설명합니다. 또한 아키텍처 중심 개발, 컴포넌트 기반 개발, 품질 관리와 같은 공학적 실천 방법을 통해 좋은 소프트웨어를 지속적으로 만들어내는 방법을 소개합니다. 아울러, 이론적 배경과 실제 개발 현장에서 사용되는 개념을 균형 있게 연결하여 소프트웨어 개발을 단순한 기술이 아닌 하나의 공학적 학문 분야로 이해할 수 있도록 도울 것입니다.
STEP 1 소프트웨어 공학의 본질 이해하기
소프트웨어의 특성과 복잡성, 그리고 소프트웨어 공학이 등장한 배경을 이해합니다.
STEP 2 공학적 설계 원리 익히기
분할과 정복, 추상화, 모듈화 등 좋은 소프트웨어 설계를 위한 핵심 원리를 학습합니다.
STEP 3 소프트웨어 개발 프로세스 이해하기
다양한 개발 모델과 프로세스를 이해하고 프로젝트에 적합한 개발 방법을 파악합니다.
STEP 4 현대 소프트웨어 개발 실천 방법 살펴보기
아키텍처 중심 개발과 컴포넌트 기반 개발을 통해 공학적 개발 방법을 이해합니다.
hans37.kim@nate.com 단국대학교 소프트웨어공학 전공 공학박사 삼성SDS 출신의 IT 아키텍트로서 20여년간 실무 현장의 복잡한 문제를 해결해 온 경험을 바탕으로 DX 기반의 R&D와 HR 컨설팅을 수행하며 소프트웨어공학의 이론과 실무를 잇는 가교 역할을 하고 있다. 현재는 연성대학교에서 클라우드 컴퓨팅과 AI 소프트웨어 교육을 담당하며 미래 인재를 양성하고 있다.
저서 『마이데이터 B.L.T.S.』 등