정보처리기사 필기 ) 4과목 프로그래밍 언어 활용 정리
본문 바로가기
정보처리기사/정보처리기사 필기

정보처리기사 필기 ) 4과목 프로그래밍 언어 활용 정리

by 코딩하는 핑가 2020. 8. 14.
반응형

* 키워드 : 개발도구, 형상관리, 배치 프로그램, 프로세스, 프로토콜(TCP/IP)

1. 개발도구

- 구성 : 빌드 도구, 구현 도구, 테스트 도구, 형상관리 도구

- 빌드 도구 : Gradle, Maven, Ant ( 그래임마)

- 테스트 도구 : xUnit, PMD, Findbugs, Cppcheck, Sonar

2. 형상관리

- 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리하기 위한 활동

- 절차 ( 식통감기 )

: 형상식별 > 형상통제 > 형상감사 > 형상기록

* 프레임워크

- 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 협업화된 형태로 클래스들을 제공하는 틀

- 구성요소 : 개발환경, 실행환경, 운영환경, 관리환경

- 특징 : 모듈화, 재사용성, 확장성, 제어의 역행

- 재사용성 : 인터페이스를 통해 여러 애플리케이션에서 반복적으로 사용되는 일반적 컴포넌트를 정의하여 재사용성을 높임

- 확장성 : 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장

- 제어의 역행 : 프레임워크 코드가 전체 애플리케이션의 처리흐름을 제어

* 모듈화

- 프로그램 개발 시 생산성과 최적화, 관리에 용이하게 기능단위로 분할하는 기법

- 원리 : 정보은닉, 분할과 정복, 데이터 추상화, 모듈의 독립성

- 유형 : 설계 -> 모듈화, 컴포넌트, 서비스 // 구현 -> 함수, 매크로, 인라인

3. 배치 프로그램

- 사용자와의 상호작용없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄처리하는 방법

- 유형 : 이벤트 배치, 온디멘드 배치, 정기 배치

- 온디멘드 배치 : 사용자의 명시적 요구가 있을 때마다 실행하는 방법

- 정기 배치 : 정해진 시점(주로 야간)에 실행하는 배치

4. 프로세스 ( = 작업, task )

- CPU에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미

- 상태 : 생성, 준비, 실행, 대기, 완료

- PID : 프로세스 식별자

- PCB : 운영체제가 프로세스 관리를 위해 필요한 자료를 담고 있는 자료 구조

- PCB ( 프로세스 제어블록 ) 정보

: 프로세스 식별자, 프로세스 상태, 프로그램 카운트, 레지스터 저장 영역, 프로세서 스케줄링 정보, 계정 정보, 입출력 상태 정보, 메모리 관리 정보

- 프로세스 상태 전이

: 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행 및 대기 상태 등으로 변화는 활동

-프로세스 상태 전이 종류

: 디스패치, 타이머 런 아웃, 블록, 웨이크업, Swap-in/out

- Swap-in : 프로세스에게 다시 기억 장치가 할당될 경우

- Swap-out : 프로세스가 기억 장치를 잃은 경우

5. 프로토콜

- 서로 다른 시스템에 있는 두 개체 간의 데이터 교환을 원활히 하기 위한 일련의 통신 규약

- 기본 요소 : 구문, 의미, 타이밍

- IP

: 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약

OSI 3계층에서 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당하는 프로토콜

- TCP

: 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 하는 프로토콜

>> 혼잡제어 방법 : Slow Start, Congestion Avoidane, Fast Retransmit, Fast Recovery

- UDP

: 비연결성이고, 신뢰성이 없으며, 순서화되지 않은 데이터그램 서비스를 제공하는 전송계층의 통신 프로토콜

* IPSEC

- IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜

- 현재 전세계에서 사용되는 인터넷 상거래시 요구되는 개인 정보와 크레디트 카드 정보의 보안 유지에 가장 많이 사용되고 있는 프로토콜

* 제네릭 프로그래밍

- 재사용 프로그래밍 기법 중 하나의 값이 여러 데이터 타입을 가질 수 있어서 재사용성을 높일 수 있는 특징이 있는 프로그래밍 방식

* 재사용 프로그래밍 기법 : 객체지향, 제네릭, 자동, 메타 프로그래밍

* 메타 프로그래밍 : 런타임에 수행해야 할 작업의 일부를 컴파일 타임 동안 수행하는 프로그램

* 객체지향 프로그래밍

- 구성 요소 : 객체, 클래스, 메시지

- 원리 : 캡슐화, 추상화, 다형성, 정보은닉, 상속성

* 윈도우 계열 운영체제 특징

- GUI사용(Graphical User Interface), 선점형 멀티태스킹 방식 사용, 자동 감지 기능(Plug & Play), OLE사용

* 유닉스 계열 운영체제 특징

- 대화식 운영체제 기능 제공, 다중 작업 기능 제공, 다중 사용자 기능 제공, 이식성 제공, 계층적 트리 구조 파일 시스템 제공

* 메모리 관리 기법 : 반입, 배치, 할당, 교체 기법

* 주기억장치 연속 할당 방법

- 종류 : (연속 할당 기법) 단일 분할 할당 기법, 다중 분할 할당 기법

(분산 할당 기법) 페이징 기법, 세그먼테이션 기법, 페이징-세그먼테이션 기법

- 페이징 기법 : 가상 기억장치 내의 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재시킨 후 프로세스를 수행시키는 기법

* 스레싱

- 어떤 프로세스가 계속적으로 페이지 부재가 많이 발생하여 프로세스의 실제 처리 시간보다 페이지 교체 시간이 더 많아지는 현상

* 워킹세트

- 각 프로세스가 많이 참조하는 페이지들의 집합을 주기억장치 공간에 계속 상주하게 하여 빈번한 페이지 교체 현상을 줄이고자 하는 기법

* 절차적 프로그래밍 언어

- 알골(ALGOL) : 재귀호출이 최초로 가능하게 한 절차형 언어

- C언어 : 이식성이 높은 언어로 유닉스 운영체제에서 사용하기 위한 언어, 데니스 리치에 의해 개발

- 베이직(BASIC) : 교육용으로 개발되어 문법이 쉬움

- 포트란(FORTRAN) : 과학계산에서 필수적인 백터, 행렬 계산 기능 등이 내장되어 있는 과학기술전문언어

* 기억장치 접근 속도, 접근 시간 빠른 순 > 느린 순

- 레지스터 > 캐시 기억장치 > 주기억장치 > 보조기억장치

* 구역성(Locality)

- 데닝 교수에 의해 구역성 개념이 증명됨

- 시간 구역성(Temporal Locality)

: 프로세스가 실행되면서 하나의 페이지를 일정시간 동안 집중적으로 액세스하는 현상

반복(loop), 스택(stack), 부프로그램(sub routine)

- 공간 구역성(Spatial Locality)

: 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스 하는 현상

배열, 순차코드, 순차코드의 실행

* WAS(웹애플리케이션서버)의 종류

- Tomcat, Weblogic, Jeus

 

* Spring

- 서버 개발에 사용되는 프로그래밍 언어가 JAVA이고 MVC 패턴인 프레임워크

 

* 소프트웨어 개발 보안 점검 항목

- 시간 및 보안 약점에는 TOCTOU, 종료되지 않는 반복문 또는 재귀함수 등이 있다.

 

* 배치 프로그램이 가지는 필수 요소

>> 배치 프로그램 : 컴퓨터 프로그램 흐름에 따라 순차적으로 자료를 처리하는 방식

- 초기의 배치프로그램 방식은 사용자와 상호작용하는 것이 불가능했지만, 운영체제가 발전함에 따라 프로그램 입출력을 통해 상호작용하는 것이 가능해짐

- 즉, 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌 한꺼번에 일괄적으로 대량 건을 처리하는 것

- 보통 정해진 특정한 시간에 실시함

- 사용하는 이유 : 업무의 효율성과 비효율적인 시스템의 과부하를 줄이기 위해서

- 대용량 데이터 : 대용량의 데이터를 처리할 수 있어야 함

- 자동화 : 심각한 오류 상황 외에는 사용자의 개입없이 동작해야 함

- 견고성 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함

- 안정성 : 어떤 문제가 생겼는지 언제 발생했는지 등을 추적할 수 있어야 함

- 성능은 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 함

 

* 스크립트 언어

- 소스 코드를 컴파일하지 않고도 실행할 수 있는 프로그래밍 언어

>> 특징

- 빠르게 배우고 쉽게 작성 가능

- 다른 언어들에 비해 상대적으로 단순한 구문과 의미를 내포

- 시작에서 끝날 때까지 실행되며, 명확한 시작점이 없음

>> 파이썬 언어

- 다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부

- 유니코드 문자열을 지원하여 다양한 언어의 문자 처리가 가능

- 들여쓰기를 사용하여 블록을 구분

- 다른 언어로 쓰인 모듈들을 연결하는데 사용

 

* 리스프(LISP)

- 수학 표기법을 나타내기 위한 목적으로 생성

- 트리 자료구조, 가비지 콜렉션, 동적 자료형과 인터프리터와 같은 개념 제시

- 함수 호출 시 함수 이름 혹은 연산자가 첫번째로 위치하여 피연산자가 이어 위치

 

 

* 이 게시물은 수제비 카페 - 페코페코 예상문제 OX 게시글을 참고로 작성되었습니다.

https://cafe.naver.com/soojebi

* 과목별 정리

2020/08/13 - [정보처리기사/1과목 소프트웨어 설계] - 정보처리기사 필기 ) 1과목 소프트웨어 설계 정리

2020/08/13 - [정보처리기사/2과목 소프트웨어 개발] - 정보처리기사 필기 ) 2과목 소프트웨어 개발 정리

2020/08/14 - [정보처리기사/4과목 프로그래밍언어 활용] - 정보처리기사 필기 ) 4과목 프로그래밍 언어 활용 정리

2020/08/14 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 필기 ) 5과목 정보시스템 구축 관리 정리 1

2020/08/14 - [정보처리기사/5과목 정보시스템 구축관리] - 정보처리기사 필기 ) 5과목 정보시스템 구축 관리 정리 2

2020/08/20 - [정보처리기사/4과목 프로그래밍언어 활용] - 정보처리기사 필기) 수제비 모의고사 정리 - 4과목 프로그래밍언어 활용

 

반응형

댓글