티스토리 뷰
CH 01 S/W 개발 방법론
* 소프트웨어 생명주기 모델 종류
- 폭포수 모델: 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델. 선형 순차적 모형 또는 고전적 생명주기 모형이라고도 함.
- 프로토타이핑 모델: 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델.
- 나선형 모델: 점진적으로 위험을 최소화하며 개발해 나가는 모델
- 반복적 모델: 구축대상을 나누어 병렬적으로 개발 후 통합하거나 반복적으로 개발하여 점증 완성시키는 모델.
* 소프트웨어 개발 방법론
- 애자일 방법론: 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템 개발.
- 용기
- 단순성
- 의사소통
- 피드백
- 존중
- XP의 12가지 기본원리
- 짝 프로그래밍
- 공동 코드 소유: 언제라도 수정 가능
- 지속적인 통합: 매일 여러 번 s/w를 통합하고 빌드
- 계획 세우기
- 작은 릴리즈: 작은 시스템 만들고 짧은 단위로 업데이트
- 메타포어: 고객과 개발자 간의 의사소통을 원활하게 한다는 원리
- 간단한 디자인: 단순한 시스템을 설계한다는 원리
- TDD: 테스트를 먼저 수행하고 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
- 리팩토링: 기능은 바꾸지 않고 중복제거, 단순화 등을 위해 시스템을 재구성하는 원리
- 40시간 작업: 일주일에 40시간 이상을 일하지 말아야 한다는 원리
- 고객 상주: 개발자들의 질문에 즉각 대답할 수 있는 고객을 상주시켜야 함
- 코드 표준: 모든 코드에 대한 코딩 표준 정의로 효과적인 공동 작업
- SCRUM
- 백로그: 제품과 프로젝트에 대한 요구사항
- 스프린트: 2-4주의 짧은 개발 기간동안 반복적 수행으로 개발품질 향상
- 스크럼 미팅: 매일 15분 정도 미팅으로 to-do list 계획 수립
- 스크럼 마스터: 문제를 인지 및 해결하는 사람
- 스프린트 회고: 스프린트 주기를 되돌아보며 규칙 준수 여부와 개선점 등을 확인 및 기록
- 번 다운 차트: 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트
* 비용산정, 일정 관리 모형
- 하향식 산정 방법: 전문가 판단/델파이 기법
- 상향식 산정 방법: LoC, Man Month, COCOMO, Putnam, FP
- LoC: 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하고 비용을 산정하는 방식
- Man Month: 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 방식
- COCOMO: 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 방식
- Organic: 5만 라인 이하의 s/w를 개발하는 유형
- Semi-Detached Mode: 30만 라인 이하의 s/w를 개발하는 유형
- Embedded Mode: 30만 라인 이상의 s/w를 개발하는 유형
- FP: 요구 기능을 증가시키는 인자별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능의 점수를 계산해 비용 산정
- 일정관리 모델 종류
- 주 공정법(CPM): 여러 작업의 수행 순서가 얽혀 있는 프로젝트 일정을 계산하는 방법
- PERT: 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법
- 중요 연쇄 프로젝트 관리(CCPM): 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법
CH 02 현행 시스템 분석
* 소프트웨어 아키텍처 4+1 뷰
- 유스케이스: 다른 뷰를 검증하는데 사용하는 뷰
- 논리 뷰: 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
- 프로세스 뷰: 자원을 효율적으로 사용하고자 하는 개발 자, 시스템 통합자 관점
- 구현 뷰: 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
- 배포 뷰: 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰
* 디자인 패턴
- 생성(빌프팩추싱)
- Builder: 객체를 생성하는 방법과 객체를 구현하는 방법을 분리함으로써 서로 다른 표현 결과를 만들 수 있는 디자인 패턴
- Prototype: 기존 객체를 복제함으로써 객체를 생성
- Factory Method: 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식
- Abstract Factory: 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- Singleton: 한 클래스에 한 객체만 존재하도록 제한
- 구조
- Bridge: 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있는 디자인 패턴
- Decorator: 객체 간의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주어 상속의 대안으로 사용하는 디자인 패턴
- Facade: 통합된 인터페이스를 제공
- Flyweight: 클래스의 경량화를 목적으로 하는 디자인 패턴
- Proxy: 특정 객체로의 접근을 제어하기 위한 용도로 사용
- Composite: 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 하는 패턴
- Adapter: 타 클래스의 인터페이스를 기존 인터페이스에 덧씌움
- 행위(-tor)
- Mediator: 상호 작용의 유연한 변경을 지원
- Interpreter: 여러 형태의 언어 구문을 해석할 수 있게 만드는 디자인 패턴
- Iterator: 내부구조를 노출하지 않고 복잡 객체 원소를 순차적으로 접근 가능하게 해주는 패턴
- Observer: 상호 작용하는 객체 사이에서 느슨하게 결합하는 디자인 패턴
- Visitor: 특정 구조를 이루는 복합 객체의 원소 특성에 따라 동작을 수행할 수 있도록 지원하는 행위
- Memento: 객체를 이전 상태로 복구시켜야 하는 경우 작업취소 요청 가능
- Template Method: 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않고 특정 단계에서 수행하는 내역을 바꾸는 패턴
- State: 객체 상태에 따라 행위 내용을 변경
- Command: 요구사항을 객체로 캡슐화
- Strategy: 행위 객체를 클래스로 캡슐화해 동적으로 행위를 자유롭게 변환
- Chain of Responsibility: 한 요청을 2개 이상의 객체에서 처리
* OSI 7계층
- Application: 사용자와 네트워크 간 연결 (HTTP, FTP, 데이터)
- Presentation: 데이터 형식 설정과 부호교환, 암/복호화 (JPEG, MPEG, 데이터)
- Session: 연결 접속 및 동기제어 (SSH, TLS, 데이터)
- Transport: 신뢰성 있는 통신 보장 (TCP, UDP, 세그먼트)
- Network: 단말기 간 데이터 전송을 위한 최적화된 경로 제공 (IP, 패킷)
- Data Link: 동기화, 흐름 제어 등의 전송 기능 제공 (이더넷, 프레임)
- Physical: 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 (전송단위:비트)
'정처기 실기' 카테고리의 다른 글
9. 소프트웨어 개발 보안 구축 (0) | 2023.07.12 |
---|---|
8. 서버프로그램 구현 (0) | 2023.07.12 |
4. 통합 구현 | 5. 인터페이스 구현 (0) | 2023.07.12 |
3. 데이터 입출력 (0) | 2023.07.12 |
2. 화면 설계 (1) | 2023.07.12 |