[백준] 17835번: 면접보는 승범이네
📌 문제 https://www.acmicpc.net/problem/17835 📌 설명 주어진 노드로부터 특정 노드들까지의 최단 거리를 구하고, 최단 거리 중 최댓값을 구하는 문제이다. 다익스트라 알고리즘을 통해 시작 노드로부터 각 노드까지의 최단 경로를 구할 수 있으므로, 각 노드에 대해 다익스트라 알고리즘을 적용한 후, 면접장까지의 거리 중 최...
📌 문제 https://www.acmicpc.net/problem/17835 📌 설명 주어진 노드로부터 특정 노드들까지의 최단 거리를 구하고, 최단 거리 중 최댓값을 구하는 문제이다. 다익스트라 알고리즘을 통해 시작 노드로부터 각 노드까지의 최단 경로를 구할 수 있으므로, 각 노드에 대해 다익스트라 알고리즘을 적용한 후, 면접장까지의 거리 중 최...
📌 회고 여태까지 내가 프로퍼티를 주입하기 위해 알고 있던 방법은 @Value 어노테이션을 사용하는 것이었다. 여느 개발자가 그렇듯이 더 나은 방법을 알지 못하면 기존의 방식을 계속 사용하게 되기 마련이다. 그리고 난 최근에서야 ‘더 우아한 대안’의 존재에 대해 알게 되었다. 일단 @Value 어노테이션과 @ConfigurationPropertie...
📌 Record란? 자바의 Record 는 Java 16에서 정식으로 도입된 특별한 종류의 클래스이다. Record의 핵심 목적은 불변 데이터를 담는 객체를 간결하게 작성하는 것이다. Record가 없던 시절 보통 Record는 DTO와 같은 불변 객체를 만들기 위해 사용한다. 이를 Record를 사용하지 않고 작성하면 다음과 같이 작성할 수 있...
📌 MLlib이란? Spark MLlib 은 빅데이터를 위한 분산 머신러닝 프레임워크이다. scikit-learn 과 같이 단일 머신에서 동작하는 라이브러리가 처리할 수 없는 대용량의 데이터를 다루기 위해 등장하였다. 특징 MLlib에 구현된 알고리즘들은 대규모 병럴 처리에 맞게 설계되었다. 따라서 보다 높은 성능을 보여준다. 데이터가 ...
📌 일급 객체란? First-class Object , 일급 객체는 사실 자바에서만 사용되는 표현은 아니다. 일급 객체란 다른 객체들에 대해 일반적으로 적용 가능한 모든 연산을 지원하는 객체를 말하며, 보통 함수형 프로그래밍의 핵심 개념으로 여겨진다. 대표적으로 JavaScript, Python이 일급 객체 언어이며, C, C++ 등은 그렇지 않다....
📌 Apache Kafka란? Apache Kafka 는 실시간으로 발생하는 대규모 이벤트 스트림을 효율적으로 처리하기 위해 설계된 분산 이벤트 스트리밍 플랫폼이다. Pub/Sub 모델을 따른다. Producer 는 데이터를 생산하고 Consumer 는 데이터를 소비한다. 이들을 완전히 분리하여 서로 직접적으로 통신할 필요가 없도록 한다. Topi...
📌 Spark Streaming Spark Streaming 은 실시간으로 들어오는 데이터 스트림을 처리하기 위한 Spark Core API의 확장 라이브러리이다. 이벤트 단위 스트림 처리가 아니라 마이크로 배치 처리 방식으로 동작한다. 이벤트 단위 스트림 처리는 데이터가 시스템에 도착하는 즉시 이벤트를 바로 처리하는 방법이다. 반면 마이크로...
📌 Spark Submit Spark Submit은 스칼라나 자바, 파이썬 등으로 작성된 스파크 애플리케이션을 클러스터에 제출하여 실행하기 위한 명령이다. 애플리케이션을 스칼라로 작성한 경우 아래와 같이 작성한다. /bin/spark-submit \ --master yarn \ --deploy-mode cluster \ ...
📌 Spark DataFrame Spark DataFrame 은 RDD의 개념을 확장하여 데이터를 이름과 타입을 가진 열로 구성된 2차원 테이블로 다룰 수 있도록 한다. 데이터의 스키마를 내부적으로 가지고 있다. 특징 데이터는 이름과 타입이 정의된 열로 구성되었기 떄문에, 열의 이름을 사용하여 데이터에 접근할 수 있다. 스키마 정보를 가...
📌 RDD 관련 메서드 text_file = sc.textFile(test_file) textFile 은 텍스트 파일을 읽어 각 줄을 하나의 문자열로 갖는 RDD를 생성하는 메서드이다. counts = text_file.flatMap(lambda line: line.split(" ")) \ .map(lambda word:...