프로그래밍 기초 지식
Updated:
🔷 소프트웨어 개발 공정
-
고객 측의 요구를 정리하는 것을 요구 분석이나 요구 정의라고 하고, 개발 측이 구현하려는 것을 문서로 작성하는 것을 요전 정의라고 한다
-
기본 설계에서는 이용자 시점에서 생각하는 반면, 상세 설계에서는 개발자 시점에서 생각한다
🔶 요구 분선과 요건 정의
고갯이 시스템화에서 요구하는 사항이나 현재 문제로 느끼는 점 등을 정이하는 일을 요구 분석 라고 합니다
요구 분석을 통해 고객의 요구를 알아 낼 수 있다면, 실형 가능성을 포함해서 판단하고 비용 측면 등도 고려 한후 소프트웨어로 구현할 범위를 고객과 결겆아흔 것을 요건 정의 라고 합니다 여기서 구현할 품질이나 범위를 정해 두지 않으면 요구 사항이 나중에 자꾸 추가되어 개발이 끝나지 않게 됩니다
🔶 설계는 두 개의 단계로 나뉘어 진다
설계에는 크게 기본 설계(외부 설계) 상세 설계(내부 설계)
-
기본 설계 : 이용자의 시점에서 화면 구성, 각종 서류, 취급하는 데이터, 다른 시스템과의 통신 방법 -> What 에 관점
-
상세 설계 : 내부 동작이나, 데이터 구조, 모듈 분할 방법 등이 포함 -> How 에 관점
🔶 개발과 테스트
-
개발 (구현) : 설계 후에 실제 프로그래밍 언어를 사용하여 소스 코드를 작성하고 실행 환경을 정비하는것
-
테스트 : 구현 후에 개발한 소프트웨어의 동작을 확인 하는 작업
🔷 소프트웨어 개발의 흐름
-
대규모 프로젝트에서는 개발의 재작업을 방지하기 위해 Waterfall 기법을 이용하는 경우가 많다
-
Agile 개발에서는 사이클을 짧게 할 뿐만 아니라, 방법이나 사고 방식이 Waterfall 과 다르다
🔶 대규모 프로젝트에 많이 사용되는 Waterfall
소프트웨어 개발의 흐믕에 따라 요건 정의, 설계, 구현 , 테스트, 운용 과 같은 흐름에 따라 개발을 진행 하는것을 Waterfall
방식이라고 합니다.
특징: 구현이나 테스트 공정에 와서 설계 단계에서의 실수나 누락이 있으면 수정이 힘들기 때문에, 재잡업 할 일이 생기지 않도록 상류 공정에서 주의 깊게 확인하고 문서등으로 정비한 후에 개발을 진행하게 됩니다
🔶 사양 변경에 유연하게 대응할 수 있는 Agile
Waterfall 대비 좀더 유연하게 대처하기 위해 Agile
개발 기법을 자주 사용합니다
릴리즈 까지의 사이클을 작은 단위로 반복하면 사양 변경에 임기응변으로 대처할 수 있을 뿐만 아니라, 문제가 발생는경우에도 신속하게 대처 할 수 있습니다
Waterfall 과 비교하면 처음 견적과는 비용이나 일정이 중간에 수정사항이 생기면 프로젝트 지연등의 리스트도 있습니다.
Agile
과 비슷한 방법으로 Spiral
개발 방법 : 설게와 프로토타입을 반복해서 개발하는 기법으로 시제품을 만들어 의뢰자도 완성된 이미지를 확인 할 수 있습니다
애자일 소프트웨어 개발 선언
공정과 도구보다 개인과 상호 작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를 가치 있게 여긴다
🔷 개발(구현) 공정에서 할 일
-
코딩 할때는 단번에 전체를 구현하는 것이 아니라, 조금씩 동작을 확인하면서 진행한다.
-
구현 공정에서는 프로그래머 이외에도 다양한 직종이 역활을 분담한다
🔶 소스 코드를 입력한다
코딩을 할 때 한꺼번에 전체 소스 코드를 모두 입력하지 않습니다. 먼저 작은 프로그램을 만들고 구현한 내뇬이 제대로 동작하는지 확인합니다. 또, 조금 기능을 추가해서 동작을 확인하는 과정을 반복합니다
🔶 실행, 운용 환경 구축
소프트웨어 개발 공정에서 개발(구현) 단계는 코딩 이외에도 환경 구축도 필수 입니다. 웹앱이라면 실행을 하기 위해선 웹서버가 필요합니다. 혼자라면 다 알아서 해야하지만 프로그래머들이 실시하는 작업에 대해서 각 역확을 분담해서 개발 과정을 진행 합니다
Reference
그림으로 배우는 프로그래밍 구조 - https://book.jacobko.info/#/book/8931465599 `
Leave a comment