License

[License] 주요 단어 모아보기 [정보처리기사 실기]

펭귄코기 2022. 9. 7. 12:20

해당 주요 단어 모음은 계속해서 업데이트하며 시험 전날까지 볼 것이다


 

소프트웨어 생명주기(SDLC): 시스템의 요구분석부터 유지보수까지 전 공정을 체계화하는 절차

 

폭포수모델: 소프트웨어 개발시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 가장 오래된 생명주기 모델

 

나선형모델: 시스템 개발시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

 

프로토타이핑모델: 고객이 요구한 주요 기능을 프로토타입으로 구현, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델

 

반복적 모델: 구축대상을 나누어 병렬적으로 개발 후 통합하거나 반복적으로 개발하여 점증 완성시키는 SDLC모델

 

소프트웨어 개발방법론: 소프트웨어 개발 전체 과정에서 지속적으로 적용할 수 있는 방법, 절차 기법

 

구조적 방법론: 전체 시스템을 기능에 따라 나누어 개발하고 이를 통합하는 분할과 정복 접근방식을 사용하는 방법

 

나씨-슈나이더만차트: 구조적 프로그래밍 표현을 위해 논리의 기술에 중점을 둔 도형식 표현방법으로 연속, 선택, 방복 등의 제어 논리구조로 표현한다

 

정보공학방법론: 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론

 

객체지향방법론: 객체라는 기본단위로 시스템을 분석 및 설계하는 방법론

 

컴포넌트기반방법론: 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론

 

컴포넌트: 원하는 데이터베이스와 소프트웨어의 개발된 모듈단위

 

애자일방법론: 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론

 

제품계열방법론: 임베디드 소프트웨어 작성하는데 유용한 방법론

 

XP: 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기위한 방법론

 

XP가치: 용기, 단순성, 의사소통, 피드백, 존중

 

짝 프로그래밍: 개발자 둘이서 짝으로 코딩하는 원리

 

지속적인통합(CI): 매일 여러번씩 소프트웨어를 통합하고 빌드해야한다는 원리

 

메타포어: 공통적인 이름체계와 시스템 서술서를 통해 고객과 개발자 간의 의사소통을 원활하게 한다는 원리

 

테스트 기반 개발(TDD): 작성해야하는 프로그램 테스트 먼저 진행 후 그 테스트에 통과할 수 있도록 코드를 작성한다는 원리

 

리팩토링: 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다는 원리

 

스크럼: 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

 

백로그: 제품과 프로젝트에 대한 요구사항

 

스프린트: 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상

 

스크럼미팅: 매일 15분정도 미팅으로 to do list 계획수립

 

스프린트회고: 스프린트 주기를 되돌아보며 정해놓은 규칙준수여부 개선점 확인 및 기록

 

번다운차트: 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트

 

: 도요타의 린 시스템 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론

 

비용산정모델: 투입자원 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 방식

 

하향식선정방법: 전문가판단, 델파이기법

 

델파이기법: 전문가의 경험적 지식을 통한 문제해결 및 미래예측을 위한 기법

 

상향식선전방법: LOC, ManMonth, COCOMO모형, 푸트남모형, 기능점수(FP)모형

 

LOC: 원시코드라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방식

 

Man Month:한사람이 한달간 할 수 있는 일의 양을 기준으로 프로젝트 비용 산정하는 기법

 

COCOMO모형: 보헴이 제안한 모형으로 프로그램 규모에 따라 비용을 산정하는 기법

-조직형(organic): 5만라인 이하, 기관내부 소규모

-반분리형(semi detached):30만라인 이하

-임베디드형(embedded):30만라인 이상, 초대형 규모

 

푸트남모형: 소프트웨어 개발주기의 단계별로 요구할 인력의 분포를 가정하는 방식

Rayleigh-Norden곡선의 노력 분포도를 기초로 한다

 

기능점수(FP)모형: 요구기능을 증가시키는 인자별로 가중치를 부여하고 요인별 가중치를 합산하여 총 기능의 점수를 계선하여 비용을 산정하는 방식

 

일정관리모델: 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델

 

주공정법(CPM): 여러 작업의 수행 순서가 얽혀있는 프로젝트 일정을 계산하는 기법

노드와 노드간을 연결을 통해 공정을 계산하기 위한 액티비티 표기법

 

PERT: 일의 순서를 계획적으로 정리하기 위한 수렴기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법

 

중요연쇄프로젝트관리(CCPM): 주공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

 

현행시스템파악: 현행시스템이 어떤 하위 시스템으로 구성되어 있고 어떤 기술요소를 사용하는지 파악하는 활동

 

소프트웨어 아키텍처: 소프트웨어의 구성요소, 외부로 드러나는 특성, 구성요소간의 관계를 표현한 구조

 

소프트웨어 아키텍처 프레임워크: 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준

 

소프트웨어 아키텍처 4+1

-유스케이스뷰: 아키텍처도출, 다른 뷰를 검증하는데 사용되는 뷰

-논리뷰: 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰

-프로세스뷰: 비기능적인 속성으로 자원의 효율적인 사용 이벤트 처리 등을 표현한 뷰

-구현뷰: 개발환경안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰

-배포뷰: 컴포넌트가 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

소프트웨어 아키텍처 패턴: 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식

 

계층화 패턴: 시스템을 계층으로 구분하여 구성하는 패턴

 

클라이언트-서버 패턴: 하나의 서버에 다수의 클라이언트로 구성된 패턴

 

파이프-필터 패턴: 데이터 스트림을 생성하고 처리하는 시스템에서 사용가능한 패턴,

서브 시스템이 입력데이터를 받아 처리하고 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복

 

브로커 패턴: 분리된 컴포넌트들로 이루어진 분산시스템에서 사용, 원격 서비스 실행을 통해 상호작용이 가능한 패턴, 브로커에 서비스를 요청하면 리다이렉션함

모델--컨트롤러 패턴(MVC패턴): 서브시스템을 모델, , 컨트롤러로 구조화 하는 패턴

-모델: 핵심기능과 데이터 보관

-: 사용자에게 정보표시

-컨트롤러: 사용자로부터 요청을 입력받아 처리

 

소프트웨어 아키텍처 비용평가모델: 품질속성에 미치는 영향을 판단하고 아키텍처의 적합성을 평가하는 모델

 

SAAM: 변경용이성, 기능성에 집중, 평가에 용이해 경험없는 조직에도 활용가능한 비용 평가 모델

 

ATAM: 아키텍처 품질속성을 만족시키는지 판단, 품질속성들의 이해 상충관계까지 평가 모델

 

CBAM: 경제적 의사결정에 대한 요구를 충족하는 비용평가 모델

 

ADR: 응집도를 평가하는 모델

 

ARD: 특정 부분에 대한 품질요소에 집중하는 비용평가 모델

 

디자인패턴: 소프트웨어 설계시 공통으로 발생하는 문제에 대해 자주 쓰이는 설계방법을 정리한 패턴

 

디자인패턴유형: 생성, 구조, 행위

생성: 생빌프로팩앱싱

-builder(빌더): 복잡한 인스턴스를 조립하여 만드는 구조

-prototype(프로토타입): 처음부터 일반적인 원형을 만들어놓고 그것을 복사한 후 필요한 부분만 수정하여 사용하는 패턴

-factory method(팩토리매서드): 상위클래스에서 객체를 생성하는 인터페이스를 정의하고 하위클래스에서 인스턴스를 생성하도록하는 방식

-abstract factory(앱스트랙팩토리): 구체적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

-singleton(싱글톤): 전역변수 사용하지않고 객체를 하나만 생성하도록하여 생성된 객체를 어디서든 참조할수 있도록하는 패턴

 

구조: 구브데퍼플프록컴어

-bridge(브리지): 기능의 클래스계층과 구현의 클래스 계층을 연결, 구현부 추상계층 분리

-decorator(데코레이터): 기존에 구현되어있는 클래스에 필요한 기능을 추가해 나가는 설계 패턴

-facade(퍼사이드): 복잡한시스템에 대하여 단순한 인터페이스를 제공함

-flyweight(플라이웨이트): 다수의객체로 생성될 경우 모두가 갖는 본질적인 요소를 클래스 화하여 공유함으로 메모리를 절약, 클래스의 경량화를 목적으로 하는 디자인 패턴

-proxy(프록시): 실체객체에 대한 대리객체로 정보은닉의 역할도 수행

-composite(컴포지트): 객체들의 관계를 트리구조로 구성하여 사용자가 단일 객체와 복합객체 모두 동일하게 다루도록하는 패턴

-adapter(어댑터): 기존에 생성된 클래스를 재사용할 수 있도록 중간에 맞춰주는 역할을 하는 인터페이스를 만드는 패턴

 

행위: 행미인이템옵스테비커스트매체

-mediator(미디에이터): 중간에 중재자를두고 목표를 달성하게 해주는

-interpreter(인터프리터): 언어의 다양한 해석

-iterator(이터레이터): 집합체 안에 들어있는 모든 항목에 접근할 방법을 제공

-template method(템플릿메서드): 전체일을 수행하는 구조는 바꾸지 않으면서 특정단계 내역 바꾸는

-observer(옵저버): 한객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락이 가고 자동으로 내용이 갱신되는 방법

-state(스태이트): 객체상태를 캡슐화하여 클래스화함

-visitor(비지터): 각 클래스를 돌아다니며 특정작업을 수행

-command(커맨드): 명령이 들어오면 그에 맞는 서브클래스가 선택되어 실행

-strategy(스트레티지): 알고리즘 군을 정의하고 같은 알고리즘을 각각 캡슐화

-memento(매맨토): Undo기능을 개발할 때 사용하는

-chain of responsibility(체인오브리스폰시빌리티): 연결이 하드코딩 되어 있을때

 

프레임워크: 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 클래스들을 제공하는 틀

 

프로토콜: 심리학자 톰마릴, 서로다른 시스템이나 기기들 간의 데이터 교환을 원활히 하기 위한 통신규약

 

운영체제(OS): 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어

-신뢰도, 성능, 기술지원, 주변기기, 구축비용

 

네트워크: 컴퓨터 장치들의 노드 간 연결을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술

 

OSI 7계층: 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완하하기위해 국제 표준화 기구에 제시한 네트워크 기본 모델

-7 응용계층: 사용자와 네트워크간, HTTP FTP 데이터 / 호스트

-6 표현계층: 데이터 형식설정, JPEG MPEG 데이터 / 호스트

-5 세션계층: 연결 접속 동기제어, SSH TLS 데이터 / 호스트

-4 전송계층: 신뢰성 TCP UDP 세그먼트 /스위치

-3 네트워크계층: 데이터전송 IP ICMP 패킷 / 라우터

-2 데이터링크계층: 데이터전송 오류제어 HDLC 프레임 / 브리지, 스위치

-1 물리계층: 비트정보 RS-232C 비트 / 허브

 

백본망: 다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망이다

 

라우터: 3계층데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비

 

스위치: 2계층 장비로서 동일 네트워크 내에서 출발지에 들어온 데이터 프레임을 목적지 MAC주소 기반으로 빠르게 전달하는 네트워크 장비

 

게이트웨이: 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 네트워크 장비

 

방화벽: 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고 내 외부 네트워크의 상호간 영향을 차단하기 위한 보안시스템

 

침입탐지시스템 IDS : 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지

 

오용탐지 : 미리 입력해 둔 공격 패턴이 감지되면 이를 알려준다.

 

이상 탐지 : 평균적인 시스템의 상태를 기준으로 비정상적인 행위나 자원의 사용 이 감지 되면 이를 알려준다.

 

침입방지시스템 IPS : 비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어조치를 취하는 보안 솔루션, 방화벽과 침입탐지 시스템을 결합한 것

 

데이터 유출방지 DLP : 내부 정보의 외부 유출을 방지하는 보안 솔루션

 

웹방화벽 : 웹기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽

 

VPM : 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

 

NAC : 네트워크에 접속하는 내부 PCMAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션

 

ESM : 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션

 

미들웨어: 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경간에 원만한 통신이 이루어 질 수 있도록 제어해주는 소프트웨어

 

웹서버: HTTP를 이용한 요청/응답 처리, 웹상의 정적 콘텐츠를 처리하는 서버

 

웹 애플리케이션 서버(WAS): 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리 이기종 시스템과의 애플리케이션 연동을 지원

동적 콘텐츠(JSP)를 처리하기 제공하기 위해 사용

 

데이터베이스 서버: 데이터의 수집, 저장을 위한 용도로 사용

 

파일서버: 파일 저장 하드웨어로 물리 저장장치를 활용한 서버

 

가비지컬렉션(GC): 메모리 관리기법의 하나로 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요 없게 된 영역을 해제하는 기능

 

총 소유비용(TCO): 기업이 시간 경과에 따라 지불해야 하는 컴퓨팅 비용을 통합적 관점에서 직접비용을 통합적 관점에서 직접 비용뿐만 아니라 이와 관련된 숨겨진 비용까지 포함하여 파악하는 기법

 

데이터흐름도(DFD): 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림으로 시스템분석과 설계에서 매우 유용하게 사용되는 다이어그램

 

자료사전(DD): 자료요소, 자료요소들의 집합, 자료의 흐름, 자료저장소 의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전

 

요구공학: 요구사항에 대해 도출,분석,명세,확인에 대한 프로세스 과정을 연구하는 학문

협상, 기준선, 변경관리, 확인

인터뷰: 이해관계자와 직접대화

 

체크리스트: 시스템 운영 환경, 성능, 보안, 데이터 발생 주기 등의 기준에 대한 점검을 통한 분석기법

 

브레인스토밍: 말꺼내기 쉬운 분위기 비판없이 수용

 

롤플레잉: 현실에 일어나는 장면을 설정하고 각자 맡은 역을 연기함

 

워크숍: 단기간의 집중적인 노력을 통해 전문적인 정보를 획득 공유하는 방법

 

설문조사: 설문지 여론조사 이용 사용자가 다수일 때 의견수렴 용이

 

감사: 소프트웨어 제품 및 프로세스가 절차를 준수하고 있는지 독립적 평가 3기관이 수행

 

요구사항 개발 프로세스: 도출, 분석, 명세, 확인 및 검증

 

요구사항 분석단계: 분류, 개념모델링 생성 및 분석, 할당, 협상, 정형 분석

 

비정형 명세기법: 자연어(사람말) 기반으로 서술하는 기법

 

정형 명세기법: 수학적인 원리와 표기법으로

 

요구사항명세서: 요구사항을 분석하고 정의하는 단계에서 작성되는 최종산출물

 

요구사항검토: 에러 잘못된 가정 불명확성 표준과의 차이 검토

정형기술검토활용(FTR)

-동료검토: 2~3명이 진행하는 리뷰형태 이해관계자들이 설명을 들으면서 결함발견

-워크스루: 검토자료 회의전에 배포 사전검토후 짧은 시간동안 회의(비형식적)

-인스펙션: 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아냄(형식적)

 

프로토타이핑활용: 일부분을 개발하여 고객에게 시연하여 경험할 수 있게 해줌

 

모델검증: 분석단계에서 개발된 모델의 품질 검증 필요

 

형상통제위원회: 형상관리에 대한 주요방침을 정하고 산출물 검토, 단계별 의사결정을 수행하는 조직

유스케이스모델검증방법: 시스템 기능에 대한 유스케이스 모형 상세화 및 적정성에 대해 점검하는 기법

 

CLI: 명령어를 텍스트로

GUI: 마우스나 전자펜을 이용

NUI: 신체부위를 이용

OUI: 현실에 존재하는 모든 사물

 

UI설계원칙 중 직관성: 누구나 쉽게 이해하고 쉽게 사용할 수 있어야함

UI설계원칙 중 유효성: 요구사항에 맞게 완벽하게 제작해야함

UI설계원칙 중 학습성: 누구나 쉽게 배울 수 있어야함

UI설계원칙 중 유연성: 요구사항 최대한 수용, 실수를 방지할 수 있도록 제작

 

UI표준: 디자인 철학과 원칙 기반 하에 전체 시스템에 공통으로 적용되는 화면간 이동, 화면구성 등에 관한 규약

 

UI스타일 가이드: UI의 통일과 일관적인 화면구성을 위해 지켜야할 화면설계원칙

UI흐름설계: 업무수행에 관련된 일련의 클릭에 의해 화면의 위치와 흐름을 표현 한 활동

 

UI시나리오 문서의 작성 요건: 완일이가추수

-완전성: 누락이 없이 최대한 빠짐없이

-일관성: 일관성 있게 일관적으로

-이해성: 처음 보는 사람도 이해하기 쉽게

-가독성: 문서를 쉽게 읽을 수 있어야함

-추적용이성: 쉽게 추적가능

-수정용이성: 변경 쉽게

 

화면설계도구: 파워목업(파워포인트), 발사믹목업(스케치한 느낌), 카카오 오븐(카카오에서제작)

 

프로토타이핑도구: UX(웹브라우저를통해), 액슈어(UI설계보다는 스토리보드에 포함), 네어버 프로토나우(네이버에서 제작)

 

UI디자인도구: 스케치(다양한 목업), 어도비 익스피리언스 디자인CC (UI디자인 최적화)

 

UI디자인 산출물로 작업하는 프로토타이핑도구: 인비전(포토샵), 픽사에이트(대기업들이씀), 프레이머(커피스크립트)

UX:사용자가 시스템을 직,간접적으로 겸험하면서 느낌 총체적 경험

 

3C분석: 고객,자사,경쟁사 비교하고 분석

SWOT분석: 기업의 내부,외부환경을 분석하여 강점,약점,기회,위협 규정을 토대로 경영전략을 수립하는 방법

 

시나리오플래닝: 불확실성이 높은 상황변화를 사전에 예측하고 다양한 시나리오를 설계

 

리서치: 지식에 대한 탐구를 기반으로 한 인간 활동이며 이미 존재하던 지식의 발견, 해석, 정정, 재확인 등에 초점을 맞추는 체계적인 조사를 말한다

 

사용성테스트: 사용자가 직접 미리 작성한 시나리오에 맞춰 사용해보고 질문에 답하는 테스트

페르소나정의: 잠재적 사용자의 다양한 목적과 관찰된 행동패턴을 응집시켜놓은 가상의 사용자

 

UI컨셉션: 정리된 요구사항을 구체화하는 단계로 화면 디자인 단계 전에 대표 화면 설계를 진행하는 단계

 

콘셉트모델정의: 다양한 아이디어들을 간편하게 시각화하여 표현

 

스토리보드: 와이어프레임에 콘텐츠에 대한 설명 및 화면전환흐름을 추가한 문서

서비스 구축을 위한 모든 정보가 담겨있는 설계 산출물

 

와이어프레임: 서비스의 간략한 흐름을 공유하기 위해

 

프로토타입: 실제구현된 것처럼(시제품) 시뮬레이션 할 수 있는 모형

UML: 시스템 개발과정에서 의사소통이 원활하게 이루어지도록 표현한 객체지향 모델링 언어

산출물을 명세화, 시각화, 문서화 할 시 사용되는 모델링 기술과 방법론을 통합하여 만든

UML구성요소: 사물, 관계, 다이어그램

 

구조적 다이어그램=정적 다이어그램: 클객컴배폭패

-클래스: 클래스의 속성 및 연산과 클래스간 정적인 관계를 표현

-객체: 클래스에 속한 사물들 즉 인스턴스

-컴포넌트: 컴포넌트 사이의 의존관계

-배치: 위치를 표현하는

-복합체구조: 내부구조를 표현

-패키지: 패키지들의 관계

 

행위적 다이어그램=동적 다이어그램: 유시커상활타

-유스케이스: 시스템이 제공하고있는 기능 및 외부요소 표현

-시퀀스: 동적 상호작용을 시간적 개념을 중심으로 메시지 흐름 표현

-커뮤니케이션: 메시지도 표현하고 객체간의 연관까지 표현

-상태: 상호작용에 따라 상태가 어떤지

-활동: 로직이나 조건에 따른 처리의 흐름을 순서대로 표현

-타이밍: 시간제약을 명시적으로 표현

 

스테레오타입: UML기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 매커니즘

길러멧 기호사용 << >>

<<include>> : 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스 실행

<<extend>> : 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행 할수도 안할수도 있음

<<interface>> : 모든 메서드가 추상메서드 이며 바로 인스턴스를 만들 수 없는 클래스

<<entity>> : 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화 하는 클래스

<<boundary>> : 시스템과 외부 액터와의 상호작용을 담당하는 클래스

<<control>> : 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스

 

클래스 다이어그램: 객체지향 모델링시 클래스의 속성 및 연산과 클래스간 정적인 관계를 표현한 다이어그램

-클래스: 공통의 속성, 연산, 관계, 의미를 공유하는 객체들의 집합

-속성: 인스턴스가 보유할 수 있는 값의 범위

-연산메서드: 이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 사항들

-접근제어자: 클래스에 접근할 수 있는 정도를 표현

private(-): 내부접근만 허용

default(~): 동일 패키지 클래스에서만 접근가능

protected(#): 동일 패키지/파생 클래스에서만 접근가능

public(+): 외부접근을 허용

 

연관관계: 클래스가 서로 개념적으로 연결 (선으로)

집합관계: 하나의 객체에 여러개의 독립적인 객체들이 구성 (하얀다이아)

복합관계: 영구적이고 집합관계보다 강한관계 (검정다이아)

알반화관계: 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 (하얀삼각형)

의존관계: 짧은 시간동안만 연관 (점선화살표)

 

추상클래스: 하나 이상의 추상 메서드를 가진 클래스 (실선)

 

인터페이스: 추상메서드와 상수만을 포함하는 클래스 (점선)

 

실체화관계: 추상클래스나 인터페이스를 상속받아 자식클래스가 추상메서드를 구현 할 때 (빈점선 화살표)

 

유스케이스 다이어그램: 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램

-유스케이스: 시스템이 제공해야하는 서비스

-액터: 사용자가 시스템에 대해 수행하는 역할

-시스템: 전체 시스템의 영역을 표현

-시나리오: 발생되는 이벤트 흐름

-이벤트 르흠: 사람, 시스템, 하드웨어, 시간의 흐름에 의해 시작

 

시퀀스다이어그램: 객체간 상호작용을 메시지흐름으로 표현한 다이어그램

-객체: 사각형 안에 밑줄친 이름으로 명시

-생명선: 실제 시간이 흐름에따라 객체의 생명주기 동안 발생하는 이벤트 명시

-실행: 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미

-메시지: 한 객체에서 다른 객체로의 메시지를 전달하고 전달받는

 

패키지다이어그램: 시스템의 서로다른 패키지들 사이의 의존관계를 표현한 다이어그램

-패키지: 요소들을 그룹으로(폴더모양)

의존관계: 하나의 패키지가 다른 패키지를사용(점선화살표)

 

활동다이어그램: 객체의 로직이나 조건에 따른 처리의 흐름을 순서대로 표현한 다이어그램

시작점: 활동의 시작(원형)

전이: 실행의 흐름(화살표)

액션: 어떠한 일들의 처리와 실행(타원)

종료점: 처리의 종료의미(이중 원형)

 

상태다이어그램: 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현한 다이어그램

-상태: 객체가 존재할 수 있는 조건중의 하나(타원네모)

-시작상태: 객체의 시작상태(원형)

-종료상태: 객체의 종료상태(이중 원형)

-전이: 객체의 상태가 다른상태로 변경되는상태(화살표)

-이벤트: 상태의 변화를 주는(화살표에 이벤트)

-전이조건: 특정 조건 만족시 전이 발생하도록 사용(화살표에 전이조건)

 

커뮤니케이션 다이어그램: 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현, 메시지뿐만 아니라 객체간의 연관까지 표현하는 다이어그램

-액터: 시스템으로부터 서비스를 요청하는 외부요소(사람모양)

-객체: 메시지를 주고받은 주체(네모)

-링크: 객체들 간의 관계표현(네모 사이 선)

-메시지: 객체 상호작용을 위해 주고받은 메시지(네모 사이 선)

 

컴포넌트 다이어그램: 시스템을 구성하는 물리적인 컴포넌트와 그들 사이의 의존관계를 나타내는 다이어그램

-컴포넌트: 탭이 다린 직사각형모양(작은 직사각형 두 개 큰 직사각형에 달려있음)

-인터페이스: 인터페이스 실체화 한다는 의미

-의존관계: 컴포넌트 사이의 의존관계 표현

 

데이터모델: 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

 

데이터모델 절차: 개념적, 논리적, 물리적

-개념적: ERD, 개념적 구조를 도출하는 데이터모델

-논리적: 사람이 이해하기 쉽게 표현하는 데이터모델

개체, 속성, 관계

-물리적: DBMS 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 데이터모델

 

관계대수: 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형언어

합교차카, 셀프조디

 

관계해석: 비절차적 언어, 프레디킷 해석에 기반한 언어

 

정규화: 데이터베이스에서 데이터의 중복을 제거하여 일관성을 유지, 또는 향상시키는 데이터 구조 기법

1차 원자값, 2차 부분함수종속, 3차 이행함수종속, BCNF 결정자후보키, 4차 다치종속, 5차 조인종속

반정규화: 정규화된 데이터 모델을 의도적으로 통합,중복,분리하여 정규화 원칙을 위반하는 행위

이상현상: 데이터 중복으로 인해 데이터 조작시 문제가 발생하는 현상

-삽입이상: 불필요한 세부정보를 입력해야 하는 경우

-삭제이상: 원치않는 다른 정보가 같이 삭제되는 경우

-갱신이상: 특정부분만 수정되어 중복된 값이 모순을 일으키는 경우

 

인덱스: 검색의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 구조

 

슈퍼타입: 모든 서브 타입으로 상속되는 공통속성

 

서브타입: 개체의 전체집합에서 일부만 모아놓은 부분속성

 

클러스터: 대상이 되는 범위의 요소를 모은 단위체

 

파티셔닝: 대용량의 테이블을 파티션이라는 작은 논리단위로 나누어 성능저하 방지 및 관리를 용이하게 하는 기법(범위, 해시, 리스트, 컴포지트)

 

데이터마이닝: 대규모 데이터 안에서 규칙이나 패턴을 발견해서 의미있는 정보로 바꿔 의사결정에 활용하는 기술

-분류규칙: 분류모형을 만들어 새로운 레코드 결과값을 예측

-연관규칙: 데이터 안에 존재하는 항목들 간의 종속관계를 찾아내는 기법

-연속규칙: 연관규칙에 시간관련 정보가 포함된 형태의 기법

-데이터군집화: 유사 특성 지닌 몇 개의 레코드를 소그룹으로 분할하는 작업 분류규칙과 유사

텍스트마이닝: 대규모 텍스트 데이터 안에서 패턴을 추출하여 의미있는 정보를 찾아내는 기술

웹마이닝: 웹에서 얻어지는 대규모 정보에서 유용한 정보를 찾아내기 위하여 분석하는 기법

데이터베이스: 다수 인원이 사용할 목적으로 통합하여 관리하는 데이터의 집합

통합된데이터, 저장된데이터, 운영데이터, 공용데이터

 

DBMS: 데이터베이스라는 데이터의 집합을 만들고 저장 및 관리 할 수 있는 기능들을 제공하는 응용프로그램

 

관계형데이터베이스(RDBM): 가장보편화된 데이터베이스

 

계층형데이터베이스(HDBMS): 계층화하여 관리하는 데이터베이스

 

네트워크데이터베이스(NDBMS): 네트워크상의 망상 형태로 표현한 데이터모델

ERD: 현실세계의 개체와 그들간의 관계를 개체,속성,관계로 표현한 모델

NOSQL: 고정된 테이블에 스키마가 없으며 조인연산을 사용할 수 없고 수평적 확장이 가능한 SQL

온톨로지: 실세계에 존재하는 모든 개념들을 컴퓨터가 이해할 수 있도록 서술해 놓은 지식베이스

시맨틱 웹: 온톨로지를 활용하여 서비스를 기술하고 온톨로지의 의미적 상호 운용성을 이용해서 서비스 검색, 조합, 중재 기능을 자동화하는 웹

 

빅데이터: 수십페타바이트 크기의 비정형 데이터

데이터의 양(Volume), 데이터의 다양성(Variety), 데이터의 속도(Velocity)

 

HDFS: 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템이다.

 

하둡: 분산처리 오픈소스 프레임워크

맵리듀스: 구글에서 대용량 데이터처리를 분산병렬컴퓨팅에서 처리하기 위해 만든 프레임워크

인터페이스 데이터 표준: 공통부, 개별부, 종료부

 

HIPO : 하향식 개발을 위한 도구 가시적도표, 총체적도표, 세부적도표

 

개체정의서: 개념 모델링 단계에서 도출한 개체의 속성, 타입등의 정보를 명세한 정의서

DB링크: 링크객체를이용

 

DB연결: DB로 연결하는 DB커넥션풀을 생성하고 연결

 

커넥션풀: 데이터베이스와 연결된 커넥션을 미리 만들어서 풀에 저장해두고 필요할때 풀에서 가지고 와서 쓰고 다시 풀에 반환하는 기법

 

API: 송신시스템의 DB에서 데이터를 읽어서 제공하는 애플리케이션 프로그래밍 인터페이스 프로그램, 라이브러리를 이용할 수 있도록 규칙을 정해놓은 인터페이스

 

JDBC: 데이터베이스에서 자료를 조회하거나 업데이트하기 위해서 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API를 이용하는 연계 방식

 

하이퍼링크: 현재 페이지에서 다른 분으로 가거나 전혀 다른 페이지로 이동하게 해주는 속성

 

인스턴스: 객체지향 프로그래밍(OOP)에서 해당 클래스의 구조로 컴퓨터 저장 공간에 할당된 실체, 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

 

소켓: 소켓을 생성하여 포트를 할당하고 클라이언트의 요청을 연결하는 통신

 

스키마: 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

 

EAI: 기업내 서로 다른 플랫폼 및 애플리케이션을 상호연동이 가능하게 해주는 솔루션

-EAI플랫폼: 이기종 시스템 간 애플리케이션 상호운영

-어댑터: EAI의 핵심 장치로 데이터 입출력 도구

-브로커: 데이터 포맷과 코드를 변환하는 솔루션

-메시지 큐: 비동기 메시지를 송수신하는 기술

-비즈니스 워크플로우: 미리 정의된 비즈니스 워크플로우에 따라 업무처리

포인투포인트, 허브앤스포크, 메시지버스, 하이브리드

ESB: 기업내 서로 다른 플랫폼 및 애플리케이션을 하나의 시스템으로 관리할 수 있도록 하는 솔루션

 

느슨한 결합: 서비스를 변경하더라도 연결된 다른 서비스에는 영향을 주지 않는 유연한 구조

REST: 분산하이퍼미디어 시스템을 위한 소프트웨어 아키텍처, HTTP URL을 통해 자원을 명시하고 HTTP 메소드를 이용하여 상태를 주고받는 기술

UDDI: 웹서비스에 대한 정보인 WSDL을 등록하고 검색하기 위한 저장소

SOAP: HTTP,HTTPS,SMTP등을 이용하여 XML기반의 메세지를 네트워크 상태에서 교환하는 프로토콜

WSDL: 웹서비스에 대한 상세 정보가 기술된 XML형식의 언어

JSON: 데이터 객체를 "속성-" 쌍 형태로 표현하는 개방형 표준 포맷

AJAX: 자바스크립트를 이용하여 서버,클라이언트간 XML데이터를 주고받는 비동기통신기술

XML: HTML 단점을 보완한 특수목적을 가진 마크업 언어

 

FTP: tcp/ip 프로토콜을 가지고 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜

 

직접연계방식: 연계 및 통합 구현이 단순 새발 소요비용 및 기간이 짧고 중간 매개체가 없다

 

간접연계방식: 서로 상이한 네트워크, 프로토콜 연계 및 통합이 가능 인터페이스 변경 시에도 장애나 오류 없이 서비스 가능

TDE: DB서버의 DBMS커널이 자체적으로 암복호화 기능을 수행

생성자: 객체 생성 시 자동으로 호출되고 초기화 작업을 하는 메서드

소멸자: 객체 소멸 시 자동으로 호출되는 클래스 멤버함수

카멜표기법: 낙타등처럼 첫단어의 첫글자는 소문자로 작성하고 그 뒤의 단어들의 첫글자는 대문자로 작성하는 표기법

 

파스칼표기법: 각단어의 첫 글자는 대문자로 지정하는 표기법

 

스네이크표기법: 여러 단어가 이어지면서 단어 사이에 언더바를 넣는 표기법

 

헝가리안표기법: 식별자 표기 시 두어에 자료형을 붙이는 표기법

라이브러리: 필요한 프로그램만 모아놓은 집합체

패키지: 모듈을 디렉터리 형식으로 구조화한 라이브러리

SDDC(소프트웨어정의데이터센터): 모든 하드웨어가 가상화되어 가상 차원의 풀을 구성하는 데이터센터

스프린트회고: 짧은 시간의 스프린트 완료후 피드백 하는 과정

미들웨어: 컴퓨터와 컴퓨터간 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대해 관리를 도와주는 소프트웨어

 

트랜잭션 제어언어: TCL

-커밋 (Commit) : 트랜잭션을 메모리에 영구적으로 저장하는 제어어

-롤백 (RollBack): 트랜잭션의 오류발생시 오류 이전의 특정시점 상태로 되돌려주는 제어어

-체크포인트(checkpoint): 롤백을 위한 시점을 지정하는 제어어

트랜잭션: 데이터의 상태를 변화시키기 위해 수행하는 작업의 단위

-원자성(atomicity): 트랜잭션 수행결과가 모두 커밋되거나 모두 커밋되지 않음을 보장하는 특성

-일관성(consistency): 항상 일관된 데이터베이스 상태 보존

-격리성(isolation): 연산중간에 다른 트랜잭션 접근 불가

-지속성(durability): 결과를 영속적으로 데이터베이스에 저장

 

병행제어: 다수 사용자 환경에서 여러 트랜잭션을 수행할 때 데이터베이스 일관성을 유지하기 위해 상호작용을 제어하는 기법

 

병행제어 목적: 데이터베이스 공유를 최대화, 시스템 활용도 최대화, 데이터베이스 일관성유지

 

병행제어 미보장시 문제점

-갱신손실: 먼저 실행된 트랜잭션 결과를 나중에 실행된 트랜잭션에 덮어쓸 때

-현황 파악오류: 중간 수행결과를 다른 트랜잭션이 참조하여 발생

-모순성: 두 트랜잭션이 동시에 실행되어 일관성이 결여

-연쇄복귀: 특정 트랜잭션 취소할 때 트랜잭션이 처리한 곳을 취소 못할 때

 

병행제어 기법종류

-로킹: 트랜잭션의 순차적 진행을 보장하는 직렬화 기법

-낙관적 검증: 어떠한 검증도 수행하지 않고 일단 트랜잭션 수행

-타임스탬프순서: 트랜잭션 실행 전 타임스팸프 부여

-MVCC: 타임스탬프와 접근하려는 데이터의 타임스탬프를 비교

 

회복기법: 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업

-로그기반 회복기법: 지연갱신회복기법, 즉각갱신회복기법

-체크포인트 회복기법: 장애시 검사점 이후에 처리된 트랜잭션만 이전상태로 복원

-그림자페이징 회복기법: 복제본을 생성하여 장애시 이용해서 복원

 

도메인: 하나의 속성이 가질수 있는 원자값들의 집합

 

스키마: 데이터베이스 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

-외부스키마: 사용자나 개발자의 관점

-내부스키마: 물리적 저장장치의 관점

-개념스키마: 전체적인 논리적 구조

 

테이블: 데이터 저장공간

 

: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 가상의 테이블

 

인덱스: 전체데이터 검색 없이 필요한 데이터를 빠르게 조회할 수 있는 데이터 구조

-순서: 정렬된 순서

-해시: 해시함수에 의해

-비트맵: 컬럼에 적은 개수 값

-함수기반: 수식이나 함수

-단일: 하나의 컬럼

-결합: 두 개이상 컬럼

-클러스터드: 기본키 기준으로 레코드를 묶어서 저장

 

인덱스 범위 스캔: 필요한 범위만 스캔

인덱스 전체 스캔: 처음부터 끝까지 수평으로

인덱스 단일 스캔: 수직적 탐색만

인덱스 생략 스캔: 선두 컬럼이 조건 절에 빠졌어도 익덱스 활용

 

<SQL>

DDL : 데이터 정의어 : 생성, 변경, 삭제

CREATE TABLE 테이블을 생성하는

CREATE TABLE 테이블명 (컬럼내용) CHECK (제약조건)

-CHECK(조건식) IN( )

 

ALTER TABLE 테이블을 수정하는

ALTER TABLE 테이블명 ADD 컬렁명

ALTER TABLE 테이블명 RENAME COLUMN 변경전 TO 변경후

ADD(추가), MODIFY(수정), DROP(컬럼삭제), RENAME(컬럼명 수정)

 

DROP TABLE 테이블을 삭제하는

DROP TABLE 테이블명

CASCADE(참조 테이블까지), RESTRICT(다른테이블이 참조중이면 제저하지 않는)

 

TRUNCATE TABLE 테이블 내의 데이터들을 삭제하는

TRUNCATE TABLE 테이블명

 

CREATE VIEW 뷰를 생성하는

CREATE VIEW 뷰이름 AS

SELECT FROM WHERE

 

CREATE OR REPLACE VIEW 뷰를 교체하는 명령어

CREATE OR REPLACE VIEW 뷰이름 AS

 

DROP VIEW 뷰이름

 

CREATE INDEX 인덱스를 생성하는

CREATE INDEX 인덱스명 ON 학생(이름)

 

ALTER INDEX 인덱스를 수정하는

ALTER INDEX 인덱스명 ON 테이블명(컬럼명)

 

DROP INDEX 인덱스를 삭제하는

DROP INDEX 인덱스명

 

DML : 데이터 조작어 : 입력, 수정, 삭제, 조회

SELECT 데이터를 조회하는 ALL 모두 DISTINCT 한개만

SELECT 검색하고자하는 속성 명

FROM 테이블명

WHERE 검색할 조건을

GROUP BY 속성값을 그룹으로 묶을 때 SUM(급여) 같은건 빼고

HAVING 그룹바이 분류후 조건지정

ORDER BY 속성값 정렬 ASC 오름차순 DESC 내림차순

 

- SELECT FROM WHERE

- SELECT FROM GROUP BY HAVING

- SELECT FORM ORDER BY DESC ASC

 

WHERE

!=, <>, ^ 값이 다를때

PRICE BETWEEN 500 AND 600

컬럼 >= 500 AND 컬럼 <= 600

컬럼 IN (1, 2), 컬럼 IS NULL

이름 LIKE ‘%’, 조건 AND 조건, 조건 OR 조건

컬럼 LIKE ‘[ ]%’, 컬럼 LIKE ‘ _% ’

 

조인(JOIN): 두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법

내부조인: INNER JOIN

외부조인: 왼쪽 LEFT JOIN, 오른쪽 RIGHT JOIN, 완전 FULL JOIN

교차 조인: CROSS JOIN 조인조건이 없는 모든 데이터 조합 ON 없음

셀프 조인: SELF JOIN 자기 자신에게 별칭을 지정한 후 다시 조인

 

-SELECT A.컬럼 B.컬럼

FROM 테이블 A INNER JOIN 테이블 B

ON A.컬럼 = B. 컬럼

 

서브쿼리: SQL문 안에 포함된 또 다른 SQL

-SELECT(SELECT MAX가격

FROM 도서 A

WHERE A.책번호 = B.책번호

AND 책명 = ‘자료구조

FROM 도서가격 B

-SELECT MAX(가격)

FROM 도서가격 A,(SELECT 책번호

FROM 도서

WHERE 책명 = ‘자료구조’) B

WHERE A.책번호 = B.책번호

 

-SELECT MAX(가격)

FROM 도서가격

WHERE 책번호 IN (SELECT 책번호

FROM 도서

WHERE 책명 = ‘자료구조’)

 

집합연산자: 테이블을 집합 개념으로 보고 두 테이블 연산에 집합 연산자를 사용

UNION: 중복행이 제거되고 출력

UNION ALL: 중복행을 중복으로 출력

INTERSECT: 중복값만 출력

MINUS: 첫 번째 쿼리에만 있는거 두 번째랑 중복값은 제거

 

-SELECT FROM WHERE

UNION

SELECT FROM WHERE

 

INSERT: 데이터의 내용을 삽입할 때 사용

INSERT INTO 테이블명() VALUES ()

INSERT INTO 학생(이름, 학년) VALUES(‘조평연’, 3)

 

UPDATE: 데이터의 내용을 변경할 때 사용

UPDATE 테이블명 SET 속성명 WHERE 조건

UPDATE 학생 SET 주소=서울 WHERE 이름=‘조평연

 

DELETE: 데이터의 내용을 삭제할 때 사용

DELETE FROM 테이블명 WHERE 조건

DELETE FROM 학생 WHERE 이름 = ‘조평연

 

DCL: 데이터 제어어 : 보안, 무결성 유지, 병행제어, 회복을 위해

GRANT: 사용자권한부여

GRANT 권한 ON 테이블 TO 사용자

GRANT UPDATE ON 학생 TO 조평연

with grant option 다른 사용자까지 연달아 부여

 

REVOKE: 사용자권한회수

REVOKE 권한 ON 테이블 FROM 사용자

REVOKE SELECT ON 학생 FROM 조평연

cascade constraints 다른 사용자까지 연달아 회수

 

집계함수: 전체 행으로부터 하나의 결과 값을 반환하는 함수 ( SUM, AVG )

COUNT, SUM, AVG, MAX, MIN, STDDEV(표준편차), VARIAN(분산)

 

그룹함수: 중간 합계 분석 데이터를 산출하는 함수

ROLLUP: 지정 컬럼들의 그룹 바이한 소계만

CUBE: 결합가능한 모든 컬럼값에 대해 싹다 소계

GROUPING SETS: 컬럼 각각 개별 소계를 구할수있음

 

SELECT 부서, 직위, SUM(연봉)

FROM 부서별 연봉

GROUP BY ROLLUP (부서, 직위)

 

SELECT 부서, 직위, SUM(연봉)

FROM 부서별 연봉

GROUP BY GROUPING SETS (부서, 직위, ())

 

윈도함수: 온라인 분석처리용도로 사용하기 위해서 표준SQL에 추가된 기능

 

순위함수: 레코드의 순위를 계산하는 함수

RANK: 공동순위반영, 후순위넘어감, 2 2 2 5 6

DENSE_RANK: 공동순위무시, 후순위 넘어가지않음, 2 2 2 3 4

ROW_NUMBER: 공동순위 완전무시, 연속번호를 부여, 2 3 4 5 6

SELECT 이름, 연봉,

RANK() OVER (ORDER BY 연봉 DESC)A,

DENSE_RANK() OVER (ORDER BY 연봉 DESC)B,

ROW_NUMBER() OVER (ORDER BY 연볼 DESC)C

FROM 직원

 

행순서함수: 레코드에서 가장 먼저 나오거나 가장뒤에 나오는값, 이전 이후 값들을 출력

FRIST_VALUE: 가장 먼저 나오는 값

LAST_VALUE: 가장 늦게 나오는 값

LAG: 이전 로우의 값 반환

LEAD: 이후 로우의 값 반환

SELECT 이름 연봉,

FIRST_VALUE(이름) OVER (ORDER BY 연봉 DESC)A,

LAST_VALUE(이름) OVER (ORDER BY 연봉 DESC)B,

LAG(이름) OVER (ORDER BY 연봉 DESC)C,

LEAD(이름) OVER (ORDER BY 연봉 DESC)D

FROM 직원

 

그룹내 비율함수: 백분율을 보여주거나 행의 순서별 백분율 등 비율과 관련된

RATIO_TO_REPORT: 합을 기준으로 상대적 비율을 반환하는 함수

PERCENT_RANK: 제일먼저 나오는 것을 0 제일늦게 나오는 것을 1

SELECT 이름 연봉,

RATIO_TO_REPORT(연봉) OVER () A,

PERCENT_RANK() OVER (ORDER BY 연봉 DESC)B

FROM 직원

 

부분범위처리 : EXISTS

 

프로시저: 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

입력 in, 출력 out 커서 cursor for 갑설정 set

실행할 때 execute, exec (EXECUTE, EXEC)

-프로시저 구성: 디비컨SET (DECLARE, BEGIN/END, CONTROL, SQL, EXCEPTION, TRANSCATION)

사용자정의함수: 일련의 SQL을 실행하고 수행 결과를 단일값으로 반환할 수 있는 절차형 SQL

-사용자 정의함수 구성: 디비컨SER (DECLARE, BEGIN/END, CONTROL, SQL, EXCEPTION,

RETURN)

 

트리거: 이벤트 발생시 DBMS에서 자동으로 실행하는 절차형 SQL

-트리거 구성: 디이비컨SE (DECLARE, EVENT, BEGIN/END, CONTROL, SQL, EXCEPTION)

 

LOOP: 특정 조건이 만족될 때 까지 반복해서 문장을 실행하는 반복문

LOOP EXIT WHEN END LOOP

 

WHILE: 시작과 종료 조건을 지정하여 참인동안에는 해당 문장을 반복

WHILE LOOP EXIT WHEN END LOOP

 

FOR LOOP: 시작값과 끝값을 지정하여 해당값이 그 구간내에 있을 때 반복

FOR IN LOOP END LOOP

 

예외부: 실행중 발생 가능한 예외상황을 수행하는 부분

EXCEPTION WHEN THEN SET

옵티마이저: SQL을 빠르고 효율적인 처리경로를 생성해주는 DBMS의 핵심엔진

-규칙기반 옵티마이저(RBO): 통계정보가없는 상태에서 사전등록된 규칙에따라

-비용기반 옵티마이저(CBO)통계정보로부터 모든 접근 경로를 고려한

 

실행계획: 옵티마이저 생성한 SQL처리 경로

 

힌트: 실행하려는 SQL문에 사전 정보를 주어서 SQL문 실행에 빠른 결과를 가져오는 효과

- /*+ */

 

운영체제: 사용자가 컴퓨터를 편리하게 사용할 수 있게 해주는 소프트웨어

빌드도구: 작성한 코드의 빌드 및 배포를 수행하는 도구

 

구현도구: 개발자의 코드 작성과 디버깅, 수정 등과 같은 작업을 지원하는 도구

 

테스트도구: 코드이 기능 검증과 전체의 품질을 높이기 위한 도구

 

클라이언트 프로그램: 설치를 통해 사용자와 커뮤니케이션 하는 프로그램

 

웹브라우저: 웹 서비스의 형태로 서버에서 웹 애플리케이션 응답 시 브라우저를 통해 사용자와 커뮤니케이션

 

형상식별: 형상관리 대상을 정의 및 식별

형상통제: 형상항목의 버전관리를 위해 변경여부, 변경활동을 통제

형상감사: 베이스라인 변경시 요구사항과 일치하는지 검토

형상기록: 소프트웨어 형상 및 변경관리에 대한 수행결과기록

베이스라인: 각 개발과정에서의 단계별 산출들이 변화하는 시점에서 통제하는 기준

형상관리도구: 개발자들이 작성한 코드,리소스등 산출물에 대한 버전관리를 위한 도구

형상관리: 소프트웨어 개발에서 발생하는 모든 변경사항을 관리하기 위한 활동

 

공유폴더방식 : 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식

 

클라이언트/서버 방식: 중앙에 버전관리 시스템을 항시 동작, 서로 다른 개발자가 같은 파일을 작업했을 때 경고 메시지 출력

 

분산저장소방식: 로컬저장소와 원격 저장소로 분리되어 분산저정하는 방식

 

CVS: 서버와 클라이언트로 구성, 다수 인원이 동시 범용적인 운영체제 접근 가능

 

SVN: 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구

 

RCS: CVS와 다르게 소스파일의 수정을 한사람만으로 제한

 

Bitkeeper: SVN 비슷한 중앙통제 방식 대규모프로젝트에서 빠른속도

 

Git : 분산형 버전 관리 시스템

 

Clear Case: 복수서버, 복수클라이언트 구조 서버가 부족할 때

 

Gradle(그래들): 그루비를 기반으로 한 빌드 도구

 

메이븐: JAVA기반 프로젝트 관리를 목적으로 빌드도구

 

브랜치: 여러 개발자들이 동시에 다양한 작업을 할 수 있게

화이트박스테스트: 프로그램을 실행하지 않고 내부구조와 동작을 검사하는 테스트 방식

메서드기반테스트: 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트 수행

 

화면기반 테스트: 화면단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트

 

공통모듈테스트: I D E 도구를 활용, 디버깅을 수행, 화이트박스테스트, Junit

 

테스트드라이버: 하위모듈은 있지만 상위모듈은 없는 경우 사용하는 기법

 

테스트스텁: 상위모듈은 있지만 하위모듈은 없는 경우 사용하는 기법

 

블랙박스테스트: 요구사항 명세를 보며 수행하는 테스트

루틴: 특정동작을 수행하는 일련의 코드로서의 기능을 가진 명령들의 모음

 

메인루틴: 프로그램의 주요한 부분, 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴

 

서브루틴: 메인 루틴에 의해 필요할 때 호출되는 루틴

모듈: 그 자체로 기능을 완벽하게 수행할 수 있는 독립적 실체

 

모듈화: 소프트웨어 기능 향상을 위해 기능단위의 모듈로 분해하는 기법

 

공통모듈: 화면모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트

-DAO: 추상 인터페이스를 제공하는 객체

-VO: 간단한 엔터티를 의미, DTO와 달리 고정 클래스

-DTO: 프로세스 사이에서 데이터를 전송하는 객체

응집도: 모듈의 독립성을 나타내는 정도, 모듈 내부 구성요소간 연관 정도

-우연적: 각 구성요소가 연관이 없을경우

-논리적: 유사한 성격, 특정 형태로 분류되는 요소들이 한모듈에서 처리

-시간적: 특정 시간에 처리되어야 하는 활동 한모듈에서

-절차적: 기능을 순차적으로 수행할 경우

-통신적: 동일한 입력과 출력 사용, 다른 기능을 수행하는 활동들이 모여

-순차적: 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우

-기능적: 모듈 내부의 모든 기능이 단일한 목적을위해

 

결합도: 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈간의 상호 의존성

-내용: 다른 모듈의 내부에있는 변수를 다른 모듈에서 사용

-공통: 모듈 밖에 선언되어있는 전역변수 참조, 전역변수 갱신

-외부: 외부에서 도입된 데이터 공유할 경우

-제어: 어떻게 처리해야한다는 제어요소가 전달되는 경우

-스탬프: 모듈간의 인터페이스로 배열이나 객체 구조 등이 전달

-자료: 파라미터를 통해서만 모듈간의 상호작용이 일어난 경우

 

팬인: 어떤 모듈을 제어하는 모듈의수

팬아웃: 어떤 모듈에 의해 제어되는 모듈의수

 

추상화: 공통의 속성이나 기능을 간추려내는것

Mybatis: jdbc코드를 단순화하여 사용할 수 있는 sql 매핑기반의 오픈소스 프레임워크

객체지향언어인 자바의 관계형 DB 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크

배치프로그램: 사용자와 상호작용없이 일련의 작업들을 묶어 정기적 반복수행하는 프로그램

-이벤트배치: 사전에 정의해둔 조건 충족시 자동으로 실행

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

-정기배치: 정해진 시점에 정기적으로 실행

 

배치스케줄러: 일괄 처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

-스프링배치: 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러 배치 애플리케이션

-쿼츠스케출러: 스프링 프레임워크에 플러그인 되어 수행하는 작업과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈기반스케줄러

 

크론 표현식: 스케줄러를 실행시키기 위해 작업이 실행되는 시간 및 주기 등을 설정하기 위한

크론 표현식: 분시일월요연

쿼츠크론표현식: 초분시일월요연

*모든수, ?해당항목을미사용. -기간설정, .특정기간설정, /시작시간과 반복간격 설정, L마지막기간에 동작, W가장가까운 평일에동작, #몇번째 주 요일 설정

 

기밀성 confidentiality : 인가되지 않은 사용자나 시스템이 접근 할 수 없도록 보장하는 특성

무결성 integrity : 인가되지 않은 사용자나 시스템에 의해 변경되지 않도록 보장하는 특성

가용성 availability : 인가된 사용자나 시스템만 서비스를 지속할 수 있도록 보장하는 특성

 

ARP : IP 주소로 MAC 주소를

 

RARP : MAC 주소로 IP 주소를

IP스푸핑: 공격자가 자신의 IP를 변조하여 접근제어목록을 회피하여 공격

ARP스푸핑: mac 주소를 위조하여 정보를 탈취

ICMP리다이렉트공격: ICMP리다이렉트 메세지를 이용하여 패킷경로를 변경하는 공격

IPSec: IP(3계층)에서 인증헤더와 암호화 방식을 이용한 IP보안 프로토콜

SSL/TLS:4~7계층에서 서버와 클라이언트간 무결성과 암호화를 보장하는 암호화 프로토콜

S-HTTP:웹상에서 서버와 클라이언트간 모든 메세지를 암호화로 전달하는 보안프로토콜

OWASP CLASP: 소프트웨어 개발주기 초기단계의 보안을 강화하기 위한 정형화된 프로세스

스니핑: 네트워크 중간에서 남의 패킷을 도청하는 수동적 공격기법

SQL인젝션: 악의적인 SQL을 삽입하여 데이터베이스를 비정상적으로 조작하는 방법

DOS: 공격자가 특정서버에 대량으로 데이터를 집중적으로 전송하여 서버기능을 방해하는 공

 

DDOS: 여러대의 공격자를 분산배치하여 동시에 동작하게함으로써 특정 사이트를 공격하는 기법

랜드어택: 출발지IP주소와 목적지IP주소를 동일한 IP주소로 변경하여 계속 자기자신에게 응답하는 공격

DRDOS: 출발지IP주소를 공격대상IP주소로 변경하여 다수의 반사서버 요청정보를 전송, 공격대상서버는 반사서버로부터 다량의 응답을 받아서 서비스가 거부되는 공격

APT공격: 특정타깃을 목표로 하여 다양한 수단을 통해 지속적이고 지능적인 맞춤형 공격

임의적 접근통제(DAC): 접근제한을 사용자/그룹 신분으로 접근제한하는 방법

강제적 접근통제(MAC): 접근제한을 시스템 정보 허용등급기준으로 접근제한하는 방법

 

역할기반 접근통제(RBAC): 접근제한을 주체, 객체 역할 기반으로 접근제한하는 방법

XSS:웹사이트에 악의적인 스크립트를 삽입하여 접속하는 사용자의 정보를 탈취

사이트간요청위조 CSRF :사용자의 의도와는 상관없이 공격자가 의도하는대로 사이트에 계속 요청

SYN플러딩:3-WAY-HANDSHAKE과정을 의도적으로 중단하여 서비스를 대기상태로 놓여 서비스를 불능상태로 만드는 공격, SYN패킷만 보내 점유하여 사용불가 만들기

 

UDP플러딩: UDP패킷을 만들어 임의의 포트 번호로 전송하여 자원 고갈시키는 공격

 

스머프: 출발지 주소를 공격대상의 IP로해서 ICMP 애코 패킷을 직접 브로드캐스팅하여 마비

죽음의핑(Pod): 사이즈가 큰 패킷을 공격대상서버로 전송하여 네트워크를 마비시키는 공격

 

티어드롭: IP패킷의 재조합 과정에서 잘못된 fragment offset 정보로 인해 문제발생 하는 Dos기법

 

봉크: 프로토콜의 오류 제어를 이용한 공격기법으로서 재전송 재조립이 과부하 유발

 

HTTP GET 플러딩: 과도한 get메시지를 이용하여 웹서버의 과부하를 유발

 

Slowloris: HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열 전송않고

RUDY:요청헤더의 Content-lenght를 비정상적으로 크게 설정하여 메세지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지하는 공격

 

Slow HTTP Read Dos: tcp윈도 크기와 데이터 처리율을 감소시킨 상태

 

Hulk Dos: 공격자가 공격대상 웹사이트 웹페이지 주소를 지속적으로 변경하면서 다량으로 Get요청을 발생시키는 서비스 거부 공격

hash dos 조작된 많은 수의 파라미터를 post방식으로 웹서버로 전달

버퍼오버플로우공격: 메모리에 할당된 버퍼크기를 초과하는 양의 데이터를 입력하여 프로세스 흐름을 변경시켜 악성코드를 실행시키는 공격

-스택 버퍼 오버플로우 : 스택영역에서 발생하는 오버플로우 공격

-힙 버퍼 오버플로우: 힙 영역에 할당된 버퍼 크기를 초과하는 데이터 입력하여

 

스택가드 : 메모리상에서 프로그램 복귀주소와 변수사이에 카나리 라고 하는 특정 값을 저장해 두었다가 그 값이 변경되었을 경우 오버플로 상태로 가정하여 프로그램 실행중단

 

스택쉴드 : 함수 시작 시 복귀주소를 Global RET 이라는 특수 스택에 저장해 두고 함수 종료 시 스택의 RET값을 비교해 다를 경우 오버플로 상태로 간주하여 프로그램 실행 중단

 

DNS : 도메인 네임을 IP주소로 바꾸어주는 역할을 하는 것

 

SEED : 한국인터넷진흥원(KISA)에서 개발한 블록암호화 알고리즘 128비트

키 길이에 따라 128 256으로 분류

 

ARIA : 국가정보원과 산학연합회가 개발한 블록암호화 알고리즘

 

DES : 미국 NBS 개인키 암호화 알고리즘 64비트

 

AES : 미국 표준 기술 연구소(NIST) 개인키 암호화 알고리즘 128비트

 

RSA : MIT 소인수분해

 

ECC : 타원곡선

 

ElGamal : 이산대수

워터링홀: 특정인이 자주 방문하는 사이트에 악성코드를 설치하여 감염시키는 공격

테스트시나리오: 사용자가 시스템을 사용하면서 만나게 되는 상황을 개략적으로 구성

테스트스크립트: 특정기능에 대한 상세 절차

소프트웨어테스트: 개발된 소프트웨어가 요구사항에 맞게 개발되었는지 확인 하고 결함이 있는지 찾아내는 활동

경계값분석테스트: 경계값에서 오류가 발생할 확률이 높다는 점을 이용 입력값을 경계값으로 설정

상태전이테스트: 이벤트에 의해 어떠한 상태에서 다른상태로 전이되는지 경우의수를 수행하는 테스트

결함추이분석: 추후에 어떤부분에 결함이 발생할지 추정하는기법

리팩토링: 프로그램 외부동작은 그대로두고 내부코드 개선

리팩토링목적: 프로그램을 쉽게 이해하고 쉽게 수정하며 빠르게 개발하기 위함

외계인코드: 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수가 힘든 코드

정적분석도구: 프로그램을 실행하지 않고 코드 자체만으로 결함여부를 확인하는 분석도구

페어와이즈 테스트: 테스트 데이터들값을 최소한 한번씩 조합하는 방식

회귀테스트: 소프트웨어 수정 후 새로운 코드에 결함이 없는지 일종의 반복테스트

구조기반테스트: 각 프로그램의 내부구조와 동작을 검사하는 테스트

워크스루:검토자료를 회의전 배포, 사전검토후 짧은 시간동안 회의를 작성하는 비공식 기법

인스펙션: 저작자 외의 다른 전문가가 문제에 대해서 검토해 오류를 발견하는 공식적 기법

테스트드라이버: 테스트 대상의 하위 모듈을 호출하는 더미모듈

- IaaS (인프라형 서비스 ) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스, 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행

 

- PaaS (플랫폼형 서비스) : 인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행 관리 할 수 있게 플랫폼을 제공하는 서비스

 

- SaaS ( 소프트웨어형 서비스 ) : 소프트웨어 및 관련 데이터는 중앙에 호스팅 ,사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스

선점형스케줄링: 우선순위가 높은 프로세스가 현재 프로세스를 중단하고 cpu를 점유하는 스케줄링기법

선점형 스케줄링

 

- 라운드 로빈(RR) : 같은 크기의 CPU 시간을 할당, 프로세스가 할당된 시간 내에 처리 완료를 못하면 준비 큐 리스트의 가장 뒤로 보내지고, CPU는 대기중인 다음 프로세스로 넘어감

 

- SRT : 가장 짧은 시간이 소요되는 프로셋 먼저 수행 , 남은 처리 시간이 더 짧다고 판단되는 프로세스가 생기면 언제라도 선점됨

 

- 다단계 큐 : 작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업 선점 , 각 큐는 자신만의 독자적인 스케줄링을 가짐

 

- 다단계 피드백 큐 : 입출력 위주와 CPU 위주인 프로세스의 특성에 따라 큐마다 서로 다른 CPU 시간 할당량 부여,

 

FCFS(FIFO)와 라운드 로빈 스키줄링 기법을 혼합 / 마지막 단계는 라운드 로빈 방식 처리

 

 

비 선점형 스케줄링

 

- 우선순위 : 프로세스별로 우선순위 주어짐, 우선순위에 따라 CPU 할당, 동일 순위는 FCFS

 

- 기한부 : 작업들이 명시된 시간이나 기한 내 완료되도록 계획

 

- FCFS(FIFO) : 프로세스가 대기 큐에 도착한 순서에 따라 CPU 할당

 

- SJF : 프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시 까지 자원 점유 ( 큐 작업 중 가장 짧은 작업부터 수행) / 기아 현상 발생 가능성

 

- HRN : 대기 중인 프로세스 중 현재 응답률이 가장 높은것을 선택, SJF의 약점인 기아 현상을 보완한 기법

 

우선순위 : (대기 시간 + 서비스 시간) / 서비스 시간

[출처] 정처기 실기 대비 용어 및 개념 정리 5|작성자 김도토리

네트워크: 원하는 정보를 원하는 수신자에게 정확히 전달하기 위한 기반 인프라

네트워크프로토콜: 원거리 통신장비에서 메세지를 주고받는 양식과 체계

유닉스: 범용다중사용자방식의 시분할 운영체제

클라우드컴퓨팅:인터넷을 통해 IT리소스를 제공하고 인터넷이 연결된 다른 컴퓨터로 처리하는 기술

거리-백터알고리즘: 인접라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 알고리즘

온프레미스: 외부 인터넷망이 차단된 상태에서 인트라넷망만 이용하여 개발환경을 구축하는 방식

릴리즈노트: 소프트웨어 개발 과정에서 정리된 릴리즈 정보를 고객과 공유하기 위한 문서

클리어링하우스:디지털저작권에 대한 라이선스를 발급,관리해주는 정산소

모듈화: 성능향상을 위해 프로그램을 기능단위의 모듈로 분해하는 기법

SSO: 한번의 시스템 인증으로 여러 시스템에 재인증 없이 접근이 가능한 통합로그인서비스

테스트커버리지: 테스트케이스에 의해 수행되는 테스트 범위를 측정하는 테스트 품질 측정 기준

테스트케이스: 명세 기반 테스트의 설계 산출물로 설계된 입력값, 실행조건, 기대 결과로 구성된 테스트 항목의 명세서, 소프트웨어가 제대로 동작하는지 확인하기 위한 테스트항목 명세서

 

<프로그래밍 언어>

 

불린: 조건이 참인지 거짓인지 판단하고자 할 때

C : X, C++ : bool, JAVA : boolean

C++, JAVA : 소문자, true false

파이썬 : 대문자, True False

 

문자: 문자 하나를 저장하고자 할 때

C, C++, JAVA : char

 

문자열: 나열된 여러개의 문자를 저장하고자 할 때

C : char[], C++ : string, JAVA : String

 

정수타입: 정숫값(숫자)을 저장하고자 할 때

C, C++, JAVA : int

 

부동 소수점: 소수점을 포함하는 실숫값을 저장하고자 할 때

C, C++, JAVA : float, double

float : 4바이트 6자리까지

double : 8바이트 15자리까지

 

변수: 저장하고자 하는 어떠한 값이 있을 때 그 값을 주기억장치에 기억하기 위한 공간

 

배열: 같은 타입의 변수들로 이루어진 집합

-JAVAnew 선언 : 타입[]배열명=new타입[배열_요소_개수];

 

구조체(struct): 다른 타입의 변수들로 이루어진 집합

 

포인터: 변수의 주솟값을 저장하는 공간

 

JAVA자료형: HashSet, ArrayList, LinkedList, HashMap

 

HashSet: 중복된 원소를 허용하지 않는 집합의 성질을 가짐, [ ] 대괄호

HashSet 변수명 = new HashSet();

add(), remove(), size()

 

ArrayList: 순서가 중요, 크기가 가변적으로 변하는 선형리스트 성질을 가짐, [ ] 대괄호

ArrayList 변수명 = new ArrayList();

add(), add(인덱스,), remove(인덱스), get(인덱스), size()

 

LinkedList: 데이터를 저장하는 노드가 이전 노드와 다음 노드의 상태를 알고 있는 링크드 리스트 자료구조를 구현한 클래스

 

HashMap: 키와 값으로 구성 객체를 저장하는 구조로 되어 있는 자료구조, { } 중괄호

HashMap 변수명 = new HashMap();

put(,), remove(), get(), size()

 

파이썬자료형: 세트형, 리스트형, 튜플형, 딕셔너리형

 

세트형=HashSet, { } 중괄호

add(), update([1, 2,], remove()

 

리스트형=ArrayList, [ ] 대괄호

append(), insert(인덱스,), remove()

리스트슬라이싱: 여러개의 데이터에 동시에 접근하는 기법

리스트명[시작 : 종료 : 스텝]

 

튜플형: 초기에 선언된 값에서 값을 생성, 삭제, 수정이 불가능한 형태의 자료구조, ( ) 소괄호

 

딕셔너리형=HashMap, { } 중괄호

 

식별자: 영문 대/, 숫자, 밑줄, 달러 사용가능 / 그 외에 불가능

첫 자리는 숫자 사용 불가, 공백 사용 불가, 예약어 사용 불가, 의미 있는 단어 사용불가

 

시프트연산자: 비트를 이동시키는 연산자

<< - 왼쪽값을 오른쪽 값만큼 비트를 왼쪽으로 이동

ex) 5<<2 = 101<<2 = 10100

>> - 왼쪽값을 오른쪽 값만큼 부호 비트를 채우면서 오른쪽으로 이동

ex) 5>>2 = 101>>2 = 001

 

&& : 두 개 모두 참이면 참, 아니면 거짓

& : 두 개 모두 참이면 참, 아니면 거짓

¦¦ : 두 개 중 하나라도 참이면 참, 아니면 거짓

¦ : 두 개 중 하나라도 참이면 참, 아니면 거짓

^ : 두 개가 다르면 참, 같으면 거짓

~ : 모든 값을 반대로 바꾸는 반전 기능

/= : 왼쪽을 오른쪽으로 나눈 후 몫을 왼쪽에 대입

%= : 왼쪽을 오른쪽으로 나눈 후 나머지를 왼쪽에 대입

 

삼항연산자: 조건 ? 참일 때 : 거짓일때;

 

출력:

C언어 : printf 개행x, printf(‘\n’) 개행o

C++ : std::cout<< 개행x, std::cout<< endl 개행o

자바 : system.out.printf 개행x, primt 개행x, println 개행o, print(‘\n’) 개행o

파이썬 : print(‘ ’ , end=’ ‘) 개행x, print 개행o

 

입력:

C언어 : Scanf

C++ : std::cin>>

자바 : Scanner , new 선언하기

파이썬 : input , 정수형은 eval

 

%c 문자(char), %s 문자열(string), %d 정수 10진수, %x 16진수, %o 8진수, %f 실수

문자 = 작은따옴표 ‘ ’, 문자열 = 큰따옴표 “ ” 그러나 파이썬은 구분안함

 

IF: 조건이 참인지 거짓인지에 따라 경로를 선택하는 명령문

C, C++, 자바 : if else if else

파이썬 : if elif else

절차형SQL : if elsif - else

 

While: 조건이 참인 동안에 해당 분기를 반복해서 실행하는 명령문

do while 무조건 1번은 명령문 돌리고 조건보기

 

Switch: 여러 개의 선택경로중 하나를 취하고자 할 때 사용, 파이썬은 없음

break 만나면 스위치문 탈출

continue 만나면 밑으로 못가고 다시 올라가기(while문 끝날 때 까지 나머지 출력)

 

For: 초기값, 최종값, 증감값 지정하여 반복하는 명령어

파이썬은 in range

 

열거체: 서로 연관된 정수형 상수들의 집합

enum

자바 : 멤버에 값이 0부터 차례대로 할당

파이썬 : 멤버에 값들을 지정해야함

구조체: 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의자료형

struct 자바 파이썬에는 지원하지 않는다

 

사용자 정의함수: 사용자가 직접 새로운 함수를 정의하여 사용하는 방법

C, C++, JAVA : return

파이썬 : def return

 

재귀함수: 함수 자신이 자신을 부르는 함수

C, C++, JAVA : return

파이썬 : def return

 

함수는 return을 만나면 끝임 대신 return이 출력을 뜻하지는 않음

 

클래스: 객체지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀

C, C++, JAVA : private public

파이썬 : def self

 

this 포인터: 현재 객체를 가리키는 포인터

C++ : this -> 변수명, 함수명

JAVA : this.변수명, 함수

self: 현재객체를 가리키는 포인터

파이썬 : self.변수명

 

클래스를 일반변수로 선언한 경우 선언함과 동시에 생성자 호출, 일반변수로 선언한 곳에서 함수가 종료되면 소멸자 호출

C++ : new delete

JAVA : new finalize

파이썬 : del

 

생성자: 해당 클래스이 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드

C++, JAVA : 클래스명과 동일한 메서드명

파이썬 : 클래스명 def _ _ init _ _(self, 변수명);

 

소멸자: 객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메서드

C++ : ~ 사용 클래스명 앞에

JAVA : finalize

파이썬 : def _ _ del _ _(self, 변수명);

 

상속: 어떤 객체가 있을 때 그 객체의 변수와 메서드를 다른 객체가 물려받는 기능

JAVA : extends new

 

오버로딩: 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의함

오버라이딩: 하위 클래스에서 상위 클래스 메서드를 재정의 할 수 있는 기능

C++ : virtual

JAVA : extends

파이썬 : def self

 

포인터 변수 객체 생성시

A*a=new B();

virtual 사용 virtual 미사용

a->fn() b호출 a->fn() a 호출

B*a=new B();

a->fn() b호출 a->fn() b호출

 

일반 변수 객체 생성시

A.a

virtual 사용 virtual 미사용

a.fn() a호출 a.fn() a호출

B.a

a.fn() b호출 a.fn() b호출

 

상위클래스 접근:

C++ : :: 콜론 두 개 A::fan()

JAVA : super. super.fn()

파이썬 : super() super().fn()

 

추상클래스: 미구현 추상메서드를 한 개 이상 가지며 자식 클래스에서 해당 추상 메서드를 반드시 구현하도록 강제하는 기능

C++ : virtual

JAVA : abstract

파이썬 : def self pass

 

인터페이스: 자바의 다형성을 극대화 하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법

JAVA : interface implements

 

명령형 언어: 명령어들이 순차적으로 실행, 절차형 언어 / C, cobol

객체지형언어: 객체간의 메시지 통신을 이용하여 / JAVA, C++

함수형언어: 수학적 수식과같은 함수로 / LISP

논리형언어: 논리문장을 이용하여 / 프롤로그

 

컴파일러: 고급언어(사람이 알기 쉬운)를 기계어(컴퓨터가 알기 쉬운)로 번역하는 프로그램

 

인터프리터: 프로그램 문장을 하나씩 번역하고 실행할 수 있도록 하는 프로그램

알골: 알고리즘 연구 개발에 이용하기 위한 목적 최초의 재귀호출

C언어: 유닉스 운영체제 사용하기위한

베이직: 교육용으로 개발되어 서로다른종류 소스코드 호환불가

포트란: 과학계산에서 필수적인 백터 행렬 기능이 내장된 전문언어

C++: C문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 기능 추가

C#: 마이크로소프트에서 개발, C++JAVA와 비슷

JAVA: 썬 마이크로 시스템즈가 개발, 바이트코드라는 특수한 바이너리 형태로 변환 JVM

델파이: 파스칼 문법에 여러 기능이 추가

PHP: 동적 웹 페이지를 만들기 위해 설계됨

: 인터프리터 방식의 프로그래밍 언어

파이썬: 다양한 플랫폼에서 쓸 수 있음

자바스크립트: 객체기반의 스크립트 프로그래밍 언어

하스켈: 패턴 맞춤 커링 조건제시법 기능존재

LISP: 수학 표기법을 나타내기 위해

 

객체지향 프로그래밍의 구성요소 : 객체, 클래스, 메시지

 

객체의 구성요소 : 개체, 속성, 메서드

 

라이브러리: 필요할 때 찾아서 쓸 수 있도록 모듈화 되어 제공되는 프로그램

도움말, 설치파일, 샘플코드

 

표준라이브러리: 프로그래밍 언어가 기본적으로 가지고있는 라이브러리

외부라이브러리; 표준 라이브러리와 달리 별로의 파일을 설치

 

고가용성 (HA)

서버와 네트워크 프로그램 등의 정보 시스템이 시스템의 장애에 대응하여 상당히 오랜기간 동안 지속적으로 정상 운영이 가능한 성질