서버 - 다른 컴퓨터에서 요청하는 정보나 서비스를 네트워크를 통해 제공하는 역할을 하는 컴퓨터 시스템, 24X365 무중단, IDC에 위치, DNS, WEB, File, DB, Proxy
운영체제 - HW와 SW 자원을 관리하고 컴퓨터 프로그램을 위한 공통 서비스를 제공하는 소프트웨어
- 프로세스 관리, 보조기억장치 관리, 파일 관리, 장치 관리, 메모리 관리, 시스템 보호, 네트워킹, 명령어 해석
- 사용자 (프로그램 수행, 입출력 연산, 파일 시스템 조작, 통신, 오류 탐지), 시스템 (자원 할당, Accounting, 보호)
- Windows, UNIX, Linux, iOS, Android
- 다중 프로그래밍 시스템 : CPU 효율을 극대화하기 위해 여러 프로그램이 도잇에 실행되는 것처럼 처리, 메모리 관리 필요
- 시분할 시스템 : 프로세서 스케쥴링과 다중 프로그래밍을 활용해 각 사용자에게 컴퓨터를 시간적으로 분할 사용
- 분산처리 시스템 : 시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요 시 통신하는 시스템
- 다중처리 시스템 : 마이크로 프로세서 여러 개를 연결해 다중 프로세서를 만듬
- 일괄처리 시스템 : 일정량의 데이터를 모아서 한꺼번에 일괄 처리하는 방식
- 실시간 처리 시스템 : 데이터에 대한 처리 요구 발생 시 즉시 처리 응답
- Unix / Linux : 대화식 운영체제, 멀티태스킹, 다중사용자 기능, 이식성
- Windows : GUI 환경, 선점형 멀티 태스킹, Plug and Play 사용, OLE 사용
- shell : 컴퓨터 내부를 관리하는 커널과 사용자 간을 연결하는 커맨드 창, 사용자 지정 상태로 운영체제 설정 지원, 사용자 요청에 기반한 명령어 작성, 백그라운드 처리 및 서브 shell 생성, 스크립트 기능 지원
- cron : 정기적인 수행이나 반복 작업 명령어를 자동 실행
- 프로세스 : 프로그램이나 명령어 실행 시 메모리에 적재되어 동작하는 상태, PID 할당, 최상위는 init, 나머지는 PPID 할당, 생성 -> 준비 -> 수행 -> 대기 -> 종료
- i-node : 파일에 대한 정보(파일 형식, 접근 권한, 소유자, 크기..)를 저장하는 자료구조
- 메모리 관리 : 반입 정책 (언제 메모리에 적재할지), 배치 정책 (어디로 위치시킬지), 할당 정책 (어느 영역을 분할해 할당할지, 연속 or 불연속), 교체 정책 (어느 영역을 교체해 사용할건지, 재배치 기법으로 어떤 프로세스를 제거할건지)
- 분산 메모리 할당 : 페이징 기법 (동일 크기로 프레임 분할, 내부 단편화 발생), 세그먼트 기법 (사용자 관점에서 메모리 할당, 서브 루틴, 모듈별 등 크기별 할당, 테이블 메인 메모리, 외부 단편화 발생)
- 클라우딩 컴퓨팅 : IaaS (Infrastructure, 웹 상에서 다양한 인프라를 임대해 사용할 수 있는 서비스, 네트워크, 보안, 저장소, CDN), PaaS (Platform, 운영체제가 이미 구성된 상태에서 사용자는 데이터와 어플리케이션만 직접 관리할 수 있는 서비스), SaaS (Software, 인프라+운영체제+소프트웨어로 웹 상의 로그인만으로 다양한 SW를 사용한만큼 비용을 지불하는 서비스)
형상 관리 도구 - CVS, Git, PVCS, SCM, SCCS, SVN..
UML 지원 도구 - StarUML, 투게더, RSA
인터페이스 발생기 - 스위그
테스트 자동화 도구 - Junit, Cppunit,Jmeter
디버거 - GDB (GNU 디버거)
빌드 도구 - Maven, Jenkins, automake..
통합 개발 환경 - IDE, 이클립스, 델파이, C++ 빌더, 비주얼 스튜디오
VDI - Vritual Desktop Infrastructure, 데스크톱 가상화
통합 개발 환경 구성 -> 파일 서버 구성 -> UI 프레임워크 구성 -> 개발 프레임워크 구성
주의점 - 소스 품질 관리 도구를 활용해 개발 품질을 지속적으로 확인, 시큐어 코딩 적용, CI 환경을 구성해 형상 관리 도구로 통합 관리, 오류나 에러, 개선률, 품질 등을 관리하는 소프트웨어 비주얼라이제이션 달성 권고
Web Server - 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램, 사용자와 DB 사이에서 웹 페이지를 만들어 안전하게 결과를 전달하는 미들웨어, 서버 사이드 스크립트 언어 지원(ASP, PHP), HTTP 처리, 통신 기록 저장, 인증 기능, HTTPS 지원, 정적 컨텐츠 관리, 가상 호스팅, 대역폭 스로틀링, Apache, Nginx, IIS
동적 컨텐츠 - 서버 사이드 스크립트 언어를 이용해 사용자 요청에 의해 생성되는 컨텐츠, DB 정보 조회, 출력, 수정
정적 컨텐츠 - 미리 생성된 페이지를 사용자 요청에 의해 바로 응답한느 컨텐츠, 이미지나 HTML 등이 사전에 구성되어 있음
WAS - Web Application Server, 사용자의 요청 페이지가 누가 처리할 페이지인지 (웹서버 or WAS) 결정하고, WAS에 요청 시 L4 장비 등을 이용해 로드 밸런싱을 통해 WAS로 전달, jsp 같은 동적 페이지를 실행해 DB와 통신해 로직 처리, 그 결과를 정적 페이지인 HTML 형태로 변환해 웹서버에 전달, Tomcat, JBoss, JEUS, HTTP 처리, HTTPS 지원, AJP (Apache Jserv Protocol), 커넥션풀
DB 서버 - 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합 서버, 자료의 모음으로 내용을 고도로 구조화해 검색과 갱신의 효율성을 증가
- MySQL DB : 다중 스레드, 다중 사용자 형식의 구조 질의어 형식의 DBMS, Cross-Platform 지원, Independent Storage 엔진, Transactions, Query caching, Replication
- Maria DB : 오픈소스 RDBMS, MySQL과 동일한 소스코드 기반, GPLv2 라이선스 따름, 스레드풀 지원, 샤딩 기술 제공, 가상 컬럼, Show Explain, 멀티소스 리플리케이션
- PHP - Hypertext Preprocessor, 프로그래밍 언어의 일종, HTML 처리에 강점, URL 파싱, 정규 표현식..
패키지 방식 개발 - 여러 성공 사례의 노하우를 기반으로 만들어진 개발된 제품을 이용해 시스템을 구축하는 방식, 사용자 기능 요구사항 70% 이상일 경우에 적합, 상호 연동, 시스템 연계 고려
- 장점 : 기본적인 필요 기능 사전에 제공, 비즈니스 프로세스 적용 가능, 검증된 패키지 SW 사용으로 안정적으로 구축 가능, 비용 절감, 대량 생산, 패키지 SW 개발업체 관리 용이, 전문 업체의 업그레이드로 최신 기능 사용 가능
- 단점 : 패키지 SW가 모든 요구사항을 수용하는 것은 아님, 사용자 업무 프로세스를 패키지 SW 업무 프로세스에 맞출 경우, 프로세스 개선 저항 발생 가능, 고객 요구사항이 까다롭거나 특수 조건일 경우, Buy&Build 형식으로 구축 가능
- 구현 절차 : 요구사항에 맞게 커스터마이징 -> 개발 단위별 단계적 개발 방법 적용 -> 고객의 검수와 공식적 통합 테스트 수행 -> 매뉴얼 작성 및 패키지 전개 계획 수립
- 운영 절차 : 패키지를 운영 환경에 맞게 전개 -> 사용자 테스트 준비, 시정 요구 사항 조치 -> 유지보수 운영 매뉴얼 작성 -> 프로젝트 종료를 위한 개발 완료 보고서 작성
'정보처리기사' 카테고리의 다른 글
[실기] 제 11과목 - 응용 SW 기초 기술 활용 요점 정리 - 3 (1) | 2023.05.09 |
---|---|
[실기] 제 11과목 - 응용 SW 기초 기술 활용 요점 정리 -2 (0) | 2023.05.08 |
[실기] 제 10과목 - 프로그래밍 언어 활용 요점 정리 (0) | 2023.05.07 |
[실기] 제 9과목 - 소프트웨어 개발 보안 구축 요점 정리 (0) | 2023.05.07 |
[실기] 제 8과목 - SQL 응용 요점 정리 (0) | 2023.05.04 |