전체 글 85

Plant UML 기본 사용방법

https://plantuml.com/ko/설명PlantUML은 다이어그램과 차트를 만드는 데 사용되는 텍스트 기반 스크립팅 언어입니다. 소프트웨어 개발자들이 아키텍처나 설계를 문서화하는 데 자주 사용되며, 시퀀스 다이어그램, 유스케이스 다이어그램, 클래스 다이어그램 등 다양한 유형의 다이어그램을 지원합니다.PlantUML 문법을 배우는 것이 필요한지 여부는 여러분의 작업과 요구에 따라 달라질 수 있습니다. 만약 여러분이 다음과 같은 상황에 있다면 PlantUML을 배우는 것이 도움이 될 수 있습니다:소프트웨어 개발: 코드와 함께 시각적인 설계를 문서화하는 것이 중요하다면, PlantUML은 이를 효과적으로 도와줄 수 있습니다.프로젝트 관리: 프로젝트의 흐름이나 프로세스를 명확하게 보여줄 필요가 있을 때..

기타 등등 2024.07.30

Spark DataSet

Apache Spark에서 DataSet은 데이터를 강력하게 타입화된 방식으로 처리할 수 있는 분산 컬렉션입니다. DataSet API는 Spark 1.6에서 도입되었으며, DataFrame API와 RDD의 장점을 결합합니다. DataFrame이 제공하는 최적화된 실행 엔진을 이용하면서도, RDD처럼 컴파일 시간에 타입 안정성을 제공합니다. python에서의 DataSet 예제다음은 python를 사용한 DataSet 예제입니다. 이 예제에서는 간단한 클래스 Person을 정의하고 이를 이용하여 DataSet을 생성하고 조작하는 방법을 보여줍니다. from pyspark.sql import SparkSessiondef main(): # SparkSession 초기화 spark = Sp..

Tools/Spark 2024.05.29

Spark DataFrame의 그룹화 예제

1. 그룹화표현식을 이용한 그룹화groupBy 메소드는 하나 이상의 컬럼을 기준으로 데이터를 그룹화하며, 이 때 문자열이나 컬럼 객체(Column)를 직접 지정할 수 있습니다. 그룹화된 데이터에 대해 집계 함수를 적용하여 각 그룹의 요약 정보를 계산할 수 있습니다.import org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.functions._val spark = SparkSession.builder.appName("Grouping Example").getOrCreate()import spark.implicits._// 예제 데이터 프레임 생성val df = Seq( ("Banana", 1000, "USA"), ("Carrot", 1500,..

Tools/Spark 2024.05.08

Spark 다양한 데이터 타입 다루기

1. Boolean 데이터 타입Boolean 타입은 True 또는 False 값을 가질 수 있습니다. 조건에 따라 데이터를 필터링할 때 주로 사용됩니다.import org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.functions._val spark = SparkSession.builder.appName("Boolean Example").getOrCreate()// 데이터 프레임 생성val data = Seq((1, true), (2, false), (3, true))val df = spark.createDataFrame(data).toDF("id", "isActive")// Boolean 조건을 사용한 필터링val filteredDf = df..

Tools/Spark 2024.05.08

object, class, case class, trait 의 상속과 인스턴스

Scala는 객체지향 프로그래밍과 함수형 프로그래밍을 모두 지원하는 프로그래밍 언어입니다. Scala에서는 object, class, case class, trait 같은 여러 키워드를 사용해 다양한 타입의 데이터 구조와 행동을 정의할 수 있습니다. Java와 비교하면서 각각에 대해 설명하고 예제를 들어 보겠습니다. 1. Class Scala의 class는 Java의 class와 매우 비슷합니다. 클래스는 객체의 청사진을 제공하며, 데이터와 그 데이터를 조작하는 메소드를 포함할 수 있습니다. Scala 예제: class Person(var name: String, var age: Int) { def greet(): Unit = { println(s"Hello, my name is $name and I a..

JAVA 바이트 코드 조작

출처 : https://www.inflearn.com/course/the-java-code-manipulation 바이트 코드 조작의 사용예시 (코드 커버리지) 코드 커버리지는 테스트 코드가 소스 코드의 어느 부분을 실행(확인)했는지를 백분율로 나타낸 것입니다. JaCoCo는 Java 코드 커버리지를 측정하는 도구 중 하나입니다. JaCoCo 사용하기 JaCoCo 설정: Maven 프로젝트의 pom.xml에 JaCoCo 플러그인을 추가합니다. JaCoCo 사용법. https://www.eclemma.org/jacoco/trunk/doc/index.html http://www.semdesigns.com/Company/Publications/TestCoverage.pdf pom.xml에 플러그인 추가 org..

개략적인 시스템 규모 추정

데이터의 크기 추정 2의 제곱수와 데이터의 크기 - 보통 1바이트가 1개의 문자 문자열의 크기와 종류 문자열은 문자의 연속된 시퀀스로, 텍스트 데이터를 표현하는 데 사용됩니다. 문자열을 저장하는 방법은 사용하는 문자 인코딩에 따라 달라집니다. ASCII (American Standard Code for Information Interchange) ASCII는 7비트 인코딩 시스템으로, 128개의 가능한 문자를 정의합니다 (0-127). 이는 기본적인 영문자, 숫자, 일부 특수문자를 포함합니다. 각 ASCII 문자는 1바이트 (8비트)를 사용하지만 실제로는 7비트만 사용합니다. ISO-8859-1 (Latin-1) ISO-8859-1은 ASCII를 확장한 8비트 인코딩으로, 추가적인 128개의 문자를 포함..

C.S/System Design 2024.04.16

Git Cherry-pick, Rebase

Cherry Pick과 Rebase는 두 가지 다른 Git 작업으로, 둘 다 브랜치 간의 커밋을 다루는 데 사용됩니다. 이 두 명령어는 개별 커밋의 재배치나 선택적 병합을 가능하게 하여 코드베이스의 유지 관리를 더 유연하게 합니다. Cherry Pick Cherry Pick은 다른 브랜치에서 특정 커밋 하나 또는 여러 개를 선택해서 현재 브랜치에 적용할 때 사용합니다. 이 방법은 특정 변경사항만을 현재 작업중인 브랜치로 가져오고 싶을 때 유용합니다. 주요 사용 사례 특정 기능이나 버그 수정이 포함된 커밋을 하나의 브랜치에서 다른 브랜치로 이전하고 싶을 때 사용합니다. 대규모 병합이 필요 없는 작은 변경사항을 관리할 때 유용합니다. 작업 과정 원하는 커밋의 해시 ID를 찾습니다. git cherry-pic..

Tools/Git 2024.04.14

Git Reset 과 Revert

Git에서 reset과 revert 명령은 둘 다 과거의 커밋으로 작업을 되돌리는 데 사용되지만, 사용 방식과 영향이 크게 다릅니다. 1. Git reset reset 명령어는 현재 브랜치의 특정 상태로 되돌립니다. 이 과정에서 이후의 커밋 기록이 변경되거나 삭제될 수 있으므로 주의해서 사용해야 합니다. 용도: 주로 로컬에서 작업을 잘못 했을 때 이전 상태로 되돌리기 위해 사용합니다. 방식: reset 명령어는 --soft, --mixed, --hard 세 가지 옵션을 제공합니다. Reset 예시 - 최초 커밋후( text.txt에 값이 1이 있음 ) commit A( text.txt값을 A변경 후에 test2.txt 파일을 add ) 한 상황 1. soft 인덱스(Staged Area)를 유지하면서 H..

Tools/Git 2024.04.13

Spark SQL과 Hive를 통한 데이터 처리

Spark와 Hive스파크 SQL과 Hive의 관계:스파크 SQL은 Apache Spark의 모듈 중 하나로, SQL과 HiveQL 쿼리를 사용하여 데이터를 처리할 수 있습니다. 이를 통해 사용자는 복잡한 데이터 변환과 분석을 SQL 형태로 간단히 수행할 수 있으며, 내부적으로는 스파크의 RDD(Resilient Distributed Datasets)와 DataFrame API를 사용하여 높은 처리 속도와 효율성을 제공합니다.Hive는 데이터 웨어하우스 인프라를 제공하는 Apache 프로젝트로, SQL과 유사한 HiveQL을 통해 빅데이터를 쿼리, 요약, 분석할 수 있습니다. Hive는 Hadoop 위에서 동작하며, 대용량 데이터셋의 저장과 처리를 위해 설계되었습니다.연동 방법스파크 SQL은 Hive와 ..

Tools/Spark 2024.03.26