개념 정리
OOP
- Object Oriented Programming, 객체 지향 프로그래밍
- 실제 세계의 객체를 모델링하여 소프트웨어를 개발하는 방법론
- 추상화, 캡슐화, 상속, 다형성 등
API
- Application Programming Interface
- 소프트웨어 컴포넌트 간 상호작용을 가능하게 하는 규약 또는 프로토콜
- REST, SOAP, GraphQL 등
CSP
- Cloud Service Provider, 클라우드 서비스 제공자
- 인터넷을 통해 컴퓨팅 리소스, IT 서비스를 제공하는 회사
- AWS, Azure, Google Cloud 등
MSP
- Managed Service Provider, 관리 서비스 제공자
- 클라우드 인프라 관리 서비스를 제공하는 업체
- 네트워크, 시스템, 보안 관리 등
CI/CD
- Continuous Integration/Continuous Deployment, 지속적 통합/지속적 배포
- 개발된 소프트웨어를 지속적으로 통합하고 배포하는 방법론
- Jenkins, GitOps, ArgoCD 등
IaC
- Infrastructure as Code
- 인프라 구성을 코드로 관리하고 자동화하는 방법론
- Terraform, Ansible 등
DevOps
- Development and Operations, 개발과 운영
- 개발과 운영팀이 긴밀하게 협력하여 빠르고 안정적인 소프트웨어 배포를 목표로 하는 방법론
- CI/CD, 모니터링, 테스팅, 배포 자동화 등
MSA
- Microservices Architecture, 마이크로서비스 아키텍처
- 하나의 어플리케이션을 작은 서비스 단위로 나누어 개발하는 아키텍처 스타일
- 독립적 배포, 확장성, 장애 격리 등
Container
- 컨테이너
- 애플리케이션과 그 의존성을 함께 패키징하여 일관된 환경에서 실행할 수 있도록 하는 소프트웨어 기술
- Docker, Kubernetes 등
Thin Client
- 서버에서 대부분의 데이터 처리를 수행하고 클라이언트는 출력과 입력만을 담당하는 컴퓨팅 모델
- 원격 데스크톱 서비스, 클라우드 컴퓨팅 등
CLI
- Command Line Interface
- 사용자가 텍스트 명령어를 통해 컴퓨터와 상호작용하는 인터페이스
- Bash, PowerShell, Terminal 등
JDK
- Java Development Kit
- 자바 애플리케이션을 개발하기 위한 소프트웨어 개발 도구 모음
- 컴파일러, 라이브러리, 런타임 환경 등
JVM
- Java Virtual Machine
- 자바 바이트코드를 실행하기 위한 런타임 환경
- 플랫폼 독립성, 가비지 컬렉션, 보안 등
JRE
- Java Runtime Environment
- 자바 애플리케이션을 실행하기 위한 소프트웨어 환경
- JVM, 라이브러리, 클래스 로더 등
LTS
- Long Term Support
- 특정 버전의 소프트웨어에 대해 장기간 지원을 제공하는 것
- 안정성, 보안 업데이트, 버그 수정 등
IDE
- Integrated Development Environment, 통합 개발 환경
- 코드 작성, 디버깅, 테스팅 등 개발 작업을 지원하는 소프트웨어
- Eclipse, IntelliJ, Visual Studio Code 등
Kernel
- 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 인터페이스 역할을 하는 소프트웨어
- 메모리 관리, 프로세스 관리, 디바이스 드라이버 등
Cloud Native
- 클라우드 환경에서 최적화된 애플리케이션 개발과 운영을 위한 접근 방식
- 마이크로서비스, 컨테이너, CI/CD, DevOps 등
소프트웨어 정리
Jenkins
- CI/CD(지속적 통합/지속적 배포)를 지원하는 오픈소스 자동화 서버
- 빌드, 테스트, 배포 등의 작업을 자동화
GitOps
- Git을 사용하여 인프라와 애플리케이션 배포를 관리하는 운영 모델
- 선언적 접근, 버전 관리, 자동화된 롤백 등
ArgoCD
- GitOps를 위한 쿠버네티스 네이티브 배포 도구
- 선언적, 자동화된 싱크, 다중 클러스터 배포 등
- IaC(Infrastructure as Code) 도구로, 클라우드 인프라 구성을 자동화
- 선언적 코드, 멀티 클라우드 지원, 모듈화 등
Git
- 분산 버전 관리 시스템
- 코드 변경 이력 관리, 협업, 브랜치 관리 등
Ansible
- IT 자동화 도구로, 구성 관리, 애플리케이션 배포, 작업 순차 등을 자동화
- 선언적 접근, 에이전트리스, 멀티 노드 배포 등
Docker
- 애플리케이션을 컨테이너화하여 개발, 배포, 실행을 단순화하는 플랫폼
- 이미지 기반, 격리성, 이식성 등
Kubernetes
- 컨테이너화된 애플리케이션을 관리하고 자동화하기 위한 오픈소스 플랫폼
- 서비스 디스커버리, 로드 밸런싱, 자동 복구, 스케일링 등