정보처리기사 실기

정보처리기사 실기 : 4장 서버 프로그램 구현(통합모음 : 중요 키워드 정리)

2022. 8. 12. 16:25
728x90

4-0

  • 개발 환경 구축 : 개발 프로젝트를 이해하고, 소프트웨어 및 하드웨어 장비를 구축하는 것
  • 소프트웨어 아키텍처 : 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체
    • 모듈화 : 시스템의 기능들을 모듈 단위로 나누는 것
    • 추상화 : 전체적이고 포괄적인 개념을 설계한 후, 구체화 시켜 나가는 것
    • 단계적 분해 : 상위의 중요 개념으로부터 하위의 개념으로 구체화 시키는 분할 기법
    • 정보은닉 : 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
  • 소프트웨어 아키텍처 품질속성
    • 시스템 측면 : 성능, 보안, 가용성, 기능성, 사용성, 변경 용이성, 확장성 등
    • 비즈니스 측면 : 시장적시성, 비용과 혜택, 예상 시스템 수명, 목표시장, 공개일정 등
    • 아키텍처 측면 : 개념적 무결성, 정확성, 완결성, 구축 가능성, 변경성, 시험성 등
    • 협약에 의한 설계 : 컴포넌트를 설계할 때 클래스에 대한 여러가정을 공유할 수 있도록 명세한 것(선행,결과,불변)
  • 아키텍처 패턴 : 아키텍처를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제
    • 레이어 패턴 : 시스템을 계층으로 구분하여 구성하는 패턴
    • 클라이언트-서버 패턴 : 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
    • 파이프-필터 패턴 : 데이터 스트림의 절차의 각 단계를 필터로 캡슐화하여 파이프를 통해 전송하는 패턴
    • 모델-뷰-컨트롤러 패턴 : 서브 시스템을 모델, 뷰, 컨트롤러로 구조화하는 패턴
    • 마스터-슬레이브 패턴 : 슬레이브 컴포넌트에서 처리된 결과물을 다시 돌려받는 방식으로 작업을 수행하는 패턴
    • 브로커 패턴 : 사용자가 원하는 서비스와 특성을 브로커 컴포넌트에 요청하면 브로커 컴포넌트가 요청에 맞는 컴포넌트와 사용자를 연결해주는 패턴
    • 피어-투-피어 패턴 : 피어라고 불리는 하나의 컴포넌트가 클라이언트가 될수도, 서버가 될 수도 있는 패턴
    • 이벤트-버스 패턴 : 소스가 특정 채널에 이벤트 메시지를 발행하면, 해당 채널을 구독한 리스너들이 메시지를 받아 이벤트를 처리하는 패턴
    • 블랙보드 패턴 : 모든 컴포넌트들이 공유 데이터 저장소와 블랙보드 컴포넌트에 접근이 가능한 패턴
    • 인터프리터 패턴 : 프로그램 코드의 각 라인을 수행하는 방법을 지정하고, 기호마다 클래스를 갖도록 구성된 패턴

 

4-1

  • 객체지향
    • 객체 : 데이터와 데이터를 처리하는 함수를 묶어놓은 하나의 소프트웨어 모듈
    • 클래스 : 공통된 속성과 연산을 갖는 객체의 집합
    • 캡슐화 : 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
    • 상속 : 이미 정의된 상위 클래스의 모든 속성과 연산을 하위클래스가 물려받는 것
    • 다형성 : 메시지에 의해 객체가 연산을 수행하게 될 때, 하나의 메시지에 대해 객체가 가지고 있는 방법으로 응답할 수 있는 능력
  • 객체지향 분석 및 설계
  • 객체지향 분석 : 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 그들 간의 관계 등을 정의하여 모델링
  • 객체지향 분석의 방법론
    • RUMBAUGH : 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행.
    • Booch : 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의
    • Jacobson : Usecase를 강조하여, 사용하는 분석 방법
    • code 와 Yourdon : E-R다이어그램을 사용. 객체 행위를 모델링
    • wirfs-Brock : 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행
  • 럼바우 특징
    • 객체모델링 -> 동적모델링 -> 기능모델링 (객동기)
    • 객체모델링 : 속성과 연산 식별 및 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시
    • 동적모델링 : 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들간의 제어흐름 등 동적인 행위를 표현
    • 기능모델링 : 자료흐름도를 이용하여, 다수의 프로세스들 간의 자료흐름을 중심으로 처리과정을 표현
  • 객체지향 설계 원칙(SOLID 원칙)
    • 단일책임원칙(SRP) : 객체는 단 하나의 책임만 가져야함
    • 개방폐쇄원칙(OCP) : 기존의 코드를 변경하지 않고 기능을 추가
    • 리스코프 치환 원칙(LSP) : 자식 클래스는 최소한 부모클래스 기능은 수행
    • 인터페이스 분리 원칙(ISP) : 자신이 사용하지 않는 인터페이스와 의존관계 X
    • 의존역전원칙(DIP) : 의존 관계 성립시 추상성이 높은 클래스와 의존관계를 맺어야 한다는 원칙

 

4-2

  • 모듈 : 모듈화를 통해 분리된 시스템의 각 기능들
  • 독립성이 강할수록 품질이 좋다.
  • 결합도 (자스제외공내) : 모듈간에 상호 의존하는 정도
    • 자료 결합도 : 모듈간의 인터페이스가 자료요소로만 구성될 때의 결합도 (결합도 낮음)
    • 스탬프 결합도 : 모듈간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
    • 제어 결합도 : 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어신호나 제어 요소를 전달하는 결합도
    • 외부 결합도 : 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도
    • 공통 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
    • 내용 결합도 : 한 모듈이 다른 모듈의 내부 기능 및 그 내부자료를 직접 참조하거나, 수정할 때의 결합도 (결합도 강함)
  • 응집도 (기순교절시논우) : 모듈 내부 요소들이 서로 관련되어 있는 정도
    • 기능적 응집도 : 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 (응집도 높음)
    • 순차적 응집도 : 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
    • 교환적 응집도 : 동일한 입력과 출력을 사용하여, 서로 다른 기능을 수행하는 구성요소들이 모였을 경우의 응집도
    • 절차적 응집도 : 모듈이 다수의 관련 기능을 가질 때, 모듈안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
    • 시간적 응집도 : 특정 시간에 처리되는 몇개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
    • 논리적 응집도 : 유사한 성격을 갖거나, 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우 응집도
    • 우연적 응집도 : 모듈 내부의 각 요소들이 서로 관련 없는 요소로만 구성 (응집도 낮음)
  • 팬 인-팬 아웃
    • 팬 인 : 해당 모듈로 들어오는 제어 신호 (A:0, B:1, C:1, D:1, E: 1, F:2, G:1, H:2, I:1, J:1)
    • 팬 아웃 : 해당 모듈에서 나가는 제어 신호 (A:3, B:2, C:2, D:1, E:1, F:1, G:1, H:0, I:0, J:0)
  •  

팬인-팬아웃 참고 사진

 

  •  공통 모듈 : 여러 프로그램에서 공통적으로 사용할 수 있는 모듈
  • 재사용 : 새로운 시스템 또는 기능 개발에 사용하기 적합하도록 최적화 시키는 작업
  • 효과적인 설계 방안 : 결합도는 낮고, 응집도는 높아야 한다.

 

4-3

  • 코드 : 일정한 규칙에 따라 만들어진 기호
    • 순차 코드 : 숫자가 차례대로 입력되어 있는 일련번호
    • 블록 코드 : 구역을 구분한 뒤에 순차코드를 붙이는 것, 구분코드라고도 함.
    • 10진 코드 : 코드화 대상항목을 0~9까지 10진 분할하고, 다시 그 각각에 대하여 10진 분할하는 방식
    • 그룹 분류 코드 : 항목별로 일련번호를 부여
    • 연상 코드 : 명칭이나 관계있는 숫자와 문자, 기호를 이용하여 부여
    • 표의 숫자 코드: 제품의 수치등을 코드에 사용, 유효 숫자코드 라고도 함.
  • 디자인패턴 : 각 모듈의 세분화된 역할이나, 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 해결방식 또는 예제 (생성 5개, 구조 7개, 행위 11개)
  • 생성 패턴 (추빌팩프싱)
    • 추상팩토리 : 객체 생성코드가 상위 클래스에 존재, 하위 클래스가 받아씀.
    • 팩토리메소드 : 객체 생성코드를 하위 클래스에서 구체화
    • 빌더 : 분리된 인스턴스를 조합하여 객체를 생성
    • 프로토타입 : 원본 복제, 비용 저렴
    • 싱글톤 : 클래스 내 인스턴스 하나뿐임을 보장, 동시 참조 불가능
  •  구조 패턴 (퍼플데프컴어브)
    • 어댑터 : 일치하지 않는 인터페이스 변환
    • 브릿지 : 추상층과 구현층을 분리하여 독립적 확장
    • 컴포지트 : 트리구조 구성, 단일과 복합 개체 구분없이 다룸
    • 데코레이터 : 기능 추가위해 다른 객체를 덧붙임
    • 퍼싸드 : 서브 클래스들의 통합 인터페이스를 제공하는 상위클래스 구성
    • 플라이웨이트 : 다수의 유사 객체 생성이 필요할 때 최대한 공유해서 사용
    • 프록시 : 접근이 어려운 객체에 접근할 수 있도록 인터페이스 역할 수행
  • 행위 패턴
    • 책임연쇄 : 둘 이상의 객체가 연결되어 책임이 차례로 넘어감
    • 커맨드 : 명령어 캡슐화, 로그에 기록
    • 인터프리터 : 문법 표현 정의, 맞춤법 검사
    • 반복자 : 접근이 잦은 객체는 동일한 인터페이스 사용하도록 순차접근
    • 중재자 : 복잡한 상호작용 캡슐화
    • 메멘토 : 특정 시점의 상태 객체화, 되돌리기 기능(Control+z)
    • 옵서버 : 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴
    • 상태 : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
    • 전략 : 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환 할 수 있게 정의하는 패턴
    • 템플릿 메소드 : 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부처리를 구체화하는 패턴
    • 방문자 : 각 클래스들의 데이터 구조에서 처리기능을 분리하여 별도의 클래스로 구성하는 패턴

 

4-4

  • 서버개발 : 웹 애플리케이션의 로직을 구현할 서버 프로그램을 제작하여 웹 애플리켕션 서버에 탑재하는 것
  • 서버개발 프레임워크 : 다양한 네트워크 설정, 요청 및 응답처리, 아키텍처 모델 구현 등을 손쉽게 처리할 수 있도록 클래스나 인터페이스를 제공하는 s/w
  • API : 라이브러리를 이용할 수 있도록 규칙등을 정의해 놓은 인터페이스
  • 배치 프로그램 : 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램
  • 배치 스케줄러 : 일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구
    • 스프링 배치 : Spring Source 사와 Accenture 사가 2007년 공동 개발한 오픈소스 프레임워크
    • Quartz : 스프링 프레임워크로 개발되는 응용프로그램들의 일괄처리를 위한 다양한 기능 제공 라이브러리
    • cron : 리눅스의 기본 스케줄러 도구
728x90
저작자표시 비영리 변경금지 (새창열림)

'정보처리기사 실기' 카테고리의 다른 글

정보처리기사 실기 : 6장 화면 설계(통합모음 : 중요 키워드 정리)  (0) 2022.08.12
정보처리기사 실기 : 5장 인터페이스 구현(통합모음 : 중요 키워드 정리)  (0) 2022.08.12
정보처리기사 실기 : 3장 통합구현(통합모음 : 중요 키워드 정리)  (0) 2022.08.12
정보처리기사 실기 : 2장 데이터 입,출력 구현(통합모음 : 중요 키워드 정리)  (0) 2022.08.12
정보처리기사 실기 : 1장 요구사항 확인(통합모음 : 중요 키워드 정리)  (0) 2022.08.11
'정보처리기사 실기' 카테고리의 다른 글
  • 정보처리기사 실기 : 6장 화면 설계(통합모음 : 중요 키워드 정리)
  • 정보처리기사 실기 : 5장 인터페이스 구현(통합모음 : 중요 키워드 정리)
  • 정보처리기사 실기 : 3장 통합구현(통합모음 : 중요 키워드 정리)
  • 정보처리기사 실기 : 2장 데이터 입,출력 구현(통합모음 : 중요 키워드 정리)
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • jsp
  • 코딩테스트
  • IT개발자
  • JavaScript
  • 정보처리기사필기
  • 백엔드
  • IT자격증공부
  • 앱개발자
  • 웹페이지
  • 백준
  • IT자격증
  • 정보처리기사
  • DBA
  • css
  • 정보보안전문가
  • ajax
  • 프론트엔드
  • java
  • html
  • 웹개발
  • 개발자
  • 자바
  • 알고리즘
  • 개발블로그
  • jquery
  • 데이터베이스
  • 웹개발자
  • React
  • DB
  • it

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
정보처리기사 실기 : 4장 서버 프로그램 구현(통합모음 : 중요 키워드 정리)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.