error note/암기사항
IT 용어 정리
CNOW
2024. 4. 26. 17:19
명명법
클래스명은 명사, 메서드는 동사, 기능은 명사 + 동사
표기법
- CamelCase
문자의 표현을 낙타 등 처럼 했다고 해서 정해진 이름
주로 객체지향 프로그램에서 사용함 - snake_case
언더라인(_) 으로 단어를 구분하는 명명법.
C, SQL등에서 사용 - 헝가리안표기법
변수에 정보를 추가해서 명명하는 방법
g_ / m_ / s_
글로벌 / 멤버 / 스태틱
IT 용어 정리
- manual
매뉴얼은 프로그램들의 사용과 운영에 대한 내용이 기술되어 있는 문서 - agile model
애자일 모형은 소프트웨어 개발과정에서 지속적으로 발생하는 변경에 유연하고 기민하게 대응하여 생산성과 품질 향상을 목표로 하는 협력적 소프트웨어 개발 방법론. 프로젝트의 생명주기 동안 개발 팀원들 간의 상호작용과 고객과의 협업을 중심으로 반복적, 점진적인 계획을 통해 요구사항의 변화를 관리하고 또한 문서 작업보다 코딩과 테스트 기반의 접근을 통해 소프트웨어를 개발하는 방식이다. 익스트림 프로그래밍(Extreme Programming, XP), 스크럼(Scrum), Lean 등이 있다. - backlog
백로그는 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록 - release
릴리즈는 몇 개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것. - visibility
가시성이란 대상을 확인 할 수 있는 정도를 의미.
릴리즈 기간을 짧게 반복하면서 개발 과정에서 제품 소프트웨어의 일부 기능이 구현될 때마다 고객에게 이를 확인시켜주면, 고객은 요구사항이 잘 반영되고 있음을 직접적으로 알 수 있다는 의미.
- story
백로그에 담겨질 요구사항으로, 고객의 요구사항을 간단한 시나리오로 표현한 것.
- system architecture
시스템 아키텍처란 시스템 내부에서 각각의 하위 시스템들이 어떠한 관계로 상호 작용하는지 파악할 수 있도록 구성이나 동작 원리를 표현한 것.
- core
코어란 각종 연산 수행하는 CPU의 핵심 요소. 코어 개 갯수에 따라 싱글 코어, 듀얼코어, 트리플 코어 등으로 구분하며 갯수가 많을수록 속도가 빨라짐.
- Operating system(OS)
운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있는 환경을 제공하는 소프트웨어.
- middleware
미들웨어는 주로 상하 관계나 동종 관계로 구분할 수 있는 프로그램들 사이에서 매개 역할을 하거나 프레임워크 역할을 하는 일련의 중간 계층 프로그램. 일반적으로 응용 프로그램과 운영 체계의 중간 계층에 위치하여 사용자에게 시스템 하부에 존재하는 하드웨어, 운영 체계, 네트워크에 상관없이 서비스를 제공한다.
- availability
가용성이란 사용이 요구될 때 한 소프트웨어가 지정된 시스템 기능을 수행 할 수 있는 능력.
총 운영 시간에 대한 시스템 가동 시간의 비율.
- memory leak
메모리 누수란 응용 프로그램이 더 이상 사용하지 않는 메모리를 반환하지 않고 계속 점유하고 있는 현상.
성능 저하나 메모리 고갈 등의 장애 발생 가능. - pair programming
짝 프로그래밍은 다른 사람과 함께 프로그래밍을 수행함으로 개발에 대한 책임을 공동으로 나눠 갖는 환경 조성.
- open source
오픈 소스(공개 소스)란 일정한 이용 조건을 지키면 누구나 개량하고, 재배포할 수 있도록 무상으로 공개되는 소스 코드(source code).
- TOC(Total cost of ownership)
총 소유 비용이란 PC나 서버 등의 도입 비용뿐만 아니라 향상(upgrade)이나 유지 보수, 교육 연수 등과 같이 도입 후에 드는 여러 가지 비용을 포함한 컴퓨터 시스템의 총비용.
- DBMS(Database Management System)
데이터베이스 관리시스템은 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어.
- JDBC(Java Database Connectivity)
자바에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 자바와 DB를 연결해 주는 인터페이스
- ODBC(Open Database Connectivity)
응용 프로그램에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 응용 프로그램과 DB를 연결해 주는 표준 인터페이스
- WAS(Web Application Server)
사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어.
주로 데이터베이스 서버와 연동해서 사용함.
- Garbage collection
가비지 컬렉션은 실제로 사용되지 않으면서 가용 공간 리스트에 반환되지 않는 메모리 공간인 가비지(쓰레기)를 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법.
21. Entity
엔티티(개체)란 현실 세계에서 사람, 자동차와 같이 우리 주위에서 사용되는 물질적이거나 개념적인 것.
시스템, 기능을 사용하는 사람, 그러한 기능과 연동되는 다른 시스템 등을 의미.
22. dependency
종속성이며 임의의 요구사항 목적을 만족하기 위해 서로 의존적인 관계.
23. semantics
의미를 뜻하며 프로그램에서는 프로그램을 어떤 기계어로 번역해야 하는지를 정하는 규칙으로서 기호로 그 의미를 규정하고 있다. 구문(syntax)과 대비되는 말.
24. UML(Unified Modeling Language)
통합 모델링 언어이며 소프트웨어 개발에 사용되는 다이어그램을 정희하는 것으로 시스템 분석, 셜계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어.
25. module
모듈은 전체 프로그램 기능 중에서 특정 기능을 처리할 수 있는 소스 코드. 주 프로그램은 논리적으로 몇 개의 모듈로 나뉠 수 있다.
26. Modularity
모듈화란 소프트웨어의 성능을 향상시키거나 수정, 재사용, 유지 관리등이 용이하도록 시스템의 기능들을 모듈 단위로 나누는 것.
27. abstraction
추상화란 문제의 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 시켜 나가는 것.
28. component
컴포넌트란 독립적인 업무나 기능을 수행하는 실행코드 기반으로 작성된 모듈.
29. object
객체는 하나 이상의 클래스나 비슷한 객체의 특성을 일반화하는 인터페이스에 대한 인스턴스.
데이터와 데이터를 처리하는 함수를 묶어서 캡슐화한 하나의 소프트웨어 모듈.
30. class
클래스는 공통된 속성과 연산을 갖는 객체의 집합.
객체 내부의 데이터 구조와 그 조작을 정리하여 정의한 것.
31. encapsulation
캡슐화는 데이터와 데이터를 처리하는 함수를 하나로 묶는 것. 세부 내용이 은폐되어(정보은닉) 외부이 접근이 제한적임.
32. polymorphism
다형성은 동일한 메시지를 여러 사람에게 보냈을 때 받는 자의 객체에 따라 각각 적절한 절차가 이루어지는 것.
33. coupling
결합도는 프로그램에서 모듈간 상호 의존하는 정도 혹은 두 모듈 사이의 연관 관계를 의미.
결합도가 약할수록 품질이 높다.
34. cohesion
응집도는 하나의 프로그램을 구성하는 각각의 모듈이 그 고유의 기능을 잘 처리할 수 있는지를 나타내는 정도.
응집도가 강할수록 품질이 높다.
35. open source
오픈 소스(공개 소스)란 일정한 이용 조건을 지키면 누구나 개량하고, 재배포할 수 있도록 무상으로 공개되는 소스 코드(source code).
36. TOC(Total cost of ownership)
총 소유 비용이란 PC나 서버 등의 도입 비용뿐만 아니라 향상(upgrade)이나 유지 보수, 교육 연수 등과 같이 도입 후에 드는 여러 가지 비용을 포함한 컴퓨터 시스템의 총비용.
37. DBMS(Database Management System)
데이터베이스 관리시스템은 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어.
38. JDBC(Java Database Connectivity)
자바에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 자바와 DB를 연결해 주는 인터페이스
39. ODBC(Open Database Connectivity)
응용 프로그램에서 DB에 접근하여 데이터를 조회, 삽입, 수정, 삭제할 수 있도록 응용 프로그램과 DB를 연결해 주는 표준 인터페이스
40. WAS(Web Application Server)
사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어.
주로 데이터베이스 서버와 연동해서 사용함.
41. Garbage collection
가비지 컬렉션은 실제로 사용되지 않으면서 가용 공간 리스트에 반환되지 않는 메모리 공간인 가비지(쓰레기)를 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법.
42. Entity
엔티티(개체)란 현실 세계에서 사람, 자동차와 같이 우리 주위에서 사용되는 물질적이거나 개념적인 것.
시스템, 기능을 사용하는 사람, 그러한 기능과 연동되는 다른 시스템 등을 의미.
43. dependency
종속성이며 임의의 요구사항 목적을 만족하기 위해 서로 의존적인 관계.
44. semantics
의미를 뜻하며 프로그램에서는 프로그램을 어떤 기계어로 번역해야 하는지를 정하는 규칙으로서 기호로 그 의미를 규정하고 있다. 구문(syntax)과 대비되는 말.
45. UML(Unified Modeling Language)
통합 모델링 언어이며 소프트웨어 개발에 사용되는 다이어그램을 정희하는 것으로 시스템 분석, 셜계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어.
46. module
모듈은 전체 프로그램 기능 중에서 특정 기능을 처리할 수 있는 소스 코드. 주 프로그램은 논리적으로 몇 개의 모듈로 나뉠 수 있다.
47. Garbage collection
가비지 컬렉션은 실제로 사용되지 않으면서 가용 공간 리스트에 반환되지 않는 메모리 공간인 가비지(쓰레기)를 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법.
48. Entity
엔티티(개체)란 현실 세계에서 사람, 자동차와 같이 우리 주위에서 사용되는 물질적이거나 개념적인 것.
시스템, 기능을 사용하는 사람, 그러한 기능과 연동되는 다른 시스템 등을 의미.
49. dependency
종속성이며 임의의 요구사항 목적을 만족하기 위해 서로 의존적인 관계.
50. semantics
의미를 뜻하며 프로그램에서는 프로그램을 어떤 기계어로 번역해야 하는지를 정하는 규칙으로서 기호로 그 의미를 규정하고 있다. 구문(syntax)과 대비되는 말.
51. UML(Unified Modeling Language)
통합 모델링 언어이며 소프트웨어 개발에 사용되는 다이어그램을 정희하는 것으로 시스템 분석, 셜계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어.
52. module
모듈은 전체 프로그램 기능 중에서 특정 기능을 처리할 수 있는 소스 코드. 주 프로그램은 논리적으로 몇 개의 모듈로 나뉠 수 있다.
53. reuse
재사용은 개발 시간과 비용을 절약하기 위해 기존에 존재하는 소프트웨어 부분을 재구성하여 새로운 시스템이나 기능에 사용하기 적합하도록 최적화 시키는 작업.
54. design pattern
디자인 패턴은 각 모듈의 역할이나 모듈들 간의 인터페이스 같은 코드 작성 및 설계시 참조할 수 있는 전형적인 해결 방식 또는 예제.
55. concrete class
구체 클래스란 직접적으로 실체화를 통해 인스턴스를 가질 수 있는 클래스
56. abstract class
추상 클래스는 구체 클래스에서 구현하려는 기능들의 공통점만을 모아 추상화한 클래스로, 인스턴스 생성이 불가능하여 구체 클래스가 추상 클래스를 상속받아 구체화한 후 구체 클래스의 인스턴스를 생성하는 방식으로 사용.
57. API
응용 프로그래밍 인터페이스(Application Programming Interface)는 라이브러리를 이용하는 방법과 형식을 규정한다. 즉, 라이브러리는 기능을 구현한 함수들을 모아 놓은 것이고, API는 라이브러리를 이용할 수 있는 도구이다.
58. EAI
기업 애플리케이션 통합(Enterprise Application Integration)은 송수신 데이터를 식별하기 위해 송수신 처리 및 진행 현황을 모니터링하고 통제하는 시스템.
업무적으로 50% 이상의 중요도를 가지면서 두 개 이상의 서로 다른 어플리케이션을 통합하여, 업무의 효율성을 높이려는 시도를 일컫는 개념.
59. WSDL
웹 서비스 기술 언어(Web Services Description Language)로 웹 서비스와 관련된 서식이나 프로토콜 등을 표준적인 방법으로 기술하고 게시하기위해 사용되는 확장성 마크업 언어(XML) 기반의 언어
60. UDDI
Universal Description, Discovery, and Integration의 약어로 인터넷에서 전 세계의 비즈니스 목록에 자신의 목록을 등재하고 검색하기 위한 XML 기반의 공용 등록부(registry) 서비스.
61. SOAP
단순 객체 접근 프로토콜(Simple Object Access Protocol)로 웹 서비스를 실제로 이용하기 위한 객체 간의 통신 규약.
62. RPC
원격 절차 호출(Remote Procedure Call)이란 분산 처리 시스템에서 어떤 컴퓨터의 프로그램에서 다른 컴퓨터에서 동작하고 있는 프로그램의 절차를 직접 불러내는 것. 이 기능으로 두 머신의 프로그램 사이에서 직접 통신이 가능하며, 통신망을 통해 실행 결과의 값을 주고받는다.
응용 프로그램의 프로시저를 사용하여 원격 프로시저를 마치 로컬 프로시저처럼 호출하는 방식의 미들웨어.
63. MOM
메시지 기반 미들웨어(Message Oriented Middleware)란 상이한 애플리케이션 간 통신을 비동기 방식으로 지원하는 메시지 기반 미들웨어. 비동기(asyncronous)적이라는 것은 요청을 보내고 나서 그 응답을 받을 때까지 기다리지 않는다는 뜻으로, 요청한 처리가 끝나기를 기다리지 않고 다른 작업을 수행하다가 나중에 확인하는 방식.
64. TP-Monitor
트랜잭션 처리 모니터(Transaction Processing monitor)란 항공기, 철도 예약 업부 등과 같은 온라인 트랙잭션 데이터를 처리 및 감시하는 미들웨어.
65. ORB
객체 요청 브로커(Object Request Broker)란 분산 객체 환경에서, 객체 간의 통신을 매개하는 기능.
객체 지향 미들웨어로 코바(CORBA) 표준 스펙을 구현한 미들웨어.
66. CORBA
코바(Common Object Request Broker Architecture)란 네트워크에서 분산 프로그램 객체를 생성, 배포, 관리하기 위한 규격.
67. EJB
Enterprise JavaBeans의 약어로 프로그램 컴포넌트를 분배하는 자바빈(JavaBeans) 기술로 되어 있고, 기업용 서버의 프로그램 모듈을 자바를 통해 효율적으로 관리하고 구성하는 아키텍처로 대규모 분산 객체 환경을 쉽게 구현할 수 있도록 도움.
68. Array
배열은 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합.
69. Stack
스택은 리스트의 한쪽 끝으로만 자료의 삽입, 삭제가 이루어지는 자료구조.
후입선출(LIFO: Last In First Out) 방식.
70. Queue
큐는 리스트의 한쪽에서는 삽입, 다른 한쪽에서는 삭제 작업이 이루어지도록 구성한 자료구조.
선입선출(FIFO: First In First Out) 방식.
71. Overflow
자료를 저장하기 위해 할당한 공간이 모두 자료들로 채워져 있는 상태에서 새로운 자료의 추가 하려 할때 넘침이 발생함.
72. Underflow
자료가 없어서 자료를 제거할 수 없는 상태.
73. Tree
트리는 노드(Node)와 가지(Branch)를 이용하여 사이클을 이루지 않도록 구성한 특수 그래프 형태.
74. Node
노드(정점)는 자료를 저장하는 데이터 부분과 다음 노드를 가리키는 포인터인 링크 부분으로 구성된 기억 공간.
75. Pointer
포인터는 현재의 위치에서 다음 노드의 위치를 알려주는 요소.
76. Database(DB)
데이터베이스는 특정 조직의 업무수행을 위해 필요한 상호 관련된 데이터들의 모임.
77. DBMS
데이터베이스 관리 시스템(Database Management System)란 사용자나 응용 프로그램이 데이터베이스를 쉽게 이용할 수 있도록 해 준다
78. Backup
백업이란 비상사태로 인해 데이터베이스의 정보가 소실되거나 손상될 경우를 대비하여 일정한 시간 차를 두고 데이터를 복사하는 작업.
79. RDB
관계형 데이터베이스(Relational Database)란 키(key)와 값(value)을 표(table) 형태로 구성한 데이터베이스.
80. Structured Query Language(SQL)
SQL은 시퀄이라고도 하며 사용자들이 단말기를 통해 대화식으로 쉽게 DB를 이용할 수 있도록 되어 있는 구조화된 비절차식 질의 언어이다.
DDL, DML, DCL로 구분됨.
81. DDL
데이터 정의어(Data Definition Language)란 SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의, 변경, 삭제시 사용하는 언어.
82. DML
데이터 조작어(Data Manipulation Language)란 데이터베이스 사용자가 질의 언어(QL)로 저장한 데이터를 실질적으로 처리할 때에 사용하는 언어.
정의된 데이터베이스에 입력된 데이터를 검색, 삽입, 갱신, 삭제하는 데 사용.
83. DCL
데이터 제어어(Data Control Language)란 데이터베이스에 대한 접근 권한을 부여하고 회수하는 작업을 수행하는 언어.
84. TCL
트랜잭션 제어어(Transaction Control Language) 데이터 접근 제어어(DCL)에서 COMMIT, ROLLBACK 연산만을 별도로 분리한 언어.
85. Transaction
트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 혹은 한번에 모두 수행되어야 할 일련의 연산들을 의미.
86. SQL Mapping
프로그래밍 코드 내에 직접 SQL 코드를 작성하여 DBMS의 데이터에 접속하는 기술 (예-JDBC, ODBC, ByBatis).
87. ORM
Object-Relational Mapping의 약어로 객체지향 프로그래밍의 객체와 관계형 데이터베이스의 데이터를 연결하는 기술 (예-JPA, Hibernate, Django ORM)
88. COMMIT
커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션의 변경 내용을 데이터베이스에 반영하는 명령어.
89. ROLLBACK
롤백은 하나의 트랜잭션 처리가 비정상 종료시 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 명령어.
90. SAVEPOINT(=CHECKPOINT)
트랜잭션 내에 롤백할 위치인 저장점을 지정하는 명령어.
91. Procedure
프로시저는 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 미리 저장해 놓은 SQL 작업을 수행함.
92. Trigger
트리거는 데이터베이스 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행됨.
93. Event
이벤트는 시스템에 어떤일이 발생한 것을 의미하며, 트리거에서의 이벤트는 데이터의 입력, 갱신, 삭제와 같은 데이터 조작이 발생함을 의미.
94. Debugging
디버깅은 컴퓨터 프로그램의 정확성이나 논리적인 오류(버그)를 찾기 위해 소스 코드를 검사하는 작업.
95. Syntax error
구문 오류란 컴퓨터 명령어의 구문(syntax)을 잘못 사용해서 생기는 오류.
96. Comment
주석은 사람만 알아볼 수 있으며, 컴파일 되지 않으므로 사람의 명확한 판독에 도움을 주기위한 설명을 입력한 부분.
97. Data warehouse
데이터와 창고란 의미가 합성된 용어. 정보에 입각한 의사 결정을 내릴 수 있도록 여러 데이터베이스에 분산되어 있는 자료를 표준화하고 통합하여 놓은 데이터베이스.
98. Big data
빅 데이터란 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 방대한 양의 정형, 반정형, 비정형 데이터 집합.
이러한 데이터 집합을 수집, 저장, 관리, 분석, 시각화하는 정보통신 기술 분야.
99. Data mining
데이터 마이닝은 대규모의 데이터베이스 안에서 일정한 규칙을 찾아내어 데이터를 분석.
100. DSMS
데이터 스트림 관리시스템(Data Stream Management System)이란 무선 센서 네트워크나 인터넷 같은 통신사에서 실시간으로 발생하는 대량의 스트림 데이터를 효율적으로 처리하고 관리하는 시스템.
101. DC
더블린 코어(Dublin Core)란 네트워크 환경에서 각종 전자정보를 기술하는 핵심적인 데이터 요소.
ISO 15836으로 표준화된 메타데이터 요소 집합.
102. MDR
메타데이터 레지스트리(Meta Data Registry)란 메타데이터의 등록과 인증을 통해 메타데이터를 유지, 관리하며 메타데이터의 명세를 공유하는 레지스트리.
103. Database Tuning
데이터베이스 튜닝이란 DB를 조정하여 성능을 향상시키는 것.
104. EA
Enterprise Architecture의 약어로 기업의 목표와 요구 사항을 효과적으로 지원하기 위해 정보 기술(IT) 인프라 각 부분의 구성과 구현 기술을 체계적으로 기술하는 작업.
105. ERP
기업 자원 관리(Enterprise Resource Planning)란 인력, 생산재, 물류, 회계등 기업의 모든 자원을 전체적으로 관리하여 최적화된 기업 활동을 가능하게 하는 전산 시스템.
106. DRM
디지털 저작권 관리(Digital Rights Management)란 디지털 미디어의 불법 또는 비인가된 사용을 제한하기 위하여 저작권 소유자나 판권 소유자가 이용하는 정보 보호 기술의 일종인 접근 제어 기술.
107. OLAP
올랩(Online Analytical Processing)이란 조직 경영에서 의사 결정에 도움을 주는 정보 시스템으로 이용자가 직접 데이터베이스를 검색, 분석해서 문제점이나 해결책을 찾는 분석형 애플리케이션 개념. 대규모 연산이 필요한 질의를 고속으로 지원한다.
108. OLTP
온라인 트랜잭션 처리(Online Transaction Processing)란 네트워크상의 여러 이용자가 실시간으로 데이터베이스를 갱신하거나 조회하는 등의 단위작업을 처리하는 것으로 주로 신용카드 조회업무나 자동 현금 지급 등 금융 정보화 관련 부문에서 많이 이용.
109. Big-O
알고리즘에서 시간의 복잡도를 표기를 위해 대문자 오(O)를 사용하여 나타내는 표기 (예-O(n), O(2))
110. AR
증강현실(Augmented reality)이란 현식의 이미지와 가상의 이미지의 결합하여 실시간 상호작용이 가능하며 3차원의 공간 안에 놓인 것.
111. Critical section
임계영역이란 둘 이상의 스레드가 동시에 접근해서는 안되는 자료 구조 또는 공유 자원을 접근하는 코드의 일부.
112. Mutual exclusion, mutex
동시 프로그래밍에서 공유가 불가능한 자원의 동시 사용을 피하기 위하여, 여러 개의 병렬 프로세스가 공통의 변수 또는 자원에 접근할 때 임의의 시점에서 하나의 프로세스만 접근하도록 제어하는 것.
113. Deadlock
교착 상태란 서로 다른 둘 이상의 프로세서들이 상대 프로세서가 차지하고 있는 자원을 기다리는 무한 대기 상태.
114. CRM
고객 관계 관리(Customer Relationship management)란 현재의 고객과 잠재 고객에 대한 정보 자료를 정리, 분석해 마케팅 정보로 변환함으로써 고객의 구매 관련 행동을 지수화하고, 이를 바탕으로 마케팅 프로그램을 개발, 실현, 수정하는 고객 중심의 경영 기법.
115. socket
소켓이란 노드 주소와 서비스를 식별하는 포트 번호로 구성된 어떤 통신망의 특정 노드상의 특정 서비스를 식별하는 식별자.
116. semaphore
세마포어란 철도의 까치발 신호기 또는 해군의 수기 신호라는 뜻으로, 복수의 작업을 동시에 병행하여 수행하는 운영 체제(또는 프로그래밍)에서 공유 자원에 대한 접속을 제어하기 위하여 사용되는 신호. 공유자원을 한 프로세스가 사용하고 있는 동안에 세마포어를 세워서 다른 프로세스를 대기시키고 사용이 끝나면 해제시키는 방법으로 사용.
117. Test case
테스트 케이스란 시험을 수행하기 위해 기본이 되는 문서화된 항목으로 시험할 구체적인 내용을 문서화한 것으로 직접 시험을 수행하는 근간이 되고, 시험을 수행했다는 증거가 되며, 시험이 커버하는 범위를 표현함.
118. unit test
단위 테스트란 원시 코드를 시험 대상으로 하며 하나의 소프트웨어 모듈이 정상적으로 기능을 수행하는지 여부를 시험하는 최소 수준의 시험.
119. white-box testing
화이트박스 테스트란 내부 구조를 분석해서 프로그램의 모든 처리 경로에 대해 시험하여 프로그램 내부 구조의 결함 여부를 시험하는 방식.
120. black box testing
블랙박스 테스트란 시스템이나 시스템 구성 요소 또는 프로그램 내부 구조의 자세한 지식 없이 프로그램의 실행을 통해서 수행하는 시험.
시스템 요구사항의 명세에 맞는지를 파악하는 시험으로 시스템의 내부 구조를 블랙박스로 보고 입력과 출력을 확인함으로서 시스템의 오류를 발견하는 방식.
121. compile
컴파일이란 넓은 뜻으로는 원시 언어로 된 프로그램으로부터 그와 동등한 일을 하는 목적 언어로 된 프로그램을 생성하는 작업이고, 좁은 뜻으로는 포트란이나 파스칼과 같은 고수준 언어로 작성된 원시 프로그램을 어셈블리 언어나 기계어 등의 저수준 언어로 된 목적 프로그램으로 번역하는 일.
122. IDE
통합 개발 환경(Integrated Development Environment)이란 기본적으로 코드 편집기, 컴파일러, 프로그램 수정기, 그래픽 사용자 인터페이스(GUI) 설치기 등으로 구성된 애플리케이션 패키지의 프로그래밍 환경.
123. Cross platform
크로스 플랫폼이란 소프트웨어나 하드웨어 등이 다른 환경의 운영 체제(OS)에서 공통으로 사용되는 것.
124. preprocessing
전처리란 원자료(raw data)를 데이터 분석 목적과 방법에 맞는 형태로 처리하기 위하여 불필요한 정보를 분리 제거하고 가공하기 위한 예비적인 조작.
125. Ant
빌드(build) 도구 중 하나로 Another Neat Tool의 약어이며 아파치 소프트웨어 재단에서 개발한 소프트웨어로, 자바 프로젝트의 공식적인 빌드 도구로 사용되고 있음.
126. Maven
빌드(build) 도구 중 하나로 Ant의 대안으로 개발되었으며, 규칙이나 표준이 존재하여 예외 사항만 기록하면 되며, 컴파일과 빌드를 동시에 수행 할 수 있음.
127. Gradle
빌드(build) 도구 중 하나며 Ant와 Maven을 보완하여 개발된 빌드 도구 이며 안드로이드 스튜디오의 공식 빌드 도구로 채택된 소프트웨어임.
128. Groovy
그루비란 오픈 소스 소프트웨어로 개발된 자바(Java) 기반의 객체 지향 프로그래밍 언어.
129. XML
eXtensible Markup Language의 약어로 인터넷 환경에 적합하도록 간결성, 보편성, 활용성에 중점을 두고 설계된 인간과 기계가 모두 이해할 수 있는 텍스트 형태로 마크업 포맷을 정의하기 위한 메타 언어.
130. Secure coding
시큐어 코딩이란 소프트웨어의 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것을 의미.
131. Race condition
레이스컨디션이란 두개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하고 있는 상태를 의미.
132. Singleton
싱글톤은 디자인 패턴의 하나로 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없는 디자인 패턴.
133. Session hijacking
세션 하이재킹이란 다른 사람의 세션 상태를 훔치거나 도용하여 액세스하는 해킹 기법.
134. HTTPS
HyperText Transfer Protocol Secure의 약어로 웹 클라이언트인 브라우저와 서버 간의 안전한 통신을 지원하기 위해 HTTP의 전송 계층에 암호 통신 규약을 적용한 웹 표준 기술.
135. SSL
Secure Sockets Layer의 약어로 인터넷상에서 데이터 통신 보안을 제공하는 암호 프로토콜.
136. Recursive function
재귀 함수란 자기가 자기 자신을 호출하는 순환 프로그램.
137. Stack trace
스택 트레이스란 오류가 발생한 위치를 추적하기 위해 소프트웨어가 실행 중에 호출한 메소드의 리스트를 기록한 것.
138. XSS
크로스 사이트 스크립팅(Cross Site Scripting)이란 게시판, 웹 메일 등에 삽입된 악의적인 스크립트에 의해 페이지가 깨지거나 다른 사용자의 사용을 방해하거나 쿠키 및 기타 개인 정보를 특정 사이트로 전송시키는 공격.