본문 바로가기
프로그래밍/Code Craft

[6부 정상으로부터의 조망] Chapter22 프로그램의 요리법

by Ohdumak 2017. 12. 3.
728x90

코드 개발 방법론과 프로세스

 

이장의 내용

  • 프로그래밍 스타일
  • 소프트웨어 개발 프로세스
  • 이것이 코드에 어떤 영향을 미치나

 

훌륭한 프로그래머는 프로그래밍을 어떻게 하는지 알고 있다; 자기 일에 영향을 미치는 프로그래밍 방법과 습관에 대해 알고 있따

 

프로그래밍 스타일

소프트웨어 문제를 상세하게 기술하는 방법과 문제에 대한 솔루션을 분할해서 타깃 언어로 모델화하는 방법을 묘사한다

당신이 선택한 프로그래밍 언어는 당신의 설계 스타일 결정에 어느 정도 영향을 미칠 것이다

 

구조적 프로그래밍: 제어 중심의 모델이고, 톱다운 설계 테크닉을 따른다

객체지향 프로그래밍

  • 추상화: 선택적으로 모르게 만드는 기술
  • 캡슐화 응집력 있는 실행 단위들을 단단하게 묶어서 꾸러미 안에 넣고, 정의된 API 통해서만 접근할 있도록 만드는
  • 상속: 객체의 타입을 특수화 시켜서 자식 객체의 타입을 만드는 메커니즘
  • 다형성: 실행 콘텍스트에 따라서 여러 가지 데이터 타입을 사용할 있게 한다

함수형 프로그래밍: 선언적 프로그래밍 스타일이고, 비교적 수학적인 프로그래밍 모델이다

논리 프로그래밍: 언어 실행기에 공리와 목표가 되는 주장을 공급해야 한다. 다른 선언형 스타일

 

요리법: 어떻게 그리고 무엇을

소프트웨어를 개발하는 일은 우리가 채용한 프로그래밍 스타일과 프로세스에 의해서 영향을 받는다. 필연적으로 코드의 모습과 품질에 영향을 미친다

 

개발 프로세스

여러 프로세스들이 다음과 같은 개의 축을 따라서 다양하게 있다

  • 빡빡한/느슨한
  • 순차성
  • 설계의 방향

되는 대로

개발 프로세스가 없는 팀은 무정부 상태에 빠질 것이고, 의도에 의해서가 아니라 운에 따라 소프트웨어를 만들 것이다

폭포 모델: 고전적인 소프트웨어 개발 라이플 사이클 모델

SSADM PRINCE: 굉장히 많이 사용하는 정의된 공개 표준 SSADM 다섯 개의 주요 단계로 이루어져 있다

  • 실현 가능성 조사
  • 요구 분석
  • 요구 규격화
  • 논리적 시스템 규격화
  • 물리적인 설계

V 모델: 폭포 모델로부터 파생, 왼쪽에는 소프트웨어의 구축으로 이끄는 개발 단계, 오른쪽의 흐름은 테스트와 승인을 관리

프로토타이핑: 개발이 진행되는 동안 구현을 조사/평가하고, 알려지지 않았거나 모호한 요구사항을 정제하는 일을 도와준다, 상당히 고급 언어를 사용해서 빠른 속도로 개발된다.

반복적이고 점증적인 개발:가장 진보이다, 작은 개발 라이프 사이클을 여러 연속해서 수행하고 사이클에서는 점차로 많은 기능을 추가하는 일을 시스템이 완성될 까지 한다

소용돌이 모델: 반복적이고 점증적인 접근 방법의 좋은 , 선적일이 조금씩 가까워져도 시스템의 대부분이 완성되었다는 사실에 자신감을 가질 있다

기민한 방법론: 여러 개발 프로세스를 통틀어서 묘사하는 포괄적인 용어

 

이미 충분해

훌륭한 프로세스에서는 뒤늦게 생각이 나서 테스트를 하는 것이 아니라, 개발 프로세스 전체에 걸쳐서 지속적으로-그리고 모니터링을 하면서 테스트 한다

 

프로세스 고르기

새로운 프로세스는 현재의 개발 모델에 문제가 있을 때만 그것을 고치기 위해 도입한다

특정한 프로세스를 고르는 있어서 가장 잘못된 동기는 유행이다 - 줒대없이 이러면 안될 같음

 

간추림

좋은 프로그래머는…

  • 자기가 일에 적용할 프로그래밍 스타일과 개발 프로세스를 알고 있다
  • 개발 프로세스를 활용해서 다른 소프트웨어 회사에 다니는 사람들과의 상호 작용을 구체화 한다; 프로세스가 구속이 때는 옆으로 비켜 선다
  • 여러 가지 개발 요리법의 장단점을 올바르게 알고 있고, 어떤 상황이 주어져도 적절한 요리법을 고를 있다

나쁜 프로그래머는…

  • 개발 프로세스 문제를 무시하고, 자기 나름의 방법을 사용하려고 한다
  • 프로세스가 다른 개발자들과의 상호 작용을 어떻게 영향을 미치는지 모른다
  • 이런 종류의 일에 대해서 생각을 하려고 한다- 관리자가 걱정할 일이지..

 


728x90

댓글