mj@home:~$

용어사전

A

apache

WebServer

Angular

AngularJS 1보다 빠르고 간결하게 개발이 가능하다.

장점

  • 빠른 구축이 가능하다.
  • 새로운 기능들을 사용할 수 있다.
  • API가 간결하다.
  • 생산성이 향상된다.

단점

  • 프로젝트 구조가 복잡하여 설계가 힘들다.

Angular CLI

Angular 프로젝트를 쉽게 생성, 실행, 빌드하는 툴

  • Angular 프로젝트를 구조에 맞게 생성하고 배포할 수 있다.

B

BI

Business Intelligence

  • 기업에서 데이터를 수집, 정리, 분석하고 활용하여 효율적인 의사결정을 할 수 있는 방법에 대해 연구하는 학문

C

CI

Continuous Integration

  • 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것
  • 모든 개발을 완료한 뒤 퀼리티 컨트롤을 적용하는 고전적인 방법을 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 주리는데 초점을 두고 있다.

CI Server

빌드 프로세스를 관리 하는 서버

  • 형상관리 서버에 commit된 소스코드를 주기적을 폴링하여 컴파일, 단위테스트, 코드 인스펙션 등의 과정을 수행하며 신규 또는 수정된 소스코드가 결함이 있는지의 여부를 지속적으로 검증한다.

CGI

공용 게이트웨이 인터페이스(Common Gateway InterFace; CGI)

  • 서버와 클라이언트가 “문의”와 “답변”을 주고 받는 통신 및 처리규약
  • 서버 프로그램과 내부 프로그램과의 연계법을 정한 것
  • 언어의 종류에 문제없이 확장하여 이용하는 것이 가능
  • 대표적으로 전자게시판(BBS), 접속 카운터, 위키(백과사전), 블로그 시스템

참고

http://www.sck.pe.kr/c-cgi/whatiscgi.htm

CVS

Concurrent Version System

  • 1986년 Dick Grune에 의해서 개발된 버전관리 시스템.
  • 현재까지도 많은 프로젝트나 기업에서 CVS를 버전관리 시스템으로 사용하고 있다.

단점

  • CVS 프로토콜은 한 번 등록된 디렉토리나 파일의 이동이나 이름 변경을 허용하지 않는다.
  • RCS를 따라 나왔기 때문에 개별 파일 단위로만 버전관리가 되었다.
  • 아스키코드로 된 파일명만 지원할 뿐 유니코드에 대한 지원이 제한적.
  • 파일 이름을 모두 영어로 변경해야 했다.

Cross Domain

CORS (Cross-origin resource sharing) No ‘Access-Controll-Allow-Origin’ header is present on the requested resource

  • 자바스크립트 보안 정책중 하나
  • 자기의 도메인이 아닌 다른 URL로 AJAX 호출을 할때 결과값을 reject한다.
  • 스프링 2.5버전 이상에선 api server controller에 @CrossOrigin을 추가하면 문제를 쉽게 해결할 수 있다.
  • 관련 필터 설정이나 js library들도 존재한다.

Chromium

오픈 소스 웹 브라우저 프로젝트

  • [크로미움], [크로뮴]
  • 구글 크롬은 크로미엄 코드를 사용하여 개발된다.

D

Django

  • 파이선으로 만들어진 오픈소스 웹 어플리케이션 프레임워크

장고 시작하기

DWR

Direct Web Remoting

  • javascript 상에서 직접 서버에 정의되어있는 method를 호출하여 사용할 수 있는 프레임워크
  • ajax는 url 호출 방식(request, response)인 반면 DWR은 직접 Service나 DAO를 호출하는 방식
  • 선언되어 있는 bean의 method를 호출하고 callback함수로 data를 받아 처리한다.
  • 초창기에는 많이 사용됬지만 현재는 거의 사용하지 않는다.
    • 8~9년 전을 마지막으로 더 이상 버전 업을 하지 않는다.
    • 서버사이트 스크립트가 유행하기 때문에 사용하지 않는다.

사용 방법

E

Electron

Chromium과 Node.js를 이용하여 데스크톱 앱을 HTML, CSS, Javascript로 쉽게 만들 수 있게 해주는 프레임 워크

예제

F

G

H

I

iBatis

  • MyBatis의 구버전

차이점

종류 Java 버전 Package
iBatis JDK 1.4~ com.ibatis.*
MyBatis JDK 1.5~ org.apache.ibatis.*

J

Jetty

Open source Servlet Container

  • 자바 기반 웹 컨텐츠인 서블릿과 JSP를 지원한다.
  • 자바와 자바 API로 작성되었고 JAR로 사용 가능하다.
  • JSP/Servlet Engine이 Tomcat보다 더 작고 가벼워 각광 받는다.

Jenkins

Open Source CI Tool

특징

  • 자바 기반으로 만들어져 있다.
  • 다양한 플러그인을 지원한다.
  • 프로젝트의 빌드가 정상적으로 되고 있는지 체크
  • 자동으로 유닛 테스트와 통합 테스트(integration test)들의 정기적인 실행. 테스트 결과에 문제가 있을 때 이메일을 통해 리포팅
  • SonarQube같은 코드의 질을 확인 할 수 있는 모니터링 시스템과의 연동으로 코드의 질을 조절

Jinja

Python용 템플릿 엔진

Jinja2 시작하기

JNLP

Java Network Launching Protocol

  • Web Client에서 Server의 java application을 실행하기 위한 프로토콜

JWS

Java Web Start

  • JNLP를 처음 실행할 때 JWS를 가지고 실행된다.
  • 그 이후로는 client에 저장된 application이 실행된다.

K

L

L4 Switch

  • vip를 가지고 여러개의 서버ip에 적절히 연결해주는 방식의 load balancer

참조

L4/L7 스위치 HAProxy

L7 Health check

  • 간단한(OK출력) 페이지를 만들어 http 연결이 되어 있는지 확인하는 방법

L7 Switch

  • 콘텐츠를 인지하여 스위칭하는 장비

기능

  • TCP/UDP 헤더 및 데이터의 일부를 분석하고 분류합니다.
  • HTTP URL 기반의 패킷 스위칭기능을 수행합니다.
  • 세션별, 유저별, 혹은 응용별 QoS 정책을 지정할 수 있습니다.
  • 응용프로그램 레벨의 로직 구성이 가능합니다.

Log4j

사용법/가이드?

Logback

log4j 프로젝트의 후계자로 만들어졌다.

log4j개발자가 사용되면서 불편했던 내용들을 모두 개선해서 logback이라는 제품을 만들어냈다.

Lombok

Java Source를 컴파일할 대, Lombok의 Annotaion을 확인해서 그에 적합한 메소드를 생성해주는 방식의 라이브러리

LiveCD

주로 리눅스 계열의 운영 체제에서 사용하는 일종의 시동 디스크

  • 설치없이 OS를 부팅 할 수 있다.
  • OS를 시험(체험)하기 위해서 사용한다.
  • 시스템 복구용으로 사용한다.

M

MyBatis

개발자가 지정한 SQL, 저장프로시져 그리고 몇가지 고급 맵핑을 지원하는 퍼시스턴스 프레임워크

  • JDBC로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 맵핑을 대신해준다.
  • 데이터베이스레코드의 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정해서 맵핑하기 위해 XML과 어노테이션을 사용 할 수 있다.

N

Network 7 Layer

레벨 계층 기능
7계층
Application
응용 계층
프로토콜: HTTP, SMTP, SNMP, FTP, Telnet, SSH&Scp, NFS, RTSP
서비스 제공
사용자가 네트워크에 접근할 수 있도록 해주는 계층
사용자 인터페이스, 전자우편, 데이터베이스관리 등 서비스를 제공한다.
(예 텔넷, http, ssh, smtp, ftp)
6계층
Presentation
표현 계증
프로토콜: JPEG, MPEG, SDR, ASN.1, SMB, AFP
이해할 수 있는 포맷변환
운영체계의 한부분으로 입력 또는 출력되는 데이터를 하나의 표현 형태로 변환한다.
필요한 번역을 수행하여 두 장치가 일관되게 전송 데이터를 서로 이해할 수 있도록 한다.
제어코드나 문자 및 그래픽등의 확장자(jpg, gif, mpg)를 생각하면 쉽다.
5계층
Session
셰션계 계층
프로토콜: TLS, SSH, ISO 8327 / CCITT x.255, RPC, NetBIOs, AppleTalk
응용간의 질서 제어
통신 세션을 구성하는 계층으로, 포트연결이라도고 할 수 있다.
토인 장치간의 상호작용을 설정하고 유지하며 동기화 한다.
사용자간의 포트연결이 유효한지 확인하고 설정한다.
4계층
Transport
전송 계층
프로토콜: TCP, UDP, RTP, SCTP, SPX, AppleTalk
장비: 게이트웨이
전체 메시지를 발신지 대 목적지간 제어와 에러를 관리한다. 패킷들의 전송이 유효한지 확인하고 실패한 패킷은 다시 보내는 등 신뢰성 있는 통신을 보장하며, 머리말에는 세그먼트가 포함된다. 대표적인 프로토콜은 TCP이다.
3계층
Netword
네트워크 계층
프로토콜: IP, ICMP, IGMP, X.25, CLNP, ARP, RARP, BGP, OSPF, RIP, IPX, DDP
장비: 라우터
다중 네트워크 링크에서 패킷을 발신지로부터 목적지로 전달할 책임을 갖는다.
2계층은 노드대노드 전달을 감독하는 것이고 3계층은 각 패킷이 시작 시점에서 치ㅗ종 목적지까지 성공적이고 효과적으로 전달되도록하며, 대표적 프로토콜은 IP이다.
2계층
Data link
데이터링크 계층
프로토콜: Ethernet, Token Ring, PPP, HDLC, Frame relay, ISDN, ATM, 무선랜, FDDI
장비: 브릿지, 스위치
오류없이 한 장치에서 다른 장치로 프레임을 전달하는 역할
스위치같은 장비의 경우 MAC주소를 이용하여 정확한 장치로 정보 전달
3계층에서 정보를 받아 주소와 제어정보를 시작과 끝에추가
1계층
Physical
물리 계층
프로토콜: 전선, 전파, 광섬유, 동축케이블, 도파관, PSTN, Repeater, DSU, SSU, Modem
장비: 허브, 리피터
물리적 매체를 통해 비트흐름을 전송하기 위해 요구되는 기능들을 조정
케이블, 연결 장치 등과 같은 기본적인 물리적 연결기의 전기적 명세를 정하고 네트워크의 두 노드를 물리적으로 연결시켜 주는 신호방식을 다룸

O

OAuth

인증을 위한 Open Standard Protocol로 사용자가 Facebook이나 트위터 같은 인터넷 서비스의 기능을 다른 어플리케이션에서도 사용 할 수 있게 한 것

P

PostgreSQL

  • [포스트-그레스-큐엘]
  • 북미와 일본에서 많이 사용하고 있는 RDBMS
  • ORDBMS, 엔터프라이즈급 DBMS
  • Oracle과 유사한 오픈소스 DBMS

PostgreSQL ??

PHP

Hypertest Preprocessor

  • 오픈소스 서버 스크립트 언어(서버에서 실행), 웹 개발에 적합하고 HTML 내에 삽입 될 수 있는 언어.
  • 동적인 대화형 웹페이지를 작성하기 위한 도구
  • 생활코딩 PHP 교육자료

pom.xml

Maven 프로젝트를 생성하면 생성된다. Project Object Model 정보를 담고 있다.

  • 프로젝트 정보: 프로젝트의 이름, 개발자 목록, 라이센스 등의 정보
  • 빌드 설정: 소스, 리소스, 라이프 사이클 변 실행할 플러그인 등 빌드와 관련된 설정
  • 빌드 환경: 사용자 환경 별로 달라질 수 있는 프로파일 정보를 기술
  • POM 연관 정보: 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등을 기술

PXE

Pre-boot eXecution Environment

네트워크 인터페이스를 통해 컴퓨터를 부팅할 수 있게 해주는 환경

  • PXE 서버(설정파일을 가지고 있는 서버), TFTP 서버(이미지 파일을 전송), PXE 클라이언트(PXE 지원 네트워크 카드)
  • CD, USB 등을 사용하지 않고 원격으로 서버에 OS를 설치하기 위해 주로 사용한다.

Q

R

Read The Docs

  • git, bitbucket과 같은 버전관리 툴에 존재하는 문서를 HTML페이지 형태로 만들어 주는 오픈소스 프로그램
  • Repository에 있는 markdown, reStructuredText파일을 페이지로 만들어준다.
  • 오픈소스로 이루어져있기 때문에 Repository, Docs페이지를 누구나 열람이 가능하다.

개발 문서 버전관리 툴

참고 사이트

Redis

No SQL의 일종

  • REmote DIctionary Server의 약자
  • 자주 Memcached와 비교되는 in memory 저장소 이다.

특/장점

  • 처리속도가 빠르다
  • 데이터가 메모리+Disk에 저장된다.
  • 만료일을 지정하여 만료가 되면 제거한다.
  • 저장소 메모리 재사용 하지 않는다.
  • 문자열, set, sorted set, hash 지원
  • key/value 형태의 데이터 베이스이다.
  • value에 공백이 없다면 ““로 묶지 않아도 된다.

S

Selenium

테스트 코드 실행으로 브라우저에서의 액션을 테스트 할 수 있게 해주는 테스팅 도구

Singleton Pattern

프로젝트 진행시 하나의 클래스의 단 하나의 인스턴스만을 생성하는 것

특징

  • 생성자가 없다.
  • 1개의 인스턴스만 만들어진다.

StringUtils

자바의 String 클래스가 제공하는 문자열 관련 기능을 강화한 클래스

  • org.apache.commons.lang.StringUtils
  • StringUtils 클래스만으로 거의 대부분의 문자열 처리를 수행
  • 파라미터 값으로 null을 주더라도 절대 NullPointException을 발생시키지 않는다.

SE & SI

System Engineer & System Integration

  • SE : 기업내의 IT 시스템이 문제없이 돌아가도록 문제해결, 각종 설정, 세팅을 하는 사람 (유지보수)
  • SI : 기업 등의 IT 시스템을 총괄적으로 구축해주는 일

SVN

SubVersion

  • 2004년부터 CVS의 핵심 개발자들이 보다 나은 CVS를 표방하며 개발하기 시작한 SVN

CVS 보다 좋은 점

  • 소스코드 뿐만 아니라 바이너리(문서/라이브러리 등)도 지원한다.
  • 커밋의 단위가 개별 파일이 아닌 변경된 작업 단위이다.
  • 디렉토리나 파일 별로 세밀한 접근제어가 가능하다.
  • CVS에 비해 빠르다.
  • CVS와 개념 및 사용법이 같아 CVS 사용자들이 쉽게 옮겨올 수 있다.

사용법

  • 클라이언트-서버 모델을 채택하고 있다.
  • 표준 프로토콜로 svn을 채택하고 있다. (svn://서버명[포트]/repos/저장소명)
  • 설정을 통해 hhtp로 시작하는 URL을 통해서도 볼수 있고, 보안을 위해 SSH를 적용할 수도 있다.
  • Berkeley DB를 사용해서 파일을 관리한다.
  • 관례적으로 trunk, branches, tags라는 세 개의 디렉토리를 가지고 시작하는 것이 좋다.
  • trunk : 프로젝트의 원본
  • branches : 원본과는 다른 목적으로 프로젝트가 분기 된 버전
  • tags : 정기적으로 1.0 버전, 2.0 버전과 같은 식으로 특정 시점의 릴리즈를 따로 관리하기 위한 곳이다.

T

texlive

  • ???

Tomcat

Web Application Server

Tomcat Project

  • 프로젝트 구성이 war파일의 형식을 갖추고 있어 tomcat으로 직접 실행시키는 Project
  • war파일을 만들어 실행 할 수도 있다.
  • 직접 tomcat directory에 프로젝트를 넣어서 실행 할 수 있지만, debug가 안되기 때문에 eclipse로 사용
  • eclipse에서 실행시에 tomcat plugin을 설치하여 tomcat을 실행시키는 방식으로 사용

Tensorflow

기계 학습과 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리

Tensorflow 시작하기

TFTP

Trivial File Transfer Protocol

FTP와 마찬가지로 파일을 전송하기 위한 프로토콜이지만, FTP보다 더 단순한 방식으로 파일을 전송한다.

  • 데이터 전송 과정에서 데이터가 손실될 수 있는 등 불안정하다는 단점이 있다.
  • 구현이 간단하다.
  • 임베디드 시스템이나 운영 체제 업로드로 주로 사용된다.

U

unStructuredText

  • python에서 주로 사용하는 개발문서

wiki

V

W

Web Application Server

  • Web server에서는 동적인 데이터를 보내지만 거기서 보여줄 수 없는 동적인 데이터를 보내준다.
  • 컨테이너(Container), 웹컨테이너(Web Container), 서블릿컨테이너(Servlet Container), 와스(WAS)라 부른다.

Web Hook

  • hook은 특정 이벤트나 작업이 진행될 대 자동적으로 다른 스크립트를 실행시켜주는 것을 말한다.
  • 깃허브에서는 web hook을 지원하고 있다.

Web Server

프로토콜을 이해하고 클라이언트와 통신을 하고 요청을 웹어플리케이션 서버에 넘겨주는 역할

  • 클라이언트의 요청을 기다리고 요청에 따라 정적인 데이터(html, css, ja, image)를 보내는 역할을 한다.

X

Y

Z

ETC

리눅스 파일 시스템 구조