[정보처리기사] 3장/4장

정제철·2023년 6월 9일
0

정보처리기사

목록 보기
8/8
post-thumbnail

정보처리기사 : 1장 - 요구사항 확인
정보처리기사 : 2장 - 데이터 입출력 구현
정보처리기사 : 3,4장 - 통합 구현, 서버 프로그램 구현


📢3장 : 통합 구현

📢60. XML

📌XML

  • XML(eXtensible Markup Language)는 특수한 목적을 갖는 마크업 언어를 만드는 마크업 언어다.
  • 웹 브라우저 간 HTML 문법이 호환되지 않는 문제를 해결하기 위해 개발되었다.

📌SOAP

  • SOAP(Simple Object Access Protocol)는 컴퓨터 네트워크 상에서 HTTP.HTTPS. SMTP 등을 이용하여 XML을 교환하기 위한 통신 규약

📌WSDL

  • WSDL(Web Services Description Language)은 웹서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기 위한 언어다.

📢4장 : 서버 프로그램 구현

📢63. 소프트웨어 아키텍처

  • 소프트웨어 아키텍쳐는 소프트웨어를 구성하는 요소들 간의 관계를 표현하는 시스템의 구조이다.
  • 소프트웨어 아키텍처 설계의 기본 원리에는 모듈화, 추상화, 단계적 분해, 정보은닉이 있다.

📌모듈화

  • 모듈화는 소프트웨어의 성능 향상, 시스템의 수정 및 재사용, 유지 관리 등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것을 의미한다.
  • 모듈의 크기를 너무 작게 나누면 개수가 많아져 모듈 간의 통합비용이 많이든다.
  • 모듈의 크기를 너무 크게 나누면 개수가 적어 통합비용은 적지만 모듈 하나의 개발 비용이 많이 든다.

📌추상화

  • 추상화는 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는것

추상화의 유형

  • 과정 추상화
  • 데이터 추상화
  • 제어 추상화

📌단계적 분해

  • 단계적 분해는 문제를 상위의 중요개념으로부터 하위의 개념으로 구체화 시키는 분할 기법이다.

📌정보 은닉

  • 정보 은닉은 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법이다.
  • 하나의 모듈이 변경되더라도 다른 모듈에 영향을 주지 않으므로 수정, 시험, 유지보수가 용이하다.

📌상위/하위 설계

  • 소프트웨어 개발의 설계 단계는 크게 상위 설계와 하위 설계로 구분할 수 있다.
  • 상위설계 : 아키텍처 설계, 예비 설계
  • 하위설계 : 모듈 설계, 상세 설계

📌설계 과정

  • 설계 목표 설정 : 요구사항 분석 후 설계 목표 설정
  • 시스템 타입 결정 : 시스템과 서브시스템의 타입을 결정하고, 아키텍처 패턴 선택
  • 아키텍처 패턴 적용 : 시스템의 표준 아키텍처 설계
  • 서브시스템 구체화 : 서브시스템의 기능 및 서브시스템 간의 상호작용을 위한 동작과 인터페이스 정의
  • 검토 : 설계 목표, 요구사항, 설계의 기본 원리 등을 만족하는지 아키텍처 검토

📢64. 아키텍처 패턴

  • 아키텍처 패턴은 아키텍처를 설계할 때 참조 할 수 있는 전형적인 해결 방식 또는 예제를 의미한다.
  • 주요 아키텍처 패턴 종류
    • 레이어 패턴
    • 클라이언트-서버 패턴
    • 파이프-필터 패턴
    • 모델-뷰-컨트롤러 패턴
  • 기타패턴
    • 마스터-슬레이브 패턴
    • 브로커 패턴
    • 피어-투-피어 패턴
    • 이벤트-버스 패턴
    • 블랙보드 패턴
    • 인터프리터 패턴

📢65. 객체지향

  • 객체지향은 소프트웨어의 각 요소들을 객체(Object)로 만든 후, 객체들을 조립해서 소프트웨어를 개발하는 기법
  • 객체지향의 구성요소
    • 객체(Object)
    • 클래스(Class)
    • 메시지(Message)
  • 객체지향의 특징
    • 캡슐화
    • 상속
    • 다형성
    • 연관성

📢66. 객체지향 분석 및 설계

📌객체지향 분석

  • 객체지향 분석은 사용자의 요구사항과 관련된 객체, 속성, 연산, 관계 등을 정의하여 모델링하는 작업이다.

📍방법론

  • 럼바우 기법 : 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행함
  • Coad와 Yourdon 방법 : E-R다이어그램을 사용하여 객체의 행위를 모델링함

📍럼바우의 분석기법

  • 객체 모델링 기법이다.
  • 객체 모델링 : 객체 다이어그램으로 표시한다.
  • 동적 모델링 : 상태 다이어그램으로 표시한다.
  • 기능 모델링 : 자료 흐름도(DFD)를 이용하여 표현한다.

📍설계 원칙

SOLID

  • SRP 단일 책임 원칙 : 객체는 단 하나의 책임만 가져야 한다는 원칙
  • OCP 개방-폐쇄 원칙 : 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야한다는 원칙
  • LSP 리스코프 치환 원칙 : 자식클래스는 최소한 부모클래스의 기능은 수행할 수 있어야 한다는 원칙
  • ISP 인터페이스 분리 원칙 : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
  • DIP 의존 역전 원칙 : 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

📢67. 모듈

  • 모듈은 모듈화를 통해 분리된 시스템의 각기능
  • 모듈의 독립성은 결합도와 응집도에 의해 측정된다.

📌결합도

  • 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계이다.
  • 결합도가 약할수록 품질이 좋고, 강할수록 품질이 낮다

    "내공부 제가 스스로 자습할게요."

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

📌응집도

  • 응집도는 모듈 내부 요소들이 서로 관련되어 있는 정도
  • 응집도가 강할수록 품질이 높고, 약할수록 품질이 낮다.

    "응기 순교 절시 논우

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

📌팬인/팬아웃

  • 팬인은 어떤 모듈을 제어하는 모듈의 수(화살표 받는 수)
  • 팬아웃은 어떤 모듈에 의해 제어되는 모듈의 수(화살표 보내는 수)

📌N-S차트

  • N-S차트는 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법

📢68. 단위 모듈

  • 단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한가지 동작을 수행하는 기능을 모듈로 표현한 것이다.

📌IPC

  • IPC(Inter-Process Communicatiion)는 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
  • IPC의 대표 메소드 5가지
  • Shared Memory
  • Socket
  • Semaphores
  • Pipes&named Pipes
  • Message Queueing

📌단위 모듈 테스트

  • 단위 모듈 테스트는 프로그램 단위 기능으로 구현된 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것
  • 단위 테스트(Unit test)라고도 불린다

📌테스트 케이스

  • 테스트 케이스(Test CAse)는 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서이다.

📢69. 공통 모듈

  • 공통 모듈은 여러 프로그램에서 공통으로 사용할 수 있는 모듈

📌종류

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

📌재사용

  • 재사용은 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업이다.
  • 재사용 규모에 따른 분류
    • 함수와 객체
    • 컴포넌트
    • 애플리케이션

❗효과적인 모듈 설계 방안

  • 결합도는 줄이고, 응집도는 높여서 모듈의 독립성과 재사용성을 높인다.

📢71. 디자인 패턴

  • 디자인 패턴은 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미한다.
  • GOF디자인 패턴은 생선 패턴, 구조 패턴, 행위 패턴으로 구분된다.

📌생성 패턴

추빌팩프싱

  • 추상 팩토리(Abstract Factory)
  • 빌더(Builder)
  • 팩토리 매소드(Factory Method)
  • 프로토타입(Prototype)
  • 싱글톤(Singleton)

📌구조 패턴

어브컴데퍼플프

  • 어댑터(Adapter)
  • 브리지(Bridge)
  • 컴포지트(Composite)
  • 데코레이터(Decorator)
  • 퍼싸드(Facade)
  • 플라이웨이트(Flyweight)
  • 프록시(Proxy)

📌행위 패턴

그 외 나머지

  • 책임 연쇄
  • 커맨드
  • 인터프리터
  • 반복자
  • 중재자
  • 메멘토
  • 옵저버
  • 상태
  • 전략
  • 템플릿 메소드
  • 방문자
profile
성공의 반대는 실패가 아닌 도전하지 않는 것이다.

0개의 댓글