반응형

*개발 기술 환경 현행 시스템 분석

1. 운영체제 현행 시스템 분석

1-1. 운영체제란

- 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램이다.

- 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어이다.

1-2. 운영체제 현행 시스템 분석

- 운영체제 현행 시스템 분석 시 품질 측면과 지원 측면 등을 고려해야 한다.

- 품질 측면 (신뢰도) : 장기간 시스템 운영 시 운영체제의 장애 발생 가능성, 운영체제의 버그로 인한 재기동 여부

- 품질 측면 (성능) : 대규모 및 대량 파일 작업(배치 작업)처리, 지원 가능한 메모리 크기(32비트, 64비트)

- 지원 측면 (기술 지원) : 공급사들의 안정적인 기술 지원, 오픈 소스 여부

- 지원 측면 (주변 기기) : 설치 가능한 하드웨어, 다수의 주변 기기 지원 여부

- 지원 측면 (구축 비용) : 지원 가능한 하드웨어 비용, 설치할 응용 프로그램의 라이선스 정책 및 비용, 유지 및 관리 비용

1-3. 운영체제의 종류 및 특징

- 대표적으로 PC, 모바일 운영체제로 나뉜다.

- PC (윈도즈 Windows) : Microsoft, 중/소규모 서버, 일반 PC 등 유지, 관리 비용 장점

- PC (유닉스 UNIX) : IBM, HP, SUN, 대용량 처리, 안정성 높은 엔터프라이즈급 서버

- PC (리눅스 Linux) : Linus Torvalds, 중/대규모 서버 대상, 높은 보안성 제공

- 모바일 (안드로이드 Android) : Google, 스마트폰, 태블릿 PC, 다양한 기기의 호환성 제공

- 모바일 (IOS) : Apple, 스마트폰, 태블릿 PC의 높은 보안성과 고성능 제공

- 리눅스 기반 시스템이 하드웨어 및 소프트웨어 소유 비용이 가장 적게 소요된다.

 

2. 네트워크 현행 시스템 분석

2-1. 네트워크란

- 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술이다.

- 데이터 링크들은 광 케이블과 같은 유선 매체 또는 와이파이(Wi-Fi)와 같은 무선 매체를 통해 확립된다.

2-2. OSI 7계층

- 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구(ISO)에서 제시한 네트워크 기본 모델이다.

- 응용 계층 : 사용자와 네트워크 간 응용 서비스 연결, 데이터 생성 (HTTP, FTP 프로토콜 / 전송단위는 데이터)

- 표현 계층 : 데이터 형식 설정과 부호 교환, 암호화/복호화 (JPEG, MPEG 프로토콜 / 전송단위는 데이터)

- 세션 계층 : 연결 접속 및 동기제어 (SSH, TLS 프로토콜 / 전송단위는 데이터) 

- 전송 계층 : 신뢰성 있는 통신 보장, 데이터 분할과 재조립, 흐름 제어, 오류 제어, 혼잡제어 등을 담당 (TCP, UDP 프로토콜 / 전송단위는 세크먼트)

- 네트워크 계층 : 단말 간 데이터 전송을 위한 최적화된 경로 제공 (IP, ICMP 프로토콜 / 전송단위는 패킷)

- 데이터 링크 계층 : 인접 시스템 간 데이터 전송, 전송오류 제어, 동기화, 흐름 제어 등의 전송 기능 제공, 오류 검출, 재전송 등 기능 제공 (이더넷 / 전송단위는 프레임)

- 물리 계층 : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 (RS-232C / 전송단위는 비트)

2-3. 네트워크 현행 시스템 분석

- 현행 시스템이 구성된 네트워크 구조를 네트워크 구성도를 통해 분석한다.

- 네트워크 구성도를 통해 서버 위치, 서버 간 연결 방식을 파악할 수 있다.

- 백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석한다.

- 네트워크 분석 시 물리적인 위치 관계 파악, 조직 내 보안 취약성 분석 및 대응이 가능하다.

- 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용할 수 있다.

 

3. DBMS 현행 시스템 분석

3-1. DBMS란

- 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다.

3-2. DBMS의 기능

- 중복 제어 : 동일한 데이터가 여러 위치에 중복으로 저장되는 현상 방지

- 접근 통제 : 권한에 따라 데이터에 대한 접근 제어

- 인터페이스 제공 : 사용자에게 SQL 및 CLI, GUI 등 다양한 인터페이스 제공

- 관계 표현 : 서로 다른 데이터 간의 다양한 관계를 표현할 수 있는 기능 제공

- 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능 제공

- 무결성 제약조건 : 무결성에 관한 제약조건을 정의/검사하는 기능 제공

- 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능 제공

3-3. DBMS 현행 시스템 분석

- 성능 측면 (가용성) : 장기간 시스템을 운영할 때 장애 발생 가능성, 백업 및 복구 편의성, DBMS 이중화 및 복제 지원 여부

- 성능 측면 (성능) : 대규모 데이터 처리 성능, 대량 거래 처리 성능, 다양한 튜닝 옵션 지원 여부, 비용 기반 최적화 지원 및 설정의 최소화 지원 여부

- 성능 측면 (상호 호환성) : 설치 가능한 운영체제 종류, 다양한 운영체제에서 지원되는 JDBC, ODBC

- 지원 측면 (기술 지원) : 공급 업체들의 안정적인 기술 지원 여부, 다수의 사용자 간의 정보 공유 여부, 오픈 소스 여부

- 지원 측면 (구축 비용) : 라이언스 정책 및 비용, 유지 및 관리 비용

 

4. 미들웨어의 현행 시스템 분석

4-1. 미들웨어란

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

- 운영체제와 소프트웨어 애플리케이션 사이에 위치하고 있다.

- 대표적인 미들웨어로는 WAS가 있다.

4-2. 웹 애플리케이션 서버(WAS)란

- 웹 애플리케이션 서버는 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이 기종 시스템과의 애플리케이션 연동을 지원하는 서버이다.

4-3. 미들웨어의 현행 시스템 분석

- 성능 측면 (가용성) : 장기간 시스템을 운영할 때 장애 발생 가능성, 안정적인 트랜잭션 처리 능력, WAS의 버그 등을 개선하는 패치 설치를 위한 재기동 기능 지원 여부, WAS 이중화 지원 여부

- 성능 측면 (성능) : 대규모 데이터 처리 성능, 다양한 설정 옵션 지원 여부, 가비지 컬렉션의 다양한 옵션 기능 여부

- 지원 측면 (기술 지원) : 공급 벤더들의 안정적인 기술 지원 여부, 다수의 사용자들 간의 정보 공유 여부, 오픈 소스 여부

- 지원 측면 (구축 비용) : 라이선스 정책 및 비용, 유지 및 관리 비용, 총 소유 비용

 

5. 오픈 소스 사용 시 고려 사항

- 오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다.

- 오픈 소스 소프트웨어의 전체 조건인 자유 배포, 소스 코드 공개, 파생작업 허용, 소스 코드 일관성 확보, 차별금지, 라이선스 배포, 포괄적 허용을 고려해야 한다.  

반응형
반응형

*현행 시스템 분석서 작성 및 검토

1. 현행 시스템 관련 자료 수집

- 현행 시스템 관련 자료 수집을 위해서 수집 자료의 특성에 따라 3개의 팀을 구성한다.

- 정보시스템 구성/기능 및 인터페이스 자료 수집팀 : 정보시스템 구성도, 정보시스템 기능 구성도, 정보시스템 인터페이스 현황

- 현행 시스템 아키텍처 및 소프트웨어 자료 수집팀 : 현행 시스템 아키텍처 구성도, 소프트웨어 구성도

- 하드웨어 및 네트워크 자료 수집팀 : 하드웨어 구성도, 네트워크 구성도

- 수집 자료의 성격에 따라서 팀을 명확하게 구분하는 것이 필요하다.

 

2. 수집 자료의 분석

- 수집된 정보들을 취합, 정제하고, 중복되거나 유효하지 않은 정보들은 삭제 한다.

- 불명확한 부분은 체크한 후 분석 및 설계 단계를 통해 구체적으로 조사한다.

- 현행 시스템의 이슈 및 문제점을 파악한다.

 

3. 분석한 결과를 기반으로 산출물 작성

- 각 취득 자료를 분석한 결과를 기반으로 산출물을 작성한다.

- 현행 시스템의 이슈나 문제점을 산출물에 상세하게 포함하여 작성한다.

 

4. 산출물에 대한 검토 수행

- 팀별로 작성된 산출물을 상호 검토하여 의견을 제시한다.

- 다른 팀의 검토의견을 반영하여 산출물을 수정하고 최종 완료한다.

반응형
반응형

*소프트웨어 아키텍처(실기)

- 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체를 의미한다. 또한, 소프트웨어를 설계하고 전개하기 위한 지침이나 원칙이다.

 

*소프트웨어 아키텍처 프레임워크

- 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.

 

*소프트웨어 아키텍처 프레임워크 구성요소

1. 아키텍처 명세서

- 아키텍처를 기록하기 위한 산출물

- 이해관계자들의 시스템에 대한 관심을 관점에 맞추어 작성한 뷰로 표현

- 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등이 있다.

2. 이해관계자

- 시스템 개발에 관련된 모든 사람과 조직

- 고객, 최종사용자, 개발자, 프로젝트 관리자, 유지보수자, 마케팅 담당자 등을 포함

3. 관심사

- 시스템에 대해 이해관계자들의 서로 다른 의견과 목표이다.

- 사용자 입장 : 기본적인 기능, 신뢰성, 보안, 사용성 등의 품질

- 유지보수자 입장 : 유지보수의 용이성

- 개발자 입장 : 적은 비용과 인력으로 개발

4. 관점

- 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식

- 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해 보고 싶은 관점

5. 뷰

- 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현

- 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성

6. 근거

- 아키텍처 결정 근거, 회의 결과, 보고 결과

 

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

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

- 4개의 분리된 구조로 구성되는 아키텍처 개념을 제시하고, 이들 4개 구조가 서로 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위해 체크방법으로 유스케이스를 사용한다.

 

*소프트웨어 아키텍처 4+1 뷰 구성요소

- 4+1에서 1은 유스케이스 뷰를 의미하고, 4는 논리 뷰 / 구현 뷰 / 프로세스 뷰 / 배포 뷰를 의미한다.

1. 유스케이스 뷰

- 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰

- 다른 뷰를 검증하는 데 사용

2. 논리 뷰

- 설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰

- 시스템의 기능적인 요구사항 지원

- 클래스와 이들 간 관계에 대한 집합을 보여주는 클래스 다이어그램으로 표현

3. 프로세스 뷰

- 런타임시의 시스템의 태스크, 스레드, 프로세스와 이들 사이의 상호작용 등의 관계를 표현하는 뷰

- 성능이나 가용성과 같은 시스템의 비 기능적인 요구사항을 고려

4. 구현 뷰

- 개발 환경 안에서 정적인 소프트웨어 모듈 (소스 코드, 데이터 파일, 컴포넌트, 실행 파일 등)의 구성을 표현하는 뷰

- 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현

- 컴포넌트 뷰라고도 한다.

5. 배포 뷰

- 물리적인 노드의 구성과 상호 연결 관계를 배포 다이어그램으로 표현하는 뷰

- 다양한 실행 파일과 다른 런타임 컴포넌트가 해당 플랫폼 또는 컴퓨팅 노드에 어떻게 매핑되는가를 보여주며, 가용성, 신뢰성, 성능, 확장성 등의 시스템의 비 기능적인 요구사항을 고려

반응형
반응형

*현행 시스템 파악(실기)

- 현행 시스템 파악이란 현행 시스템이 어떤 하위 시스템으로 구성되어 있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술 요소를 사용하는지를 파악하는 활동이다.

- 사용하고 있는 소프트웨어 및 하드웨어는 무엇인지, 네트워크의 구성은 어떻게 되어 있는지 파악하는 활동이다.

 

*현행 시스템 파악 절차

- 현행 시스템 파악을 위해서는 3단계의 절차가 필요하다.

1. 구성/기능/인터페이스 파악

2. 아키텍처 및 소프트웨어 구성 파악

3. 하드웨어 및 네트워크 구성 파악

 

*구성/기능/인터페이스 파악

1. 현행 시스템 구성 현황 파악

- 조직의 주요 업무를 처리하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 파악

- 작성 시 고려사항 : 각 업무에 속하는 정보시스템들의 명칭, 주요 기능들을 명시, 조직 내 존재하는 모든 정보시스템의 현황 파악이 가능하도록 한다.

2. 기능 현황 파악

- 단위 업무 시스템이 현재 제공하고 있는 기능 파악

- 작성 시 고려사항 : 단위 업무 시스템 기능들을 주요 기능과 하부 기능으로 구분하여 계층 형으로 표시한다.

3. 인터페이스 현황 파악

- 단위 업무 시스템이 다른 시스템과 주고 받는 데이터의 종류, 데이터 형식, 프로토콜, 연계유형, 주기 파악

- 작성 시 고려사항 : 데이터 형식(XML, 고정 포맷, 가변 포맷 등)을 주고받는지, 어떤 통신 규약(TCP/IP/X.25 등)을 사용하고 있고, 연계유형(EAI 등)은 무엇인지 등을 표시한다.

 

*아키텍처 및 소프트웨어 구성 파악

1. 현행 시스템 아키텍처 구성 파악

- 기간 업무를 수행하기 위해 계층별로 어떠한 기술 요소들을 사용하고 있는지 최상위 수준에서 파악

- 작성 시 고려사항 : 단위 업무 시스템별로 아키텍처가 다른 경우 가장 핵심이 되는 기간 업무 처리 시스템을 기준으로 파악한다.

2. 소프트웨어 구성 파악

- 단위 업무 시스템의 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 라이선스 적용 방식, 라이선스 수 파악

- 작성 시 고려사항 : 상용 소프트웨어의 경우 라이선스 적용 방식의 기준(사이트, 서버, 프로세서, 코어, 사용자 수 등)과 보유한 라이선스 수량 파악이 중요하다.

 

*하드웨어 및 네트워크 구성 파악

1. 하드웨어 구성 파악

- 단위 업무 시스템들이 운용되고 있는 서버의 위치, 운용 서버의 주요 사양(CPU 처리속도, 메모리 크기, 하드디스크의 용량 등)과 수량, 이중화 구현 여부를 파악

- 작성 시 고려사항 : 이중화는 기간 업무의 서비스 기간, 장애 대응 정책에 따라 필요성 여부가 결정되며, 이에 따라 인프라 구축 기술 난이도 및 비용 증가 가능성이 존재한다.

2. 네트워크 구성 파악

- 업무 처리 시스템을 위해 어떤 네트워크 장비를 사용하여 어떻게 구성되어 있는지 파악

- 작성 시 고려사항 : 네트워크 구성도의 작성을 통해 서버의 위치, 서버 간의 네트워크 연결 방식을 파악할 수 있도록 표현한다. 

반응형

+ Recent posts