Home 기술 정리
Post
Cancel

기술 정리

데이터베이스 (DB):

관계형 데이터베이스 (RDBMS):

PostgreSQL:

  • 오픈 소스 RDBMS: JSON 지원, 풀 텍스트 검색, 저장 프로시저 등의 고급 기능을 포함한다
  • 대규모 데이터 처리: 복잡한 쿼리 처리와 대규모 데이터 저장에 적합하다
  • 확장성: 여러 확장 기능과 플러그인을 통해 기능을 확장할 수 있다
  • 안정성: 트랜잭션, 백업, 복구 기능을 지원하여 데이터의 안정성을 보장한다
  • 다양한 운영체제 지원: Linux, Windows, macOS 등 다양한 운영체제에서 사용할 수 있다

MySQL:

  • 오픈 소스 RDBMS: 웹 애플리케이션에 널리 사용되며, 플러그인 아키텍처, 저장 프로시저 등의 특징을 포함한다
  • JSON 지원: JSON 형식의 데이터를 저장하고 검색할 수 있다
  • 확장성: 여러 플러그인과 확장을 통해 기능을 확장할 수 있다
  • 안정성: 트랜잭션, 백업, 복구 기능을 지원하여 데이터의 안정성을 보장한다
  • 커뮤니티 및 상업 버전: 무료 커뮤니티 버전과 엔터프라이즈 기능을 제공하는 상업 버전이 있다

SQLite:

  • 경량화된 데이터베이스: 디스크 기반의 데이터베이스로, 서버 설치나 설정이 필요 없다
  • 독립성: 외부 의존성 없이 동작하며, 애플리케이션에 내장 가능하다
  • 트랜잭션 지원: ACID 트랜잭션을 지원한다
  • 다양한 플랫폼 지원: 모바일 앱, 데스크톱 앱, 임베디드 시스템에서 사용 가능하다
  • 오픈 소스: 공개된 소스 코드를 가지며, 커뮤니티에 의해 유지 보수된다

Microsoft SQL Server:

  • 상업용 RDBMS: 통합된 BI 도구, 고급 분석, 고급 보안 기능을 포함한다
  • 다양한 에디션: 개발자, 익스프레스, 엔터프라이즈 등 다양한 에디션을 제공한다
  • 통합 개발 환경: SQL Server Management Studio(SSMS) 제공
  • Windows 및 Linux 지원: 다양한 운영체제에서 실행 가능하다
  • Azure 통합: 클라우드 환경인 Azure와의 통합이 용이하다

NoSQL 데이터베이스:

MongoDB:

  • 도큐먼트 지향적 NoSQL: 스키마가 유연하며, JSON 형식의 도큐먼트를 저장한다
  • 확장성: 분산 데이터 저장소를 지원하여 대규모 데이터 처리에 적합하다
  • 고성능: 인덱싱, 샤딩, 복제 기능을 통해 높은 성능을 제공한다
  • 다양한 드라이버 지원: 다양한 프로그래밍 언어에 대한 드라이버를 제공한다
  • 오픈 소스: 공개된 소스 코드를 가지며, 커뮤니티에 의해 유지 보수된다

Elasticsearch:

  • 실시간 분산 검색 엔진: Lucene 기반으로 개발되었다
  • 로그 분석: 로그 및 시계열 데이터 분석에 적합하다
  • 데이터 시각화: Kibana와 통합하여 데이터 시각화를 제공한다
  • 확장성: 노드를 추가하여 쉽게 확장할 수 있다
  • RESTful API: JSON 형식의 RESTful API를 통해 데이터 색인, 검색, 관리가 가능하다

Cassandra:

  • 분산형 NoSQL: 높은 가용성과 확장성을 제공하는 데이터베이스다
  • 다중 노드 설계: 여러 노드 및 클러스터에서의 작동을 지원한다
  • 고성능: 대규모 데이터에 대한 빠른 읽기 및 쓰기 작업을 지원한다
  • 유연한 스키마: 다양한 데이터 모델을 지원한다
  • 오픈 소스: 공개된 소스 코드를 가지며, 커뮤니티에 의해 유지 보수된다

Redis:

  • 고성능 인메모리 데이터베이스: 키-값 저장소로, 데이터를 메모리에 저장한다
  • 다양한 데이터 구조: 문자열, 리스트, 세트, 해시, 비트맵 등의 데이터 구조를 지원한다
  • 지속성: 필요에 따라 디스크에 데이터를 저장할 수 있다
  • 빠른 응답 시간: 대부분의 요청에 대해 밀리초 이내의 응답 시간을 제공한다
  • 확장성: 여러 노드에서의 복제 및 샤딩을 지원한다

Neo4j:

  • 그래프 데이터베이스: 노드와 관계를 중심으로 데이터를 저장한다
  • Cypher 쿼리 언어: 그래프 패턴을 쉽게 조회할 수 있는 쿼리 언어를 제공한다
  • 트랜잭션 지원: ACID 트랜잭션을 지원한다
  • 시각화 도구: 내장된 웹 기반 도구를 통해 그래프를 시각적으로 탐색할 수 있다
  • 확장성: 대규모 그래프 데이터를 처리하기 위한 확장 기능을 제공한다

백엔드 (Backend):

Django:

  • 풀스택 웹 프레임워크: ORM, 관리자 패널, 인증 등을 내장하여 웹 애플리케이션 개발에 필요한 대부분의 기능을 제공한다
  • Python 기반: Python을 사용하여 웹 애플리케이션을 빠르게 개발할 수 있다
  • 보안에 강함: 다양한 보안 기능을 기본으로 제공한다
  • 확장성: 다양한 플러그인과 앱을 통해 기능을 확장할 수 있다
  • 커뮤니티 지원: 큰 커뮤니티와 많은 서드파티 패키지를 지원한다

Flask:

  • 마이크로 웹 프레임워크: 가볍고 확장 가능한 웹 애플리케이션 개발을 위한 프레임워크다
  • Python 기반: Python을 사용하여 웹 애플리케이션을 빠르게 개발할 수 있다
  • 확장성: 다양한 플러그인과 확장을 통해 기능을 추가할 수 있다
  • RESTful API 지원: RESTful 웹 서비스 개발을 쉽게 지원한다
  • 경량화: 별도의 의존성 없이 필요한 기능만 추가하여 사용할 수 있다

Streamlit:

  • 데이터 응용 프로그램 도구: Python을 사용하여 데이터 응용 프로그램 및 대시보드를 빠르게 만들 수 있다
  • 대화식 시각화: 사용자와의 상호작용을 위한 다양한 위젯을 제공한다
  • 코드 변경 시 실시간 업데이트: 코드를 변경하면 애플리케이션에 즉시 반영된다
  • 확장성: 커뮤니티에 의해 제공되는 다양한 플러그인을 통해 기능을 확장할 수 있다
  • 배포 용이성: 다양한 클라우드 플랫폼에 쉽게 배포할 수 있다

Node.js with Express:

  • 서버 사이드 자바스크립트 환경: 비동기 I/O를 지원하여 효율적인 네트워크 애플리케이션 개발이 가능하다
  • Express 프레임워크: 미들웨어 스택을 제공하여 웹 애플리케이션 개발을 간소화한다
  • NPM 지원: 다양한 패키지와 모듈을 쉽게 설치하고 관리할 수 있다
  • 확장성: 다양한 플러그인과 미들웨어를 통해 기능을 확장할 수 있다
  • 큰 커뮤니티 지원: 활발한 커뮤니티와 많은 서드파티 패키지를 지원한다

Ruby on Rails:

  • MVC 아키텍처: 모델, 뷰, 컨트롤러 구조를 따르는 웹 애플리케이션 프레임워크다
  • “관례 위의 구성” 철학: 표준화된 베스트 프랙티스를 따라 빠른 개발을 지향한다
  • 활발한 커뮤니티: 다양한 젬(Gem)을 통해 기능을 확장하고, 커뮤니티 지원을 받을 수 있다
  • 보안 기능: 다양한 보안 기능을 기본으로 제공한다
  • 데이터베이스 지원: 다양한 데이터베이스 시스템과의 통합을 지원한다

Spring Boot:

  • Java 기반 웹 프레임워크: Java를 사용하여 웹 애플리케이션과 RESTful 서비스를 빠르게 개발할 수 있다
  • 자동 구성: 애플리케이션의 대부분의 설정을 자동으로 처리한다
  • 임베디드 서버 지원: Tomcat, Jetty 등의 서버를 내장하여 별도의 서버 설치 없이 실행 가능하다
  • 다양한 확장성: Spring ecosystem의 다양한 프로젝트와 통합이 가능하다
  • 보안 및 데이터 접근: Spring Security와 Spring Data를 통해 보안 및 데이터 접근을 간소화한다

프론트엔드 (Frontend):

React:

  • 사용자 인터페이스 라이브러리: 컴포넌트 기반으로 사용자 인터페이스를 구축한다
  • 가상 DOM: 빠른 렌더링을 위해 가상 DOM을 사용하여 변경사항만 실제 DOM에 반영한다
  • 컴포넌트 재사용성: 작은 단위의 컴포넌트를 만들어 재사용하고 조합할 수 있다
  • 단방향 데이터 흐름: 데이터의 일관성과 예측 가능성을 보장한다
  • 다양한 플러그인과 확장: 다양한 커뮤니티 기반 플러그인과 확장을 통해 기능을 확장할 수 있다

Vue.js:

  • 진입 장벽이 낮은 프론트엔드 프레임워크: 사용하기 쉬운 API와 문서를 제공한다
  • 반응형 데이터 바인딩: 데이터 변경을 자동으로 뷰에 반영한다
  • 컴포넌트 기반: 재사용 가능한 컴포넌트를 통해 UI를 구축한다
  • 가상 DOM: 빠른 렌더링을 위해 가상 DOM을 사용한다
  • 확장성: Vuex, Vue Router 등의 공식 라이브러리와 통합하여 애플리케이션을 확장할 수 있다

Angular:

  • 웹 애플리케이션 프레임워크: 양방향 데이터 바인딩, 의존성 주입, 모듈화 등의 특징을 가진다
  • TypeScript 기반: 강력한 타입 검사와 최신 ECMAScript 특징을 지원한다
  • 컴포넌트 아키텍처: 재사용 가능한 컴포넌트를 통해 애플리케이션을 구축한다
  • RxJS 통합: 반응형 프로그래밍을 위한 라이브러리를 내장한다
  • CLI 도구: 애플리케이션의 생성, 개발, 테스트, 배포를 지원하는 명령줄 도구를 제공한다

Svelte:

  • 컴파일 타임 프론트엔드 프레임워크: 런타임 프레임워크가 없어 경량하며, 컴파일 타임에 애플리케이션을 최적화한다
  • 직관적인 문법: HTML, CSS, JavaScript를 사용하여 컴포넌트를 작성한다
  • 반응형 선언: 변수 변경 시 자동으로 뷰를 업데이트한다
  • 내장된 상태 관리: 별도의 상태 관리 라이브러리 없이 상태를 관리할 수 있다
  • 빠른 렌더링: 가상 DOM을 사용하지 않아 렌더링이 빠르다

Bootstrap:

  • 프론트엔드 컴포넌트 라이브러리: 반응형 웹 디자인을 위한 다양한 컴포넌트와 스타일을 제공한다
  • 그리드 시스템: 유연한 그리드 레이아웃을 제공하여 다양한 화면 크기에 적응한다
  • 사용자 정의: Sass 변수와 믹스인을 통해 스타일을 사용자 정의할 수 있다
  • jQuery 플러그인: 모달, 슬라이더, 드롭다운 등의 동적 기능을 제공하는 jQuery 플러그인을 포함한다
  • 활발한 커뮤니티: 큰 커뮤니티 지원과 다양한 테마, 플러그인을 제공한다

배포 & 인프라:

Docker:

  • 컨테이너화 기술: 애플리케이션과 의존성을 컨테이너에 패키징하여 일관된 실행 환경을 제공한다
  • 이미지 관리: Docker 이미지를 통해 애플리케이션의 버전 관리와 배포를 쉽게 수행할 수 있다
  • Docker Hub 통합: 공개된 이미지를 저장하고 공유할 수 있는 중앙 레지스트리 서비스를 제공한다
  • 다양한 플랫폼 지원: Linux, Windows, macOS 등 다양한 플랫폼에서 사용할 수 있다
  • 커뮤니티 및 엔터프라이즈 버전: 무료 커뮤니티 버전과 엔터프라이즈 기능을 제공하는 상업 버전이 있다

Kubernetes:

  • 컨테이너 오케스트레이션: 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화한다
  • 선언적 구성: YAML 또는 JSON 형식의 파일을 사용하여 애플리케이션의 상태를 선언적으로 정의한다
  • 자동 스케일링: 트래픽이 증가하면 자동으로 인스턴스를 확장하고, 감소하면 축소한다
  • 자동 복구: 실패한 컨테이너를 자동으로 교체하고, 노드 장애 시 컨테이너를 다른 노드로 이동한다
  • 서비스 발견 및 로드 밸런싱: 내장된 서비스 디스커버리와 로드 밸런서를 제공하여 애플리케이션의 접근을 용이하게 한다

AWS (Amazon Web Services):

  • 클라우드 컴퓨팅 서비스: 컴퓨팅, 스토리지, 데이터베이스, 분석, 인공 지능 등 다양한 서비스를 제공한다
  • 글로벌 인프라: 전 세계에 데이터 센터와 가용 영역을 보유하여 글로벌 확장을 지원한다
  • 보안 및 규정 준수: 다양한 보안 기능과 규정 준수 도구를 제공하여 데이터 보호를 강화한다
  • 유연한 비용 구조: 사용한 만큼만 비용을 지불하는 Pay-as-you-go 모델을 제공한다
  • 다양한 관리 도구: AWS Management Console, AWS CLI, AWS SDKs 등 다양한 도구를 통해 리소스를 관리할 수 있다

Google Cloud Platform:

  • 클라우드 서비스 제공: 컴퓨팅, 데이터 스토리지, 데이터 분석 등 다양한 서비스를 제공한다
  • 데이터 분석 및 머신 러닝: BigQuery, AI Platform 등의 서비스를 통해 데이터 분석과 머신 러닝을 지원한다
  • 글로벌 네트워크: 전 세계에 데이터 센터를 보유하여 빠른 데이터 전송과 글로벌 확장을 지원한다
  • 오픈 클라우드: Kubernetes, TensorFlow 등의 오픈 소스 기술과의 통합을 지원한다
  • 경제적인 비용 모델: 사용한 만큼만 비용을 지불하는 모델과 지속적인 사용에 대한 할인을 제공한다

Azure:

  • Microsoft의 클라우드 플랫폼: VM, 데이터베이스, AI 서비스 등 다양한 서비스를 제공한다
  • Windows 및 Linux 지원: 다양한 운영 체제와 플랫폼에서의 애플리케이션 호스팅을 지원한다
  • 통합 개발 환경: Visual Studio와의 통합을 통해 개발 및 디버깅을 간소화한다
  • AI 및 데이터 분석: Azure Machine Learning, Azure Databricks 등의 서비스를 제공한다
  • 보안 및 규정 준수: 다양한 보안 기능과 규정 준수 도구를 제공하여 데이터 보호를 강화한다

Heroku:

  • 클라우드 애플리케이션 플랫폼: 간단한 배포 및 관리를 위해 설계된 플랫폼이다
  • 다양한 프로그래밍 언어 지원: Python, Ruby, Java, Node.js 등 다양한 언어와 프레임워크를 지원한다
  • Git 통합: Git을 사용하여 소스 코드를 관리하고, 변경 사항을 쉽게 배포할 수 있다
  • 확장성: 애플리케이션의 규모에 따라 동적으로 리소스를 확장하거나 축소할 수 있다
  • 애드온 마켓플레이스: 데이터베이스, 캐싱, 메시징 등의 서비스를 쉽게 추가할 수 있다

Netlify & Vercel:

  • 프론트엔드 및 서버리스 백엔드 배포: 정적 사이트, SPA, JAMstack 애플리케이션에 최적화된 배포 플랫폼이다
  • Git 통합: GitHub, GitLab, Bitbucket과 통합하여 자동 배포를 지원한다
  • 서버리스 함수: 서버리스 아키텍처를 지원하여 백엔드 로직을 간단히 구현할 수 있다
  • 성능 최적화: 자동 SSL, CDN 통합, HTTP/2, 압축 등을 통해 웹사이트의 성능을 최적화한다
  • 분기별 미리보기: Git 분기별로 미리보기 URL을 제공하여 변경 사항을 쉽게 검토할 수 있다
This post is licensed under CC BY 4.0 by the author.

[lvl3]합승 택시 요금

[SeSAC]혼공 머신러닝+딥러닝 Ch5. 트리 알고리즘