[정처기 실기] 4장 오답노트

vector13·2022년 4월 20일
0

애플리케이션 개발 과정 중에 수행되는 작업들 중 상위 설계에 포함되는 작업 모두

  • 인터페이스 설계, 아키텍처설계 (패키징 아님X)

컴포넌트 설계 시 (        )에 의한 설계를 따를 경우 해당 명세에는 컴포넌트의 오퍼레이션 사용 전에 참이 되어야할 선행조건, 사용후에 만족되어야 할 결과조건, 오퍼레이션이 실행되는 동안 항상 만족되어야 할 불변조건 등이 포함되어야한다.

  • 협약

다음 중 소프트웨어 아키텍처 설계에서 시스템 품질 속성에 포함되는 것 모두

  • 가용성, 변경 용이성, 사용성

소프트웨어 아키텍처 설계 기본 원리 중 추상화에 대해 간략 서술

  • 전체적이고 포괄적인 개념 설계 후 차례로 구체화

소프트웨어 아키텍처 설계 기본 원리 중 다른 모듈이 모듈 내부의 절차와 자료들의 정보에 접근 및 변경하는 것을 막기 위한 기법으로 모듈을 독립적 수행할 수 있고, 하나의 모듈 변경되더라도 다른 모듈에 영향 주지 않으므로 수정, 시험, 유지보수가 용이한 것

  • 정보은닉

서브시스템이 입력 데이터 받아 처리하고 결과를 다음 서브시스템으로 넘겨주는 과정을 반복하는 아키텍처 패턴

  • 파이프 필터 패턴

객체지향 기법에서 연관성을 나타내는 표현들 중 '부분-전체(Part-Whole)' 관계 또는 '부분(is-a-part-of)'의 관계로 설명되는 연관성

  • 집단화

객체지향 구성 요소 세가지

  • 객체, 클래스 ,메시지

분석 활동을 객체 모델, 동적모델, 기능 모델로 나누어 수행하는 객체지향 분석의 방법론

  • 럼바우 방법
    객체 모델링 : 객체 다이어그램
    동적 모델링 : 상태 다이어그램
    ** 기능 모델링 : 자료 흐름도

객체 지향 설계 원칙 SOLID 종류

  • 단일 책임 원칙, 개방-폐쇄 원칙, 리스코프 치환 원칙, 인터페이스 분리 원칙, 의존 역전 원칙

객체지향 분석 방법론 중 E-R다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 기법

  • Coad와 Yourdon 방법

럼바우 데이터 모델링에 대한 설명 중 해당하는 모델링 ⭐

(1) : 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 모델링, 자료흐름도
(2) : 시간의 흐름에 따른 객체들 간의 제어흐름, 상호작용, 동작순서 등의 동적인 행위를 표현하는 모델링, 상태변화도, 사건 추적도
(3) : 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 표시하는 모델링, ER 다이어그램

  • Function, Dynamic, Information (기능, 동적, 객체 ->정보 모델링 이라고도 함 )

소프트웨어 패키징이란 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다. 소스 코드느 향후 관리를 고려하여 모듈화하여 패키징 한다. 모듈화는 모듈 간 (1)의 최소화와 모듈 내 요소들의 (2) 를 최대화하는 것이 목표이다.

  • 결합도, 응집도

결합도
내용 결합도 > 공통 결합도 > 외부 결합도> 제어 결합도> 스탬프 결합도> 자료 결합도

종류내용
내용 결합도한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도
공통(공유) 결합도공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
외부 결합도어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
제어 결합도어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어신호나 제어요소를 전달하는 결합도
스탬프 결합도모듈간 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
자료결합도모듈 간 인터페이스가 자료 요소로만 구성될 때의 결합도

응집도
기능적 응집도 > 순차적 응집도> 교환적 응집도> 절차적 응집도> 시간적 응집도> 논리적 응집도> 우연적 응집도

종류내용
기능적 응집도모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
순차적 응집도모듈 내 하나의 활동으로부터 나온 출력 데이터를 그다음 활동의 입력데이터로 사용할 경우
교환(통신)적 응집도동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우
절차적 응집도모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우 응집도
시간적 응집도특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우 응집도
논리적 응집도유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우
우연적 응집도모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우

데이터 결합도에 대해 간략히 서술

  • 모듈 간의 인터페이스가 자료 요소로만 구성될 때 결합도

(1)은 모듈간 인터페이스로 데이터, 지역변수 등을 직접참조하거나 수정할 때의 결합도

(2)는 모듈간 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
(3)은 모듈간의 인터페이스로 파라미터가 아닌 모듈 밖에 선언된 전역변수를 사용하여 전역 변수를 갱신하는 방식으로 상호작용하는 때의 결합도

  • 내용결합도, 스탬프결합도, 공통 결합도

결합도의 종류 중 단순 처리 대상인 데이터만 전달되는 것이 아니라 어떻게 처리해야하는지 결정하는 제어요소가 전달되는 경우의 결합도를 영문으로

  • Control Coupling

(1) 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때 응집도

(2) 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때 응집도
(3) 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때 응집도

  • 절차적 응집도, 교환적, 기능적

논리의 기술에 중점을 둔 도형식 표현방법, 연속, 선택 및 다중 선택, 반복등의 제어 논리 구조로 표현하고 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합한 것

  • NS차트

모듈 간 통신방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능한 것

  • IPC (Inter-Process Communication)

소프트웨어 구현을 위해 필요한 여러 동작 중 한가지 동작을 수행하는 작은 기능을 모듈로 구현한 것

  • 단위 모듈

애플리케이션 테스트에 사용되는 테스트 케이스에 대해 간략히 서술

  • 구현된 소프트웨어가 사용자의 요구사항 정확히 준수했는지 확인 위한 테스트 항목에 대한 명세서

IPC 대표적 메소드 중

메소드특징
(1)공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식
(2)네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스 간에 통신하는 방식
(3)공유 자원에 대한 접근 제어를 통해 통신하는 방식
(4)Pipe라 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식
(5)메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식
  • Shared Memory, Socket, Seaphores, Pipes&named Pipes,Message queueing

공통 모듈 명세시 해당 기능에 대해 일관되게 이해하고 한 가지로 해석될 수 있어야한다는 명세 기법 원칙

  • 명확성

공통 모듈 재사용 규모에 따른 분류에 해당하는 것

  • 컴포넌트, 함수와 객체, 애플리케이션

소프트웨어 개발에서 재사용에 대한 개념 간략히 서술

  • 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업

공통 모듈의 명세 기법에 해당하는 것

  • 정확성, 명확성 완전성, 일관성, 추적성

코드 설계에서 일정한 일련번호를 부여하는 코드 부여 방식

  • 순차코드

코드화 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 코드를 부여하는 코드 부여 방식

  • 표의 숫자 코드

(       )는 코드화 대상 자료 전체를 계산하여 이를 필요로 하는 분류 단위로 구분하고, 각 (       ) 내에서 순서대로 번호를 부여하는 방식

  • 블록 코드

코드화 대상 항목을 10진 분할하고 다시 그 각각에 대하여 10진 분할하는 방법을 필요한 만큼 반복하는 코드

  • 10진 코드

디자인 패턴의 분류 3가지

  • 생성, 구조, 행위

디자인 패턴 중 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가서 자동으로 내용이 갱신되는 방식

  • Observer

객체지향 소프트웨어 설계 시 사용되는 디자인 패턴 구성요소

  • 문제 및 배경, 사례, 샘플 코드

GoF 디자인 패턴 분류 3가지

  • 생성 패턴, 구조패턴, 행위 패턴

(       )패턴은 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당한다. 가상 생성자 패턴이라고도 불린다.

  • Factory Method

디자인 패턴 중 (       )패턴은 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴으로 Interpreter, Observer, Command 등이 그 예에 해당한다.

  • 행위

Windows 운영체제의 폴더와 같이 폴더 내에 폴더가 존재할 수 있는 트리 구조로 복합 객체와 단일 객체를 다룰 수 있는 패턴

  • 컴포지트

서버 개발 프레임워크 종류

(1) : JAVA 기반 만든 프레임워크
(2) : Python 기반 만든 프레임워크
(3) : PHP 기반 만든 프레임워크

  • Spring, Django, 코드이그나이터

서버 프로그램 개발을 위해 구현되는 모듈 중 하나로, 사용자의 요청에 적절한 서비스를 호출하여 그 결과를 사용자에게 반환하는 객체

  • Controller

(       )는 서버 프로그램 개발을 위해 생성하는 객체 중 하나로, 데이터베이스에 접근하고 데이터를 실제로 조작한다. 데이터베이스르 조작하기 위해 사용되는 SQL문은 (       )의 내부에 직접 입력되거나, 외부 XML 문서에 삽입하여 호출하는 방식을 사용한다.

  • DAO

배치 프로그램 필수 요소

(1) : 사용자의 개입없는 작업의 수행
(2) : 오류 추적 능력

  • 자동화, 안정성/신뢰성

배치 프로그램이 일괄 처리 작업을 설정된 주기에 맞춰 원활히 수행하도록 지원하는 도구로, 주로 Spring Batch, Quartz, Cron이 잇다.

  • 배치 스케줄러

웹 애플리케이션 개발의 WAS에 대해 간략히 서술

  • 동적 서비스를 제공하거나 웹서버와 데이터베이스 서버 또는 웹서버와 파일 서버 사이에서 인터페이스 역할을 수행하는 서버

소프트웨어 개발에서 개발 언어 선정 시 언어가 다른 개발 사례가 충분히 존재하고, 이미 여러 곳에서 사용하고 있는지를 판단하는 기준을 가리키는 용어

  • 범용성

소프트웨어 아키텍처에 대해 간략히 서술

  • 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조 또는 구조체

문제를 상위의 중요 개념으로부터 하위의 개념으로 구체화시키는 하향식 설계 기법

  • 단계적 분해

시스템을 계층으로 구분하여 구성하는 고전적 아키텍처 패턴으로 서브시스템들이 계층 구조를 이뤄 서로 마주보는 두개 계층 사이에서만 상호작용이 수행되며, 하위 계층은 상위계층에 대한 서비스제공자가 되고, 상위 계층은 하위계층의 클라이언트가 되는 아키텍처 패턴

  • 레이어 패턴
    *** 문제는 상위 하위가 바뀌어서 상위가 서비스 제공자라고 써있는데 정오표를 보면 하위계층이 서비스 제공자.
    레이어패턴에 대해 서치해봐도 프레젠테이션 (상위) - 비즈니스 - Persistence 계층으로 봤을 때 하위계층이 데이터 관련이고 상위가 클라이언트와 직접연결로 보고있음.

전형적인 멀티스레딩 방식을 사용하며, 하나의 컴포넌트가 서비스를 호출하는 클라이언트가 될 수도 서비스를 제공하는 서버가 될수도 있는 아키텍처 패턴

  • 피어 투 피어 패턴

객체 지향 기법에서 사용하는 상속의 개념 간략히 서술

  • 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

객체 지향 기법의 특징 중 (       )는 메세지에 의해 클래스가 연산을 수행하게 될 때 하나의 메세지에 대해 각각의 클래스가 가지고 있는 고유한 특성으로 응답할수 있ㄴ느 능력으로, 응용 프로그램 상에서 하나의 함수나 연산자가 두개이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스 처럼 수행할 수 있도록 하는 것

  • 다형성

럼바우 분석 기법의 모델링 과정 중 기능 모델링에 대해 간략히 서술

  • 자료 흐름도를 이용해 다수의 프로세스들 간의 자료흐름을 중심으로 처리 과정을 표현한 모델링

객체 지향 설계시 지켜야할 5가지 원칙을 (       )원칙이라한다.

  • SOLID

시스템 설계 시 필요한 설계 지침으로 두 모듈 간 상호 의존도 또는 두 모듈 사이의 연관관계를 의미하는 용어

  • 결합도

한가지 동작을 수행하는 기능을 모듈로 구현한 것, 독립적인 컴파일이 가능하며 다른 모듈에 호출되거나 삽입되기도 한다.

  • 단위 모듈

구현된 소프트웨어가 사용자의 요구사항을 정확히 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

  • 테스트 케이스

IPC에서 공유된 메모리를 이용하여 둘 이상의 프로세스가 통신할 수 있도록 기능을 제공하는 메소드 이름

  • Shared Memory

공통 모듈의 명세 기법 중 일관성에 대해 간략 서술

  • 공통기능 간 상호충돌 발생하지 않도록 작성하는 기법

공통 모듈 구현시 준수할 명세 기법 중 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성해야한다는 것을 의미하는 원칙

  • 추적성

회사에서 각부서 명칭 코드화위해 대분류, 중분류, 소분류 등으로 나누어 나타내고자 할 때 적합한 코드 종류

  • 그룹 분류 코드

코드의 주요 기능 중 자료에 의미를 부여하거나 나열할 수 있는 기능을 가리키는 용어

  • 배열 기능

구조 패턴의 하나로 호환성 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴

  • Adapter

GoF디자인 패턴 중 객체 간의 결합 통해 능동적으로 기능들을 확장할 수 있는 패턴

  • Decorator

효율적인 메모리 자원의 운용을 위해 유사한 클래스들의 인스턴스를 매번 생성하지 않고 가능한 공유해서 사용하기로 결정했을 때 가장 적합한 디자인 패턴

  • 플라이 웨이트

GoF 패턴 중 행위패턴 속하는 것

  • Command, Observer, State, Visitor

실행 취소 및 되돌리기 기능 개발할 때 주로 사용되는 패턴으로 특정 시점에서 객체 내부 상태 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능

  • Memento

동일한 계열의 알고리즘들이 개별적으로 캡슐화 되어있고 알고리즘의 변경 및 상호 교환이 용이하며 클라이언트가 알고리즘을 자유롭게 선택 가능한 디자인 패턴

  • Strategy, 전략

서버 프로그램 갭라 과정에서

(1) : 사용자의 요청에 적절한 서비스 호출해 결과를 사용자에게 반환
(2) : 데이터베이스에 접근하고 sql문 활용해 데이터 실제로 조작하는 객체

  • Controller, DAO

소프트웨어 개발에서 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙 등을 정의해놓은 인터페이스를 가리키는 용어

  • API

다음 설명 객체 지향 설계 원칙

클라이언트는 자신이 사용하지 않는 메소드와 의존관계 맺으면 안된다. 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다.

  • ISP, 인터페이스 분리 원칙

객체 지향 설계 원칙 중 서브타입(상속받은 하위클래스)은 어디서나 자신의 기반타입 (상위클래스) 으로 교체할 수 있어야 함을 의미하는 원칙

  • LSP, 리스코프 치환 원칙
profile
HelloWorld! 같은 실수를 반복하지 말기위해 적어두자..

0개의 댓글

관련 채용 정보