본문 바로가기

분류 전체보기

(45)
[MySQL] SELECT 문 SELECT 문 MySQL에서 `SELECT` 문은 데이터베이스에서 데이터를 조회할 때 사용되는 가장 기본적인 SQL 문입니다. `SELECT` 문은 특정 열(column)이나 모든 열을 선택하고, 조건을 지정하여 원하는 데이터를 검색할 수 있습니다. 아래는 기본적인 `SELECT` 문의 구조입니다. SELECT [열1, 열2, ...] FROM 테이블명 WHERE 조건; - `[열1, 열2, ...]` : 조회할 열을 나타냅니다. `*`를 사용하면 모든 열을 선택합니다. - `테이블명` : 데이터를 조회할 테이블의 이름을 나타냅니다. - `WHERE 조건` : 선택적으로 조건을 지정하여 특정 행만을 검색할 수 있습니다. sakila 데이터베이스 예제 1. 모든 열 조회 SELECT * FROM acto..
[MSA] MSA가 어려운 이유 IPC (Inter-Process Communication) MSA 환경에서 IPC는 여러 마이크로서비스 간에 효과적인 통신을 지원하는 중요한 측면입니다. MSA는 서로 독립적으로 배포되고 실행되는 여러 마이크로서비스로 구성되어 있으며, 이러한 서비스들은 특정 작업을 수행하기 위해 상호 작용해야 합니다. IPC 고려사항 1. HTTP/RESTful API HTTP 기반의 RESTful API는 가장 흔하게 사용되는 IPC 방법 중 하나입니다. 각 마이크로서비스는 HTTP 요청을 통해 다른 서비스에 요청을 보내고, RESTful 엔드포인트를 통해 데이터를 주고받습니다. 이러한 방식은 표준화되어 있고, 다양한 언어 및 플랫폼 간에 상호 운용성을 제공합니다. 2. Message Brokers 메시지 브로커는 ..
[MSA] MSA의 핵심 원칙 마이크로서비스 아키텍처(MSA)는 여러 서비스로 애플리케이션을 분할하고 독립적으로 배포하는 아키텍처 패턴입니다. 이를 구현하기 위해 몇 가지 핵심적인 원칙이 존재합니다. Business Capabilities (비즈니스 기능) MSA의 핵심 원칙 중 하나는 Business Capabilities입니다. 이 원칙은 전체 소프트웨어 시스템을 기능 단위로 나누는 것을 강조합니다. 비즈니스 기능은 비즈니스의 핵심 기능 또는 업무 프로세스를 나타냅니다. 각각의 기능은 독립적인 업무를 수행하고, 비즈니스의 목표를 달성하는 데 필수적입니다. 예를 들어, 전자상거래 웹 애플리케이션에서 주문, 결제, 재고 관리 등은 각각 다른 비즈니스 기능에 해당합니다. Business Capabilities의 의미 1. 독립적인 서비..
[MSA] MSA란 무엇인가? 최근 소프트웨어 개발 환경에서는 애플리케이션의 복잡성과 요구사항의 다양성이 증가함에 따라 새로운 아키텍처 패턴이 필요해졌습니다. 그 중에서도 마이크로서비스 아키텍처(Microservices Architecture, MSA)는 기존의 모놀리스 아키텍처의 한계를 극복하고 더 나은 유연성과 확장성을 제공하는 혁신적인 접근 방식입니다. MSA의 역사 1. 모놀리스 아키텍처 (Monolithic Architecture) 초기 소프트웨어 개발은 하나의 큰 코드베이스에서 전체 애플리케이션을 개발하고 배포하는 모놀리스 아키텍처를 중심으로 이루어졌습니다. 모놀리스는 단일 코드베이스에서 실행되기 때문에 개발, 배포, 확장이 상대적으로 단순하지만, 시간이 지남에 따라 유지보수의 어려움과 확장성의 한계가 드러나기 시작했습니다..
[MSA] 모놀리스 아키텍처란 무엇인가? 모놀리스(Monolithic) 아키텍처란 무엇인가? 모놀리스 아키텍처는 소프트웨어를 하나의 독립적인 단위로 개발하는 방식을 말합니다. 이 아키텍처에서는 모든 애플리케이션 로직이 하나의 실행 가능한 파일, 즉 하나의 서비스로 구현되며, 모든 기능이 하나의 코드베이스에 통합되어 있습니다. 모놀리스 아키텍처의 핵심 구성 요소 1. 통합된 코드 베이스 : 모든 애플리케이션 기능이 하나의 코드베이스에 포함되어 있습니다. 이는 개발, 테스트, 배포를 단순화하지만, 시간이 지남에 따라 코드베이스가 커지면 관리가 어려워질 수 있습니다. 2. 단일 데이터베이스 : 모놀리스 애플리케이션은 보통 하나의 데이터베이스를 사용하여 모든 데이터를 저장합니다. 3. 단일 서버 또는 서버 그룹 : 모놀리스 애플리케이션은 일반적으로 하..
[Apache Spark] 실습을 위한 로그 파일 생성 Apache Spark는 대규모 데이터 처리를 위한 오픈 소스 클러스터 컴퓨팅 프레임워크로, 대규모 데이터셋을 효과적으로 처리할 수 있습니다. 이를 실습하기 위해 사용할 로그 파일을 생성하는 파이썬 코드를 작성해 보도록 하겠습니다. 실습에 사용할 로그 파일 결과물 112.85.179.101,2023-11-28 21:33:50,PUT,/auth,403,90 68.26.205.170,2023-11-28 21:37:11,DELETE,/auth,404,8 152.244.89.140,2023-11-28 21:34:32,PATCH,/customer,200,27 162.125.162.55,2023-11-28 21:34:48,POST,/products,200,64 239.158.199.177,2023-11-28 21:..
[Apache Cassandra] 컬럼 기반 NoSQL이란 무엇인가? NoSQL 데이터베이스는 전통적인 관계형 데이터베이스의 한계를 극복하고 대량의 분산 데이터를 효율적으로 다룰 수 있는 다양한 형태의 데이터베이스를 포함하는 개념입니다. 그 중에서도 컬럼 기반 NoSQL은 데이터의 저장과 조회에 새로운 시각을 제공하며 많은 기업과 개발자들에게 혁신적인 솔루션을 제공하고 있습니다. 컬럼 기반 NoSQL이란? (column-oriented) 컬럼 기반 NoSQL은 데이터를 저장하는 방식에서 관계형 데이터베이스와 차별화된 특징을 가지고 있습니다. 전통적인 테이블 기반 데이터베이스와 달리, 컬럼 기반 NoSQL은 데이터를 열(column) 단위로 저장합니다. 각각의 열은 서로 다른 데이터 타입을 가질 수 있으며, 필요한 열만을 조회하여 사용할 수 있습니다. 컬럼 기반 NoSQL의..
[Apache Spark] RDD란 무엇인가? Apache Spark는 대규모 데이터 처리를 위한 오픈 소스 클러스터 컴퓨팅 프레임워크로 분산 데이터 처리를 간편하게 할 수 있는 기능을 제공합니다. 그 중에서도 RDD(Resilient Distributed Dataset)는 Spark의 핵심 개념 중 하나입니다. RDD란 무엇인가? RDD는 데이터를 여러 노드에 분산하여 처리할 수 있는 데이터 구조입니다. 이는 Spark가 대량의 데이터를 효율적으로 처리하고 분석하기 위한 기반을 제공합니다. 간단하게 말하면, RDD는 여러 노드에 나누어 저장된 변경 불가능한 객체 모음이며, 데이터에 대한 병렬 처리를 가능케 합니다. RDD의 특징 1. 탄력성 (Resilience) : RDD는 변경 불가능한 데이터 구조이므로, 노드에 장애가 발생하도 다른 노드에 복..