개발관련 용어정리
1. ASP.NET Core
ASP.NET Core는 최신 클라우드 사용 인터넷 연결 앱을 빌드하기 위한
플랫폼 간 고성능 오픈 소스 프레임워크입니다.
2. Framework
프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며,
소프트웨어 개발에 있어 하나의 뼈대 역할을 합니다.
3. Azure IoT
사물 인터넷 또는 IoT는 에지와 클라우드에서 수십억 개의 IoT 자산을 연결, 모니터링,
제어하는 관리형 서비스 및 플랫폼의 컬랙션입니다.
4. Cloud
클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을 말합니다. 인터넷 상의 가상화된 서버에 프로그램을 두고
필요할 때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스입니다. 클라우드(Cloud)라는 단어가 말해주듯, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원을 원하는대로 가져다 쓸 수
있습니다.
5. On-premise
온프레미스(on-premise)는 소프트웨어 등 솔루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한
전산실 서버에 직접 설치해 운영하는 방식을 말합니다. 온프레미스는 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었기 때문에 “이전의” 또는 “전통적인”이라는 단어와
함께 사용됩니다.
6. 웹앱
클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을
말합니다. 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할 때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스입니다. 클라우드(Cloud)라는 단어가 말해주듯, 인터넷 통신망 어딘가에서
구름에 싸여 보이지 않는 컴퓨팅 자원을 원하는대로 가져다 쓸 수 있습니다.
7. Intranet
인트라넷(Intranet)은 단체의 직원만 접근이 가능한 사설망입니다. 인터넷 프로토콜을 쓰는
폐쇄적 근거리 통신망으로 간주됩니다. 근거리 통신망(LAN)을 기반으로 데이터 저장장치인 서버를 연결하고 PC에 설치된 인터넷 검색 프로그램을 통해 업무를 처리할 수 있게 하는
것입니다. 방화벽을 설치하여 외부로부터의 접근을 막거나 일부 제한하여 보안을 유지합니다.
8. API
API(Application Programming Interface)는 컴퓨터나 컴퓨터 프로그램
사이의 연결입니다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공합니다.
9. WEB API
웹 서버 또는 웹 브라우저를 위한 애플리케이션 프로그래밍 인터페이스입니다. HTTP 서비스이고
다양한 클라이언트에서 접근이 가능하도록 설계되어 있습니다. Web 환경을 통해 제공되는 데이터 CRUD인터페이스를 제공합니다.
10. CRUD
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성),
Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말입니다. 사용자 인터페이스가 갖추어야 할 기능 (정보의 참조/검색/갱신)을 가리키는 용어로서도
사용됩니다.
11. REST
REST(Representational State Transfer)은 자원을 URL로 표시하고 해당 자원의
상태를 주고 받는 것을 의미합니다. REST의 구성요소로는 자원(URL), 행위(HTTP METHOD), 표현이 있습니다.
12. RESTful
REST를 REST답게 쓰기 위한 방법으로 공식적이지 않은 개발자들이 비공식적으로 제시한 것입니다.
이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이 목적입니다.
13. Workflow
워크플로(Workflow)는 작업 절차를 통한 정보 또는 업무의 이동을 의미하며, 작업 흐름이라 부릅니다.
14. Syntax
프로그래밍 언어에서 프로그램의 모습, 형태 구조가 어떻게 보이는지에 대해 정의하는 것입니다.
15. gRPC
gRPC(Google Remote Procedure Calls)는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출(RPC) 시스템입니다.
전송을 위해 HTTP/2를, 인터페이서 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공합니다.
16. RPC
원격 프로시저 호출(Remote Procedure Call)은 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술입니다.
다시 말해, 원격 프로시저 호출을 이용하면 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 동일한 코드를 이용할 수 있습니다.
17. 종속성 주입
종속성 주입(Dependency Injection)은 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로 인터페이스를 사이에 둬서
클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 다이나믹하게 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해줍니다.
18. Razor Pages
Razor Pages는 ASP.NET 에서 뷰를 동적으로 생성할 수 있는 기술입니다. Rager라는 기술로 만든 뷰 파일의 확장자는 .cshtml입니다.
19. React
React는 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용됩니다. 페이스북과 개별 개발자 및 기업들 공동체에 의해 유지보수됩니다.
React는 싱글 페이지 애플리케이션이나 모바일 애플리케이션 개발에 사용될 수 있습니다.
20. LINQ
LINQ(Languate-Integrated Query)는 표현력 있는 선언형 코드를 작성하는 데 사용할 수 있는 C# 및 Visual Basic에 고차함수 API와 언어 수준의 쿼리 기능을 제공합니다.
21. HTML
HTML은 Hyper Text Markup Language의 약자로 프론트엔드에서 사용되며
CSS를 사용하여 스타일을 지정할 수 있고 Javascript를 사용하여 대화형으로 만들 수 있는 웹 페이지의 구조를 제공합니다.
22. Semantic Tag
시멘틱은 “의미의, 의미론적인”이라는 뜻입니다. 즉, HTML5에 도입된 시맨틱 테그는 개발자와 브라우저에게 의미있는 태그를 제공합니다.
23. SEO
검색 엔진 최적화(Search Engine Optimization)는 검색 엔진으로부터 웹사이트나 웹페이지에 대한 웹사이트 트래픽의 품질과 양을 개선하는 과정입니다.
24. CSS
CSS(Cascading Style Sheets)는 웹사이트의 프론트엔드 스타일을 지정하는 데 사용되는 언어입니다. CSS는 HTML 및 Javascript와 함께 World Wide Web의 초석 기술입니다.
25. 반응형 웹 디자인
반응형 웹 디자인(Responsive Web Design)이란 하나의 웹 사이트에서 PC, 스마트폰, 태블릿, PC 등 접속하는
디스플레이의 종류에 따라 화면의 크기가 자동으로 변하도록 만든 웹 페이지 접근기법을 말합니다.
26. Javascript
자바스크립트는 객체 기반의 스크립트 프로그래밍 언어입니다.
이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있습니다.
27. DOM
문서 객체 모델(Document Object Model)은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스입니다.
이 객체 모델은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공합니다.
28. Ajax
Ajax(Asynchronous Javascript and XML)은 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나입니다.
Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있습니다. 즉, Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있습니다.
이때 서버와는 JSON, XML HTML 등 다양한 형태의 데이터를 주고받을 수 있습니다.
29. ASP
ASP(Active Server Pages)는 마이크로소프트사에서 동적으로 웹 페이지들을 생성하기 위해 개발한 서버 측 스크립트 엔진입니다.
30. ECMA Scrpit
ECMA 스크립트(ECMAScirpt 또는 ES)란, Ecma Intermational이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된
스크립트 프로그래밍 언어를 말하며 자바스크립트를 표준화하기 위해 만들어졌습니다.
31. Evergreen Browser
에버그린 브라우저란 자동으로 브라우저가 사용자에 대한 별도의 재설치를 요구하지 않고도 업데이트가 가능한 브라우저를 말합니다.
32. Hoisting
Javascrpit에서 호이스팅이란, 인터프리터가 변수와 함수의 메모리 공산을 선언 전에 미리 할당하는 것을 의미합니다.
var로 선언한 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.
33. Web Hosting Service
웹 호스팅 서비스는 인터넷 호스팅 서비스의 일종으로 개인과 단체가 월드 와이드 웹을 통하여 웹사이트를 제공하는 것을 뜻합니다.
웹 호스트는 인터넷 연결을 제공할 뿐 아니라, 일반적으로 데이터 센터에서 클라이언트 이용에 대한 임대 또는 소유하는 서버의 공간을 제공하는 회사를 가리킵니다.
34. World Wide Web
월드 와이드 웹이란 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간을 의미합니다.
간단히 줄여서 WWW나 W3라고도 부르며, Web이라고 가장 많이 불립니다.
35. Event Bubbling
이벤트 버블링은 특정 화면 요소에서 이벤트가 발생했을 때 해당 이벤트가 더 상위의 화면 요소들로 전달되어가는 특성을 의미합니다.
36. Event Capturing
이벤트 캡쳐링은 버블링과 반대 방향으로 진행되는 이벤트 전파 방식이다.
37. Scope
스코프(Scope)는 참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙입니다.
자바스크립트는 이 규칙대로 식별자를 찾습니다.
38. npm
npm(Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자입니다.
자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자입니다.
39. nvm
nvm(Node Version Manager)은 Node의 여러 버전을 관리하기 위한 관리자입니다.
40. yarn
yarn은 페이스북에서 만든 자바스크립트 패키지 메니저이다.
npm의 단점을 보안한 툴로써 속도, 안정성, 보안성의 장점을 가지고 있습니다.
41. Node.js
Node.js는 Chrome V8 Javascript 엔진으로 빌드 된 Javascript 런타임입니다.
Javascript는 스크립트 언어이기 때문에 웹 브라우저가 없으면 사용할 수 없습니다. 이러한 Javascrpit를 웹 브라우저에서 독립시킨 것으로 Node.js를
설치하게 되면 터미널 프로그램에서 Node.js를 입력하여 브라우저 없이 실행이 가능합니다.
42. Runtime
런타임(Runtime)이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻합니다.
43. HTTP
HTTP(HyperText Transfer Protocol)는 W3 상에서 정보를 주고 받을 수 있는 프로토콜이다.
44. HTTPS
HTTPS(HTTP Secure)는 HTTP 프로토콜의 암호화된 버전입니다.
클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL이나 TLS을 사용합니다. SSL/TLS 인증서로 보안하는 경우 URL 창에 표시됩니다.
45. SSL
SSL(Secure Socket Layer)은 웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 보안을 유지하는 표준 기술입니다.
SSL은 단순히 전자 상거래만을 위한 것이 아닌 웹사이트에서 전송이 이루어지는 모든 유형의 정보 보안을 유지합니다.
46. TLS
TLS(Transport Layer Security)는 가장 최신 기술의 SSL입니다.
47. SSL 인증서
SSL 인증서란 클라이언트와 서버간의 통신을 제 3자가 보증을 해주는 문서입니다.
클라이언트가 서버에 접속하면 서버는 클라이언트에게 인증서를 전달하고, 클라이언트는 인증서를 확인하고 신뢰할 수 있는 사람인지 확인 후 데이터를 보내는 등 절차를 수행합니다.
48. 콘텐츠 보안 정책
콘텐츠 보안 정책(Content Security Policy,CSP)은 신뢰된 웹 페이지 콘텍스트에서 악의적인 콘텐츠를 실행하게 하는
사이트 간 스크립팅(XSS), 클릭재킹 그리고 기타 코드 인젝션 공격을 예방하기 위해 도입된 컴퓨터 보안 표준입니다.
49. OWASP
OWASP(The Open Web Application Security Project)는 오픈소스 웹 애플리케이션 보안 프로젝트입니다.
주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 애플리케이션의 취약점(OWASP TOP 10)을 발표했습니다.
50. Nuget
Nuget은 .NET의 패키지 관리자이다. 개발자는 NuGet으로 유용한 .NET라이브러리를 만들고 공유하고 사용할 수 있습니다.
NuGet 클라이언트 도구는 이러한 라이브러리를 “패키지”로 생성하고 사용할 수 있는 기능을 제공합니다.
51. CDN
콘텐츠 전송 네트워크(Content delivery network)는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말합니다.
예를 들어 설명하자면 원 서버에서 사용자에게 직접 콘텐츠를 전송하는 대신, 사용자와 가까운 서버로 데이터를 분산시켜 제공합니다.
52. Cookie
쿠키(Cookie)는 서버에 저장되는 세션과 달리 사용자의 브라우저에 간단한 정보를 저장하는 작은 데이터 파일로,
키(Key)와 값(Value)의 구조로 이루어집니다. 브라우저에 ID나 암호를 저장하거나, 사이트 방문 기록을 저장하는데 주로 쓰입니다. 사용자의 브라우저에 저장되기 때문에 서버의 자원을 사용할 수 없고,
사용자의 컴퓨터만 있다면 누구나 쿠키안에 있는 데이터를 확인할 수 있기 때문에 보안성이 떨어집니다.
53. Session
세션(Session)은 웹 브라우저를 통해 서버에 접속해 연결을 끊기 전까지 한 브라우저를 통해 사용자가 요청하는 상태 정보를 서버에 일정하게 유지하는 기술입니다.
서버에 접속하지 않는 이상 데이터를 탈취하기 어렵기 때문에 중요한 데이터를 저장할 때 주로 사용되며 로그인 정보를 유지하는 데 사용됩니다. 추가로 보안성이 낮은 Cookie 대신 전부 Session을 사용하면 된다고 생각할 수 도 있는데
만약에 전부 Session처리하게 된다면 Server에 무리가 갈 수 있습니다.
54. Cache
캐시(Cache)는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킵니다.
예를 들어 사이트를 불러올 때 전에 불러왔던 사진이나 배너, CSS, JS 등을 접속할 때마다 불러오게 된다면 데이터의 낭비가 일어나게 됩니다.
이를 방지하기 위해서 미리 클라이언트에 저장해두고 다시 접속했을 때 서버가 아닌 사용자의 PC에서 이를 가져오게 되므로 용량을 아낄 수 있습니다.
55. Browser Caching
브라우저 캐싱(Browser Caching)은 웹 페이지에 방문했을 때 페이지를 이루는 이미지나 HTML,
CSS 문서 등 일부 데이터를 사용자의 PC에 저장해둔 뒤 페이지를 재방문했을 때 서버에 요청할 필요없이 PC에 저장했던 데이터를 불러오는 캐싱 기술을 말합니다.
56. Coding Convention
코딩 컨벤션(Coding Convention)은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약입니다.
특히 자바스크립트는 다른 언어에 비해 유연한 문법구조(동적 타입, this 바인딩, 네이티브 객체 조작 가능)를 가지기 때문에 개발자 간 통일된 규약이 없다면 코드의 의도를 파악하거나 오류를 찾기 어렵습니다.
코딩 컨벤션을 준수하면 가독성이 좋아지고, 성능에 영향을 주거나 오류를 발생시키는 잠재적 위험 요소를 줄여줍니다. 특히 규모가 큰 프로젝트일수록 유지보수 비용을 줄이는 데 도움이 됩니다.
57. CSS Media Query
미디어 쿼리는 CSS에서 지정한 규칙에 브라우저 및 장치 환경이 일치하는 경우에만 CSS를 적용할 수 있는 방법을 제공합니다.
미디어 쿼리는 반응형 웹 디자인의 핵심입니다.
58. Metadata
메타데이터(metadata)는 데이터(data)에 대한 데이터로서 어떤 목적을 가지고 만들어진 데이터라고 정의할 수 있습니다.
59. Meta tag
메타 태그(meta tag)는 웹 서버와 웹 브라우저간에 상호 교환되는 정보를 정의하는데 사용됩니다.
흔히 작성자, 키워드 목록과 같은 HTML 문서의 속성을 설명하는 Name/Value입니다. 기본적으로 메타 태그는 문서의 실제 모양에 서식에 영향을 미치지 않습니다.
60. RSS
RSS(Rich Site Summary)는 뉴스나 블로그 사이트에서 주로 사용하는 콘텐츠 표현 방식입니다.
RSS가 등장하기 전에는 원하는 정보를 얻기 위해 해당 사이트를 직접 방문하여야 했으나, RSS 관련 프로그램(혹은 서비스)을 이용하여 자동 수집이 가능해졌기 때문에
사용자는 각각의 사이트 방문 없이 최신 정보들만 골라 한 자리에서 볼 수 있습니다.
61. BEM
BEM은 CSS 제작 방법론으로, 일종의 네이밍 컨벤션이라고 볼 수 있습니다.
html 요소들을 각각 Block, Element, Modifier 이렇게 세 가지로 분류하여 작명합니다. 각각의 BEM은 각자의 역할이 따로 있으므로 역할에 알맞은 클레스를 붙이는 게 관건입니다.
62. NaN
컴퓨터 연산에서 NaN(Not a Number)은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호입니다.
63. TypeScript
타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어입니다.
확장자로는 .ts를 사용하며, 컴파일의 결과물로 JavaScrpit 코드를 출력합니다.
타입스크립트를 사용하면 구문에서 오류 확인이 가능하며 대규모 프로젝트를 진행할 때 안정성을 보장합니다.
64. 동적 분석
실제 공격자가 어플리케이션을 공격하는 환경을 인위적으로 조성하여 실제 공격이 통하는지 여부를 발견하는 분석방법입니다. [외부에서 내부로]
65. 정적 분석
동적분석처럼 운영중인 어플리케이션을 대상으로 하는 것이 아닌 ‘소스코드’를 대상으로 접근하는 방식입니다. [내부에서 외부로]
66. 보일러 플레이트
최소한의 변경으로 여러 곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말합니다.
67. Refactoring
리펙토링(refactoring)은 소프트웨어 공학에서 결과의 변경 없이 코드의 구조를 재조정함을 뜻합니다.
주로 가독성을 높이고 유지보수를 편하게 하는 작업이며 버그를 없애거나 새로운 기능을 추가하는 행위는 아닙니다.
68. TDD
테스트 주도 개발(Test-driven development TDD)은 설계 이후 코드 개발 및
테스트케이스를 작성하는 기존의 개발 프로세스와 다르게 테스트케이스를 작성한 후 실제 코드를 개발하여 리팩토링하는 절차를 따릅니다.
69. 단위 테스트
단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트입니다.
여기서 모듈은 애플리케이션에서 작동하는 하나의 기능 또는 메소드로 이해할 수 있습니다. 예를 들어 웹 애플리케이션에서 로그인 메소드에 대한 독립적인 테스트가 1개의 단위 테스트가 될 수 있습니다.
즉, 단위 테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로, “어떤 기능이 실행되면 어떤 결과가 나온다” 정도로 테스트를 진행합니다.
70. 통합 테스트
통합 테스트(Integration)는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트입니다.
일반적으로 애플리케이션은 여러 개의 모듈들로 구성이 되고, 모듈들끼리 메세지를 주고 받으면서(함수호출) 기능을 수행합니다. 그렇기에 통합된 모듈들이 올바르게 연계되어 동작하는지 검증이 필요한데,
이러한 목적으로 진행되는 테스트가 통합 테스트입니다. 그렇기에 통합 테스트는 독립적인 기능에 대한 테스트가 아니라 웹 페이지로부터 API를 호출하여 올바르게 동작하는 지를 확인하는 것입니다.
71. Test stub
테스트 스텁(Test stub)이란 테스트 중인 모듈이 호출하는 다른 소프트웨어 구성 요소(예: 모듈, 변수, 객체)를 일시적으로 대체하는 소프트웨어 구성 요소를 말합니다.
72. Mark Down
마크다운은 일반 텍스트 기반의 경량 마크업 언어입니다.. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징입니다.
HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용됩니다.
73. FTP
FTP(File Transfer Protocol)는 인터넷 상에서 컴퓨터 사이의 파일을 전달하는데 사용되는 프로토콜입니다.
74. Reverse Engineering
리버스 엔지니어링(Reverse Engineering) 또는 역공학은 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정입니다.
75. XML
XML(eXtensible Markup Language)은 W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어입니다.
주로 데이터를 저장하고 전달하기 위한 목적으로 사용됩니다.
76. WCF
WCF(Windows Communication Foundation)는 네트워크 분산 서비스를 구축, 구성 및 배포를 위해 만들어진 플랫폼 및 런타임 시스템으로 서비스, 서비스 호스팅, 서비스 클라이언트로 구성됩니다.
WCF는 Endpoint를 통해 서버와 클라이언트 간의 메시지 교환을 진행합니다.
77. DAO
DAO(Data Access Object)는 데이터베이스의 data에 접근하기 위한 객체입니다.
Database에 접근하기 위한 로직 & 비즈니스 로직을 분리하기 위해 사용합니다.
78. DTO
DTO(Data Transfer Object)는 계층 간 데이터 교환을 하기 위해 사용하는 객체로,
DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스) 입니다.
79. VO
VO(Value Object)는 값 오브젝트로써 값을 위해 쓰입니다. Read-Only 특징(사용하는 도중에 변경 불가능하며 오직 읽기만 가능)을 가집니다.
80. AMP
AMP(Accelerated Mobile Pages)는 amp-html을 사용하여 웹페이지를 경량화하여 구현할 수 있도록 특별히 만들어진 Google의 오픈 소스 프레임워크입니다.
AMP는 모든 브라우저에서 콘텐츠를 더 빠르고 원활하게 로드하고 렌더링하며, 웹페이지를 모바일 친화적으로 만들도록 합니다.
81. Snippet
스니펫은 재사용 가능한 소스코드, 기계어, 텍스트의 작은 부분을 일컫는 프로그래밍 용어입니다.
82. Web Assembly
웹 어셈블리(Web Assembly, 간단히 Wasm)는 실행 프로그램 및 그와 일치하는 텍스트 어셈블리어,
그리고 이러한 프로그램과 호스트 환경 간 통신을 용이케하는 인터페이스를 위한 이식 가능한 이진 코드 포맷을 정의하는 개방형 표준입니다.
웹 어셈블리의 주 목적은 웹 페이지에서 고성능의 애플리케이션을 가능케 하는 것이지만 포맷은 다른 환경에서도 실행 및 연동되도록 설계되어 있습니다.
83. Plugin
플러그인 또은 추가기능은 호스트 응용 프로그램과 서로 응답하는 컴퓨터 프로그램이며, 특정한 주문식 기능을 제공합니다.
84. Webpack
웹팩(Webpack)은 오픈 소스 자바스크립트(JS) 모듈 번들러입니다.
주로 자바스크립트(JS)를 위한 모듈 번들러이지만 호환 플러그인을 포함하는 경우 HTML, CSS, 심지어는 이미지와 같은 프론트엔드 자산들을 변환할 수 있습니다.
85. HMR
HMR(Hot Module Replacement)은 응용 프로그램 실행 중에 추가 또는 제거된 모듈들을 페이지 리로드 없이 교체하는 기능입니다.
webpack에는 간단한 HMR 런타임이 추가되어 있으며, webpack 빌드 과정 중에 이 런타임이 동작합니다.
86. Sass
Sass(syntactically awesome stylesheets, 사스)는 종속형 시트(CSS)로 해석 및 컴파일되는 스크립트 언어입니다.
SassScript는 그 자체로 스크립트 언어이며, CSS pre-processor(전처리기)로서 CSS의 한계점을 극복하기 위한 CSS언어의 확장 언어입니다.
87. DevOps
데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operation)의 합성어로서,
소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말합니다.
88. CI
CI(Continuous Integration, 지속적인 통합)는 어플리케이션의 새로운 코드 변경 사항이 정기적으로
빌드 및 테스트되어 공유 레퍼지터리에 통합되는 것을 의미합니다.
89. CD
CD(Continuous Delivery, 지속적인 배포)는 개발자의 변경 사항이 레퍼지터리를 넘어,
고객의 프로덕션(Production) 환경까지 릴리즈 되는 것을 의미합니다.
90. MSA
MSA(MicroService Architecture)는 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법입니다.
91. CA
인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 합니다.
이 역할을 하는 민간기업들이 있는데 이런 기업들을 CA(Certificate authority) 혹은 Root Certificate라고 부릅니다.
CA는 아무 기업이나 할 수 있는 것이 아니고 신뢰성이 엄격하게 공인된 기업들만이 참여할 수 있습니다. SSL을 통해서 암호화된 통신을 제공하는 서비스를 위해서는 CA를 통해서 인증서를 구입해야 됩니다.
92. Js.map 파일
Js.map 파일은 Javascript를 minify했을 때 원 소스(Original Source) 파일과 연결해서 디버깅 할 수 있도록 지원합니다.
93. Cache busting
브라우저에서 Cache가 남아있어서 수정된 소스를 적용하더라고 적용되지 않는 경우가 있습니다.
이때 기존의 Cache를 없애고 변경한 코드를 반영하기 위한 행위를 Cache busting이라고 합니다.
94. http status 304
클라이언트 리디렉션 응답코드 304 Not Modified는 요청된 리소스를 재전송할 필요가 없음을 나타내는데 status는 캐시된 자원으로부터의 암묵적인 리디렉션을 의미합니다.
95. Third Party Application
서드 파티 앱(Third Party App)이란 제조사나 통신사에서 만든 기본 탑재 앱이 아닌 일반 앱스토어 등에서 다운받을 수 있는 앱을 의미합니다.
서드 파티 앱은 누구나 만들 수 있어 퍼스트파티 앱(First Party App, 제조사가 만든 앱)이나 세컨드파티 앱(Second Party App, 통신사에서 만든 앱)에 비해 종류가 다양합니다.
96. IDP
IDP(Identity Provider)는 Google이나 Apple등과 같은 간편 로그인 서비스를 제공하는 회사를 의미합니다.
97. JTW
JWT(JSON Web Token)는 선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준이다.
98. CSRF
CSRF(Cross Site Request Forgery)는 Web Application 취약점 중 하나로 인터넷 사용자가 자신의 의지와는
무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 만드는 공격입니다. CSRF는 서버가 공격 타켓입니다.
99. XSS
XSS(Cross Site Scripting)는 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나,
웹사이트를 변조하거나, 악의적 컨텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 말합니다. XSS는 클라이언트가 공격 타켓입니다.
100. 애자일 방법론
애자일 방법론(Agile Development)은 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를
개발하여 기속적으로 제공하기 위한 소프트웨어 개발 방식입니다.
101. 폭포수 방법론
폭포수 모델(Waterfall)은 소프트웨어를 개발하는데 있어서, 각 단계가 위에서 아래로 물이 떨어지는 것처럼
순차적으로 진행되며 완료된 단계는 다시 되돌리기 어려운 특성을 가진 개발 방식입니다.
102. 린 방법론
린 방법론(Lean Developnent)은 도요타의 TPS(Toyota Production System)을 S/W 개발에 적용한 방법론을 말합니다.
기존의 개발 방법론과는 다르게 생산 시스템을 프로그램 개발 방법론에 적용한 기법입니다.
낭비(Waste)에 포커스를 두어 프로그램 개발하는데 발생하는 모든 낭비를 최소화하고 결과를 측정, 성과를 분석하여 소프트웨어 가치를 최대화하고자 하는 것을 목표로 합니다.
103. 스크럼
스크럼은 5~9명으로 구성되는 소규모의 다기능 팀이 제품 개발을 완성하기 위해 스프린트(sprint)라고 불리우는 업무 주기를 반복합니다.
이 팀의 제품 책임자(PO:Product Owner)가 관리하는 “해야 할 일들의 목록(product backlog)”에서 “스프린트 동안 해야 하는 일들(sprint backlog)”을 스스로 결정하고 완수하여 매 스프린트 마다
결과물(increment)을 산출합니다. 팀이 성과를 낼 수 있도록 조력하는 역할을 스크럼 마스터(scrum master)라고 하는데, 그는 팀이 과제를 완수할 수 있도록 필요한 자원을 지원하거나 장애 요소를
제거하며 프로세스를 인도하는 역할입니다.
104. 칸반
칸반은 간판(看板)의 일본식 발음으로 도요타 생산 방식(TPS-JIT)에서 유래하였습니다.
칸반 보드는 기본적으로 계획(To-Do), 진행중(Doing), 완료(Done)의 단계 열로 표시합니다. 칸반의 핵심은 To-Do의 행에 이슈를 우선순위에 따라 나열하고 자업자는 우선순위대로 이슈를 처리하는 것입니다.
105. QoS
QoS(Quality Of Service)는 한정된 네트워크 자원 내에서 특정 트래픽이 일정수준의 성능, 속도를 보장받는 네트워크 기술입니다.
106. DRM
DRM(Digital Right Management)는 정보보호 기술 중 하나로 암호화 기술을 이용해서 비허가 사용자로부터 디지털 컨텐츠를 보호하는 기술을 말합니다.
107. Endpoint
대부분의 전자 기기들이 네트워크에 연결되어 있는데, 이 네트워크로 연결되어 있는 최종 장치가 엔드포인트이다. 스마트폰은 물론이고, PC, 태블릿, 웨어러블 기기, 사물 인터넷(IoT) 기기들도 여기에 속한다.
출처 : 위키백과
댓글
댓글 쓰기