Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발이글스

[정처기 실기] 1-2 현행 시스템 분석 본문

Others/정보처리기사

[정처기 실기] 1-2 현행 시스템 분석

지윤이글스 2024. 9. 29. 19:00

📚현행 시스템 분석

📙현행 시스템 파악

🏷️소프트웨어 아키텍처 개념 

       ➡️소프트웨어 아키텍처는 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체이다. 

 

🏷️소프트웨어 아키텍처 4+1뷰

       ➡️고객의 요구사항을 정리해놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근방법이다.

              1) 유스케이스 뷰: 유스케이스 또는 아키텍처를 도출하고 설계하고 다른 뷰를 검증!  👉 사용자,설계자,개발자, 테스트 관점

              2) 논리 뷰: 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰 👉 설계자, 개발자 관점 

              3) 프로세스 뷰: 시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 이벤트 처리 등을 표현한 뷰, 👉  개발자, 시스템 통합자 관점

              4) 구현 뷰: 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰

              5) 배포 뷰: 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

🏷️소프트웨어 아키텍처 패턴 개념

      ➡️ 소프트웨어 아키텍처 패턴은 소프트웨어를 설계할 때 참조할 수 있는  전형적인 해결방식이다.

 

🏷️소프트웨어 아키텍처 패턴 유형

      1️⃣ 계층화 패턴(Layered Pattern) 

             : 시스템을 계층으로 구분하여 구성, 각 하위 모듈들은 특정한 수준의 추상화를 제공, 각 계층은 다음 상위 계층에게 서비스를 제공

      2️⃣ 클라이언트 - 서버 패턴(Client-Server Pattern)

             : 하나의 서버와 다수의 클라이언트로 구성된 패턴, 사용자가 클라이언트를 통해서 서버에 서비스를 요청, 서버는 클라에게 서비스 제공

      3️⃣ 파이프-필터 패턴(Pipe-Filter Pattern)

             : 데이터 스트림을 생성하고 처리하는 시스템에서 사용가능한 패턴

      4️⃣ 브로커 패턴(Broker Pattern)

             : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용되고, 이 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴

      5️⃣ 모델-뷰-컨트롤러 패턴(MVC Pattern)

             : 모델: 핵심기능과 데이터를 보관 / 뷰: 사용자에게 정보표시 / 컨트롤러: 사용자로부터 요청을 입력받아 처리

                MVC패턴은 각 부분이 별도의 컴포넌트로 분리되어 있어서 서로 영향을 받지않고 개발작업 수행 가능

 

🏷️소프트웨어 아키텍처 비용 평가 모델

      1️⃣ SAAM: 변경 용이성과 기능성에 집중, 평가가 용이하여 경험이 없는 조직에서도 활용가능한 비용 평가 모델

      2️⃣ ATAM: 아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충관계까지 평가하는 모델

      3️⃣ CBAM: 경제적 의사결정에 대한 요구를 충족하는 비용평가모델

      4️⃣ ADR:  소프트웨어 아키텍처 구성요소간 응집도를 평가하는 모델 

      5️⃣ ARID:  전체아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용평가 모델

 

🏷️디자인 패턴 개념

       ➡️ 디자인 패턴은 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계방법을 정리한 패턴이다. 

 

🏷️ 디자인 패턴 종류

 ✏️ 생성패턴 [생 - 빌 프로 팩 앱 싱]

  1) Builder

       : 복잡한 인스턴스를 조립하여 만드는 구조, 복합객체를 생성할 때 객체를 생성하는 방법과 객체를 구현하는 방법을 분리함으로써 동일한 생성 절차에서 서로 다른 결과를 만들 수 있는 디자인 패턴

  2) Prototype

       : 기존 객체를 복제함으로써 객체를 생성

  3) Factory Method

        : 상위클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식으로, 상위클래 스에서는 인스턴스를    만드는 방법만 결정하고, 하위클래스에서 실제 객체를 생성하는 패턴

4) Abstract Factory

     : 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴으로 이 패턴을 통해 생성된 클래스에서는 사용자에게 인터페이스를 제공하고, 구체적인 구현은 Concrete Product클래스에서 이루어지는 특징을 갖는 디자인 패턴

5) Singleton

     : 전역변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서는지 참조할 수 있도록 하는 패턴, 한클래스에 한객체만 존재하도록 제한

 

✏️ 구조패턴 [구 - 브 데 퍼 플 프록 컴 어]

1) Bridge   

     : 기능의 클래스 계층과 구현의 클래스 계층을 연결하고, 구현부에서 추상계층을 분리하여 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있            는 디자인 패턴

2) Decorator   

     : 기존에 구현되어있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴

3) Facade
     : 복잡한 시스템에 대하여 단순한 인터페이스를 제공함으로싸 사용자와 시스템간의 결합도를 낮추어 시스템 구조에 대한 파악을 쉽게 하는 패턴

4) Flyweight     

     : 다수의 객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스화하여 공유함으로써 메모리를 절약, 클래스 경량화를 목적으로 하는 패턴

5) Proxy     

     : 특정 객체로의 접근을 제어하기 위한 패턴, 실제 객체를 드러나지 않게 하여 정보은닉의 역할도 수행하는 패턴

6) Composite      

      : 객체들의 관계를 트리구조로 구성하여 부분-전체 계층을 표현하는 패턴

7) Adaper     

     : 기존에 생성된 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

✏️ 행위패턴 [행 - 미인이  템옵 스테 비커 스트 매체 ]

1) Mediator:  중재자를 통해 한 집합에 속해있는 객체들의 상호작용을 캡슐화하는 패턴

2) Interpreter: 구체적으로 구문을 나누고 분리된 구문의 해석을 맡는 클래스를 각각 작성해서 구문을 해석할 수 있게 만드는 패턴

3) Iterator: 내부구조를 노출하지 않고, 복잡 객체의 원소를 순차적으로 접근가능하게 해주는 패턴

4) Template Method: 상위작업의 구조를 바꾸지않으면서 서브클래스로 작업의 일부분을 수행

5) Observer: 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방법

6) State: 객체의 상태를 캡슐화하여 클래스화함, 객체의 상태에 따라 행위 내용을 변경하는 패턴

7) Visitor: 각 클래스 데이터 구조로부터 처리기능을 분리하여 별도의 클래스를 만들어놓고 해당 클래스의 메서드가 각 클래스를 돌아다니면서 특정작업을 수행하도록 만드는 패턴, 객체의 구조는 변경하지 않고 기능만 따로 추가확장할때 사용하는 패턴

8) Command: 하나의 추상클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징인 패턴

9) Strategy: 알고리즘 군을 정의하고 같은 알고리즘을 각각 하나의 클래스로 캡슐화한 다음, 필요할 때 서로  교환해서 사용할 수 있게 하는 패턴

10) Memento: 객체를 이전상태로 복구시켜야하는 경우, 작업취소(Undo) 요청 가능 

11) Chain of Responsibility: 한요청을 2개 이상의 객체에서 처리 

 

 

📙개발 기술 환경 정의

🏷️운영체제 종류 및 특징

1️⃣ PC 

      - Windows - Microsoft: 중/소규모 서버, 일반 pc등 유지, 관리 비용 장점

     - Unix - IBM : 대용량 처리, 안정성 높은 엔터프라이즈급 서버

     - Linux - Linus Torvalds: 중/대규모 서버 대상, 높은 보안성 제공

2️⃣ MOBILE

       - Android - Google :  리눅스 운영체제 위에서 구동하며, 개발자들이 자바 , 코틀린 언어로 응용 프로그램을 작성할 수 있게 했고, 컴파일된 바이트 코드를 구동할 수 있는 런타임 라이브러리를 제공하는 운영체제

     - iOS - Apple: 스마트폰, 태블릿pc의 높은 보안성과 고성능 제공

 

🏷️네트워크 현행시스템 분석 -  OSI 7계층

       응용계층: 사용자와 네트워크 간 응용서비스 연결, 데이터 생성 

       표현계층: 데이터 형식 설정과 부호교환, 암복호화

       세션계층: 연결접속 및 동기제어

       전송계층: 신뢰성 있는 통신 보장

       네트워크계층: 단말기간 데이터 전송을 위한 최적화된 경로 제공 

       데이터 링크 계층: 인접 시스템 간 데이터 전송, 전송오류 제어

       물리계층: 0과1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환

 

🏷️미들웨어란?

       ➡️ 미들웨어는 분산 컴퓨팅 환경에서 응용프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어이다. 대표적인 미들웨어로는  WAS가 있다.