본문 바로가기
반응형

IT39

스파크(Spark) 최적화하기 스파크(Spark)란 무엇인가? 아파치 스파크(Apache Spark)는 클러스터 환경 내에서 병렬 데이터 처리를 위해 설계된 일련의 라이브러리와 함께하는 통합 컴퓨팅 엔진입니다. 병렬 처리를 위한 가장 활발하게 개발되는 오픈소스 엔진으로서, 스파크는 빅 데이터 작업에 참여하는 개발자들과 데이터 과학자들 사이에서 표준 도구로 빠르게 부상하고 있습니다. 스파크는 파이썬, 자바, 스칼라, R과 같은 인기 있는 프로그래밍 언어와 호환되며, SQL부터 스트리밍, 머신러닝에 이르기까지 다양한 기능을 다루는 광범위한 라이브러리를 제공합니다. 스파크는 다양하게 활용될 수 있으며, 단일 노트북에서부터 수천 대의 서버로 구성된 광대한 클러스터에 이르기까지 다양한 환경에서 운영될 수 있습니다. 이러한 기능을 활용함으로써 .. 2024. 3. 21.
Git 브랜치 전략 Git 이란? Git은 속도와 효율성을 갖춘 소규모에서 매우 큰 프로젝트에 이르기까지 모든 것을 처리할 수 있도록 설계된 무료이자 오픈 소스 분산 버전 관리 시스템입니다. 2005년 리누스 토발즈에 의해 리눅스 커널의 개발을 지원하기 위해 만들어졌습니다. Git은 소프트웨어 개발 중 소스 코드의 변경 사항을 추적하면서 개발자들이 프로젝트의 다른 부분에서 동시에 작업할 수 있도록 함으로써 개발자 간의 협업을 용이하게 합니다. 분기(Branching)는 Git의 핵심 기능 중 하나입니다. 개발자는 분기를 생성하여 메인 프로젝트(보통 "master" 브랜치)로부터 독립적으로 새로운 기능이나 수정 사항을 작업할 수 있습니다. 분기에서의 작업이 완료되면, 그것을 메인 브랜치나 다른 브랜치로 병합할 수 있습니다. .. 2024. 3. 7.
AI 채팅을 내 컴퓨터에서 실행하기: LLAMA2 with Text generation web UI LLaMA (Large Language Model by Meta AI)는 Meta Platforms, Inc. (이전의 Facebook, Inc.)에 의해 개발된 대규모 언어 모델입니다. 이 모델은 자연어 처리(NLP) 분야에서 다양한 과제를 해결하기 위해 설계되었으며, 텍스트 생성, 이해, 요약, 번역, 질문 응답 등 다양한 언어 기반 작업을 수행할 수 있습니다. LLaMA는 다른 유명한 언어 모델들과 비슷한 트랜스포머 기반 아키텍처를 사용합니다. 트랜스포머 아키텍처는 주의 메커니즘(Attention Mechanism)을 통해 문장 내의 단어들 사이의 관계를 더 잘 이해하고, 이를 통해 문맥을 더 잘 파악하여 더 자연스러운 텍스트를 생성하거나 특정 질문에 대한 답변을 제공할 수 있습니다. Meta는 이.. 2024. 3. 7.
아마존의 AI 코드 자동 생성기 Amazon CodeWhisperer 설치 및 사용 최근 가장 핫한 이슈중 하나는 ChatGPT가 쏘아 올린 AI라고 생각됩니다. 이러한 시대 흐름에서 아마존이 프로그래밍 코드를 자동으로 생성해주는 CodeWhisperer를 무료로 풀었습니다. 유료버전에 비해 약간의 제약이 있긴하지만 일반 개인 사용자의 경우 거의 모든 기능을 사용할 수 있습니다. 잠깐 사용해보니 잘 쓰기만 한다면 상당히 도움이 되겠구나라는 생각이 듭니다만 아직까지는 ChatGTP마냥 일반인들이 막 접근할 수준은 되지 않습니다. 사용 방법은 기존의 IDE에 추가 기능으로 설치해서 바로 사용하실 수 있습니다. 현재 지원하는 IDE는 VisualStudio Code, IntelliJ IDEA, PyCharm, AWS Cloud9, AWS Lambda Console이며 지원하는 프로그래밍 언어.. 2023. 4. 25.
Kafka Producer 이번에는 카프카 프로듀서(Producer)가 무엇인지 살펴보도록 하겠습니다. 프로듀서 클라이언트의 역할은 이름 그대로 메시지를 생성하는 일을 합니다. 이 과정을 앞서 살펴봤던 카프카의 기본 구조인 Pub-Sub 시스템에서 Publish를 담당하는 것입니다. 프로듀서 클라이언트를 통해 사용자는 메시지를 브로커를 통해 보내게 됩니다. 브로커는 카프카 클라이언트들의 요청에 응답하거나 토픽을 관리하는 등 중요 역할을 하는데요. 자세한 내용은 다른 글을 통해서 따로 설명하도록 하겠습니다. 프로듀서 클라이언트를 사용하는 방법은 여러가지가 있습니다. 우선 가장 쉽게 접근하는 방법은 kafka-console-producer라는 CLI를 이용하는 것 입니다. 여기서는 자바를 통해 프로듀서 클라이언트를 이용하는 방법에 대.. 2020. 4. 19.
Broker, Topic, Offset, Partition 브로커(Broker)란 브로커는 카프카 서버라고도 불리웁니다. 프로듀서(Producer)가 생성한 메시지를 받아서 오프셋(Offset)을 관리하고 컨슈머(Consumer)로부터 메시지를 읽으려는 요청에 대한 응답을 하는 등의 중요 역할을 하고 있습니다. 이 브로커는 하나의 클러스터에 여러 개의 브로커를 가질 수 있습니다. 브로커의 숫자가 많아질 수록 단위 시간내의 처리량이 올라갈 수 있으므로 대용량의 데이터에도 대응할 수 있게됩니다. 카프카에서 브로커는 최소 3개를 만들 것을 권장하고 있습니다. 이는 데이터를 안전하게 보관하기 위한 최소한의 숫자라고 보시면 됩니다. 특별한 하나의 브로커가 있는데 이는 컨트롤러(Controller) 입니다. 주키퍼(Zookeeper)는 브로커들 중 하나를 컨트롤러로 선택합.. 2020. 2. 16.
Apache Kafka란 무엇인가 카프카를 아시나요? 카프카는 독일 문학에서 유명한 작가로 체코 프라하에서 집필활동을 하던 작가입니다. 하지만 지금 제가 설명드릴건 프란츠 카프가가 아닌 메세지 퍼블리싱을 위한 프로젝트인 카프카에 대해서 입니다. 처음에는 링크드인에서 로그 메시지등을 처리하기 위해서 개발되었다가 프로젝트 팀이 Confluent라는 회사로 독립을 했고 현재는 아파치 재단에 속해 있는 프로젝트 입니다. 프로젝트 명을 카프카로 한 것은 카프카를 좋아했었고 어감이 좋아서 이름을 그렇게 만들었다고 합니다. 큰 의미는 없습니다. 그럼 본격적으로 카프카란 무엇인지 살펴보도록 하겠습니다. 카프카는 Pub-Sub(Publish-Subscribe) 시스템이라고 불리기도 합니다. Producer에서 메세지를 Publish하고 Consumer에.. 2020. 1. 7.
1. Count 값 구하기 - var 말고 val 쓰자 2019/08/06 - [만들어 봐요/Scala] - var말고 val 쓰자!! 시리즈의 첫번째로 foreach 반복문 안에서 특정 조건에서의 카운트를 해야하는 경우에 대해 사용해보겠다. val isRunAList: List[Boolean] = List(true, false, true, false) var countCalledA = 0 isRunAList.foreach(isRunA => isRunA match { case true => A() count = count + 1 case false => B() } ) A함수가 몇 번 호출 되는지 횟수를 구하는 예제를 만들어 봤다. var를 사용하면 자바와 같이 count변수 값을 늘려가며 최종 결과 값을 얻을 수 있다. 하지만 val을 사용하면 우리는 증가되.. 2019. 8. 6.
var말고 val 쓰자!! Scala 에서는 변수 선언 방법이 두가지가 있다. val 과 var 이다. var는 일반적으로 알고 있는 변수로 선언을 하는 것이여서 함수 중간에 값의 변경이 가능하다. 하지만 val 타입은 불변하는 값으로 자바의 final 선언과 비슷하다. 따라서 한 번 값이 결정되고 난 다음에는 값의 변경이 불가능하다. Scala에서는 함수형 프로그래밍을 지향하고 의도치 않은 동작을 방지하기 위해 var 타입을 사용하지 않는 것을 권장한다. 때론 이것을 지키려고 하다보면 상당히 머리를 써야할 때가 있다. 이런 문제들이 발생했을 때 유용한 패턴들을 한 번 만들어 보려 한다. 각 패턴별로 목록을 이 글에 추가해나가도록 하겠다. 2019/08/06 - [만들어 봐요/Scala] - 1. Count 값 구하기 - var .. 2019. 8. 6.
반응형