1. 개발도구의 분류
** 개발도구 분류는 구(옛날) 테스, 형이 빌드 **
1) 구현도구
- 코드작성, 디버깅, 수정작업을 위한 도구
예) eclipse, intelliJ 등등
2) 테스트도구
- 코드의 기능 점검 및 품질을 높이기위한 도구
예) xUnit, PMD, Sonar, Cppcheck, Findbugs
3) 형상관리도구
- 코드와 산출물 버전관리도구
예) GitHub, SVN
4) 빌드도구
- 배포, 코드 빌드를 수행해주는 도구
예) Maven, Gradle 등등
2. 개발환경 구성
<하드웨어 환경>
** 저기요..웹...웹어....아니요 데서(됐어)요 많이 파서(파세)요 **
1) 웹 서버(Web Server) : HTTP를 이용한 요청/응답, 정적 콘텐츠(Java Script, CSS, Image)
2) 웹 어플리케이션 서버(WAS) : 동적 콘텐츠(JSP)
3) 데이터베이스 서버(DB Server) : 데이터 수집/관리, DBMS를 운영하는 서버
4) 파일 서버(File Server) : 서비스 제공 목적의 파일 저장 서버
<소프트웨어 환경>
1) 운영체제
2) 미들웨어
3) DBMS
<형상관리의 개념>
- SCM(Software Configuration Management) : 소프트웨어 개발 시 모든 항목의 변경사항 관리를 위한 활동
** 형상관리는 우리가 개발 시 "야 SVN에 커밋할테니까 니 쪽에서 업뎃받아" 하는 것 처럼
프로젝트의 버전관리라고 보면 이해가 될 것 같다. **
<형상관리 절차>
** 감기는 식(喰먹을 식) 먹는거로 통제하는게 짱이지 **
1) 형상감시
2) 형상기록
3) 형상식별
4) 형상통제
3. 공통 모듈 구현
1) 모듈 : 독립된 하나의 소프트웨어, 하드웨어 단위 지칭
- 소프트웨어 성능향상, 시스템 수정, 재사용, 유지관리에 용이
2) 모듈화 : 모듈을 통해 성능 향상, 디버깅, 수정, 통합 용이하게 한 설계기법
3) 모듈화 기법
4. 소프트웨어 모듈 응집도(낮음->높음)(★) : 응집도 강할 수록 품질이 좋음
** 우리 논 시절 통으로 순간을 기억한다. **
- 우연적 : 구성요소 연관 없음
- 논리적 : 유사한 성격
- 시간적 : 특정 시간에 처리
- 절차적 : 순차적 수행
- 통신적 : 동일한 입출력, 서로 다른 기능 수행
- 순차적 : 한 활동에서 나온 출력값을 다음 활동에 사용
- 기능적 : 모든 기능이 한 문제를 위해 수행
5. 소프트웨어 모듈 결합도(낮음->높음)(★) : 결합도 약할 수록 품질이 좋음
** 자! 스탬프(트럼프) 제외하고 공 이리 내 **
- 자료 : 한 모듈 내용 변경해도 다른 모듈에 영향 없음
- 스탬프 : 두 모듈이 동일한 자료 구조를 조회
- 제어 : 다른 모듈에서 흐름을 제어
- 외부 : 외부의 다른 모듈 참조
- 공통 : 공유되는 공통영역을 여러 모듈이 사용
- 내용 : 한 모듈이 다른 모듈의 내부 기능/자료를 직접 참조하거나 수정
6. 공통 모듈 구현 절차
1) MVC 패턴(★)
- 생성 : 객체의 생성과 관련
1) 추상 팩토리 : 동일한 주제의 다른 팩토리 묶음
2) 팩토리 메서드 : 생성할 객체 클래스 국한하지 않고 객체 생성
3) 싱글톤(★) : 한 클래스에 한 객체만 존재
- 구조 : 클래스나 객체들을 조합해 더 큰 구조로
1) 컴포지트 : 0,1개 그 이상의 객체 묶어 하나의 객체로 이용
2) 퍼싸드 : 많은 분량의 코드에 접근 할 수 있는 인터페이스 제공
3) 프록시 : 접근이 힘든 객체에 대한 대역을 제공
- 행위 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법 정의
1) 커맨드 : 재사용성 높은 클래스 설계
2) 옵서버(★) : 클래스 변화가 일어났을 때 이를 감지해 다른 클래스에 통보
3) 템플릿 메서드 : 사위 클래스에서는 추상적으로 표현, 구체적인 내용은 하위 클래스에서 결정
7. 팬 인 팬 아웃(★) : 모듈을 계층적 분석하기 위함

1) 팬 인 : 모듈 자신을 기준, 모듈에 들어오는 모듈의 수, 어떤 모듈을 제어하는 수
예) A = 0, A를 제어하는 모듈 없음
B = 1, B는 A에 의해! 제어됨
F = 3, F는 B,C,D에 의해! 제어됨
2) 팬 아웃 : 모듈 자신기준, 다른 모듈로 나가는 모듈의 수, 모듈이 제어하는 수
예) A = 3, A가 제어하는 모듈은 B,C,D
G = 0, G가 제어하는 모듈 없음
8. 공통 모듈 테스트
1) 화이트 박스 테스트 : 프로그램의 내부 구조와 동작을 검사
2) 블랙 박스 테스트 : 입력값에 목표값이 나오는지 검사(내부 코드 안 봄)
9. 배치 프로그램 : 작업 단위로 묶어 정기적 반복 수행 및 정해진 규칙에 따라 일괄처리 방법
1) 배치 유형
- 이벤트 배치 : 정의해 둔 조건 충족시 실행
- 온디맨드 배치 : 사용자의 명시적 요구 시 실행
- 정기 배치 : 정해진 시점, 정기적 실행
2) 주요요소
- 사용이유 : 대용량 처리에 용이, 시스템의 부하를 줄여줌(쉽게말하면 업무양이 적은 새벽시간 이용)
- 자동화 : 큰 문제아니면 사용자의 개입없이 계속 동작해야한다.
- 견고성 : 비정상적인 데이터로 인해 중간에 중단되면 안 된다. 유효하지 않은 데이터도 처리!
- 안정성 : 문제발생 시 어떤 문제였는 지 추적이 가능해야 한다.
'자격증 준비 > 정보처리기사' 카테고리의 다른 글
11장 응용SW기초기술활용 (0) | 2022.04.27 |
---|---|
9장 소프트웨어 개발 보안 구축 (0) | 2022.04.20 |
7장 어플리케이션 테스트 관리 (0) | 2022.04.17 |
6장 화면설계 (0) | 2022.04.08 |
5장 인터페이스 구현 (0) | 2022.04.06 |