정보처리기사 개인적으로 실기공부하면서 요약한 내용입니다
(2/2)는 추후에 추가할 예정입니다 . 차근차근 읽어보면서 기출이랑 문제집 중요한 내용들만 찝었습니다
변수의 개념
-값을 저장하기 위한 공간, 변할수 있는 값
사용자 정의함수
-사용자가 직접만들어 사용하는 함수 (필요한기능)
<헤더파일>
stdio.h -c언어에서 입출력
stdlib.h -난수발생, 메모리할당 등
java.lang –인터페이스,자료형,예외처리
java.util –날짜처리,난수발생
절차적프로그래밍 언어의 장점
-실행속도가빠르다.
-구조적인 프로그래밍이 가능하다.
객체지향언어
-현실세계의 개체를 기계 부품처럼
객체로 만들어 조립해서 프로그램을 작성
최초로 gui = smaltalk
스크립트 언어
-HTML 문서안에 직접 코드를 삽입,번역기가 소스분석해서 동작
스크립트언어 장점 : 배우고 코딩하기쉽다, 결과를 바로 확인할수 있다
HTML – 하이퍼텍스트 문서를 만들기위해 사용하는 언어
xml – html 단점보완 다양한 문서들을 웹에서 상호교환 가능
객체 – 속성과 메소드를 결합한 소프트웨어 모듈
클래스 – 객체들의 집합
메시지 – 객체들간의 상호작용을위한 수단
미들웨어 – 운영체제와 응용 프로그램 사이에서 운영체제가 제공하는
서비스 이외 추가적인 서비스를 제공하는 소프트웨어
WAS – 동적 서비스를 제공하기위해 인터페이스 역할을 수행하는 서버이다.
유스케이스 – 사용자의 요구사항을 기능단위로 표현하는 것
정형분석 – 구문과 의미를 갖는 언어를 이용해 요구사항을 수학적기호로 표현한 후 분석
프로토타입이란? - 초기 도출된 요구사항을 토대로 만든 견본품
UML – 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링언어 이다
UML 사물 4가지 – 구조 ,행동,그룹 , 주해
데이터 모델의 구성요소 3가지 - 개체, 속성, 관계
데이터 모델의 종류 3가지 – 개념적 데이터모델, 논리적 데이터모델, 물리적 데이터모델
데이터 모델에 표시할 3가지 요소 – 구조, 연산, 제약조건
개체 – 개념이나 정보 단위 같은 현실세계의 대상체
속성 – 가장 작은 논리적 단위, 데이터 항목 또는 데이터필드에 해당
관계 – 개체간의 관계 또는 속성간의 논리적인 연결
제1 정규형 – 모든 속성의 도메인이 원자 값으로만 되어있는 정규형
제2 정규형 – 제1정규형을 만족하고, 기본키가 아닌 모든 속성이 기본키에 대해 완전함수적 종속을 만족
제3 정규형 – 제2정규형을 만족하고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속 x
BCNF – 모든 결정자가 후보키인 정규형
제4 정규형 – 다치종속성 제거
제5 정규형 – 조인종속성을 이용하는 정규형
정규화 – 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용해 테이블을 무손실 분해 하는 과정
반정규화 –시스템의 성능향상, 개발 및 운영의 편의성을 위해 정규화된 데이터모델을 통합,중복,분리하는 과정
반정규화 해야하는 경우 – 특정 or 많은 범위 데이터를 자주 처리해야하는 경우나 정규화로 인해 수행속도가 느려진 경우
레코드 기준 – 수평분할
속성기준 – 수직분할
인덱스 개념 – 데이터 레코드를 빠르게 접근하기 위해 ,<키 값, 포인터> 쌍으로 구성되는 데이터구조
클러스터드 인덱스 – 인덱스 키의 순서에따라 데이터 정렬 , 조회 유리
넌클러스터드 인덱스 – 인덱스의 킷값만 정렬, 데이터는 정렬 x , 삽입 수정 유리
트리기반인덱스 – 인덱스를 저장하는 블록들이 트리구조
비트맵 인덱스 – 인덱스 컬럼의 데이터를 0또는 1로 변환하여 키로 사용
도메인 인덱스 - 개발자가 인덱스를 직접 만들어 사용
트리거 – 이벤트가 발생할 때마다 자동적으로 수행되는 절차형 SQL
뷰 – 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상테이블
클러스터링 – 동일한 성격의 데이터를 동일한 데이터블록에 저장하는 방법
처리범위가 넓을 경우 (단일 테이블) 클러스터링, 조인이 많이 발생할때는 (다중 테이블) 클러스터링
파티션 –대용량 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나눈 것
범위분할,해시분할,조합분할 , 쿼리와 디스크성능이 향상된다
데이터모델 – 현실세계의 정보들을 컴퓨터에 표현 하기위해 단순화,추상화하여 표현한 개념적모형
이상 : 삽입 삭제 갱신
-일부속성들의 종속으로 인해 데이터중복이 발생하기 때문
API – 데이터를 송신시스템의 DB에서 읽어와 제공하는 애플리케이션 프로그래밍 인터페이스이다 .
기업 내 각종 애플리케이션 및 플랫폼 간의 정보전달 상호연동 솔루션은? - EAI
데이터변환, 웹 서비스 지원 등 표준 기반의 인터페이스를 제공하는 솔루션 – ESB
웹서비스의 종류
SOAP = HTTP, SMTP등 활용 XML기반의 메시지를 네트워크 상에서 교환하는 프로토콜
UDDI = WSDL을 등록하여 서비스와 서비스제공자를 검색 접근
WSDL = 웹서비스에대한 상세 정보를 XML 형식으로 구현
XML 개념 = HTML의 호환문제와 SGML 복잡함등의 문제를 해결하기 위한 다목적 마크업언어
RESTful = HTTP로 자원을 관리하는데 사용되는 웹서비스API의 집합
웹서버 – 클라이언트로부터 직접요청을 받아 처리하는 서버, 정적파일을 제공
GIT , Subversion, CVS
결합도 = 모듈간에 상호의존하는 정도
응집도 = 모듈이 독립적인 기능으로 정의되어 있는 정도
썬마이크로시스템,java언어 표준 API = JDBC
표준 개방형 api, 개발언어에 관계없다 ,92년 마이크로소프트 = ODBC
JDBC코드를 단순화 하여 사용할수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크 = MyBatis
SQL Mapping – 테이블이나 열 데이터를 개발언어의 객체에 맞도록 변환하여 연결
웹응용시스템 = 웹서버 +was
동적 SQL = 문자열 변수에 담아 동적 처리
정적 SQL = 커서를 통한 정적 처리
MVC패턴 = 시스템을 세부분으로 분리해 서로영향을 받지 않고 개발할 수 있는 아키텍쳐 패턴이다
프레임워크의 특성
-모듈화, 재사용성, 확장성, 제어의 역흐름
DTO/VO = 데이터교환을 위해 사용되는 객체
DAO = 데이터를 조작하는 작업을 수행하는 각체
Controller = 사용자의 요청에 적절한 서비스를 호출해서 반환하는 객체
<배치 프로그램, 배치 스케줄러>
Quartz – 스프링 프레임워크 일괄처리
Cron – 리눅스 스케줄러 도구
스프링배치 – job repository 잡런처 등, accenture사 07년
제어의 역흐름이란? - 개발자가 통제해야할 객체들의 제어권한을 프레임워크에게 넘기는 것
ui – 사용자와 시스템간의 상호작용을 도와주는 장치나 소프트웨어
인터페이스 기본원칙 = 직관성 유효성 학습성 유연성
웹의 3요소 – 웹표준, 웹 접근성, 웹 호환성
정황시나리오 – 사용자의 요구사항 도출, 목표달성을 위한 수행방법을 순차적으로 묘사
ui에서의 프로토타입 – 요구사항기반으로 실제동작하는 것처럼 만든 동적형태의 모형
(사용자를 이해시키고 사전에 오류를 발견할수 있지만, 중요한작업을 놓치거나 필요이상 자원소모가능성)
프로토타입리더
화면을 한눈에 파악하기 위해 시각적인 콘텐츠모형 ~ 테이블형태 위아래 계층형 ~ = 사이트맵
메뉴구조설계단계는 = 사이트맵 구조를 통해 ~
결함집중 – 결함의 대부분은 특정모듈에 집중 되어있다.
파레토 법칙 – 테스트로 발견된 80%오류는 20%모듈에서 발견
오류 – 부재의 궤변 = 결함을 모두 제거해도 사용자 요구사항을 만족시키지 못하면 품질이 높다고 말할 수없다
테스팅은 정황의존
<정적테스트 종류 -프로그램 실행x 명세서랑 코드만봄 >
워크스루 – 작업내역을 동료들이 검토하는 것
인스펙션 – 결과물의 품질을 평가하며 개선을 위한 방법 제시
<동적 테스트 종류 –프로그램 실행하는 테스트 >
화이트박스 – 원시코드 오픈, 논리적인 모든경로 테스트 (기초경로검사,제어구조검사)
블랙박스 – 각기능이 완전히 작동하는지 입증하는 테스트 (동치분할, 경계값분석, 원인-효과 그래프 검사)
검증테스트 – 개발자시각에서 제품이 명세서대로 완성됐는지
확인테스트 – 사용자 시각에서 제품이 정상적으로 동작하는지
<인수테스트>
사용자,인수,
알파(사용자와 개발자가 함께),
베타 (최종사용자가 여러명의 사용자 앞에서 !)
점진적 통합의 종류 : 상향식통합테스트 ,하향식 ~,혼합식~
드라이버와 스텁
랜을 물리적인 배치와 상관없이 논리적으로 분리하는 기술 = vlan
테스트케이스의 예상결과 ~ = 테스트 오라클 (종류 : 참,추정)
미션크리티컬, 휴먼에러
<테스트하네스의 구성요소>
테스트 드라이버 ,테스트 스텁, 테스트 스크립트, 목오브젝트
성능테스트, 시스템 모니터링 = 성능분석도구의 종류들이다
성능테스트도구
1.JMeter = HTTP,FTP 등 프로토콜 지원하는 부하테스트 도구
2.LoadUI = 서버모니터링 드래그앤드롭등 사용자의 편리성 강화된 테스트도구
3.OpenSTA = HTTP,HTTPS 등에대한 부하테스트 및 생산품 모니터링도구
모니터링도구
Scouter – 애플리케이션 성능, 튜닝 최적화 인프라통합 모니터링 도구
Zabbix – 웹기반 서버, 서비스 , 등의 모니터링 도구
추상화 – 객체의 속성중 중요한 것에만 중점을 두어 개략화하는 것
클린코드 조건 – 가독성, 단순성, 추상화
느슨한결합 = 추상화된 자료구조와 메소드 구현 클래스 간의 의존성 최소화 하는 것