이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
1장. 들어가며
1.1 왜 단순화인가? 1.2 소프트웨어 설계 2장 소프트웨어의 목적 2.1 실제 애플리케이션 3장 소프트웨어의 미래 3.1 소프트웨어 설계 방정식 3.2 설계의 질 3.3 예측할 수 없는 결과 4장 변경 4.1 실제 프로그램에서의 변경 4.2 결점 세 가지 4.3 점진적 개발과 설계 5장 결함과 설계 5.1 이 규칙이 깨진다면 5.2 반복하지 마라 6장 단순함 6.1 단순화의 법칙과 소프트웨어 설계 방정식 6.2 단순함은 상대적이다 6.3 얼마나 단순해야 하는가? 6.4 일관성 6.5 가독성 6.6 단순화는 설계가 필요하다 7장 복잡성 7.1 복잡성과 목적 7.2 나쁜 기술 7.3 복잡성과 잘못된 솔루션 7.4 복잡한 문제들 7.5 복잡성 다루기 7.6 재작성 8장 테스트 부록 A 소프트웨어 설계 법칙 부록 B 사실, 법칙, 규칙, 정의 |
|
능력 없는 프로그래머와 능력 있는 프로그래머의 차이는 이해의 정도다.
능력 없는 프로그래머는 무엇을 해야 할지 정확히 이해하지 못하지만, 능력 있는 프로그래머는 무엇을 해야 하는지 이해한다. 믿거나 말거나 이는 매우 간단한 문제다. 이해한 만큼 지금 하는 일을 더 잘해낼 수 있다. 다른 분야와 같이 프로그래밍에서도 똑같다. 그렇지만 소프트웨어를 만드는 일은 이해가 모든 것인 순수한 정신 활동이므로 프로그래밍에서 더욱 중요하다. 이 책에서 설명하는 내용이 모든 문제를 바로 해결해주지는 않으며, 특정 상황에서 정확하게 무엇을 하라고 말해줄 수도 없다. 대신에 소프트웨어 개발에 대해 생각해볼 수 있는 새로운 방법을 제시한다. 이 방법을 여러분이 처한 상황에 맞게 어떻게 사용하는가는 각자의 몫이다. 오직 여러분만이 정확하고 구체적인 의사결정을 하기 위해서 소프트웨어로 무엇을 진행해야 하는지 알 수 있다. 이 책에는 의사를 결정할 수 있게 이끌어줄 일반적인 원리가 담겨 있다. 프로그래머가 아니더라도 이 책을 다음과 같이 유용하게 사용할 수 있다. 소프트웨어 조직을 위한 교육자료로 사용할 수 있다. 소프트웨어 엔지니어가 어떤 일을 하고 싶어하는지, 소프트웨어를 특정 방법에 따라 어떻게 개발해야 하는지를 더 효과적으로 이해하는 데 사용할 수 있다. 소프트웨어 엔지니어와 의사결정을 하거나 소프트웨어 엔지니어와 효과적으로 대화하는 데 사용할 수 있다. |