분류 전체보기
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bSB9Pv/btsA7TRDwFa/FF5UQhPQhOSpWweLzi33TK/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
DataFrame¶DataFrame은 행, 열로 구조화된 데이터구조이다. 관계형데이터베이스 RDB의 테이블이나 엑셀 sheet와 비슷하다. 또는 Pandas 또는 R을 사용해 보았다면 거기서 제공되는 DataFrame과 유사하다. Dataframe은 RDD에 스키마를 얹어서 만든 개념이다. Spark의 DataFrame은 대용량 데이터를 처리하기 위해 만들어진 프레임워크로 분산해서 사용할 수 있게 고안되었다. 앞서 사용했던 RDD가 schema를 정하지 않는 것과 달리, DataFrame은 모델 schema를 설정해서 사용을 한다. '열'에 대해 명칭 및 데이터 Type을 가지고 있고, 이를 지켜서 데이터를 저장하게 된다. Schema¶Row는 DataFrame의 행으로, 데이터 요소항목을 묶어서 구성한..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/SxbRh/btsASFmRfBj/6jJKkO27mt61fKpWxS2qYK/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
여름에 Django Project를 진행한 이후, 한동안 사용할 일이 없었다가 더 생각나지 않기 전에 지금까지의 장고 프로젝트 생성부터, MVT 구조, Model, View, Template을 비롯한 Single Web Application을 만드는 전반적인 내용들을 요약하여 작성하고자 한다. 내가 생각하기에 Django Framework의 장점은 관리자 기능이나, 로그인 등 많이 사용할 법한 인터페이스들이 Django App 모듈로 지원되기 때문에 가져다 쓸 수 있다는 것이 가장 큰 장점인 것 같다. 만약에 내가 나중에 급하게 관리자 페이지를 만들어야 하는 일이 생긴다면 장고를 택할 확률도 높을 것이라고 생각한다. 나중에 Django를 사용할 일이 있을 때, 해당 포스팅을 보면서 기억을 더듬을 수 있었..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/KwYWJ/btsAUKgneH8/Um8DWVBb0m95euISJDGUt1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
RDD¶이전 Jupyter Notebook의 내용에 이어서 RDD를 이용한 데이터의 집계를 해보려고 한다. 여러 RDD 연산을 사용하여 데이터를 집계하고 변환하여 유의미하게 데이터를 가공해보자. 해당 Notebook에서는 아래의 내용을 다룬다. GroupBy: RDD를 특정 기준으로 그룹화 Paired RDD: 키-값 쌍으로 구성된 RDD groupByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대한 값들의 Iterable을 생성 reduceByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대해 리듀스 함수를 사용하여 값을 집계 combineByKey(): Paired RDD를 키를 기준으로 그룹화하고, 각 그룹에 대해 초기값, 병합 및 리듀스 함수를 ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/Zfm9n/btsATWOVPFe/pfZBFSKsNSpyrOUnZ5okC1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
RDD¶ RDD(Resilient Distributed Dataset)는 Apache Spark에서 데이터를 표현하는 기본 구조이다. Spark에서는 RDD, Databrame, DataSet 세 가지 데이터구조를 제공 RDD는 데이터가 비구조적인 경우 사용하기 적합하다 Spark의 RDD, DataFrame 모두 immutable이라 일단 생성되고 나면 원본을 수정할 수 없다. 해당 Jupyter Notebook에서는 아래의 내용을 다루려고 한다. 1. RDD 생성과 기본 동작¶ parallelize(list) : 배멸에서 읽어서 RDD를 생성 take(출력개수) || collect() : RDD를 출력 collect() : 모든 파티션의 데이터를 수집하여 로컬의 리스트로 반환하는 액션(Action) ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/21Zsg/btsATM6Izn0/0UwMQv5AokuMjHtLcv5xVk/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
Apache Spark 는 대규모 데이터 처리 및 분석을 위한 오픈 소스 클러스터 컴퓨팅 시스템이다. 주로 대규모 데이터셋에 대한 분석 작업과, ML 모델의 학습 및 예측, 그래프 처리를 통한 분석 툴, 실시간 데이터 스트림 처리의 용도로 사용되고 있으며, 데이터 분석가들에게 클러스터 컴퓨팅을 통한 병렬 처리라는 장점은 빅데이터 시대에서 Apache Spark가 각광받는 이유라고 생각한다. 1. 빠른 속도 : Spark는 메모리 기반의 데이터 처리를 통해 빠른 속도를 제공한다. 2. 클러스터 컴퓨팅: Spark는 클러스터 상에서 데이터를 처리하도록 설계되었습니다. 여러 노드로 구성된 클러스터에서 데이터 및 작업을 분산하여 처리함으로써 대규모 데이터셋을 효율적으로 처리할 수 있다. 3. 다양한 라이브러리:..
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
데이터 수집¶ 데이터는 현대 비즈니스에서 가장 중요한 자산 중 하나로 자리매김하고 있다. 데이터 분석을 통한 지표 확인 및 인공지능 모델 학습까지 데이터의 중요성은 계속해서 커지고 있다. 이를 위해 데이터 수집은 필수적인 단계로 자리잡고 있으며, 다양한 소스로부터의 데이터를 효과적으로 수집하는 것은 매우 중요하다. 수업 내용을 바탕으로 실습한 해당 Jupyter Notebook에서는 데이터 수집의 다양한 측면을 다루고 있다. 먼저, Web Request를 통한 데이터 수집 방법을 알아볼 것이다. 기본적인 Web API 호출 방법에 대해 소개하려고 한다. 수집된 데이터의 포멧에 대해서 현업에서 가장 많이 사용되는 JSON과 XML 형식에 대한 이해를 바탕으로, 각각의 특징을 살펴볼 것이다. 이어서는 Ope..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/sWMiF/btsHVRTRo75/SOHv1BoHAEUdsLE2NXbNn1/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
Facade Pattern 퍼사드 패턴은 서브시스템의 복잡성을 숨기고 클라이언트에게 간단한 인터페이스를 제공하는 구조적인 디자인 패턴이다. 문제 : 서브시스템이 너무 많고 사용하기가 복잡하다.해결방안 : 단순한 인터페이스를 제공하는 객체를 중간에 넣음결과 : 최소 지식 원칙에 입각해 의존성 최소화 아트 디자인 회사에 작품 의뢰 클라이언트는 아트 디자인 회사에 작품을 의뢰한다고 생각해보자. 클라이언트가 일일이 디자이너, 밑그림 작업자, 채색자 등의 작업순서를 알고 통제할 필요가 있을까? 클라이언트는 단순히 의뢰하는 인터페이스를 호출하도록 하는 것이 말이 될 것이다. 1. 서브 시스템들 작성public class Designer { public void analysis() { S..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/ZgCUv/btsHVs761jd/K9TKkw17S01B9z2qxaNGLk/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
어탭터 패턴 (Adapter Pattern) Adapter의 필요성 1. 문제 : 사용 객체의 API가 서로 다름2. 해결방안 : 함수를 변환하는 객체를 중간에 넣음3. 결과 : 변경 최소화 기존 소프트웨어 시스템에서 새로운 업체에서 제공한 클래스 라이브러리를 사용해야 한다고 가정해보자.새로 채택한 업체에서 사용하는 인터페이스가 기존 업체에서 사용하던 인터페이스와 다른 경우라면 이를 변환해주는 매개체가 필요할 것이다.어댑터는 클라이언트로부터 요청을 받아서 새로운 업체에서 제공하는 클래스에서 받아들일 수 있는 형 태의 요청으로 변환시켜주는 중개인 역할을 한다. Target Target은 클라이언트가 사용하는 인터페이스를 정의한다.클라이언트는 이 Target 인터페이스를 통해 서비스나 동작을 호출한다...
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/KnnH3/btsARWh5qRZ/6KIJTXr1H9AA4mGH2fTGvK/img.png)
![](https://tistory1.daumcdn.net/tistory/5364105/skin/images/no-image.jpg)
이전 포스팅에서는 Spring Configuration Server를 구축하여, Microservice들의 설정들을 중앙에서 효율적으로 관리할 수 있도록 만들어 보았었다. 해당 내용과 이어지는 내용이므로, 앞의 포스팅을 보지 못했다면 보고 오는 것을 권장한다. https://sjh9708.tistory.com/123 [Spring Cloud] Microservice(MSA) 구축 : (4) Spring Cloud Config Server 구축 이전 포스팅에서는 여러개의 Microservice를 만들고, Spring Cloud Gateway와 Registry Server를 구축하여보았었다. 이번 포스팅에서는 Spring Configuration Server를 구축하여, Microservice들의 설정들을 ..