본문 바로가기
정보처리기사

정처기 정리 #2 소프트웨어 개발 환경

by 싼쵸 2022. 1. 22.
반응형

1.  소프트웨어 개발 환경

1 ) 운영 체제(OS: Opertaing System)

  1. 정의
    하드웨어와 소프트웨어 자원을 관리, 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 시스템 소프트 웨어
  2. 종류
    windows: 중소규모 서버, 개인용 PC, Tablet PC, Embedded System 등에서 사용, 유지 및 관리 비용 측면에서 강점
    UNIX : 대용량 처리, 안정성이 요구되는 Server, NAS(Network Attached Storage), Workstation 등에서 사용, 신뢰할 수 있는 대용량 처리에서 UNIX 기반 시스템 선호
       NAS : 서버와 저장 장치를 네트워크로 연결하는 방식으로, 구성 설정이 간편
       Workstaion: 개인이나 소수의 사람이 특수 분야에 사용하는 고성능 컴퓨터
    Linux: 중대 규모 서버등에서 사용, 일반적으로 Linux 기반 시스템이 하드웨어 및 소프트웨어 소요비용이 가장 적음
    iOS: 애플의 운영체재
    Android: 구글의 개방형 운영체재
  3. 분석 시 고려 사항
    신뢰도 : 고유의 발생 장애가능성 확인
    성능: 다수의 동시 사용자 요청 처리가 가능한지 확인
    기술지원: 공급 벤더(다품종 소량 도매업) 들의 안정적인 기술지원이 가능 한지 확인
    주변 기기: 주변기기 지원 여부 확인
    구축 비용: 지원 가능한 하드웨어 비용
  4. 현황
    32bit 운영체제는 4GB 메모리 까지
    64bit 운영체제는 4GB 이상의 메모리
    CISC 설계 방식이 적용된 인텔의 x86 아키텍쳐 기반 칩을 사용하고 있는 하드웨어는 windows나 Linux 운영체체는 설치 가능 RISC 설계방식이 적용된 칩들은 UNIX 운영체제를 설치한다.
    HP와 Intel 사가 협력해서 만든 (IA-64) 칩은 여러 운영체제를 지원한다.
    RISC 설계 방식이 적용된 ARM 칩은 스마트 폰이나 태블릿에 주로 채택, iOS, Android 등의 운영체제를 지원

2 ) CPU(중앙 처리 장치)

      

1.  CISC(Complex Instruction Set Computer) 설계 방식

  • 복잡하고 많은 종류의 명령어와 주소 지정 모드 사용
  • 가변 길이 명령어 형식
  • 100 ~ 250 개 정도의 많은 명령어를 가지고 있어 설계가 어려움
  • 마이크로 프로그래밍(소프트웨어적) 제어 방식
  • 명령어가 소프트웨어적이므로 호환성이 좋음
  • 명령어를 해석한 후 명령어를 실행
  • 컴파일 과정이 쉽고, 호환성이 좋다는 장점이 있지만, 속도가 느리다는 단점
  • 인텔의 CPU에 주로 활용

2.  RISC(Reduced Instruction Set Computer) 설계 방식

  • 간단하고 적은 종류 명령어와 적은 수의 주소 지정 모드를 사용
  • 고정 길이 명령어 형식
  • CISC에 비해 명령어 수가 적음
  • 하드웨어(논리 회로를 이용한 하드웨어)적 제어 방식
    효율적인 파이프라이닝 구조를 사용
  • 명령어의 길이가 미리 정해져 있어 해석 속도가 빠르다.
  • 작고 빠른 명령어 사용을 위해 많은 수의 범용 레지스터가 사용되며 처리 속도가 빠르고 하드웨어 구조 단단
  • 효율성이 떨어지고 전력 소모가 적음
  • 처리 비트 단위가 변한 거나 프로세서의 구조가 조금만 바뀌어도 하위 프로세서와의 호환성이 떨어짐
    고성능의 워크스테이션이나 그래픽용 컴퓨터에 주로 사용

 

3 ) DBMS(DataBase Management System)

1. 정의

  •  대량의 데이터를 저장하고 있는 데이터 베이스를 생성, 조회, 변경 등의 관리를 하는 프로그램
  • 사용자, 다른 애플리케이션, 데이터베이스와 상호 작용하여 데이터를 저장하고 분석하기 위한 애플리케이션

2. 종류 

  • Oracle : 대규모 데이터 처리, 안정적인 처리 가능
  • IBM DB2: 대규모 데이터 처리, 안정적인 처리 가능
  • SQL Server:  중소규모의 데이터 처리, 안정적인 처리 가능
  • MySQL : 오픈소스에서 주로 사용되는 RDBMS이다.
  • SQLite : 스마트폰, 태블릿 PC 등의 Embedded 데이터 베이스 용도로 사용된다.
  • MongoDB : 오픈 소스이며 NoSQL DBMS이다.
      NoSQL DBMS : 단순성 추구, 속도 향상, 다양한 확장성
  • Redis: 오픈소스이며 키-값(Key-Value) DBMS 

3. 분석 시 고려 사항

  • 가용성 : 장애 발생 가능 성 확인
    성능: 대규모 데이터를 처리할만한 성능인지 확인, 다양한 튜닝 옵션 지원이 가능한지 확인
  • 기술 지원: 공급 벤더들의 안정적인 기술을 지원하는지 확인
         JDBC : java에서 데이터베이스를 연결해주는 프로그램
         ODBC : 마소에서 데이터베이스를 연결 해주는 프로그램
  • 상호 호환성 : 설치 가능한 운영체제 종류 확인, 운영체제에서 지원되는 JDBC, ODBC를 확인한다.
  • 구축비용: 라이선스 정책 및 비용 확인, 총 소요비용(TCO)을 확인한다.

4 ) 미들웨어(Middleware)

1. 정의

  • 소프트웨어 애플리케이션에게 운영체제가 제공하는 서비스를 추가 및 확장하여 제공하는 컴퓨터 소프트웨어
  • 클라이언트와 서버 간 통신을 담당하는 시스템 소프트웨어
  • 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어나 프로토콜, 통신 환경 등을 연결하여 프로그램과 운영환경 간에 원만한 통신이 이루어질 수 있게 서비스를 제공하는 소프트웨어

2. 종류

  • DBMS(DataBase Management System)
    데이터 베이스와 연결하기 위한 미들웨어
    이 제품을 사용하여 시스템을 구축하는 경우 2 티어 아키텍처라고 한다.
  • RPC(Remote Procedure Call)
    원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어
  • MOM(Message Oriented Middleware)
    메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어
  • TP-Monitor
    트랜잭션이 올바르게 처리되고 있는지 데이터를 감시하고 제어하는 프로그램
    사용자 수가 증가하여도 빠른 응답 속도를 유지해야 하는 업무에 적합
  • ORB(Object Request Broker)
    객체 지향 미들웨어로 코바 표준 스펙을 구현한 미들웨어
  • WAS(Web Application Server)
    클라이언트/서버 환경보다는 웹 환경을 구현하기 위한 미들웨어

5 ) WAS(Web Application Server) * 틀린 설명
 

1. 개념

  • 동적인 웹 사이트, 웹 애플리케이션, 웹 서비스의 개발을 지원하기 위하여 설계된 소프트웨어
  • HTTP 세션을 위한 웹 서버 기능뿐만 아니라 필수적인 기업 업무까지 Java, EJB 컴포넌트 기반으로 구현이 가능하다.
  • 사용자가 웹 브라우저로 요청하면, 정적 데이터는 웹 서버가 직접 처리
  • 동적 데이터는 웹 서버에서 직접 처리하지 못해 WAS에서 지원받아 처리
  • 정적 데이터는 이미지나 자바스크립트 코드
  • 동적 데이터는 데이터베이스와 접속, 외부 시스템과 연동

2. 종류 *아닌 종류

  • GlassFish: GlassFish community에서 제공
  • JBoss: RedHat, JBoss에서 제공, 오픈소스에서 사용
  • Jetty: Eclipse Foundation에서 제공, 빠른 처리속도 요구할 때 사용
  • JEUS: TmaxSoft에서 제공, 대규모 안정적인 처리가 요구, 적시의 기술지원이 필요한 경우 사용
  • Resin: Caucho Technology에서 제공, 빠른 처리속도 요구할 때 사용
  • WebLogin: Oracle에서 제공, 대량의 안정적인 거래 처리가 요구될 때 사용
  • WebSphere: IBM에서 제공, 대량의 안정적인 거래 처리가 요구되는 경우 사용

 

3. 고려 사항

  • 가용성
    장기간 사용 시 장애 발생 가능성 확인
    안정적인 트랜잭션 처리가 가능한지 확인
    패치 설치를 위한 재가동이 되는지 확인
    WAS 이중화 지원 확인
  • 성능
    대규모 거래 요청 시 처리 성능 확인
    다양한 설정 옵션 확인
    GC(Garbage Collection)의 다양한 옵션을 지원하는지 확인
  • 기술 지원
    공급 벤더들의 안정적인 기술지원이 가능한지 확인
    다수의 사용자들 간의 정보를 공유 확인
    오픈소스 여부 확인
  • 구축 비용
    라이선스 정책 및 비용 확인
    유지 및 관리 비용 확인
    총 소요비용을 확인

6 ) 오픈소스(Open Source)

1. 정의
오픈 소스는 코드를 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈소스 라이선스를 만족하는 소프트 웨어

2. 분석 시 고려사항

라이센스 종류, 사용자 수, 기술의 지속 가능성 고려

 

 

출처 이기적 정보처리기사

 

 

반응형

댓글