개발 공부/자격증

정보처리기사 1장 정리

엽승 2024. 6. 26. 18:29
728x90
# 개발 생명 주기 
1) 폭포수 모델
- 과거에 사용함 
- 정해진 단계를 순서대로 진행 이전단계로 돌아갈수 없다 .
- 결과물이 명확하게 산출되어야 다음 단계로 갈 수 있다.
- 메뉴얼 작성이 필수적

2) 프로토타입 
- 폭포수 모델 보완 시제품을 통해 예측
- 인터페이스에 중점을 두어 개발

3) 나선형 모델 
- 폭포수 + 프로토 장점에 위험 분석 기능 추가 
- 개발 중 발생할 위험에 최소화 목적 유지보수가 필요없다.

4) 애자일 모델 
- 고객과의 소통에 중심을 둔 방법론 
- 짧은 개발 주기 피드백을 소프트웨어에 반영한다.
- 절차 문서 계획보다 소통 협업 변화 대응에 가치를 둠

# 스크럼 모델 
1) 스크럼 팀을 구성 개발의 효율성을 높임
2) 제품 책임자, 스크럼 마스터, 개발 팀 
3) 반복 적인 스프린트를 통해 제품 완성 (2~4주 기간)
- 제품 책임자 : 의사 결정 담당 
  - 이해 관계자 : 의견을 종합하여 요구사항 백로그에 작성한다. 
  - 릴리즈 계획: 제품 백로그에 작성된 사용자 스토리를 기반으로 전체 개발 일정 수립 
- 스크럼 마스터 :
  - 원활한 업무를 위한 가이드 역할 
  - 일일 스크럼회의 주관가능 
  - 통제의 권한 x 

- 개발팀 :
  - 개발에 참여하는 인원들 

# XP
1) 고객의 참여와 짧은 개발 과정 반복을 극대화하여 개발 생산성을 높인다. 
2) 소규모 인원으로 진행하느 프로젝트에 효과적 
3) 핵심 가치 : 의사소통 단순성 용기 존중 피드백 ////

   - 소규모 릴리즈: 기능별로 고객의 피드백을 받을 수 있도록 릴리즈의 규모를 작게 분할한다.
   - 스파이크 : 특정 기술의 확인을 위해 다른 모든 조건을 무시하고 간단하게 개발하는 프로그램
   - 이터레이션 : 하나의 릴리즈 1~3주 개발 기간으로 세분화하한 단위 (스파이크를 통해 기술이 검증되면 이터레이션으로 전달), 테스트 과정에서 새로운 요구사항 오류등이 발견되면 이터레이션에 반영


## 소프트웨어 개발 방법론 종류 
1) 구조적 방법론 : 
- Yourdan 개발 1970년 대 까지 사용됨 
- DFD(자료 흐름도) : 프로그램을 기능 단위별 데이터의 흐름으로 표현한 구조 
- DD(자료 사전) : DFD에 표현된 자료 저장소를 구체화
요구 사항 분석 () - > 구조적 분석 () -> 구조적 설계 -> 구조적 프로그래밍 

2) 객체 지향 방법론 :
- 객체들 간 메시지 교환을 통해 상호 작용하도록 개발 
- 기본원칙 
1. 캡슐화 : 데이터의 처리기능을 하나로 묶어냄
2. 정보은닉 : 다른 객체에게 자신의 정보를 숨김
3. 추상회 : 공통적인 속성을 상위 객체로 도출 
4. 상속성 : 하위 객체가 물려받아 사용
5. 다형성 : 하나의 수행방법으로 여러 형태 기능 수행 


3) 컴포넌트 기반 (CBD):
- 분석 : 요구사항 정의서, 유스케이스 명세서 
- 설계 : 설계서 컴포넌트 설계서 .. 데이터베이스 설계서 .. 
- 구현 : 코드 단위시험 결과서, 데이터베이스 테이블
- 시험 :  통합 시험 결과서, 인수시험 시나리오

## 소프트웨어 보안 개발 방법론 
1. MS-SDL : 마이크로소프트가 개발한 모델 
2. Seven TouchPoints : 모범 사례 7가지 개발 모델에 통합한 것 
- 코드검토
- 아키텍처 위험분석
- 침투테스트
- 위험 기반 보안테스트
- 악용 사례
- 보안 요구
- 보안 운영

3. CLASP: 
- 활동 중심 역할 기반의 프로 세스 구성 

4. CWE : 소프트웨어 보안 취약점을 유발하는 원인을 7가지로 정리한 보안 개발 방법론
- 입력 데이터 검증 및 표현: 입력값 잘못된 검증 
- 보안 기능 : 부적절한 보안기능
- 시간 및 상태 : 병렬 시스템 환경에서 부적절한 시간 및 상태 관리
- 에러 처리 : 에러 처리 미흡
- 코드 오류 : 데어티 유출
- 캡슐화  : 캡슐화 하지 않아서 데이터 유출 
- API오용 :잘못된 API사용 



# 프로젝트 일정 계획 방법론 :
- PERT : 작업별 개발 기간이 불확실하여 개발 기간 내에 전체 프로젝트를 완료할 수 있을지에 대한 확률을 분석하는 기법
1. 낙관치 기대치 비관치로 구성
2. 예측치 = (낙관치+(4*기대치)+비관치)/6
3. 노드와 간선을 통해 작업의 완료시점과 소요시간 에측

- CPM : 개발 기간이 확실할 떄 사용하는 임계 경로 기법

- 간트차트: 막대 그래프를 활용한 일정표 

# 소프트웨어 비용 산정 
- 하향식 상향식 기법으로 나눈다. 
1. 하향식 : 비과학적인 기법, 전문가 측정 기법 델파이 측정 기법 
   - 전문가 측정 기법 : 전문가들이 신속하게 비용 산정
   - 델파이 측정 기법: 조정자가 여러 전문가들의 의견 종합 하여 비용 산정 

2. 상향식 : 세부적인 작업 단위별로 비용산정 
   -LOC : 비관치 낙관치 기대치를 통해 예측치를 계산 LOC/인당 평균 생산 코드라인 = 개발기간 * 투입기간 

3. 수학적 산정 기법 : 
- COCOMO: 
  -  보헴이 제안했다. 
  - LOC기반 비용산정 기법으로 
    - ORganic, semi_detached, Embedded로 나눈다.
    - Organic : 5만 라인이하 
    - semi_Detached : 30만 라인 이하 
    - Embedded : 30만 라인 이상 

4. Putnam:
- 생명 주기 예측 모형 개발기간이 늘어날수록 적용인원의 노력이 감소한다.



# 업무 능력 평가 
CMMI : CMM을 발전시킨 모형 시스템 공학의 역량 성숙도를 평가,
- SW_CMM: S/W 개발 및 유지보수에 관련된 성숙도 모델
- SE-CMM: 시스템 엔지니어링 능력 성숙도평가
- IPD-CMM: 프로젝트 간 협동 통합 프로젝트 개선 모델

- 초기 
- 관리
- 정의
- 정략적 관리
- 최적화
로 이루어져있다.

SPICE : ISO/IEC 15504 
- 목적 :
  - 프로세스 개선 개발 기관 스스로평가
  - 요구 조건 만족 여부 개발 조직 스스로 평가
  - 계약을 위한 수탁 기관의 프로세스를 평가

- 레벨 0: 프로세스가 구현되지 않음(불완전)
- 레벨 1: 목적은 달성 계획되거나 추적되지않음(수행)
- 레벨 2: 프로세스 수행이 계획되고 관리되어 작업 산출물이 규정된 표준과 요구에 부합 (관리)
- 레벨 3: 표준 프로세스를 사용하여 계획되어 관리
- 레벨 4: 예측가능 
- 레벨 5: 지속적 개선


## 요구사항확인 
- 유스케이스 다이어그램 
  - 사용자의 관점에서 표현한 도표 
  - 시스템범위, 액터, 유스케이스 관계


구조적 분석 도구 : 자료 흐름도, 자료 사전 , NS차트, HIPO
1. 자료 흐름도 : 데이터의 흐름을 도형으로 표현
2. 자료 사전 : 자료 흐름도에 사용된 데이터의 이름과 속성 표기 
3. NS차트 : 문제 처리 프로세스를 도형을 통해 논리 중심으로 표현한 차트 
4. ***HIPO : 가시적 총체적 세부적인 3가지 도표로 나뉜다.


UML : 개발자 간의 원활한 소통을 위해 공학에서 사용되는 표준화한 모델링 언어
- 사물 
  - 구조 사물 : 물리적요소
  - 행동 사물 : 행위 상호작용
  - 그룹 사물 : UML 요소들의 그룹화
  - 주해 사물 : 부가적 설명 주석
- 관계: 
  - 사물 연관성 표현
- 다이어그램:
  - 정형화된 도형 의사소통에 도움을 준다.
- 스테레오 타입:
  - 확장 구조들 중 하나 



# UI 
- CLI: 시스템과 상호작용
- GUI: 그래픽요소
- NUI: 사람의 음성 촉각 등을 통해 상호작용

설계원칙 :
- 직관성:
- 유효성
- 학습성
- 유연성 


설계 도구 : 
- 와이어 프레임 : 대략적인 뼈대나 레이아웃만 설계하여 나타냄
- 목업 : 실제 화면과 유사한 형태로 제작 정적인 모델
- 스토리보드 : 와이어 프레임에 더해 스토리 설명 
- 프로토타입
- 유스케이스

# 응집도 :
- 우연적 응집도: 서로 아무 관련 없음 모듈 설계 다시 진행 해야 하는 단계
- 논리적 응집도: 유사한 성격을 가진 기능을 하나의 모듈에서 수행
- 시간적 응집도: 특정시기에 함계 수행되어야 하는 경우
- 절차적 응집도: 여러 모듈들이 순차적으로 수행되는 경우
- 통신적 응집도: 동일한 입력을 기반으로 수행된 기능의 출력결과를 이용하여 서로 다른 기능을 수행하는경우
- 순차적 응집도: 출력 값을 다른 모듈의 입력값으로 사용하는경우
- 기능적 응집도: 하나의 문제를 해결하기 위해 수행됨 

# 결합도 
- 내용 결합도: 내부기능과 데이터를 직접적으로 사용하는 경우
- 공유 결합도: 외부에 선언된 변수를 참조하여 기능을 수행하는경우
- 외부 결합도: 내부데이터를 참조하는경우 (인수의 전달없이 )
- 제어 결합도: 모듈에게 값만 전달하는것이 아니라 제어 요소를 함께 전달
- 스탬프 결합도: 동일한 자료 구조를 공유하는 경우
- 자료 결합도: 인수와 매개변수를 통해서만 상호작용이 일어나는 경우
  - 인수 : 인자로 전달되는 입력값
  - 매개변수: 인수를 통해 전달받은 값 또는 공간

# 복잡도 :
- 공유도 Fan-in : 자신을 호출하는 모듈의 수를 나타낸다.
- 제어도 Fan - out : 자신이 호출하는 모듈의 수를 나타낸다.



# 미들웨어 솔루션 
1. DBMS : 
2. RPC : 응용 프로그램의 프로시저를 사용하여 다른 위치 에서 동작하는 프로시저를 로컬 프로시저처럼 호출하기 위한 미들웨어
3. MOM : 메시지 기반의 비동기형 메시지를 전달하는 방식 분산데이터 시스템의 데이터 동기화를 위해 많이 사용된다. 
4. TP_Monitor : 온라인 트랜잭션 업무를 처리하고 감시 및 제어하는 미들웨어 
    - 사용자 수가 증가하여도 빠른 응답속도를 유지해야하는 업무에 활용
5. ORP: 객체지향 미들웨어로 CORBA 표준 규격을 구현한 미들웨어
6. WAS : HTTP 세션 처리를 위한 웹환경을 구현하기 위한 미들웨어 데이터베이스와 연동하여 활용

# Server  
1. 웹서버 : HTML이나 JS 정적인 컨텐츠를 제공
2. WAS: 서버단에서 애플리케이션이 동작할 수 있는 환경을 제공한다.


# 인터페이스 
1. 직접 연계방식 : 
   - 솔루션을 거치지않고 직접 연결되어 인터페이스하는 방식
   - 결합도가 높아져서 변경에 민감해진다.
   - 개발기간이 단축된다.
2. 간접 연계방식 :
   - EAI등의 연계 솔루션을 통해서 인터페이스하는 방식
   - 서로 다른 네트워크와 프로토콜 등 다양한 환경의 시스템들을 연계하고 통합관리
   - 변경에 유연한 대처가 가능하고 보안 업무처리 로직 반영 용이
   - 성능 저하의 가능성 테스트 기간이 오래걸린다는 단점

 연계 기술 
1. DB LINK: 데이터베이스에서 제공하는 객체를 이용하는 기술
2. DB CONNECTION : WAS에서  송신 시스템 디비로 연결하는 커넥션을 생성하고 연계 프로그램에서 해당 풀을이용한다.
3. ** API: 송신 시스템 DB에서 데이터를 읽어와서 제공한다.
4. ** JDBC: JDBC 드라이버를 통해서 송신시스템 디비와 연결
5. Hyper LINK: 웹 애플리케이션에서 하이퍼링크 이용하는 기술
6. Socket : 서버는 토신을 위한 소켓을 생성하고, 포트를 할당하고 통신 요청시 클라이언트와 연결하고 통신하는 네트워크 기술
7. Web Service: WSDL, UDDI, Soap 프로토콜을 이용하여 연계하는 기술

# 연계 통신 유형 
1. 실시간 처리 방식 :
   - 단방향: 실시간 파일 디비 연계처럼 데이터를 요청하는 시스템의 응답이 필요없는 경우 사용 
   - 동기 : 데이터 동기를 위해 거래 요청의 응답을 대기하는 방식으로 업무 특성상 응답을 바로차리해야 하거나 응답속도가 빠를 경우 사용
   - 비동기 : 요청을 보내고 다른 작업을 하다가 준비되었다는 신호를 받으면 다시 처리하는 방식 거래량이 많거나 많은 데이터를 요하는 경우 사용
   - 지연 처리: 순차 처리 및 지연처리가 필요한 업무에 사용
2. 배치 처리방식:
   - 처리할 작업을 모아서 정해진 시간에 한번에 처리
   - 스케줄러에 이해 구동되는 이벤트 방식 
   - 타이머에 의한 방식이 있다.


728x90

'개발 공부 > 자격증' 카테고리의 다른 글

4장  (0) 2024.07.16
5장  (0) 2024.07.16
정보처리기사 3장 데이터베이스  (2) 2024.07.15
정보처리기사 3장  (0) 2024.07.05
정보처리기사 2장 정리  (0) 2024.07.04