Agile Software Development
애자일 소프트웨어 디벨롭먼트
신속하고 변화에 유연하며 적응적인 소프트웨어 개발을 목표로 하는 다양한 경량 개발 방법론 전체를 일컫는 총칭
개발 대상을 다수의 작은 기능으로 분할하여 하나의 기능을 하나의 반복 주기 내에 개발하는 개발 방법
하나의 반복 기간을 프로젝트마다 다르지만 일반적으로 1주에서 4주 정도인 경우가 많다. 이 반복 주기를 계속해 나가면 하나씩 기능을 추가 개발하는 것이다.
-
Boilerplate code
Brute force attack
Local Brute Force Protection
해커가 웹사이트 공격을 시도하는 시점에 공격을 확인하고 차단합니다.
Newwork Brute Force Protection
다른 웹사이트에서 해킹 공격을시도한이력이 있는 해커의 IP 목록을 네트워크 지식화합니다. 따라서 해킹 이력이 있는 해커가 웹사이트에 접속하면 공격을 하지 않아도 사전에 접속을 차단합니다.
Cloud Native
단일 처리에 특화된 최소한의 서비스 단위로 개발을 하고, 이를 컨테이너 환경에서 실행하는 애플리케이션 개발 방식
수많은 컨테이너가 오케스트레이션을 통해 자동으로 관리, 운영하는 등 클라우드 네이티브는 클라우드 컴퓨팅 모델의 이점을 최대한 살린 개발방식
Dead Link
Design Pattern, 디자인 패턴
Docker
FinOps [핀옵스]
Financial Operation 파이낸셜 오퍼레이션 - 비용 최적화
분산된 여러 팀이 속도, 비용, 품질 간에 비즈니스 균형을 이룰 수 있도록 가변적 지출 클라우드 모델에 재정적 책임을 부여하는 방식. 즉, 소프트웨어 엔지니어가 솔루션 비용을 책임지는 운영 모델이다.
기업이 클라우드 소비를 위한 지출 요건을 보다 잘 계획, 편성, 예측하는데 도움을 준다.
-
Framework
Functional Programming
펑서녈 프로그래밍, 함수형 프로그래밍
자료 처리를 수학적 함수의 계산으로 취급하고, 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 함수는 프로그램의 상태값을 바꾸는 부작용이 있을 수 있다. 때문에 참고 투명성이 없고 같은 코드라도 실행되는 프로그램의 상태에 따라 결과값이 다를 수 있다. 반면, 함수형 코드는 함수의 출력값은 그 함수에 입력된 인수에만 의존하므로 x에 값을 넣고 함수 f를 호출하면 항상 f(x)라는 결과가 나온다.(출처: 위키백과)
GraphQL
Graph Query Language
Server API를 통해 정보를 주고받기 위해 사용하는 Query Language
GraphQL API는 주로 하나의 Endpoint를 사용한다.
GraphQL API는 요청할 때 사용한 Query문에 따라 응답의 구조가 달라진다.
Hang
hang 또는 freeze라고 하는 System hang이란, 아무런 반응을 하지 않는 상태로서 시스템 운영이 불가능한 상태를 의미한다.
정지(중단)된 상태를 말하는데, 커널 자신이 스스로 시스템의 문제를 인식하지 못하여, 결국은 시스템 마비를 일으킨 상태이다.
-
HTS
Home Trading System
개인 PC를 이용한 주식거래 시스템
IEEE 754
In-Memory Computing
전체 데이터를 메모리에 적재하여 사용
컴퓨팅 시스템의 공식 기록 시스템(system of record)으로 하드 디스크를 사용하는 것이 아니라 메모리를 사용하는 것
데이터를 메모리에 보관,처리하고 하드디스크를 데이터의 안전하게 보관(stash)하기 위해 사용하는 구조
stash[스태쉬- : (안전한 곳에) 넣어 두다[숨기다]
-
Kanban[칸반, 캔밴]
> Kanban은 간판 또는 광고판을 의미하는 일본어 용어.\\
간판(看板) 방식, 적지적시 방식(일본의 도요타 자동차가 개발한 생산관리 방식으로 “필요한 것을 필요할 때 필요한 만큼 생산한다”는 재고 조달 방식.
Kanban은 부품명, 납품심간 및 수량을 표시한 “작업지시서”의 뜻,
kaizen(카이젠, 改善(개선)), keiretsu(게이레츠, 系列(계열))와 함께 3-K라 하여, 일본식 경영의 기본을 이루고 있다.(출처: Naver 영어사전)
* Ref LInk
Kanban이란?
log [로그, 운용 기록]
기계 작동에 관한 기록, 기계 상황의 변경, 스위치 선택, 입출력 장치에 대한 사항, 제어 탁자에서 입력한 자료, 기계 정지 시의 상태나 원인 등에 관한 사항의 기록 등 컴퓨터 운용에 관계되는 모든 기록, 컴퓨터에 있는 로그 파일에 자동적으로 기록되게 할 수 있다.
어떤 트랜잭션이 데이터베이스의 어떤 값을 갱신할 때 갱신 전의 값과 후의 값을 로그에 먼저 기록하는 것. 트랜잭션의 시작과 완료, 철회 등의 정보도 로그에 기록된다.
logging [로깅]
컴퓨터 동적 상태에 따른 변화를 시간에 따라 기록하는 것
Interpreter [인터프리터]
파이썬 코드를 입력한 후 엔터 키를 누르면 결과가 바로 나온다. 이처럼 코드를 한 줄 한 줄 실행하여 결과를 얻는 방식을 인터프리터(interpreter)방식이라고 부른다.
meme
Memory DataBase (메모리 데이터베이스)
데이터베이스를 구성하는 모든 데이터를 서버 메모리에 로딩한 후 처리하는 데이터베이스를 의미
일반적인 RDBMS(Relational Database Management System, 관계형 데이터베이스 관리 시스템)는 디스크에 모든 데이터를 저장하고, 데이터 처리 시 필요한 데이터만 메모리로 로딩시켜 처리함
MTS
Mobile Trading System
모바일을 이용한 주식거래 시스템
Proxy Server [프록시 서버]
시스템에 방화벽을 가지고 있는 경우 외부와의 통신을 위해 만들어 놓은 서버
프록시 ( Proxy )란 원래 '대리'라는 의미를 가지고 있음
클라이언트가 프록시 서버를 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터
시스템에 방화벽을 가지고 있는 경우 외부와의 통신을위해 만들어 놓은 서버
프록시 서버는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장
-
pseudo-code[수도코드]
의사(疑 비교할 의 / 似 비슷할 사 | Pseudo : 가짜의)
컴퓨터 프로그램이나 알고리즘이 수행해야 할 내용을 우리가 사용하는 언어(한국어 또는 영어 등)로 간략히 서술해 놓은 것을 말한다.
특정 프로그래밍 언어로 구현하기 이전에 일반 언어로 작성한 간단한 버전의 프로그래밍 코드
QD, Quantum Dot [퀀텀 닷]
Refactoring [리팩터링]
REST, RESTful
REST : REpresentational State Transfer
모든 Resource(자료, User,…)들을 하나의 Endpoint에 연결해놓고, 각 Endpoint는 그 Resource와 관련된 내용만 관리하게 하자는 방법론
이런 REST의 조건을 만족하는 API를 RESTful API라고 부르고, 이런 방식으로 API를 작성하는 것을 RESTful하다고 한다.
-
RTDB
Real Time DataBase, 실시간 처리 데이터베이스
실시간으로 데이터를 처리하는 방식을 사용하여 지속적으로 변화하는 상태의 워크로드를 처리하는 데이터베이스 시스템
'관계형 데이터베이스(RDB, Relation DataBase)' 관리시스템 기능을 포함하고 있으며, 운영 능력 향상을 위한 운영 정보 시스템과 공장 정보 시스템의 기반이 되거나 공정 효율 개선, 이력 관리, 공정 분석, 운영 및 성능 관리에 사용됨
Sandbox [샌드박스]
Snippet
스니핏
웹 사이트 디자인에서 정형화된 코드가 자주 사용되는데 이를 별도로 저장해 두었다가 필요할 때마다 복사하여 사용하는 것을 말한다.
재사용 가능한 소스 코드, 기계어, 텍스트의 작은 부분을 일컫는 프로그래밍 용어이다. 사용자가 루틴 편집 조작 중 반복 타이핑을 회피할 수 있게 도와준다.(위키백과)
SOLID 원칙
S : SRP [Single Responsible Principle, 단일 책임 원칙]
O : OCP [Open/Closed Principle, 개방-폐쇄 원칙]
L : LSP [Liskov-substitution Principle, 리스코프 치환 원칙]
I : ISP [Interface Segregation Principle, 인터페이스 분리 원칙]
D : DIP [Dependency Inversion Principle, 의존관계 역전 원칙]
Statically typed Language (정적 타입 언어)
정적 타입 언어 (Statically typed Language)는 컴파일 시 변수의 타입이 결정되는 언어를 말합니다.
따라서, 프로그래머가 변수에 들어갈 값의 형태에 따라 직접 변수의 타입을 명시해줘야 합니다.
정적언어라는 것은 위에서 언급한 '타입' 즉 자료형을 컴파일 시에 결정하는 것 입니다.
컴파일 시에 자료형에 맞지 않는 값이 들어있으면 컴파일 에러가 발생합니다.
정적 타입 언어로는 Java, C, C++, C#, Scala, Fortran, Haskell, ML, Pascal 등이 있습니다.
장점:
타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입의 안정성이 높음.
컴파일 시에 미리 타입을 결정하기 때문에 실행속도가 빠름.
단점:
매번 코드 작성 시 변수형을 결정해줘야 하는 번거로움이 있음.
Dynamically typed Language (동적 타입 언어)
동적 타입 언어 ( Dynamically typed Language )는 컴파일 시 자료형을 정하는 것이 아니라 런타임 시 결정됩니다.
tokenizer [토크나이저]
tokenization [토크너제이션] : 토큰화
문자열을 여러 개의 조각, 즉 여러 개의 Token(토큰)들로 쪼개는 것을 말한다.
Token은 문자열의 한 조각으로 하나의 단어가 하나의 토큰이라고 할 수 있다.
Use Case
유즈 케이스
시스템의 동작을 사용자의 입장에서 표현한 시나리오이며, 시스템에 관련한 요구사항을 알아내는 과정이며, 소프트웨어 개발 프로세스 중 개발을 위한 소프트웨어의 기능을 개략적으로 설명이 가능한 방법이다.
유즈 케이스는 시스템을 분석하는 사람과 사용할 사람이 함께 시스템의 사용 방법을 결정하는데에 도움을 준다. 작성 시 주의할 점은, 시스템을 개발하는 사람보다는 사용자의 입장에서 이해하기 쉽고, 간단하게 작성되어야 한다.
-
Upper Case, Lower Case
Wireframe