단답형에 나올만한 용어들을 정리해봤다.
암기 학습용 PDF 파일.
용어부분을 접어서 뜻이 안 보이게 해서 뜻을 되새겨 볼 수 있고, 뜻을 보면서 용어를 떠올려볼 수 있다.
깃허브 위키에 정리했다.
누워서 자기 전이나 아침에, 지하철 같은 곳에서 쉽게 암기할 수 있다.
출제 기준에 나온 용어들
용어 |
뜻 |
주제 |
DBMS Database Management System 데이터베이스 관리 시스템 |
다수의 사용자들이 데이터베이스 안의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합. |
소프트웨어 설계 요구사항 확인 |
*UML Unified Modeling Language 통합 모델링 언어 |
소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어. 객체 지향 프로그래밍 소프트웨어 집약 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화할 때 사용한다. |
소프트웨어 설계 요구사항 확인 |
**애자일 Agile |
계획을 통해서 주도해 나갔던 과거의 방법론과는 다르게 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 방식. 폭포수 모델 또는 나선 모형과 구별되는 가장 큰 차이점은 문서를 통한 개발 방법이 아니라, 실질적인 코딩을 통한 방법론이라는 점. |
소프트웨어 설계 요구사항 확인 |
UI User Interface 사용자 인터페이스 |
사람과 사물 또는 시스템, 컴퓨터 프로그램 등 사이에서 의사소통을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. |
소프트웨어 설계 화면설계 |
CLI Command-line Interface 명령 줄 인터페이스 |
가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력하며, 컴퓨터로부터의 출력 역시 문자열의 형태로 주어진다. |
소프트웨어 설계 화면설계 |
GUI Graphic User Interface 그래픽 사용자 인터페이스 |
입출력 등의 기능을 알기 쉬운 아이콘 따위로 그래픽으로 나타내어, 그래픽을 통해 사용자와 컴퓨터가 상호 작용하는 방식. 마우스, 펜 등. |
소프트웨어 설계 화면설계 |
NUI Natural User Interface 자연 사용자 인터페이스 |
손짓, 몸짓, 터치, 음성 등을 통해 사용자와 컴퓨터가 상호 작용하는 방식. |
소프트웨어 설계 화면설계 |
감성공학 |
인체의 특징과 감성을 제품설계에 최대한 반영시키는 기술. 인간이 가지고 있는 소망으로서의 이미지나 감성을 구체적인 제품설계로 실현해내는 공학적인 접근방법 |
소프트웨어 설계 화면설계 |
객체 지향 프로그래밍 OOP Ojbect-Orientied Programming |
컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것. 각 객체는 메시지를 주고 받고 데이터를 처리. 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용. 예) 파이썬, C++, 루비, 자바 |
소프트웨어 설계 애플리케이션 설계 |
디자인패턴 |
소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책. 프로그래머가 애플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화된 관행. |
소프트웨어 설계 애플리케이션 설계 |
요구공학 |
시스템 요구사항 문서를 생성, 검증, 관리하기 위하여 수행되는 구조화된 활동의 집합 |
소프트웨어 설계 인터페이스 설계 |
미들웨어 |
컴퓨터 제작회사가 사용자의 요구대로 만들어 제공하는 프로그램. 운영체제와 응용 소프트웨어 중간에서 조정과 중개 역할 수행하는 소프트웨어. 예)웹 애플리케이션 서버(톰캣, 레진 등) |
소프트웨어 설계 인터페이스 설계 |
웹 애플리케이션 서버 WAS(Web Application Server) |
웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크. 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별. |
소프트웨어 설계 인터페이스 설계 |
IDE (Integrated Development Environment) |
코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어. 예)이클립스, 비주얼 스튜디오 |
소프트웨어 개발 통합 구현 |
*형상관리 Software Configuration Managemnet |
소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것. 대표적 도구로는 git, svn 등 |
소프트웨어 개발 통합 구현 |
DRM (Digital Rights Management) 디지털 권리 관리 |
출판사 또는 저작권자가 그들이 배포한 디지털 자료나 하드웨어의 사용을 제어하고 이를 의도한 용도로만 사용하도록 제한하는데 사용되는 모든 기술들을 지칭하는 용어. |
소프트웨어 개발 제품소프트웨어 패키징 |
DML (Data Manipulation Language) 데이터 조작 언어 |
데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색, 등록, 삭제, 갱신을 위한 데이터베이스 언어. 종류: SELECT, INSERT, UPDATE, DELETE |
데이터베이스 구축 SQL 응용 |
DCL (Data Control Language) 데이터 제어 언어 |
데이터베이스에서 데이터에 대한 엑세스를 제어하기 위한 데이터베이스 언어. 권한 부여GRANT와 박탈REVOKE. 설정할 수 있는 권한은 연결CONNECT, 질의SELECT, 삽입INSERT, 갱신UPDATE, 삭제DELETE 등. |
데이터베이스 구축 SQL 응용 |
DDL (Data Definition Language) 데이터 정의 언어 |
데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터를 정의하는 컴퓨터 언어. SQL에 의해 정의되는 관계형 데이터베이스의 구조는 행, 열, 관계, 인데스 파일 위치 등. 구문은 생성CREATE, 제거DROP, 변경ALTER, 관계(테이블)에서 데이터를 제거TRUNCATE. |
데이터베이스 구축 SQL 활용 |
관계대수 |
관계형 데이터베이스의 관계 모델에서, 집합론과 1차 논리에 기반하여 관계로 표현된 데이터를 취급하는 대수적인 연산 체계. 기본연산 – select, project, union, difference, cartesian product 유도된 연산 – intersect, antijoin, outerjoin, natural join, semijoin, division |
데이터베이스 구축 논리 데이터베이스 설계 |
정규화 |
관계형 데이터베이스 설계에서 중복을 최소화하여 데이터를 구조화하는 프로세스 |
데이터베이스 구축 데이터베이스 반정규화 |
*반정규화 |
정규화된 개체(엔티티), 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해서 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법. |
데이터베이스 구축 물리 데이터베이스 모델링 |
CRUD |
컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성) Read(읽기) Update(갱신) Delete(삭제)를 묶어서 일컫는 말. |
데이터베이스 구축 물리데이터 모델 품질검토 |
ETL (Extraction 추출 Transformation 변환 Loading 적재) |
데이터베이스 이용의 한 과정. 동일 기종 또는 타기종의 데이터소스로부터 데이터를 추출. 조회 또는 분석을 목적으로 적절한 포맷이나 구조로 데이터를 저장하기 위해 데이터를 변환. 최종 대상(데이터베이스)으로 변환 데이터를 적재. |
데이터베이스 구축 데이터 전환 기술 |
*결합도 coupling |
어떤 모듈이 다른 모듈에 의존하는 정도를 나타내는 것. 낮을수록 좋음. |
프로그래밍 언어 활용 공통 모듈 구현 |
*응집도 cohesion |
한 모듈이 해당 기능을 수행하기 위해 뭉쳐 있는지를 나타내는 정도. 높을수록 좋음. |
프로그래밍 언어 활용 공통 모듈 구현 |
API Application Programming Interface |
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공 |
프로그래밍 언어 활용 서버 프로그램 구현 |
절차적 프로그래밍 언어 |
프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 패러다임. 프로시저는 루틴, 하위프로그램, 서브루틴, 매서드, 함수라고도 하는데, 간단히 말해 수행되어야 할 연속적인 계산과정을 포함. 복잡도가 지나치지 않고 유지보수가 쉬움. 예) C, 포트란, 베이직 등 |
프로그래밍 언어 활용 언어특성 활용 |
스크립트 언어 |
응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어. 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해줌. 예) 자바스크립트, 파이썬, PHP |
프로그래밍 언어 활용 언어특성 활용 |
선언형 언어 |
해법을 정의하기보다는 문제를 설명하는 고급 언어. 예를 들어 HTML은 순서대로 일어나는 사건이 없기 때문에 선언형. |
프로그래밍 언어 활용 언어특성 활용 |
프로토타입 |
개발 접근법의 하나로서 개발초기에 시스템의 모형을 간단히 만들어 사용자에게 보여 주고, 사용자가 정보시스템을 직접 사용해 보게 함으로써 기능의 추가, 변경 및 삭제 등을 요구하면 이를 즉각 반영하여 정보시스템 설계를 다시 하고 재구축하는 과정을 사용자가 만족할 때까지 반복해 나가면서 시스템을 개선시켜 나가는 방식 |
프로그래밍 언어 활용 라이브러리 활용 |
네트워크 7계층 |
OSI 모형(Open Systems Interconnection Reference Model)은 국제표준화기구(ISO)에서 개발한 모델 |
프로그래밍 언어 활용 |
계층1. 물리 계층 Physical layer |
네트워크의 기본 네트워크 하드웨어 전송 기술을 이룬다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층 (단위: 비트Bit) |
프로그래밍 언어 활용 |
계층2. 데이터 링크 계층 Data link layer |
포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공. 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻. 예)이더넷 (단위: 프레임Frame) |
프로그래밍 언어 활용 |
계층3. 네트워크 계층 Network layer |
여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공. 라우터가 이 계층에서 동작하고 이 계층에서 동작하는 스위치도 있다. 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다. (단위: 패킷Packet) |
프로그래밍 언어 활용 |
계층4. 전송 계층 Transport layer |
사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다. 시퀀스 넘버 기반의 오류 제어 방식을 사용 예)TCP (단위: 세그먼트Segment) |
프로그래밍 언어 활용 |
계층5: 세션 계층 Session layer |
양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다. (단위: 데이터Data 또는 메시지Message) |
프로그래밍 언어 활용 |
계층6: 표현 계층 Presentation layer |
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다. 예를 들면, EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 표현 계층의 몫. (단위: 데이터Data) |
프로그래밍 언어 활용 |
계층7: 응용 계층 Application layer |
응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행 예)가상 터미널(텔넷) (단위: 데이터Data) |
프로그래밍 언어 활용 |
IP |
송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당. 정보는 패킷 또는 데이터그램이라고 하는 덩어리로 나뉘어 전송. |
프로그래밍 언어 활용 네트워크 기초 활용 |
TCP 전송 제어 프로토콜 (Transmission Control Protocol) |
근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러없이 교환할 수 있게 한다. 이 규약은 웹 브라우저들이 월드 와이드 웹에서 서버에 연결할 때 사용되며, 이메일 전송이나 파일 전송에도 사용된다. |
프로그래밍 언어 활용 네트워크 기초 활용 |
UDP 사용자 데이터그램 프로토콜 (User Datagram Protocol) |
데이터그램으로 알려진 단문 메시지를 교환하기 위해서 사용. 전송 방식은 너무 단순해서 서비스의 신뢰성이 낮고, 데이터그램 도착 순서가 바뀌거나, 중복되거나, 심지어는 통보 없이 누락시키기도 한다. 일반적으로 오류의 검사와 수정이 필요 없는 애플리케이션에서 수행할 것으로 가정 이 규약을 사용하는 네트워크 애플리케이션에는 도메인 이름 서비스 (DNS), IPTV, 음성 인터넷 프로토콜 (VoIP), TFTP, IP 터널, 그리고 많은 온라인 게임 등 |
프로그래밍 언어 활용 네트워크 기초 활용 |
용어 설명에 규약이 들어간 경우에는 대부분 용어가 Protocol, P로 끝남. 예) IP, TCP, UDP
용어 설명에 언어가 들어간 경우에는 대부분 용어가 Language, L로 끝남. 예) XML, HTML
이전 시험에 나온 용어들
용어 |
뜻 |
직관성, 유효성, 학습성, 유연성 |
UI 설계원칙 4가지 |
직관성 |
누구나 쉽게 이해하고 쉽게 사용할 수 있어야 한다. |
유효성 |
정확하고 완벽하게 사용자의 목표가 달성될 수 있어야 한다. |
학습성 |
초보자와 숙련자 모두가 쉽게 배우고 사용할 수 있어야 한다. |
유연성 |
사용자의 반응을 최대한 포용하고 실수를 방지할 수 있어야 한다. |
기밀성, 무결성, 가용성 |
소프트웨어 보안 3요소 |
기밀성 Confidentiality |
인가되지 않은 개인이나 시스템에 의한 접근과 이에 따른 정보 공개 노출을 막는 것. |
무결성 Integrity |
정당한 방법에 의하지 않고는 데이터가 변경될 수 없음. 데이터의 정확성과 완전성을 보장하고 내용이 고의 또는 악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 것. |
가용성 Availability |
권한을 가진 사용자가 서비스를 필요로 할 때 서비스의 연속성을 보장하는 것. |
크로스사이트 스크립트 XSS (cross-site scripting) |
웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다. 이 취약점은 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다. |
SQL 삽입 (SQL Injection) |
응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법 |
DOS 공격 (denial-of-service attack) |
시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격. |
분산 서비스 거부 공격(Distributed DoS) 디디오에스/디도스(DDoS) |
여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격을 하는 방법 |
IPsec (Internet Protocol Security) |
통신 세션의 각 IP패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜(IP) 통신을 위한 인터넷 프로토콜 스위트이다. 이 보안은 통신 세션의 개별 IP 패킷을 인증하고 암호화함으로써 처리된다. |
SOAP (Simple Object Access Protocol) |
일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜. 웹 서비스에서 기본적인 메시지를 전달하는 기반. 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 됨. XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)과 상호 중립성(interaction neutrality)의 개념을 가져옴. |
HTML 하이퍼텍스트 마크업 언어 (HyperText Markup Language) |
웹 페이지를 위한 지배적인 마크업 언어. 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공. 이미지와 객체를 내장하고 대화형 양식을 생성하는 데 사용될 수 있음. 웹 페이지 콘텐츠 안의 꺾쇠 괄호에 둘러싸인 "태그"로 되어있는 요소 형태로 작성. 웹 브라우저와 같은 처리 장치의 행동에 영향을 주는 자바스크립트와 본문과 그 밖의 항목의 외관과 배치를 정의하는 CSS 같은 스크립트를 포함하거나 불러올 수 있음. |
XML (eXtensible Markup Language) |
W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어 |
JSON (JavaScript Object Notation) |
속성-값 쌍( attribute–value pairs and array data types (or any other serializable value)) 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷. 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷. |
Ajax (Asynchronous JavaScript and XML) |
비동기적인 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법. 표현 정보를 위한 HTML (또는 XHTML) 과 CSS, 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM, 자바스크립트, 웹 서버와 비동기적으로 데이터를 교환하고 조작하기 위한 XML, XSLT, XMLHttpRequest(XML/XSLT 대신 미리 정의된 HTML이나 일반 텍스트, JSON, JSON-RPC를 이용할 수 있음). |
안드로이드 Android |
휴대 전화를 비롯한 휴대용 장치를 위한 운영 체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용 프로그램(웹 브라우저, 이메일 클라이언트, 단문 메시지 서비스(SMS), MMS 등)을 포함하고 있는 소프트웨어 스택이자 모바일 운영 체제. 리눅스 커널 위에서 동작하며, 자바와 코틀린으로 앱을 만들어 동작. |
리눅스 Linux |
1991년 9월 17일 리누스 토르발스가 처음 출시한 운영 체제 커널에 기반을 둔 오픈 소스 유닉스 계열 운영 체제 계열 |
데이터 마이닝 Data Mining |
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는 과정이다. |
폭포수 모델 waterfall model |
순차적인 소프트웨어 개발 프로세스(소프트웨어를 만들기 위한 프로세스)로, 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다. 이 폭포수 모델의 흐름은 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계, 소프트웨어 구현, 소프트웨어 시험, 소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계에까지 이른다. |
나선형 모델 Spiral model |
매번 반복을 하기전에 위험요소를 알아내고 사전에 제거하는 데에 있다. 나선 모형에서는 매번 다음 단계의 반복을 진행 시킬 때 마다, 기능적, 성능적 측면에서 가장 위험요소가 높은 부분을 먼저 진행하고 없애 나간다. 가장 위험요소가 큰 부분 혹은 버그가 발생하기 쉬운 측면을 절대로 개발의 마지막 단계까지 미루지 않는다는 것이 핵심. |
스니핑 Sniffing |
네트워크나 네트워크 일부를 통해 전달되는 트래픽을 가로채 네트워크 통신 내용을 몰래 도청하는 행위. 패킷 가로채기라고도 함. |
구문, 의미, 타이밍 |
프로토콜 기본요소 |
구문 Syntax |
데이터를 어떻게 구성할 것인지에 대한 형식, 구체적 코딩 방법, 신호 레벨 등에 대한 형식 규정 |
의미 Semantic |
데이터에 대하여 구체적으로 어떻게 제어할 것인지에 대한 처리 방법, 에러 발생시 처리에 대한 정보 |
타이밍 Timing |
통신이 이루어질 때 데이터를 주고 받을 속도에 대한 조절, 동시에 통신을 해야할 경우 순서 관리 |
Java Virtual Machine JVM |
자바 바이트코드를 실행할 수 있는 주체. 자바 바이트코드는 플랫폼에 독립적. 표준 자바 API까지 동일한 동작을 하도록 구현한 상태에서는 이론적으로 모든 자바 프로그램은 CPU나 운영 체제의 종류와 무관하게 동일하게 동작할 것을 보장. |
트리거 Trigger |
테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미. 데이터 조작 언어(DML)의 데이터 상태의 관리를 자동화하는 데 사용. 트리거를 사용하여 데이터 작업 제한, 작업 기록, 변경 작업 감사 등을 할 수 있다. |
ACID(원자성, 일관성, 고립성, 지속성) |
데이터베이스 트랜잭션 특성 4가지 |
원자성(Atomicity) |
트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것 |
일관성(Consistency) |
트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미. 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단. |
격리성 또는 고립성(Isolation) |
트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미 |
지속성(Durability) |
성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미. |
랜섬웨어Ransomware |
컴퓨터 시스템을 감염시켜 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어의 한 종류 |
*목표 복구 지점 RPO(Recovery Point Objectives) |
정보 시스템 운영 중 장애가 발생하여, 정보의 유실로 더 이상의 서비스를 할 수 없을 때, 어느 시점으로 되돌리거나 정보의 복구를 할지 결정하는 지표. |
*목표 복구 시간 RTO(Recovery Time Objectives) |
정보 시스템 장애시 시스템을 원상태로 복원하는데 소요되는 시간. |
목표 복구 레벨 RLO(Recovery Level Objectives) |
정보 시스템 장애시 어느 수준까지 복구할지 결정하는 지표. 정보 시스템 구성 요소는 크게 운영체제, 파일 데이터, 데이터베이스, 애플리케이션. 전에는 파일 데이터와 데이터베이스만을 보호해 복구하는데 중점을 둠. 현재 운영체제와 애플리케이션까지 다양한 수준의 복원이 가능. |
검증 테스트 |
개발자의 시각에서 제품의 생산 과정을 테스트하는 것. 제품이 명세서대로 완성되었는지 테스트. |
확인 테스트 |
사용자의 시각에서 생산된 제품의 결과를 테스트. 사용자의 요구대로 제품이 완성되었는지 정상작동하는지 테스트. |
살충제 패러독스 Pesticide Paradox |
동일한 테스트 케이스로 동일한 테스트를 반복 수행한다면, 나중에는 더 이상 새로운 결함을 찾아내지 못함. |
오류 – 부재의 궤변 Absense of error fallacy |
사용자의 요구를 충족시키지 못한다면, 결함을 모두 제거했더라도 품질이 높다고 볼 수 없음. |
랜드 어택(Land Attack) |
네트워크 패킷의 출발지 IP를 변조해 공격 대상의 자원을 소모시키는 공격. 공격 대상 컴퓨터의 실행속도를 느리게 하거나 동작을 마비시켜 서비스 거부 상태에 빠지게 만든다. |
스토리보드 |
화면 설계를 위해 정책, 프로세스, 콘텐츠의 구성, 와이어 프레임, 기능에 대한 정의, 데이터베이스 연동 등 구축하는 서비스를 위한 대부분 정보가 수록된 문서 |
MD5 |
128비트 암호화 해시 함수이다. RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용된다. 1991년에 로널드 라이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안 |
RSA 암호 |
공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘. 전자서명 기능은 인증을 요구하는 전자 상거래 등에 광범위한 활용을 가능하게 함. 1978년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며, 이름은 이들 3명의 이름 앞글자를 딴 것 |
릴리스 노트(release note) |
소프트웨어 제품과 함께 배포되는 문서들을 말하며, 제품이 개발 중이거나 테스트 상태(예:베타 릴리스)일 때 추가되기도 함. |
헤더 |
릴리스 노트 작성항목 중 문서 이름, 제품 이름, 릴리스 날짜, 참고 날짜, 노트 버전 등의 정보를 적는 항목. |
처리량, 응답시간, 경과시간, 자원사용률 |
애플리케이션 성능 측정 지표 |
처리량 |
애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션의 수 |
응답시간 |
사용자 입력이 끝난 뒤, 애플리케이션의 응답출력이 게시될 때까지의 시간 |
경과시간 |
애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 뒤 결과의 출력이 완료될 때까지의 시간 |
자원사용률 |
애플리케이션이 트랜젝션을 처리하는 동안 CPU, 메모리, 네트워크 사용량 |
모델-뷰-컨트롤러(Model–View–Controller, MVC) |
소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴. 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. |
기본 키(primary key) |
주 키 또는 프라이머리 키라고 하며, 관계형 데이터베이스에서 조(레코드)의 식별자로 이용하기에 가장 적합한 것을 관계 (테이블)마다 단 한 설계자에 의해 선택, 정의된 후보 키. |
외래 키(외부 키, Foreign Key) |
한 테이블의 필드(attribute) 중 다른 테이블의 행(row)을 식별할 수 있는 키 |
Git |
컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템. 2005년에 리눅스 커널 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 리누스 토르발스가 처음 개발한 것 |
이상 현상(abnomally) |
데이터베이스 테이블에서 일부 속성들의 중복으로 인해 중복 데이터가 발생하고 중복으로 인해 테이블 조작 시 문제가 발생하는 현상. |
삽입 이상 |
데이터 삽입할 때 의도하지 않은 데이터도 함께 삽입되는 현상 |
갱신 이상 |
데이터 갱신시 불필요한 중복을 포함하여 갱신되는 현상 |
삭제 이상 |
연쇄삭제에 의한 정보 손실이 발생하는 현상 |
온라인 분석 처리(Online Analytical Processing, OLAP) |
의사결정 지원 시스템 가운데 대표적인 예로, 사용자가 동일한 데이터를 여러 기준을 이용하는 다양한 방식으로 바라보면서 다차원 데이터 분석을 할 수 있도록 도와줌. 최종 사용자가 다차원 정보에 직접 접근하여 대화식으로 정보를 분석하고 의사결정에 활용하는 과정에서 등장. 사용자는 온라인상에서 직접 데이터에 접근하며, 대화식으로 정보를 분석하므로 사용자가 기업의 전반적인 상황을 이해할 수 있게 하고 의사결정을 지원하는 데 그 목적이 있다고 할 수 있음. |
시멘틱 웹 Sementic Web |
'의미론적인 웹'이라는 뜻으로,현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 화일, 서비스 등)에 대한 정보와 자원 사이의 관계-의미 정보(Semanteme)를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술 |
방화벽 Firewall |
미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템. 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(예: 인터넷) 간의 장벽을 구성. 서로 다른 네트워크를 지나는 데이터를 허용하거나 거부하거나 검열, 수정하는 하드웨어나 소프트웨어 장치. |
쓰레기 수집(garbage collection 가비지 컬렉션, GC) |
메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능. |
스텁(stub) |
다른 프로그래밍 기능을 대리하는 코드. 기존 코드(예를 들어 원격 머신의 프로시저)를 흉내내거나 아직 개발되지 않은 코드를 임시로 대치하는 역할을 수행. 일반 소프트웨어 개발과 테스팅을 포함하여 특히 이식과 분산 컴퓨팅에 유용. |
은행원 알고리즘 (Banker's algorithm) |
교착 상태 회피하기 위한 알고리즘. 안정상태에 있으면 자원을 할당하고 불안정상태라면 다른 프로세스들이 자원 해제할 때까지 대기. |
최단 경로 우선 프로토콜(Open Shortest Path First, OSPF) |
인터넷 프로토콜(IP) 네트워크를 위한 링크 스테이트 라우팅 프로토콜. 링크 스테이트 라우팅 알고리즘을 사용하며, 하나의 자율 시스템(AS)에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달. |
델파이 기법(Delphi method) |
전문가의 경험적 지식을 통한 문제해결 및 미래예측을 위한 기법. 전문가 합의법 |
컴퓨터 포렌식(computer forensics, computer forensic science) |
전자적 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업. 과거에 얻을 수 없었던 증거나 단서들을 제공해 준다는 점에서 획기적인 방법. 컴퓨터 포렌식은 사이버 해킹 공격, 사이버 범죄시 범죄자들이 컴퓨터, 이메일, IT 기기, 스마트폰 등의 운영체제, 애플리케이션, 메모리 등에 다양한 전자적 증거를 남기게 되면서, 사이버 범죄자 추적 및 조사에 핵심적인 요소. |
SRTF 스케줄링, 최소 잔류 시간 우선 스케줄링 (shortest remaining time, shortest remaining time first) |
최소 시간이 소요되는 프로세스를 먼저 수행하는 스케줄링 알고리즘. |
스프링 프레임워크 Spring Framework |
자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공. 대한민국 전자정부 표준프레임워크의 기반 기술. |
에이징Aging |
프로세스가 자원을 기다리고 있는 시간에 비례해 우선순위를 부여해서 무기한 대기하는 문제를 방지하는 기법 |
팩키져Packager |
DRM의 구성요소 중 콘텐츠를 암호화해서 메타데이터 정보와 함께 배포 가능한 단위로 묶는 기능 |
빅데이터 |
기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술. 즉, 기존의 데이터 베이스로는 처리하기 어려울 정도로 방대한 양의 데이터를 의미. |
WSDL(Web Services Description Language) |
웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술. 네트워크의 엔드포인트나 포트의 총집합으로서의 서비스를 기술한다. 사양은 XML 형식을 제공. |
해시 함수(hash function) |
임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수. 용도 중 하나는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용. 종류로는 MD5, SHA계열, CRC32 등 |
솔트(salt) |
단반향 해시 함수에서 다이제스트를 생성할 때 추가되는 바이트 단위의 임의의 문자열. |
제로 데이 공격 Zero-Day Attack |
컴퓨터 소프트웨어의 취약점을 공격하는 기술적 위협으로, 해당 취약점에 대한 패치가 나오지 않은 시점에서 이루어지는 공격. |
QoS(Quality of Service) |
네트워크에서 다른 응용 프로그램, 사용자, 데이터 흐름 등에 우선 순위를 정하여, 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력. 패킷 교환 네트워크에서 인터넷이 특별히 개별 흐름(flow) 또는 하나의 인터넷 연결에 대해서 더 우선권을 부여하지 않기 때문에 발생하는 문제. 우선권이 없다는 것은 곧 모든 인터넷 연결이 같은 중요도를 가지고 서비스를 받는다는 것을 뜻. 이를테면, 50Mbps 공유 링크가 있을 때, 10 명이 사용해서 인터넷 연결이 동시에 10 개가 생성되면, 각각은 5Mbps의 속도를 이용하게 됨. |
블록체인(block chain, blockchain) |
관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장 환경에 저장하여 누구라도 임의로 수정할 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 원장 관리 기술. 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안. 비트코인을 비롯한 대부분의 암호화폐 거래에 사용. |
가상사설망, VPN(Virtual Private Network) |
공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망. 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달 |
업무 연속성 계획(Business Continuity Planning, BCP) |
기업이 재해로 타격을 입은 뒤 업무 운명을 어떻게 복구 재개하는지에 대한 계획. 재해 복구(DR)를 포함하는 더 넓은 개념. 기업의 핵심 비즈니스 프로세스를 식별하고 핵심 업무를 처리하기 위한 대응 행동계획을 결정. |
재해 복구 (Disaster Recovery, DR) |
자연재해나 인위적인 재해가 일어나면 특정 단체에 중요한 기술 인프라를 복구하거나 지속할 목적으로 준비하는 데 대한 과정, 정책, 절차를 가리킨다. 재해 복구는 업무 연속성 계획(BCP)의 하부 분야 |
동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, DHCP) |
호스트 IP 구성 관리를 단순화하는 IP 표준이다. IP 주소 및 관련된 기타 구성 세부 정보를 네트워크의 클라이언트에게 동적으로 할당하는 방법을 제공 |
셸shell |
운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램. 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙음. 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류. 명령 줄 경우 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공하는 반면에, 그래픽 경우 그래픽 사용자 인터페이스(GUI)를 제공. |
보안 소켓 레이어 Secure Sockets Layer, SSL |
웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결을 보안을 유지하는 표준 기술. |
전송 계층 보안(Transport Layer Security, TLS) |
가장 최신 기술로 더 강력한 버전의 SSL. 이름이 SSL에서 TLS로 바뀜. SSL이 더 일반적으로 사용되는 용어이기에, 여전히 보안 인증서는 SSL이라 불림 |
하이퍼 텍스트 프로토콜 보안(Hyper Text Protocol Secure, HTTPS) |
웹사이트를 SSL/TLS 인증서로 보안하는 경우 URL 창에 표시 |
지능형 지속 공격(Advanced Persistent Threat, APT) |
잠행적이고 지속적인 컴퓨터 해킹 프로세스들의 집합으로, 특정 실체를 목표로 하는 사람이나 사람들에 의해 종종 지휘. 보통 개인 단체, 국가, 또는 사업체나 정치 단체를 표적으로 삼음. 이 공격은 오랜 시간 동안 상당한 정도의 은밀함이 요구. "고급"(advanced) 프로세스는 시스템 내의 취약점을 공격하기 위해 악성 소프트웨어를 이용한 복잡한 기법을 나타냄. "지속"(persistent) 프로세스는 외부 C&C(커맨드 앤드 컨트롤) 시스템이 지속적으로 특정 대상의 데이터를 감시하고 추출. "위협"(threat) 프로세스는 공격을 지휘할 때 인간이 동반. |
교착 상태(deadlock) |
두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킴. 예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정. 이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이, 전산학에서 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제. |
릴리스 노트 작성 프로세스 |
모듈 식별 – 릴리스 정보 확인 – 릴리스 노트 개요 작성 – 영향도 체크 – 정식 릴리스 노트 작성 – 추가 개선 항목 식별 |
인스펙션inspection |
소프트웨어 코드 등을 저작자 외 다른 전문가나 동료가 검사하여 오류를 찾아내는 검토 방법 |
물리 데이터 모델링 |
논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터 베이스 저장 구조로 변환하는 것 |
물리 데이터 모델링 절차 |
개체를 테이블로 변환 – 속성을 컬럼으로 변환 – UID를 기본키로 변환 – 관계를 외래키로 변환 – 컬럼 유형과 길이 정의 – 반 정규화 수행 |
유닉스 계열 운영체제 명령어(리눅스, MacOS) |
|
ls |
list segments의 약자 파일의 목록을 표시하는 기능 (windows의 dir) |
cd |
change directory 작업 디렉터리 위치 변경 예)cd home : home 디렉터리로 변경 |
mkdir |
make directory 디렉터리 만들기 예)mkdir home : home디렉터리 생성 |
cp |
copy 파일, 디렉터리 복사 |
mv |
move 파일, 디렉터리 이동 |
rm |
remove 파일, 디렉터리 제거 |
cat |
concatenate(연결하다)의 동의어인 catenate에서 유래, 파일들을 연결하고 표시 파일 내용 표시(수정 가능), 파일 연결. 예) cat xaa xab xac > 파일이름 : 파일이름으로 새롭게 파일들을 합침 예) cat text.txt : text.txt 파일 내용을 읽어서 보여줌 |
chmod |
파일 모드/특성/권한 변경 예) chmod +rw file 모두가 읽고 쓸 수 있도록 file이라는 파일의 허가들을 바꾼다 |
chown |
파일 소유권 변경 예) chown root /var/run/httpd.pid /var/run/httpd.pid의 소유권을 'root'(슈퍼 사용자를 위한 표준 이름)으로 바꾸기. |
kill |
프로세스 종료 |
윈도우 명령어 |
|
dir |
디렉터리에 있는 파일과 하위 디렉터리 목록 표시 |
cd |
다른 디렉터리로 이동 |
cls |
화면 지우기 |
copy |
파일 복사 |
del |
파일 삭제 |
format |
디스크 포맷 |
chkdsk |
디스크 검사 |