1. 개발환경 구축
< 개발환경 구축 >
- 개발환경 구축 도구 : 빌드 도구 / 구현 도구 / 테스트 도구 / 형상관리 도구
- 개발환경 구성 요소 :
- 서버 하드웨어 : 웹 서버 / 웹 애플리케이션 서버(WAS) / 데이터베이스 서버 / 파일 서버
- 클라이언트 하드웨어 : 클라이언트 프로그램 / 웹 브라우저 / 모바일 앱 / 모바일 웹
- 소프트웨어 : 운영체제 / 미들웨어 / DBMS
< 서버 개발 프레임워크 >
- 프레임워크 : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 틀
- 프레임워크 특징 : 모듈화 / 재사용성 / 확장성 / 제어의 역행
- 프레임워크 구성요소 : 개발환경 / 실행환경 / 운영환경 / 관리환경
2. 공통 모듈 구현
< 재사용 >
- 재사용 : 목표 시스템의 개발 시간 및 비용 절감을 위하여 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적화 작업
- 유형 : 함수,객체 재사용 / 컴포넌트 재사용 / 애플리케이션 재사용
- 재사용 프로그래밍 기법 : 객체지향 프로그래밍 / 제네릭 프로그래밍 / 자동 프로그래밍 / 메타 프로그래밍
< 모듈화 >
- 모듈화 : 프로그램을 개발 시 생산성과 최적화, 관리에 용이하게 기능 단위로 분할하는 기법
- 원리 : 정보 은닉 / 분할과 정복 / 데이터 추상화 / 모듈 독립성
- 측정 지표 : 응집도(강하게) / 결합도(약하게)
- 모듈화 유형 :
설계 측면 | 모듈 컴포넌트 서비스 |
구현 측면 | 함수 매크로 인라인 |
< 결합도 >
- 결합도 : 외부의 모듈과의 연관도 또는 모듈 간의 상호 의존성을 나타내는 정도
- 유형 :
내용 결합도 Content Coupling |
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도 |
공통 결합도 Common Control |
모듈 밖에 선언되어 있는 전역 변수를 참조하고 갱신하는 식으로 상호작용하는 경우의 결합도 |
외부 결합도 External Coupling |
두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스를 공유할 경우의 결합도 |
제어 결합도 Control Coupling |
다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도 |
스탬프 결합도 Stamp Coupling |
배열이나 객체, 구조 등이 전달되는 경우의 결합도 |
자료 결합도 Data Coupling |
파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도 |
< 응집도 >
- 응집도 : 모듈 내부 구성요소 간 연관 정도
- 유형 :
우연적 응집도 Coincidental Cohesion |
어떠한 의미 있는 연관 관계도 없는 기능 요소로 구성될 경우의 응집도 |
논리적 응집도 Logical Cohesion |
특정 형태로 분류되는 처리요소들이 한 모듈에서 처리되는 경우의 응집도 |
시간적 응집도 Temporal Cohesion |
특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도 |
절차적 응집도 Procedural Cohesion |
모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
통신적 응집도 Communication Cohesion |
동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도 |
순차적 응집도 Sequential Cohesion |
모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도 |
기능적 응집도 Functional Cohesion |
모듈 내부의 모둔 기능이 단일한 목적을 위하 수행되는 경우의 응집도 |
3. 서버 프로그램 구현
< 보안 취약성 식별 >
- 보안 취약성 : 정보 시스템에 불법적인 사용자의 접근, 정상적인 서비스를 방해, 정보시스템에서 관리한느 중요 데이터의 유출, 변조, 삭제에 대한 위협
- 침투 테스트 : 시스템을 안전하게 만들기 위해 전문 해커가 공격자보다 먼저 시스템의 취약점을 찾기 위한 방법
- 취약성에 따른 공격 기법 : Dos / 코드 실행 / 버퍼 오버플로우 / 정보 수집 / 권한 상승 / SQL 삽입 / 크로스 사이트 스크립팅(XSS) / 사이트 간 요청 위조 공격(CSRF) / 디렉터리 접근 / FTP 바운스 공격
< API >
- API : 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 유형 : 오픈 API / 비공개 API
4. 배치 프로그램 구현
< 배치 프로그램 >
- 배치 프로그램 : 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법
- 배치 프로그램 필수 요소 : 자동화 / 안정성 / 대용량 데이터 / 견고성 / 성능
- 배치 프로그램 유형 : 정기 배치 / 이벤트 배치 / 온디맨드 배치
- 배치 스케줄러 종류 : 스프링 배치 / 쿼츠 스케줄러
1. 기본문법 활용
< 데이터 타입 >
- 데이터 타입 유형 : 불린 타입 / 문자 타입 / 문자열 타입 / 정수 타입 / 부동 소수점 타입
< 변수 >
- 변수 설정 규칙 :
사용 가능 문자 | 영문 대문자 / 소문자, 숫자, 밑줄(_), 달러($) |
변수 사용 규칙 | 첫 자리에는 숫자를 사용할 수 없음 변수 이름의 중간에는 공백을 사용할 수 없음 |
변수 의미 부여 | 데이터값의 의미나 역할을 표현 이미 사용되고 있는 예약어의 경우에는 변수로 사용할 수 없음 |
< 배열 >
- C, C++ 언어 배열 선언 :
초기값이 없는 경우 | 타입 배열명[배열 수]; |
초기값이 있는 경우 | 타입 배열명[배열 수] = {초기값}; |
- 자바 언어 배열 선언 :
초기값이 없는 경우 | 타입 []배열명 = new 타입[배열 수]; 타입 배열명[] = new 타입[배열 수]; |
초기값이 있는 경우 | 타입 []배열명 = {초기값}; |
< 연산자 >
- 분류 :
산술 연산자 | +, - *, /, % |
시프트 연산자 | <<, >> |
관계 연산자 | >, <, >=, <=, ==, != |
논리 연산자 | &&, ||, ! |
비트 연산자 | &, |, ^, ~ |
대입 연산자 | =, +=, -=, *=, /=, %= |
증감 연산자 | ++x, x++, --x, x-- |
삼항 연산자 | ? a : b |
< 명령문 >
- 분류 : 조건문(if문 / case/switch문) / 반복문(while문 / for문)
2. 언어특성 활용
< 절차적 프로그래밍 언어 >
- 절차적 프로그래밍 언어 : 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 언어. = 명령형 프로그래밍
- 언어 종류 : 알골, C언어, 포트란
< 객체지향 프로그래밍 언어 >
- 객체지향 프로그래밍 언어 : 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단어인 객체 중심의 프로그래밍 언어
- 기능 : 자료 추상화 / 상속 / 다중상속 / 다형성 / 동적 바인딩 / 접근 제어자
- 언어 종류 : C++, C#, 자바, 델파이
< 스크립트 언어 >
- 스크립트 언어 : 소스 코드를 컴파일 하지 않고도 실행할 수 있는 프로그래밍 언어
- 언어 종류 : PHP, 펄, 파이썬, 자바스크립트, 배시, 베이직
< 선언형 언어 >
- 선언형 언어 : 선언형 프로그래밍을 사용하여 해법을 정의하기보다는 문제를 설명하는 언어
- 언어 유형 :
함수형 언어 | 순수 함수, 익명 함수, 고계 함수 |
논리형 언어 | 사실, 규칙, 질문 |
- 언어 종류 : 하스켈, 리스프, 프롤로그, SQL
3. 라이브러리 활용
< 라이브러리 >
- 라이브러리 : 효율적인 프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체
- 종류 : 표준 라이브러리(기본적으로 가지고 있는) / 외부 라이브러리(별도 파일을 설치)
< 데이터 입출력 >
- 구성 : 표준 입력, 표준 출력, 표준 오류
< 예외 처리 >
- 구성 : throw / try / catch
< 프로토타입 >
- 프로토타입 : 속성과 메서드를 다른 클래스의 인스턴스 또는 빈 객체에 추가하는 작업을 덜 수 있는 프로그래밍 스타일
- 구성 : 복제 / 객체 생성 / 마스터 객체
'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글
정처기 5-1. 소프트웨어 개발방법론 활용 / 5-2. IT 프로젝트 정보시스템 구축관리 (0) | 2021.08.16 |
---|---|
정처기 4-3. 응용 SW 기초 기술 활용 (0) | 2021.08.16 |
정처기 3-4. 물리 데이터베이스 설계 / 3-5. 데이터 전환 (0) | 2021.08.10 |
정처기 3-3. 논리 데이터베이스 설계 (0) | 2021.08.09 |
정처기 3-1. SQL 응용 / 3-2. SQL 활용 (0) | 2021.08.09 |