반응형

2021.05.25

 오늘은 좀더 많은 일을 하겠다고 어제 일기를 쓰면서 다짐했었는데, 결국 또 그러지를 못했다. 
일단 요즘 너무 늦게일어나고있는게 문제고, 아무것도 안하면서 시간만 아깝게 보내는것이 문제이다. 뭔가 데드라인이 없으니 나태해진다. 그나마 오늘은 리트코드를 2문제 푼걸로 만족해야할듯하다.

반응형
반응형

2021.05.24

 오늘부터 계획해논대로 살아보려고 하고있다. 일단 계획은 리트코드 2문제, 코딩하기, 책읽기, 편집하기, 촬영하기 이렇게 크게 5가지이다. 각각 2시간 내외로 시간을 쓰려고했는데 오늘은 결국 리트코드 1문제밖에 못풀었다.
 시작은 작게 하고 끝은 크게 만든다는 의미로 함리화를 해본다. 내일을 최소 리트코드2문제, 코딩하기, 편집하기 이렇게 3개는 해야겠다. 

 그렇다고 오늘 진짜 하나만 하고 아무것도 안한것은 아니다. 아침엔 동사무소도 다녀왔고 안랙술이랑 많은 이야기도 했다. 어제는 바닥에서 잠을 잤더니 오늘 조금 피곤했다. 이제 일찍 자고 내일 일어나서 또 할일을 잘 해봐야지.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day165. 리트코드1개  (0) 2021.05.27
day164.리트코드 2개  (0) 2021.05.26
day162. 신촌포구 갯바위 광어,무늬낚시 꽝  (0) 2021.05.24
day161.편집, 요가  (0) 2021.05.22
day160. 팽잘탐험  (0) 2021.05.22
반응형

2021.05.23

 오늘은 점심을 먹자마자 신촌포구쪽으로 낚시를 갔다. 
 슬슬 수온도 올라가고그래서 광어를 잡아보러갔다. 한시간쯤 걸려 도착하고 첫캐스팅에 밑걸림 발생하고 두번째 캐스팅엔 고기를 걸었는데 이놈이 바위를 감아버렸다. 중간에 한번 뺏는데 다시 바로 감아버려서 결국은 줄이 끊어졌다. 
 밑걸림이 상당히 심해서 여기저기 포인트를 옮겨보았지만 어디든 밑걸림이 심했다. 중간에 한번 새끼 광어가 따라오는게 보였는데 그 이후로 입질이 없었다.

 5시쯤부터는 채비를 에기로 바꿔서 낚시를 했다. 결론은 꽝. 신촌포구에서도 캐스팅을 해봤는데 아무것도 못잡았다. 비록 무늬는 못잡았지만 에기를 걸었다. 에기가 바닥에 걸린거같아서 쭉 당기니까 에기를 안고 나오더라. 비싼 에기인듯 해서 기분이 좋았다. 
 다음번에 날좋을때 이 포인트 가서 잠수해서 에기좀 회수해와야겠다. 

 

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day164.리트코드 2개  (0) 2021.05.26
day163. 계획된 일상시작, 하지만 다 못함  (0) 2021.05.24
day161.편집, 요가  (0) 2021.05.22
day160. 팽잘탐험  (0) 2021.05.22
day159. 면접!  (0) 2021.05.22
반응형

[도서리뷰]스파크를 활용한 실시간 처리(Stream Processing with Apache Spark)

스파크를 활용한 실시간 처리

오늘 리뷰할 도서는 스파크를 활용한 실시간 처리(Stream Processing with Apache Spark)입니다. 이 리뷰는 한빛 미디어로부터 도서를 제공받아 독서 후 작성되었음을 알려드립니다.

들어가며

웹개발자들 중에 실시간 처리가 필요 없는 개발자는 없을것이다. 비록 스파크를 직접 사용해본 적은 없더라도 서비스를(혹은 플랫폼)을 함께 만드는 다른 팀에서는 실시간 처리를 위해서 스파크를 사용하고 있을 가능성이크다(필자의 경우가 그랬다.) 우리 서비스에서 스파크가 실시간 처리를 담당해준다는 사실도 알고있었고, 여러 컨퍼런스에서 스파크를 이용한 실시간 처리에 관한 세션도 들어본적이 있지만, 공부를 하지않았다. 매번 해야한다는 생각만하고 당장 처리해야할 일이 너무 많아서 하지않았던거같다. 하지만 좋은 기회에 한빛미디어가 도서를 제공해주었고 덕분에 미루어둔 공부를 할 수 있게되었다.

먼저 목차부터 살펴보도록하자.

더보기

Part 1 아파치 스파크를 사용한 스트림 처리의 기본


CHAPTER 1 스트림 처리 소개

    1.1 스트림 처리란
    1.2 스트림 처리 예제
    1.3 데이터 처리의 확장
    1.4 분산 스트림 처리
    1.5 아파치 스파크 소개
    1.6 다음엔 무엇을 배울까

CHAPTER 2 스트림 처리 모델

    2.1 소스와 싱크
    2.2 서로 정의된 불변의 스트림
    2.3 변환과 집계
    2.4 윈도우 집계
    2.5 비상태 및 상태 기반 처리
    2.6 상태 기반 스트림
    2.7 예제: 스칼라에서 로컬 상태 기반 연산
    2.8 비상태 또는 상태 기반 스트리밍
    2.9 시간의 영향
    2.10 요약

CHAPTER 3 스트리밍 아키텍처

    3.1 데이터 플랫폼의 구성 요소
    3.2 아키텍처
    3.3 스트리밍 애플리케이션에서 배치 처리 구성 요소의 사용
    3.4 참조 스트리밍 아키텍처
    3.5 스트리밍과 배치 알고리즘
    3.6 요약

CHAPTER 4 스트림 처리 엔진으로서의 아파치 스파크

    4.1 두 API 이야기
    4.2 스파크의 메모리 사용
    4.3 지연 시간에 대한 이해
    4.4 처리량 지향 처리
    4.5 스파크의 폴리글랏 API
    4.6 데이터 분석의 빠른 구현
    4.7 스파크에 대해 더 알아보기
    4.8 요약

CHAPTER 5 스파크의 분산 처리 모델

    5.1 클러스터 매니저를 활용한 아파치 스파크 실행
    5.2 스파크 자체 클러스터 매니저
    5.3 분산 시스템에서의 복원력과 내결함성 이해
    5.4 데이터 전송 의미론
    5.5 마이크로배칭과 한 번에 한 요소
    5.6 마이크로배치와 한 번에 한 레코드 처리 방식을 더욱 가깝게 만들기
    5.7 동적 배치 간격
    5.8 구조적 스트리밍 처리 모델

CHAPTER 6 스파크의 복원력 모델

    6.1 스파크의 탄력적인 분산 데이터셋
    6.2 스파크 컴포넌트
    6.3 스파크의 내결함성 보장
    6.4 요약


Part 2 구조적 스트리밍


CHAPTER 7 구조적 스트리밍 소개

    7.1 구조적 스트리밍의 첫걸음
    7.2 배치 분석
    7.3 스트리밍 분석
    7.4 요약

CHAPTER 8 구조적 스트리밍 프로그래밍 모델

    8.1 스파크 초기화
    8.2 소스: 스트리밍 데이터 수집
    8.3 스트리밍 데이터 변환
    8.4 싱크: 결과 데이터 출력
    8.5 요약

CHAPTER 9 구조적 스트리밍 작동

    9.1 스트리밍 소스 소비하기
    9.2 애플리케이션 로직
    9.3 스트리밍 싱크에 쓰기
    9.4 요약

CHAPTER 10 구조적 스트리밍 소스

    10.1 소스의 이해
    10.2 사용 가능한 소스
    10.3 파일 소스
    10.4 카프카 소스
    10.5 소켓 소스
    10.6 레이트 소스

CHAPTER 11 구조적 스트리밍 싱크

    11.1 싱크의 이해
    11.2 사용 가능한 싱크
    11.3 파일 싱크
    11.4 카프카 싱크
    11.5 메모리 싱크
    11.6 콘솔 싱크
    11.7 foreach 싱크

CHAPTER 12 이벤트 시간 기반 스트림 처리

    12.1 구조적 스트리밍에서의 이벤트 시간에 대한 이해
    12.2 이벤트 시간의 사용
    12.3 처리 시간
    12.4 워터마크
    12.5 시간 기반 윈도우 집계
    12.6 레코드 중복 제거
    12.7 요약

CHAPTER 13 고급 상태 기반 작업

    13.1 예제: 차량 유지 보수 관리
    13.2 상태 작동을 통한 그룹의 이해
    13.3 MapGroupsWithState의 사용
    13.4 FlatMapGroupsWithState 사용
    13.5 요약

CHAPTER 14 구조적 스트리밍 애플리케이션 모니터링

    14.1 스파크 메트릭 하위시스템
    14.2 StreamingQuery 인스턴스
    14.3 StreamingQueryListener 인터페이스

CHAPTER 15 실험 영역: 연속형 처리와 머신러닝

    15.1 연속형 처리
    15.2 머신러닝


Part 3 스파크 스트리밍


CHAPTER 16 스파크 스트리밍 소개

    16.1 DStream 추상화
    16.2 스파크 스트리밍 애플리케이션의 구조
    16.3 요약

CHAPTER 17 스파크 스트리밍 프로그래밍 모델

    17.1 DStream의 기본 추상화로서의 RDD
    17.2 DStream 변환의 이해
    17.3 요소 중심의 DStream 변환
    17.4 RDD 중심의 DStream 변환
    17.5 계산 변환
    17.6 구조 변경 변환
    17.7 요약

CHAPTER 18 스파크 스트리밍 실행 모델

    18.1 대량 동기화 아키텍처
    18.2 리시버 모델
    18.3 리시버가 없는 모델 또는 직접 모델
    18.4 요약

CHAPTER 19 스파크 스트리밍 소스

    19.1 소스의 유형
    19.2 일반적으로 사용되는 소스
    19.3 파일 소스
    19.4 큐 소스
    19.5 소켓 소스
    19.6 카프카 소스
    19.7 더 많은 소스를 찾을 수 있는 곳

CHAPTER 20 스파크 스트리밍 싱크

    20.1 출력 연산
    20.2 내장형 출력 연산
    20.3 프로그래밍 가능한 싱크로서 foreachRDD 사용하기
    20.4 서드파티 출력 연산

CHAPTER 21 시간 기반 스트림 처리

    21.1 윈도우 집계
    21.2 텀블링 윈도우
    21.3 슬라이딩 윈도우
    21.4 윈도우 사용과 더 긴 배치 간격 사용
    21.5 윈도우 기반 감소
    21.6 가역 윈도우 집계
    21.7 슬라이싱 스트림
    21.8 요약

CHAPTER 22 임의 상태 기반 스트리밍 연산

    22.1 스트림 규모의 상태 기반
    22.2 updateStateByKey
    22.3 updateStateByKey의 한계
    22.4 mapwithState를 사용한 상태 기반 연산 소개
    22.5 mapWithState 사용하기
    22.6 mapWithState를 사용한 이벤트 시간 스트림 계산

CHAPTER 23 스파크 SQL로 작업하기

    23.1 스파크 SQL
    23.2 스파크 스트리밍에서 스파크 SQL 함수에 접근하기
    23.3 유휴 데이터 처리
    23.4 조인 최적화
    23.5 스트리밍 애플리케이션에서 참조 데이터셋 업데이트하기
    23.6 요약

CHAPTER 24 체크포인팅

    24.1 체크포인트 사용법의 이해
    24.2 DStream 체크포인팅
    24.3 체크포인트에서 복구
    24.4 체크포인팅 비용
    24.5 체크포인트 튜닝

CHAPTER 25 스파크 스트리밍 모니터링

    25.1 스트리밍 UI
    25.2 스트리밍 UI를 이용하여 잡 성능 이해하기
    25.3 REST API 모니터링
    25.4 지표 하위시스템
    25.5 내부 이벤트 버스
    25.6 요약

CHAPTER 26 성능 튜닝

    26.1 스파크 스트리밍의 성능 밸런스
    26.2 잡의 성능에 영향을 미치는 외부 요소
    26.3 성능을 향상시킬 수 있는 방법
    26.4 배치 간격 조정하기
    26.5 고정 속도 스로틀링을 통한 데이터 수신 제한
    26.6 백프레셔
    26.7 동적 스로틀링
    26.8 캐싱
    26.9 추측적 실행


Part 4 고급 스파크 스트리밍 기술

CHAPTER 27 스트리밍 근사 및 샘플링 알고리즘

    27.1 정확성, 실시간 그리고 빅데이터
    27.2 정확성, 실시간 그리고 빅데이터 삼각형
    27.3 근사 알고리즘
    27.4 해싱과 스케칭: 소개
    27.5 고유 요소 계산: HyperLogLog
    27.6 카운팅 요소 빈도: 최소 스케치 카운트
    27.7 순위와 분위수: T-다이제스트
    27.8 요소 수 줄이기: 샘플링

CHAPTER 28 실시간 머신러닝

    28.1 나이브 베이즈를 이용한 스트리밍 분류
    28.2 의사 결정 트리 소개
    28.3 Hoeffding 트리
    28.4 온라인 K-평균을 사용한 스트리밍 클러스터링


Part 5 아파치 스파크를 넘어


CHAPTER 29 기타 분산 실시간 스트림 처리 시스템

    29.1 아파치 스톰
    29.2 아파치 플링크
    29.3 카프카 스트림
    29.4 클라우드에서

CHAPTER 30 미리 살펴보기

    30.1 연결 상태 유지
    30.2 밋업에 참석하기
    30.3 아파치 스파크 프로젝트에 기여하기

목차에 나와있다시피 기초부터 시작하여 사례, 적용 법까지 다양한 내용을 다루고있다.
실시간처리, 스트리밍, 스파크 이런 키워드들에 대해 설명하라고하면 막연한 설명밖에 못하는분들이 보기 좋은책. 이 책은 스파크를 활용한 실시간 처리를 설명하기에 앞서 실시간 처리를 논할때 사용되는 용어 및 개념들에대해 설명하는것부터 시작한다. 즉, 별다른 선행 지식이 필요 없다는 이야기이다. 덕분에 필자도 수월하게 책의 내용을 이해할 수 있었다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형
반응형

2021.05.22

오늘은 편집을 해서 2개나 올렸다. 원래 5월부터 작년에 촬영만하고 못올린 부분들을 올리려고했는데 일도 해야하고, 면접도 봐야해서 못하고있었다. 이제 일도, 면접도 완료되었고, 어제 하루 쉬었으니 다시 편집을 시작했다. 오늘은 주말이라 편집만했지만 평일엔 코딩도하고 리트코드도 해야지.

 오랫만에 요가를 했다. 저번보다 더 길게했는데 땀이 엄청 많이난다. 그동안 유연성과 근력이 모두 다 사라진거같다. 제대로 되는 자세가 하나도 없다. 원래도 잘 못하긴 했지만 그전보다 훨씬 더 망가졌다. 이제 좀더 열심히 해야겠다.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day163. 계획된 일상시작, 하지만 다 못함  (0) 2021.05.24
day162. 신촌포구 갯바위 광어,무늬낚시 꽝  (0) 2021.05.24
day160. 팽잘탐험  (0) 2021.05.22
day159. 면접!  (0) 2021.05.22
day158. 촬영 완료!  (0) 2021.05.22
반응형

2021.05.21

면접도 끝나고, 촬영도 끝나서 이제 듀데이트가 있는 일은 더이상없다. 오랫만에 편안한 마음으로 안랙술과 산책을 갔다. 무슨 아울렛이라는곳에 갔는데 옷가게는 하나도 없더라. 아울렛이 되고싶었으니 망한곳인가보다.  낚시점이 있어서 들어갔는데 사장님이 친절하지않아서 그냥 나왔다.

 아울렛을 나와서 마트로 갔다. 몇가지 살것들을 사고 돌아오면서 다른 낚시점에 들렸다. 에기 훅 캡을 샀는데 인터넷과별로 차이가 없어서 바로 구매했다. 기존에 사용하던 에기 케이스는 당근에 팔아야겠다.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day162. 신촌포구 갯바위 광어,무늬낚시 꽝  (0) 2021.05.24
day161.편집, 요가  (0) 2021.05.22
day159. 면접!  (0) 2021.05.22
day158. 촬영 완료!  (0) 2021.05.22
day157. 코테보는날  (0) 2021.05.18
반응형

2021.05.20

오늘은 면접을 봤다. 아무래도 원래 하던 도메인과 동일해서 그런지 도메인에 대한 질문이 많이 나왔다. 기술적인 질문은 대답을 잘한거같진 않는데 그냥 저냥 한거같다. 이번에 나왔던 질문들에대해서는 다음에 더 잘 대답할 수 있도록 좀더 생각을 해봐야겠다. 

의외인것은 코테를 망쳤는데 코테에 대해서는 하나도 안 물어보시더라. 

원래 오늘 2차면접까지 보는것이었는데 일정이 바뀌었다고 했다. 결과가 빨리 나오면 좋겠다.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day161.편집, 요가  (0) 2021.05.22
day160. 팽잘탐험  (0) 2021.05.22
day158. 촬영 완료!  (0) 2021.05.22
day157. 코테보는날  (0) 2021.05.18
day156. 촬영실패. 범위산정 실패  (0) 2021.05.18
반응형

2021.05.19

촬영을 잘 완료했다. 욕심안부리고 하기로했고, 처음 시작할땐 이건 너무 양이 적은거 아닐까? 하는 생각을 하며서 시작했는데 하다보니 이것마저도 시간이 모자랐다. 역시 TDD는 시간이 오래걸리는구나. 

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day160. 팽잘탐험  (0) 2021.05.22
day159. 면접!  (0) 2021.05.22
day157. 코테보는날  (0) 2021.05.18
day156. 촬영실패. 범위산정 실패  (0) 2021.05.18
day155.촬영  (0) 2021.05.18
반응형

2021.05.18

 어제 촬영이 망하고나서 현재 촬영분까지만 전달 해 달라는 내용을 받았고, 나머지는 목요일까지 달라는 이야기를 들었다.
 그래서 오늘은 그냥 코테에만 집중하기로했다. 

5문제나 되는데 2시간뿐이 안준다고해서 난이도가 그다지 어렵지 않겠거니 생각했는데, 역시나 그다지 어렵지 않았다. 하지만 시간이 짧고, 처음에 뭐 영상권한을 얻니 마니 하면서 삽질을 하는바람에 안그래도 짧은 시간이 더 짧았졌다. 

이런건 미리 안내를 해주는 센스가 있으면 좋을텐데. 그점이 아쉽다.

역시 코테는 계속해서 문제를 풀어야만 느는거같다. 앞으로는 핸드폰질하고 삽질하는 시간 좀 줄여서 그시간에 리트코드라도 좀 해야겠다.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day159. 면접!  (0) 2021.05.22
day158. 촬영 완료!  (0) 2021.05.22
day156. 촬영실패. 범위산정 실패  (0) 2021.05.18
day155.촬영  (0) 2021.05.18
day154. 촬영 시작  (0) 2021.05.18
반응형

2021.05.17

 촬영을 실패했다. 시스템을 너무 방대하게 잡았다. 저번과 동일하게 또 욕심을 부려버렸다. 도저히 답이 안나오는거같아서 담당자분께 사정을 이야기했더니 아직 시간이 있으니, 이미 완료된 이론 부분만 먼저 전달해 주고 코딩부분은 천천히 찍어 달라고 하셔서 알겠다고했다. 
 내일은 코테를 봐야하니 모레 완성해서 전달드려야겠다.

반응형

'2021년도 > step1.제주' 카테고리의 다른 글

day158. 촬영 완료!  (0) 2021.05.22
day157. 코테보는날  (0) 2021.05.18
day155.촬영  (0) 2021.05.18
day154. 촬영 시작  (0) 2021.05.18
day153. 아무것도 안한날  (0) 2021.05.18

+ Recent posts