2021년 5월 18일 화요일

IT 기술 관련 포스팅 (05.18)

안녕하세요.

오랜만에 포스팅 하네요. 이글은 제 회사 메일에도 올린것을 그대로 공유 합니다.

Web framework benchmark

10년 전에도 그렇고 현재에도 WWW 기술은 기업의 규모를 떠나서 중요한것 같습니다.

모바일도 장치에 특화된 App을 개발하지 않는 이상, 모바일 웹기술이 대세를 이루고 있는것을 보면 당분간 웹서비스의 발전은 지속될것 같습니다.

아래는 Benchmarker 라는 비영리 단체에서 Java, Python, PHP, ruby 등 현재 시장에 나와있는 거의 모든 Web 프레임워크 속도를 벤치마크하여 결과를 포스팅한 결과입니다.

1위는 마이크로 서비스에 최적화된 JVM 프레임워크인 ActiveJ 가 차지하였는데, (반드시 필요한 libraries 만 implements 하였으니 당연한 걸수도..)

눈에 띄는건 Node.js 의 마이크로 프레임워크인 Nanoexpress 가 그 뒤를 바짝 뒤쫓고 있군요. 성능 차이도 ActiveJ 와 별로 나지 않는걸 보면 조만간 역전할 수도..

링크는 여기서 참조 가능합니다.

 

무료 도메인 발급

아래는 SSL 이나 도메인 테스팅에 캐쥬얼하게 테스트 할수 있는 무료 도메인 발급이 가능한 방법을 소개 하였네요.

데벨롭

 

암호화폐 트레이딩 봇

전세계에서 암호화폐가 hot issue 죠. 아래글은 한국의 가상화폐 거래소인 업비트 에서 트레이딩을 할수 있는 Bot 을 만든 블로그 입니다.

파이썬 개발자인데 Go 로 만들었다고 하네요.

hELLO

 

코더

실리콘 밸리에서 일하고 있는 개발자인데, 박사 학위 취득후 아직도(?) 개발을 하고 있는 열정적인 박상민이라는 블로거 입니다.

오랜 경험에서 나오는 코더를 보는 세상의 시각. 그리고 고급개발자 일 수록 실제로 코딩을 해야 한다는 그의 철학이 잘 녹아있는 글인것 같아 공유 합니다.

sangmin.park

 

 

2018년 10월 1일 월요일

StreamSets 이용하여 빅데이터 Pipeline 실시간으로 처리하기.

부제: Working with Pipeline with StreamSets.





  • Pipeline 에 대해


“파이프 라인(Pipeline) 이 뭐죠?”

데이터 관련 프로젝트를 진행 하다 보면 간혹 위와 같은 질문을 받곤 합니다.
분명 알고 있긴 한데……어떻게 설명하는 게 좋을까?
어떤 식으로 이야길 해야 쉽게 이해가 될까..
항상 많은 고민을 하게 됩니다.
그럴 때 마다 도달하게 되는 결론은 가능한 쉽게 이야기하는 것이 서로간에 좋다는 겁니다.

우선 아래 그림을 한번 볼까요?



현실 세계의 Pipeline 들은 위 그림처럼 주로 핵심 원료의 주 이동수단으로 많이들 쓰입니다.

데이터 세상에서 Pipeline 은 집 에서 흔히 사용하는 수돗물 인프라 와 비슷한 시스템이라고 보시면 될 것 같습니다.

우리가 집에서 수돗물을 사용하기 위해서는 아래처럼,


1. 물이 있는 수원지(Origin)가 존재해야 하고,
2. 수원지에서 물을 끌어온 후 정수(Process) 과정을 거쳐,
3. 최종 사용자인 집(Destination) 에서 사용 하듯이,
                                      
데이터도 마찬가지로

1. 원 데이터가 있는 소스(Origin) 가 있으며,
2. 데이터 가공(Process) 과정을 거쳐,
3. 최종 사용자인 도메인 저장소(Destination) 에 적재 됩니다.


위의 것들을 관리하는 Tool 을 통틀어 Data Pipeline 이라고도 합니다.


위 그림의 예처럼 간단하게 만들어진 1차원적인 Pipeline 이 있는 반면,




위처럼 복잡한 Pipeline 도 있을 수 있습니다.

Pipeline 소프트웨어는 현재 전세계에 있는 많은 데이터 과학자(Scientists) 들과 아키텍트(Architects), 그리고 엔지니어(Data Engineer) 들에게 있어 선택이 아닌 필수가 되어 가고 있죠.

그 중 상용 솔루션도 쓸만한 게 있긴 하지만(…정말?)  대부분 고가 이고, 특정 기능과 도메인에 최적화 되어있어서 범용적으로 사용하기엔 무리가 있는 게 사실입니다.

특히 빅데이터 시장에서는 오픈소스인 Hadoop 이 전세계 Data 시장을 바꿔놓은 것처럼 상용 S/W 회사들이 하루가 다르게 쏟아져 나오는 오픈 소스의 Volume 과 트렌드를 따라잡기 쉽지 않은 것이 현실입니다.

Pipeline 은 또한, 수많은 데이터의 정제/가공 과정을 거쳐 유의미한 데이터를 추출해 내고, (Extract)
그것을 분석 하고 변환하여 각자의 도메인에 맞게 출력 하거나(Transform),
또 다른 데이터의 입력으로 사용(Load) 하는데도 많이 쓰입니다.

이런 복잡한 데이터 작업을 지속적으로 하다 보면 전문적인 관리 Tool 이 필요하게 마련입니다.

바로 Pipeline 이 필요한 이유죠.


ü Open Sources

아시는 분은 잘 아시겠지만, 현재 오픈 소스로 되어있는 Pipeline S/W 중 가장 많이 사용하는 것은 아래처럼,

l  Apache NiFi  
l  StreamSets   

2개의 S/W 가 전세계 오픈 소스 시장을 양분하고 있습니다. (2018년 8월, 사용자 기준)

각각의 솔루션들은 저마다의 장/단점이 있으며, 둘 다 Java 로 만들어졌고, Apache license 를 통해 무료로 사용 가능합니다.

제가 여러분들에게 소개하고자 하는 것은 StreamSets 입니다.
NiFi 보다 늦게 세상에 나왔지만, 강력한 Pipeline 관리 기능과 편리한 GUI, 손쉬운 트러블 슈팅 등으로 전세계 Data 관련 종사자들에게 사랑을 듬뿍 받고 있는 솔루션이죠.

자. 서론이 길었으니, 본론으로 들어가도록 해봅시다.

StreamSets 을 이용하여 데이터엔지니어스랩에서 분산처리 하여 적재하고 있는 수많은 크롤링 데이터를 Pipelining 하여 Hive Streaming 과 연동 시켜보겠습니다.








전체보기