본문 바로가기
자격증 준비/정보처리기사

4장 서버프로그램 구현

by 박살낼겨 2022. 4. 4.

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