A
ACL(Access Control List)
ACL(Access Control List)
은 개개의 사용자들이 디렉토리나 파일과 같은 특정 시스템 개체에 접근할 수 있는 권한을 컴퓨터의 운영체계에 알리기 위해 설정해 놓은 표라고 할 수 있다.
참고 : ACL(Access Control List?)
AJP(Apache Jserv Protocol)
웹서버 뒤에 있는 어플리케이션 서버로부터 웹서버로 들어오는 요청을 위임할 수 있는 바이너리 프로토콜이다.
AAA
네트워크에 있어 보안의 세 가지 요소.
- Authentication : 사람의 신분을 확인하는 보안
- Authorization : 검증된 사용자에게 권한과 서비스 허용
- Accounting : 사용자의 자원사용정보를 모아 과금, 리포팅, 용량증설등을 하는 과금(혹은 계정관리)
Advice
JoinPoint에 삽입되어져 동작할 수 있는 코드를 말한다. ProxyFactoryBean을 만드는 과정에서 타깃 오브젝트에 적용하는 부가기능을 담은 오브젝트를 스프링에서는 Advice라고 함.
AOP(Aspect Oriented Programming)
기능을 핵심 비지니스 로직과 공통 모듈(Cross-Cutting)로 분리하고, 핵심 로직에 영향을 미치지 않고 사이사이에 공통 모듈을 효과적으로 잘 끼워넣도록 하는 개발 방법. 코드 밖에서 설정을 통해 끼워넣는다.
ApplicationContext
Bean들의 집합. Spring에서 사용되는 Bean들을 관리하는 역할을 한다. Context를 시작시킬 때 모든 Singleton bean을 pre-loading을 통해 생성하므로 Bean이 필요한 경우에 즉시 사용될 수 있도록 한다.
Apache MPM
Apache Multi-Processing Module(MPM)
은 prefork방식과 worker방식을 지원하는데, MPM 모듈은 요청을 받아들이고 받아들인 요청을 어떠한 방식으로 처리할지 선택해서 사이트별 요구조건에 특화된 웹 서버를 구성할 수 있도록 한다.
Ajax
비동기식 자바스크립트와 XML의 줄임말(Asynchronous Javascript and Xml
). 브라우저에서 실행중인 자바스크립트에 의해 직접적으로 수행되는 GET 또는 POST 요청을 말한다.
AjaxSubmit
입력 폼이 있고, 폼 값을 사용하는 경우에 ajaxSubmit을 통해 Submit이전에 처리할 작업과 이후에 처리할 작업을 따로 정리할 수 있어 소스 가독성을 높일 수 있다.
Appium
Appium
은 네이티브와 하이브리드 모바일 앱을 위한 오픈 소스 테스트 자동화 프레임워크다. 애피엄은 iOS와 안드로이드상의 네이티브와 하이브리드 모바일 앱 모두의 테스팅을 위한 광범위한 플랫폼을 제공한다.
참고 : Appium
B
Backend Services
Backend Service
는 웹 서버의 백그라운드에서 실행되는 서비스이며, 브라우저에 대한 응답을 생성하기 위해 사용되는 데이터를 제공한다. 가장 흔히 사용되는 Backend Service
로는 정보를 저장하는데 쓰이는 데이터베이스가 있다.
Bazel
Bazel
의 목적은 소스로부터 모든 소프트웨어를 개발하는 공유 코드 저장소를 통해 개발 과정을 가속화하고 신뢰성을 높이는 것이다. 처리 속도를 높이는 병렬화와 캐싱을 통해 테스트와 릴리즈를 자동화하며, 특히 대규모 코드베이스, 복수의 언어, 복수의 플랫폼, 광범위한 테스트가 수반되는 프로젝트에 적합하다. 현재 윈도우는 지원하지 않는다.
Bean
Servlet에서 Java 객체를 가지고 와서 사용하기 위해 작성된 객체를 말함. Default는 Singleton이며 추가 설정을 통해 Prototype으로도 생성할 수 있다. 스프링에서는 내부적으로 Bean 객체를 Reflection API를 이용해 빈 정의에 나오는 클래스 이름을 가지고 빈 오브젝트를 생성한다.
1 |
|
BeanFactory
Bean 객체를 관리한다. getBean메소드가 호출되기 전까지 Bean 생성을 미룬다. 이를 Lazy initialization이라고 한다.
Best Fit
운영체제에서의 메모리 할당방식 중 하나. 할당하려는 메모리 크기에 맞는 메모리를 할당하는 방식이다. Compaction이 자주 일어난다…
Buddy system
할당하려는 크기가 일정 범위안에 들어오면 할당해주는 메모리 할당방식이다. 작으면 반을 쪼개서 할당하고 반환하는 경우에는 다시 하나로 합쳐서 반환한다. Internal Fragmentation이 발생한다.
C
Cron
Cron시스템
이란 특정 작업을 정해진 시간에 주기적이고 반복적으로 실행하기 위한 데몬과 그 설정들이다.
참고 : CRON?
CGI Program
웹 서버 소프트웨어에서 프로그램을 호출할 때의 규칙을 정한 것이 CGI
이며 CGI
규칙에 맞게 움직이는 프로그램을 CGI Program
이라고 한다.
Curl
curl
은 command line 용 data transfer tool 이다. download/upload 모두 가능하며 HTTP/HTTPS/FTP/LDAP/SCP/TELNET/SMTP/POP3 등 주요한 프로토콜을 지원하고 Linux/Unix 계열 및 Windows 등 주요한 OS 에서 구동되므로 여러 플랫폼과 OS에서 유용하게 사용할 수 있다.
참고 : Curl?
CI
Continuous Integration(CI)
란 팀의 구성원들이 작업한 내용을 정기적으로 통합하는 것을 말한다. 하나의 프로젝트를 리드하는 매니저가 일을 여러가지로 나눠서 팀원들에게 부냅하고 각자 개발한 부분을 Git이나 SVN을 통해 Submit된 코드들을 정기적으로 통합하는 것이다.
Clock Policy
메모리 부족으로 인해 Replace가 필요한 경우, bit의 값이 0인 것을 replace한다. 1인 bit를 가진 메모리 영역은 0으로 변경한다. 그 다음 확인을 할 때까지도 bit의 값이 0인 경우에 replace한다.
CentOS
서버 리눅스 시장의 1인자인 RHEL(Redhet Enterprise Linux)를 무료로 사용할 수 있는 배포판. 소규모 동아리, 소규모 기업에서 쓰이는 것 뿐만아니라 여러 IT 대기업(NHN, 네이버)에서도 유용하게 쓰인다. 허나 무료이기때문에 커뮤니티 차원에서 지원되는 수준이기에 RHEL보다는 사후지원이 빈약하고, 문제가 발생하면 직접 해결해야하기 때문에, 인건비가 들 수 있다.
Composite Pattern
클라이언트 입장에서 메시지 수신자가 부분인지 전체인지에 상관없이 동일한 메시지를 이용해 동일한 방식으로 대상과 상호작용 하고 싶을 때 사용하는 패턴. GOF의 디자인패턴에 소개되어있는 패턴 중 하나이다.
CS
Customer Service 혹은 Customer Satisfaction. 둘 다 고객지원, FAQ 같은 소비자와 소통하는 부서 혹은 직무에서 사용한다.
Closure
함수 + 함수를 둘러싼 환경. 함수를 생성할 때 생기게되는데, 참조하는 환경과 전혀 다른 환경의 변수를 참조할 때 클로져라고 한다.
Chef
Chef
는 물리장비, 가상장비 등을 위치, 크기 등 조건에 관계없이 서버나 애플리케이션을 쉽게 Deploy할 수 있게 만들어주는 cloud infrastructure 자동화 프레임워크이다.
Cookie free domain
.js나 .png 등과 같이 쿠키에 정보를 담을 필요가 없는 정적파일들은 요청을 주고받을 때, 쿠키정보를 교환하지 않도록 별도의 도메인을 세팅하는 것을 말한다. 페이지의 응답속도향상을 위해서 사용.
D
Design Pattern
전문가들이 반복적으로 사용하는 해결 방법을 정의해 놓은 설계 탬플릿을 말한다. 해답이 아닌 일종의 Best practice이기 때문에 설계할 애플리케이션의 성격에 맞는 디자인 패턴을 적용하는 것이 바람직하다.
DNS
Domain Name Service
의 준말이며, 서버명과 IP 주소를 대응시키기 위해서 많이 사용하지만, 이러한 기능 이외에도 메일주소와 메일 서버를 대응시키는 등 다양한 정보를 이름에 대응해서 등록할 수 있다.
DNS Resolver
DNS 서버에 조회하기 위해서 서버에 메세지를 보내고 거기에서 반송되는 응답 메세지를 받는데, 이처럼 서버에 요청 메세지를 보내는 일을 하는 것이 DNS Resolver
이다.
Django
Django
는 파이썬으로 만들어진 무료 오픈소스 웹 어플리케이션 프레임워크이다.
참고 :
이 밤의 끝을 장고,
지아코 말고 지앙고
Data Driven Testing
테이블이나 스프레드쉬트(spreadsheet)에 테스트 입력값과 예상결과를 저장하여 스크립트를 작성하고 테스트하는 기법. 이를 통해 한 개의 제어 스크립트(control script)로 해당 테이블 내에서 모든 테스트를 수행할 수 있다. 데이터 주도 테스팅은 주로 기록/재생(capture/playback) 툴 같은 테스트 실행 툴을 활용하도록 지원하는데 쓰인다.
DispatcherServlet
Spring MVC에 요청이 들어오면 제일 먼저 받아서 처리하는 프론트 컨트롤러이다. Handler Mapping을 통해 Request에 맞는 Controller를 찾아 매핑시키고, 매핑된 Handler의 메소드를 호출한다. 또한 View가 응답으로 생성되면 요청에 대한 응답으로 뷰를 리턴해준다.
DSR(Direct Server Return)
Direct Server Return(DSR)
은 L4가 로드밸런싱을 하는 경우에 요청만 L4스위치를 거치고 응답을 주는 경우에는 스위치를 거치지 않고 Direct로 응답을 주는 모드를 말한다. 주로 요청의 크기가 응답에 비해 작은 경우에 사용된다(ex-파일 다운로드).
Docker
Docker
는 Linux기반의 Container Runtime 오픈소스이다. 기존의 OS위에 Hypervisor를 설치하고 OS를 설치해서 가상환경을 구성하는 VM Ware와는 다르게, Docker
는 기존의 OS에 Container라는 이름의 프로세스를 하나 띄우고 OS자원은 기존의 호스트와 공유하는 가상환경을 구성한다.
Dynamic proxy
Dynamic Proxy
는 런타임시에 Proxy Factory에 의해서 만들어지는 Proxy용 오브젝트다. Dynamic proxy는 Target 오브젝트와 같은 타입으로 만들어지기 때문에, Proxy factory에 인터페이스의 정보만 전달해주면 해당 타입에 맞는 Proxy 오브젝트를 만들어준다.
E
Entity
Entity
는 객체의 id를 기준으로 비교하는 객체를 말한다. Entity
는 mutable 하기 때문에 객체의 값, Attribute이 달라도 같은 객체라고 판단할 수 있다.
Exercism
Exercism
은 프로그래밍 언어를 배우는 이들은 위한 협력적 교육 툴이다.
F
Factory Method Pattern
Template Method Pattern과 비슷하게 상속을 통해 기능을 확장하게 하는 패턴을 말한다. 서브 클래스에서 오브젝트 생성 방법과 클래스를 결정할 수 있도록 미리 정의해둔 메소드를 팩토리 메소드라고 하고, 이 방식을 통해 오브젝트 생성 방법을 나머지 로직, 즉 슈퍼클래스의 기본 코드에서 독립시키는 방법을 팩토리 매소드 패턴
이라고 한다.
Factory bean
Factory bean
이란, 스프링을 대신해서 오브젝트의 생성로직을 담당하도록 만들어진 특별한 Bean을 말한다. Factory bean을 만드는 방법에는 여러 가지가 있는데, 가장 간단한 방법은 FactoryBean 인터페이스를 구현하는 것이다.
Framework
디자인 패턴을 적용해 만든 시스템 중에서 우수 사례를 모아 하나의 개발 툴로 표준화시킨 것. 제어의 주체가 누구인지에 따라 Library와 구분된다.
FrontController
공통으로 발생하는 요청처리를 Controller에게 맡기고, 다음 View에 위임하는 디자인 패턴을 말한다. 요청 처리를 집중시키면 이 로직이 뷰와 섞이지 않고, 여러 뷰들의 공통역할을 하게 된다. 따라서, 이 로직을 유지보수하고 확장하는 것이 좀 더 수월해진다.
First Fit
운영체제에서 메모리를 할당하는 방식 중 하나이다. 할당하려는 메모리 크기에 맞는 공간을 탐색하다가 처음으로 맞는 공간을 찾게되면 해당 위치의 메모리를 할당하는 방식이다. 탐색 속도가 빠르지만 Internal Fragmentation이 일어날 수 있다.
Fit
요구사항을 테이블 형태로 기술함. 이렇게 기술된 테이블은 테스트 그 자체가 된다.
FitNesse
Fit의 개념에 wiki웹
의 개념을 더한 형태. wiki 페이지로 작성된 테스트케이스는 HTML
형태로 변환되어 FIT Server
에서 다향한 fixture를 호출함으로써 실제 테스트를 수행할 어플리케이션과 연결되게 된다.
Fixture
Fit테이블의 첫 행의 타이틀과 같은이름을 가지며 실제 구현 클래스의 이름이다.
FTP
FTP(File Transfer Protocol)
는 파일을 업로드하거나 다운로드할 때 사용하는 프로토콜을 말한다. FTP Protocol
을 이용하여 파일 전송을 하는 프로그램도 FTP
라고 한다.
Forward Proxy
사내망등의 격리된 네트워크에서 외부망으로 요청을 보내는 경우, 중간의 요청을 받아서 전달하는 서버를 말한다. 대게 프록시 서버들은 캐싱하는 기능이 있으므로, 정해진 사이트만 연결하게 하는 등 웹 환경을 제한하는 기업용 네트워크망에서 많이 사용된다.
G
Goast
Goast
는 사용자 스스로 블로그를 작성하고 포스트할 수 있게 해주는 툴을 제공하는 오픈소스이다.
Gecko
모질라에서 직접 만든 Rendering Engine이다. 파이어폭스 브라우저에서 사용한다.
Gem
Gem
이란 Ruby에서 지원하는 패키지 시스템으로, Linux에서 사용하는 yum
과 비슷한 일을 한다. 인터넷에 올라와있는 버전과 비교를 해서 최신의 버전으로 설치하는 등의 패키지 관리를 할 수 있다.
GroboUtils
GroboUtils
는 JUnit의 확장판 같은 느낌의 유틸성 클래스로, JUnit의 세 가지 주요 이슈(Integration test, Multi-threaded test, Hierarchy test)를 보완하기 위해서 만들어진 오픈소스 프로젝트를 말한다.(공식사이트 : https://community.oracle.com/docs/DOC-982943)
참고 : GroboUtil을 이용한 JUnit 멀티쓰레드 테스트
H
Hybrid App
웹앱을 네이티브앱으로 포장하는 것이다. 웹 기술로 개발되었지만 모바일에 최적화된 언어로 만드는 네이티브앱처럼 보이게 하는 것이다.
Hipervisor
호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. 가상화 머신 모니터라고도 부른다.
Hygieia
Hygieia
는 오픈소스로 공개된 기업용 데브옵스 대시보드이다.
Hub
패킷을 중계하는 장치의 일종이며, 리피터 허브와 스위칭 허브의 두가지 유형이 존재한다.
Hubl.in
Hubl.in
은 무료 오픈소스 화상회의 솔루션이다. 플러그인 없이 무료 브라우저 기반 화상회의를 가능하게 하였다. ‘이 페이지를 읽을 수 있으면 지금 바로 화상회의를 시작할 수 있다.’ 라고 말한다.
HTTP
HTTP(Hypertext Transfer Protocol)
은 브라우저와 웹 서버 사이의 통신을 정의하는데 사용되는 프로토콜이다.
HTTPS
위의 HTTP
에 보안 계층인 SSL/TLS
를 추가한 프로토콜. 웹 서버가 브라우저에게 인증서를 제공함으로써 보안성 있는 통신을 할 수 있도록 한다. 사용자는 접속을 허용하기 전에 인증서 수락 여부를 결정할 수 있음.
I
IE-CC Filtering
IE에서의 CSS 출력 버그문제를 해결하기 위해 MS에서 제시한 방법. IE 버전에 따라 사용자의 코드를 보이거나 숨기도록 할 수 있다. 참고 : IE-CC
IoC(Inversion of Controll)
코드 상에서 직접 애플리케이션, 객체의 생성부터 주기관리까지를 직접 관리하는 것이 아니라 컨테이너가 직접 제어권을 가지고 필요한 시점에 객체를 생성하고 소멸시키는 등 제어권을 애플리케이션이 가져간 것을 말한다.
Interface
Interface
란 어떤 두 사물이 마주치는 경계 지점에서 서로 상호작용할 수 있게 이어주는 방법이나 장치를 의미한다. 사람들은 말이라는 인터페이스를 통해 상호작용 한다(GUI - Graphic User Interface, API - Application Programming Interface 등).
InfluxDB
InfulxDB
는 시계열, 이벤트, 매트릭스 데이터베이스다. Go언어로 작성되었고 외부 의존도가 없어서 한번 설치하면 더 이상 관리할 필요가 없다는 점에서 Redis, HBase 등과는 다르다. 분배와 수평적 확장을 염두에 두고 설게되었다.
J
JSON
JSON(JavaScript Object Notation)
은 경량의 DATA 교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.
참고 : JSON?
JVM
Java Virtual Machine의 약자로, 자바 바이트코드, .class
파일을 를 실행할 수 있는 주체이다. 쉽게 말해서 자바를 코딩하고 실행하기 위해서 필요한 가상의 컴퓨터라고 생각하면 된다. JVM
은 운영체제에 의존적이므로 사용하는 OS에 맞는 JVM
을 설치해야 한다.
참고 : JVM?
JoinPoint
크로스 컷팅 모듈의 기능이 삽입되어 동작할 수 있는 실행 가능한 특정위치. 주로 메소드가 호출, 리턴되는 시점, 필드 엑세스 하는 부분, 인스턴스가 만들어지는 부분, 예외가 던져지는 시점, 예외 핸들러가 동작하는 위치, 클래스가 초기화되는 곳 등이 대표적인 위치이다.
JPA
Java Persistence API(JPA)
는 관계형 데이터베이스에 접근하기 위한 표준 ORM 기술을 제공하며, 기존에 Enterprise Java Bean(EJB)
에서 제공되던 Entity Bean을 대체하는 기술이다. 쉽게말해, 관계형 데이터베이스에서 ORM기술을 사용하기 위한 인터페이스라고 생각하면 된다.
K
Kontena
Kontena
는 아무 클라우드 인프라에 설치할 수 있는 오픈소스 컨테이너 관리 솔루션이다.
L
L4&L7
로드 밸런싱을 위해 사용되는 장비를 말한다. 둘 이상의 서버가 존재할 경우 동일한 Domain으로 접속할 때, 스위치(L4 & L7)이 각 장비의 부하를 고려하여 적당한 서버와 연결시켜주는 역할을 한다.
Lucene
아파치 소프트웨어 재단의 프로젝트 중 하나로, 확장 가능한 고성능 정보검색 라이브러리이다. 루씬은 소프트웨어 프로그램에 색인과 검색 기능을 간단하게 추가할 수 있도록 지원한다.
M
Mahout
아파치 소프트웨어 재단의 한 프로젝트로서 분산처리가 가능하고 확장성을 가진 기계학습용 라이브러리이다. 맵리듀스를 이용하는 아파치 하둡위에 적용되며 비슷한 특성을 가진 데이터들을 분류하고 정의하는 작업 및 협업 필터링 분야에 집중한다.
Mattermost
Mattermost
는 슬랙의 또 다른 오픈소스 대안이다. Mattermost
는 어느 곳에서든 검색 및 접근이 가능한 직관적인 인터페이스를 통해 모든 팀 의사소통을 한 곳으로 통합했다.
MapReduce
MapReduce
는 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅(신뢰도가 낮은 컴퓨터로 구성된 클러스터)에서 처리하기 위한 목적으로 제작하여 발표한 소프트웨어 프레임워크이다.
Mashalling
한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정을 말함. 직렬화(Serialization)와 유사하며 한 오브젝트로 멀리 떨어진 오브젝트와 통신하기 위해 사용된다.
Meta data
일반적으로 데이터를 위한 데이터라고 정의하지만, 정확하게는 ‘어떤 목적을 가지고 만들어진 데이터’ 라는 의미를 가진다. 대표적으로는, 도서관의 책들에 대한 정보를 담고있는 서지기술용으로 만든 카드가 있다.
Mobile Web
모바일에서도 PC용 사이트의 글자폰트와 이미지 등 데스크탑 브라우저에서 사용되는 기능을 모바일에 맞추어 표현한 사이트를 말한다.
MongoDB
가볍고 빠르며 규모 조절성이 뛰어난 NoSQL 데이터베이스이다. MongoDB는 사용자의 코멘트나 블로그 또는 그 외 항목들과 같은 데이터를 저장해야 하는 트래픽이 많은 웹 사이트를 위한 백엔드 스토리지를 제공한다. 신속히 규모를 조절할 수 있고 쉽게 구현할 수 있기 때문.
MDA Framework
작성 중
Man page
리눅스에서 명령어에 대한 설명이나 관련된 문서들. man
이라는 명령어를 통해서 내용을 확인할 수 있다.
MXNet
MXNet
은 CXXNet, Minerva, Purine2를 개발한 DMLC가 개발한 가벼운 딥 러닝 라이브러리이다. MXNet
은 상황에 따라 상징 및 명령 연산을 자동으로 병렬화하는 동적 의존성 스케줄러를 사용한다. 그 위에 구성된 그래프 최적화 계층으로 MXNet
은 빠르고 메모리 효율이 높다. 라이브러리는 이식성이 뛰어나고 가벼우며 여러 GPU 및 머신으로 즉시 확장할 수 있다. 심지어 스마트폰에서 이미지 인식 등의 작업을 수행할 수도 있다.
N
Native App
흔히 말하는 애플리케이션을 의미한다. 모바일 기기에 최적화된 언어로 개발된 애플리케이션인데, 안드로이드 SDK를 이용해 JAVA
언어로 만드는 안드로이드 앱이나, iOS SDK를 이용해 Objective-C
언어로 만드는 대부분의 아이폰 앱이 여기에 속한다.
NTAF(NHN Test Automation Framework)
FitNess와 STAF의 장점을 결합하여 개발된 사용자 인수 테스트 자동화 프레임워크. 참고 : NTAF?
Node.js
구글의 V8 자바스크립트 엔진을 기본으로 하여 이를 실행시키는 개발 프레임워크이다. 웹 서버와 서버 측 스크립트, 그리고 지원하는 모든 웹 애플리케이션 기능을 포함한 서버 측 코드의 대부분을 Node.js
로 작성할 수 있다.
참고 : Node.js?
NoSQL
NoSQL
데이터베이스는 전통적인 관계형 데이터베이스(RDBS)보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다.
참고 : SQL과 NoSQL의 비교, ICT 스토리
NPM(Node Package Manager)
Node Package Manager
의 약자로 Command Line 도구이다. 이 도구를 통해 NPMs
과 관련된 검색, 설치, 삭제, 발행 등 많은 작업을 할 수 있다. NPM
은 Node Package Registry
라고 불리는 노드 패키지 저장소와 개발 환경 사이에 연결고리 역할을 한다. 명령은 npm
이라는 키워드를 이용해 내릴 수 있다.
NPMs(Node Package Modules)
Node Package Modules
의 약자로 패키지로 묶은 노드 모듈들이라는 의미이다. 다른 프로젝트에서도 쉽게 공유하고 재사용, 설치가 가능한 패키지 라이브러리를 말한다.
Node Package Registry
Node Pacakge Registry
는 패키지를 다운로드 할 수 있는 공간을 말한다. 위치는 http://npmjs.org 이고, 이 저장소에서 최신 및 인기 있는 모듈에 대한 정보를 얻거나 특정 패키지를 검색해 찾을 수도 있다.
netstat
윈도우에서 소켓의 내용을 화면에 표시할 수 있는 명령어.
- a : 통신중인 것 뿐만 아니라 통신 개시 전의 것도 포함하여 전부 표시
- n : IP주소나 포트 번호를 번호로 표시
- o : 소켓을 사용하고 있는 프로그램의 PID표시
Nulecule
Docker와 같이 애플리케이션을 패키징하는 플랫폼이지만 Docker와는 다르게 모든 인스턴스에서 매끄러운 배치를 가능하게 하는 사양이다.
Nutch
Nutch
는 아파치 소프트웨어 재단에서 진행 중인 프로젝트로, 인터넷 검색 사이트에서 상업적인 요소를 배제하고 검색 그 자체로의 검색을 구성하고자 진행된 오픈 소스 웹 검색 엔진 프로젝트이다. Lucene
을 이용하여 색인과 검색을 한다.
O
OOM(Out of Memory)
메모리 부족에 의해 발생하는 에러. 메모리 추가 할당 불가, 커널에 의한 테스크 제거(kill), 대량의 스와핑 발생, 일시적 혹은 치명적인 결함 발생등을 유발한다.
참고 : Hanbit.co.kr
ORM(Object-Relational Mapping)
ORM
은 Java와 같은 객체지향 언어에서 객체를 표현하듯이, 관계형 데이터베이스를 객체지향 프로그래밍 언어와 매핑시켜, 쉽게 표현하자는 목적으로 만들어진 기술.
OpenDaylight
OpenDaylight
는 다른 요소 없이 직접적으로 배치할 수 있는 완전하게 기능적인 SDN 플랫폼을 제공하는 것을 목표로하고있다.
참고 : OpenDaylight
OpenIoT
OpenIoT
는 유럽연합 집행위원회의 자금지원을 받은 연구 프로젝트로 클라우드 컴퓨팅 제공 모델을 활용하는 새로운 오픈, 대규모, 지능형 사물인터넷 애플리케이션을 새롭게 총체적으로 활성화하는 것이 목표다.
P
Partitioning
테이블의 데이터를 파티션 단위로 나누어서 저장하는 것을 말한다. Partition key에 따라 별도의 세그먼트에 저장하며, 인덱스 또한 마찬가지로 저장한다. Partitioning
은 관리적 측면과 성능적 측면에서 이루어진다.
PageRank
PageRank
는 월드 와이드 웹과 같은 하이퍼링크 구조를 가지는 문서에 상대적 중요도에 따라 가중치를 부여하는 방법이다. 서로간의 인용과 참조로 연결된 임의의 묶음에 정의할 수 있다.
prefork
Apache MPM
모듈의 요청 처리방식 중 하나로, 프로세스당 스레드를 하나만 사용하고 하나의 요청에 대해 별게의 프로세스를 사용한다. 요청당 프로세스를 만들기 때문에 메모리 사용량이 큼
Predicate
Predicate
는 인수로 값을 받아 true나 false를 반환하는 함수를 말함. 자바 8에서 Function<T, U> 같이 코드를 구현할 수 있지만 Predicate
Protocol
통신 동작의 규칙을 정한 것을 Protocol
이라고 부른다.
Protocol stack
OS 내부에 내장된 네트워크 제어용 소프트웨어, ‘프로토콜 드라이버’, ‘TCP/IP 소프트웨어’ 등으로도 부른다.
Proxy pattern
Proxy pattern
이란, 실제 사용되는 객체의 생성이나 레퍼런스를 대리인, 즉 Proxy 객체가 정해주는 디자인 패턴을 말한다. 쉽게 이야기하면 사용자는 Proxy를 Target 오브젝트 대신에 넘겨주고, 실제 Target 오브젝트가 필요할때는 Proxy객체가 Target 오브젝트를 필요할 때 생성해서 사용하도록 하는 방법이다. Proxy pattern은 실제 Target 오브젝트의 기능에는 관여하지 않으면서, Target 오브젝트에 접근하지 위한 방법을 제어해주는 역할을 한다.
PointCut
어떤 클래스의 어느 JoinPoint를 사용할 것인지를 결정하는 선택 기능. 와일드카드를 이용해 선택을 한다.
Q
R
Rendering engine
Rendering Engine
의 역할을 요청 받은 내용을 브라우저에 표시하는 일이다.
React Native
페이스북이 후원하는 오픈소스 프로젝트로 크로스 플랫폼과 네이트브 툴의 두 가지 장점을 제공한다. React Javascript Library를 이용해 네이티브 애플리케이션을 구축하는 프레임워크인 React Native
를 통해 애플리케이션 로직은 자바스크립트로 동작하면서도 iOS와 안드로이드 모두에서 사용자 인터페이스를 완전한 네이티브 상태로 유지한다.
Reflection
Java 코드 자체를 추상화해서 접근하도록 만든 것을 말한다. Method
객체를 받아와 해당 메소드의 정보를 확인하거나 조작할 수 있다. 받아온 메소드의 참조는 invoke()
메소드를 이용해서 실행시킬 수 있다.
Reverse Proxy
리버스 프록시 서버를 외부에 두고, 해당 서버를 통해서만 사내망이나 격리된 네트워크에 접근할 수 있게끔 하는 형태로 주로 사용된다. 보안을 주 목적으로 하며, 리버스 서버를 Cluster로 구성하는 경우, 가용성을 높일 수 있다.
RDD
Responsibility-Driven Development
는 협력에 필요한 책임들을 식별하고 적합한 객체에게 책임을 할당하는 방식으로 애플리케이션을 설계한다.
Rocket.Chat
Rocket.Chat
은 자체 채팅 서비스를 관리하고 싶어하는 커뮤니티와 기업을 위해 개발된 오픈소스 웹 채팅 플랫폼이다. Rocket.Chat
은 모듈식 “패키지” 접근방식을 취해 로켓챗이 단순한 메시지와 면대면 화상회의, 다중 사용자 전화 회의, 화면 공유 등까지 실시간 커뮤니케이션을 위한 인상적인 기능을 제공할 수 있도록 했다.
R & R
Role & Responsibility 역할과 책임
팀 내에서 중첩되는 일이 없도록 경계를 두어 일을 하는 것
rpm
Redhat Package Manager
의 약자로, 리눅스에서 사용하는 패키지관리 유틸을 의미한다. 대표적인 명령어는 아래와 같다.
#rpm -ivh 패키지이름
: 패키지 설치시#rpm -Uvh 패키지이름
: 패키지 업그레이드시#rpm -e 패키지이름
: 패키지 삭제시
rsync
백업 혹은 미러링 시스템을 만들기 위해서 사용되는 유닉스, 리눅스에서 사용하는 툴. 사용법이 간단하고 성능 상의 장점이 있어서 많이 사용된다. 같은 파일 시스템 뿐만 아니라 원격에 있는 시스템에서도 Directory를 복사할 수 있다. 참고 : rsync?
S
Sandbox
Chrome 브라우저나 IE 브라우저에서 사용되고있는 보호 계층이다. 악의적인 사이트나 시스템 파괴 소프트웨어를 접할 때 이를 막아주는 역할을 한다.
참고 : 20ThingsIlearned
Sharding
관계형 데이터베이스에서 대량의 데이터를 처리하기 위해 파티셔닝을 하는 기술. 데이터베이스 자체를 분할하는 방식이기 때문에 어플리케이션 레벨에서 구현해야 한다.
SaltStack
SaltStack
은 파이썬 기반의 자동화 시스템 관리 프로그램이다. 서버의 설정파일, 패키지 관리, 시스템 명령어들을 다수의 서버에 동시에 수행할 수 있도록 해준다. Puppet이나 Chef 또는 Ansible과 비슷한 역할을 한다.
STAF
Software Test Automation Flatform
의 약자로, 분산환경 테스트 자동화를 위한 프레임워크. 다양한 분산환경에 미리 실행되어있는 STAFProc
을 통해 통신을 하는 구조이다.
참고 : STAF?
Stream
Stream
이란 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임.
Selenium
Selenium
은 테스트 코드 실행으로 브라우저에서의 액션을 테스트 할 수 있게 해주는 테스팅 도구다.
Selenium IDE
로 브라우저 상에서의 액션을 녹화해서 테스트 코드를 생성할 수 있으며, 그 테스트 코드를 Eclipse나 IntelliJ 같은 IDE의 런타임에서 JUnit 테스트와 같은 방식으로 실행해서 브라우저 상에서의 액션을 재생할 수 있다.
참고 : Selenium?
Session
세션(Session)
이란 일정 시간동안 같은 사용자(정확하게 브라우저를 말한다)로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다. 즉, 방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 Session
이라고 칭한다는 것.
Selenide
Selenium
를 기반으로 만들어진 Test Automation Framwork. Selenium
에 비해 유동적인 API와 Ajax 등을 지원한다.
참고 : Selenide Org, Selenide?
Servlet
클라이언트의 요청을 받아 그에 대한 처리를 하고 결과를 응답으로 되돌려주는 서버 모듈을 말한다. 그렇기 때문에 사용자에 요청에 따라서 다른 HTML문서를 만들어 낸다. 이는 JSP가 받아서 뷰로 리턴.
Servlet Container
서블릿을 서버에서 실행하기 위한 서버 프로그램. 웹 서버는 서블릿 자체를 실행하지 못하므로 JVM을 내장한 컨테이너라는 서블릿 실행환경이 필요하다.
Serverspec
은 다른 모든 구성 관리 툴과 독립적으로 서버 구성을 테스트하는 단순한 접근방식을 제공한다. 서버스펙을 사용하면 서버 구성을 확인할 수 있는 R스펙(Rspec) 테스트를 작성할 수 있다.
참고 : Serverspec
Stateless Protocol
Stateless protocol은 어떠한 이전 요청과도 무관한 각각의 요청을 독립적인 트랜잭션으로 취급하는 통신 프토로콜이다.HTTP와 IP가 대표적인 Stateless protocol. Stateless protocol은 진행 중인 송수신 정보를 처리하기 위해 저장공간을 동적으로 할당할 필요가 없어 서버 디자인을 단순하게 해준다.
Storm
아파치 소프트웨어 재단에서 진행하는 프로젝트로, 데이터 스트림을 분석하고 처리하는 툴. Bolt라는 필터를 가지고 쓸모없는 데이터를 버린다.
Singleton
Singleton
이란 하나의 오브젝트를 만들고 이를 여러 Servlet
에서 공유해서 사용하는 디자인 패턴이다.
참고 : Singleton?
SPOF
Single Point Of Failure(SPOF)
의 준말로, 한 부분이 죽었을 경우에 시스템 전체가 죽게되는 부분을 말한다. 예를 들어, 웹 서버하나와 데이터베이스가 1:1로 연결이 되있는 경우, 서버와 데이터베이스 둘다 SPOF에 해당한다.
Swagger
Code에서 문서를 만들어내는 tool.
T
TDD
Test-Driven Development(TDD)
는 테스트를 먼저 작성하고 그 테스트를 통과하는 실제 구현체를 작성하는 방식으로 개발을 진행한다. 여기서 주의할 점은, TDD
는 테스트코드를 작성하는 것이 목적이 아니라, 설계가 적합한지를 테스트를 통해 확인한다는 것이다.
참고 : TDD?
Tox
Tox
는 AIM, 스카이프(Skype)등을 대체하기 위한 보안 IM과 영상채팅 애플리케이션이다. 미국 국가 안보국(NSA)의 프라이버시 침해 논란 이후 상당히 관심을 받았다. 톡스는 사용이 쉬운 올-인-원 소통 플랫폼으로 문자, 음성, 영상 채팅이 가능하고, 업계 최고 수준의 암호화를 사용해 완전한 프라이버시를 제공한다.
참고 : Tox
U
UUID
Universally Unique IDentifier(UUID)
는 네트워크 상에서 고유한 이름을 생성하기 위해서 각각의 개별주체가 스스로 이름을 짓고 고유성을 유지하기 위해 만든 표준이다. UTC타임을 기반으로 자동생성하게 되는데 100% 고유할 수는 없지만 어느정도의 신뢰성을 가진다.
Unmashalling
역직렬화와 유사한 개념. 마샬링한 객체를 다시 원래대로 돌리는 것을 말함.
Undertow
Java로 작성된 웹 컨테이너이며, NIO 기반의 Blocking / Non-blocking API를 제공한다. 런타임에서 가볍게 동작하고 쉽게 사용할 수 있는 Builder API를 통해 임베드 되도록 설계되어 있다. HTTP2, SSL 등을 지원한다. 참고: 오픈나루
V
Value Object(VO)
Value Object
는 객체가 가지는 값에만 의미를 가지는 객체를 말한다. 따라서 어떠한 객체의 id가 무엇인지와는 상관없이 가지는 값, 즉 Attribute에 따라서 객체를 구별한다.
Vagrant
Vagrant
는 간소화된 VM 관리 서비스이다. 기존의 VM 환경을 사용하기 위해서는 VM Ware를 설치하고 OS를 설치하는 등 잡다한 설정을 일일이 해주어야 하는데, 이러한 반복적인 작업을 자동화하기 위해서 만들어진 서비스이다.
Vault
Vagrant를 만든 회사의 새 오픈소스 프로젝트인 Vault
는 API키, 비밀번호, 인증서, 직원 Credential, 기타 민감한 자원 등을 위한 안전한 자원 관리 툴이다.
virtualenv
독립적인 python
환경을 만드는데 사용되는 툴.
참고 : virtualenv
Virtual Machine
Virtual Machine(VM)
은 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터를 가상으로 하나 생성하는 소프트웨어이다. 이 가상환경에 OS를 설치하거나 응용프로그램을 설치할 수 있다. VM은 System Virtual Machine
과 Process Virtual Machine
으로 나뉜다.
W
Weaving
Cross-Cutting
이라고도 하며, PointCut에 의해 결정된 JoinPoint에 지정된 어드바이스를 삽입하는 과정을 말한다.
Webkit
사파리와 크롬 브라우저에서 사용하는 Rendering Engine이다.
WebApp
웹앱은 모바일웹과 네이티브앱을 결합한 것이다. 모바일웹 보다는 조금 더 모바일에 최적화된 앱을 말하는데, 일반적인 웹 기술로 개발되고 모바일 브라우저에서 실행되지만 풀 브라우징 방식이 아닌, 단일 페이지 형식으로 화면을 전환해 속도가 빠르다.
worker
Apache MPM
모듈의 요청 처리방식 중 하나로, 하나의 프로세스당 여러개의 worker스레드를 사용한다. 스레드 방식이기 때문에 메모리를 공유, 통신량이 많은 서버에 적당하다. 멀티스레드에서 발생할 수 있는 race condition에 대한 주의가 필요함
X
XPath
XPath
는 Selenium
에서 CSS Seletor
와 함께 가장 많이 사용하는 방법 중 하나이다. 성능면으로 CSS Selector
를 더 권장한다.
참고 : XPath?
Xvfb
xvfb
는 X virtual framebuffer의 약어. Display 수단과 물리적 입력장치가 없는 서버에서 가상의 브라우저를 띄울 수 있게 한다.
참고 : Xvfb(X Virtual Frame Buffer)?
Xamarin
Xamarin
은 Android와 iOS앱을 동시에 개발할 수 있게 만들어주는 크로스 플랫폼 개발환경이다. C# 기반으로 되어있으며 Android와 iOS의 대부분의 기능을 사용할 수 있게 해준다.
참고 : Xamarin-Realm
Xprivacy
Xprivacy
는 애플리케이션을 통한 데이터 유출을 막기 위해 만들어졌다. 앱에 가짜 데이터를 피딩하거나 아예 데이터를 들이지 않는 방식으로 애플리케이션이 접속할 수 있는 데이터 카테고리를 제한시킨다. 예를 들어, 애플리케이션이 연락처에 접속하는 것을 제한하면, X프라이버시가 빈 연락처 목록을 앱에 보낼 것이다.
참고 : Xprivacy
Y
Yum
Yellowdog Updater, Modified
의 약자로 RPM기반의 시스템(Redhat계열)을 위한 자동 업데이터이자 패키지 설치, 삭제도구 이다. RPM과 별개라고 생각하기보다는 RPM패키지를 설치하는 편리한 툴이라고 생각하면 된다.
참고 : Yum?