[컴][웹] 크롤링에 대한 대법원 판단

스크랩핑 / 스크랩  / 크롤 / 크롤링 / crawling 에 대한 법률 / 법률 위반 / 합법인가 크롤링

크롤링에 대한 대법원 판단

데이터베이스(DB)권 침해 행위[^1]

  • 웹사이트 콘텐츠를 긁어오는 '크롤링'을 이용해 확보한 콘텐츠
  • --> 자신의 영업에 무단 사용
  • --> 데이터베이스(DB)권 침해 행위

사건 내용

  • 2008년 사람인이 잡코리아에 등록된 기업 채용공고를 무단 크롤링해 게재
  • 몰래 크롤링을 하는 것을 숨기기 위해 가상사설망(VPN)을 사용

미국에서 나온 최근 판결, 2020-01-28

HiQ 와 LinkedIn 의 법정싸움. 이 스크랩핑에 대한 재판은 HiQ 가 CFAA (Computer Fraud and Abuse Act) 를 위반했는지 여부에 대한 싸움.

재판은 CFAA 는 private 에 대한 보호를 위한 것이라고 하고, 그래서 HiQ 가 LinkedIn 의 public profile 에 대한 scrapping 은 CFAA 를 위반한 것이 아니라고 판결함. 그리고 LinkedIn 이 HiQ 의 scrapping 을 막는 것 또한 금지시킴.

References

[컴][웹] 큰 회사의 스케일링 자료

pinterest data sharding shard / 핀터레스트 운영 / 핀터레스트 서버 구조 / 아키텍처 / architecture / 대규모 / 대용량 서버 / 대규모 서버 스케일링 / scaling / scalable /system design

큰 회사의 스케일링 자료

핀터레스트 스케일링 자료

인스타그램 스케일링 자료

  1. Making Instagram.com faster: Part 1 - Instagram Engineering
  2. Making Instagram.com faster: Part 2 - Instagram Engineering
  3. Making Instagram.com faster: Part 3 — cache first - Instagram Engineering

트위터 자료

  1. Twitter Blog > Infrastructure

Linked In

StackOverflow

무신사

카카오

트래픽이 많은 경우

  1. 쿠…sal: [컴][웹] 대한민국의 동접 최고 기록
  2. 쿠…sal: [컴][사례] 네크워크 부하가 큰 경우 네트워크 대역폭 사용량

See Also

  1. GitHub - InterviewReady/system-design-resources: These are the best resources for System Design on the Internet : 여러회사의 이야기를 모아놨다.
  2. https://www.devbridge.com/articles/a-6-point-plan-for-implementing-a-scalable-microservices-architecture/
  3. https://github.com/lei-hsia/grokking-system-design#system-designs
  4. Twitter Blog > Infrastructure
  5. What is Facebook's architecture? - Quora
  6. 쿠…sal: [컴] JunoDB 의 overview : paypal 의 junoDB
  7. 쿠…sal: [컴] netflix 의 Marken : 넷플릭스의 주석시스템 Marken
  8. 쿠…sal: [컴] 인프라 참고자표 from gruntwork : 구성도

[컴][보안] 자신의 이메일이 어디에 유출됐는지 확인방법

내 이메일이 어디에 노출 되었는지 확인하는 방법 / email breach 노출 / monitored / expose / breach / 이메일 노출된 곳 검색 방법


자신의 이메일이 어디에 유출됐는지 확인방법

firefox(파이오폭스) 에서 자신의 정보가 유출되었는지를 확인(monitor) 할 수 있는 사이트를 공개했다.

확인을 원하는 email 로 로그인을 하면, 아래처럼 어디에 유출되었는지 알려준다. 자세한 사항을 확인하면, 언제 data 가 유출됐고, 어떻게 하라는 내용등을 알려준다.







See Also

  1. https://haveibeenpwned.com/



[컴][NodeJs] CPU Intensive job 을 Node.js 에서 처리할 때

노드js nodejs 에서 싱글 쓰레드 / single thread job / cpu 사용량이 큰 작업 처리 방법 / node multi / nodejs / multi / multi thread  / multithread

CPU Intensive job 을 Node.js 에서 처리할 때

node js - single thread

기본적으로 single thread 로 알려져 있는데, 이것은 약간 이해를 잘 못 할 수 있어서 간단한 설명을 하자면, ref. 2 에서 여기 를 보면 node js 의 구성을 살짝 엿볼 수 있는데, libeio 를 통해 thread pool 을 만들어서 사용한다. (ref. 3)
그렇기 때문에 이것이 single threaded 인 것은 user 의 source code 를 run 하는 부분을 이야기 한다. 아래 코드를 예로 들면 user 의 code 부분은 하나의 thread 에서 동작한다. 하지만 fs.readFile 같은 부분은 Thread Pool 로 던져질 것이다. 그리고 response 가 오기까지 또 이 single thread 는 console.log('right after') 부분으로 처리할 수 있게 되는 것이다.
var fs = require('fs');  
fs.readFile(‘/files/help.txt’, function(err, buf) {  
    console.log('done');
});
console.log('right after');
from : ref. 1

cpu intensive job

그러므로 nodejs 로 만든 server 들은 기본적으로 single thread 로 user request 를 처리하게 된다. 하지만 만약 request 하나에서 cpu intensive 한 작업을 처리하는 경우가 있는 request 에 대해서는 nodejs 에서 처리가능한 request 양이 급격히 줄어들 수 밖에 없다. 이런 문제점에 대한 해결책에 대한 이야기가 아래 글들에 담겨있다.
대략적인 내용은 cluster 를 사용해서 request 마다 process 를 하나 더 만들어서 cpu intensive job 을 그쪽으로 넘기는 것인데, 문제는 이것이 너무 많은 memory 를 할당해야 한다는 것이다. 그래서 cluster 와 queue(kue library) 를 이용해서 일종의 process pool 을 만들어서 사용하는 해결책을 제시한다.

여담으로, 이 방법들을 살펴보고 있으려니까 아주 오래전에 linux 에서 c 로 server programming 을 하던 때의 생각이 난다.

node js http server timeout

nodejs v6.x 에서 일단 기본 timeout 이 2 분으로 설정되어 있다고 한다. 즉, request 를 보낸지 2분후 까지 response 가 없으면 error 가 된다. 이 timeout 내에 더 많은 request 를 처리하기 위해서라도 "cluster 의 사용"은 필요할 듯 하다.
 

See Also

References

  1. Introduction to NodeJS, A SSJS: Part II - EventLoop Explained
  2. https://youtu.be/L0pjVcIsU6A?t=366
    • 동영상에서는 Node.js 의 철학? 을 알 수 있다.
  3. javascript - Nodejs Event Loop - Stack Overflow
  4. Cluster | Node.js v12.3.1 Documentation

[컴] 해외 유명 IT 기업 연봉


넷플릭스 연봉 / netflix 복지 / netflix salayr /

넷플릭스 연봉


대략 $300,000 달러/연






[컴] 딜로이트의 2018년 글로벌 CIO 설문 조사 결과

리딩그룹 / 디지털 리딩 / IT회사 / 선두기업

딜로이트의 2018년 글로벌 CIO 설문 조사 결과


디지털 선도 기업(digital vanguard organizations)은 2가지 차별화된 특징을 갖고 있다.
  1. 명확하게 정의된 디지털 전략 a clearly defined digital strategy 
  2. 신기술 활용과 디지털 역량 구축 작업을 IT 조직이 이끌도록 한다 an IT organization viewed by the business as a leader in harnessing emerging technologies and building digital capabilities.
  • 디지털 선도 기업은 글로벌 IT 기업 중 9.7%만이 해당한다.
  • 디지털 선도 기업의 디지털 리더가 다른 기업과 다른점 
    • 업무 우선순위priorities
    • 마음가짐mindsets
    • 문화적 특성cultural attributes

디지털 선도기업의 특징

  1. 성장에 대한 마음가짐Growth mindset
  2. 확대/축소적 관점
  3. 최고의 인재를 유입시키는 문화
    •  디지털 리더 조직의 절반 이상(55%)이 창의적이고 의욕을 고취하는 환경 덕분에 인재를 유지할 수 있었다고 답했다.
    • 조직 문화가 최고의 기술 인재를 유입, 유지, 참여시키는 데 핵심이라는 사실을 알고 있다.
    • 디지털 리더 조직의 절반 이상(55%)이 창의적이고 의욕을 고취하는 환경 덕분에 인재를 유지할 수 있었다고 답했다.
  4. 탄탄한 기술 기반
  5. 강력한 참여 계획

References

  1. '디지털 선도' 기업의 5가지 특징 - CIO Korea, 2019-05-09
  2. 5 ways leading organizations excel at digital | CIO, 2019-05-03

[컴][interview] 면접 실패 사례 - 회사 입장

인터뷰 / 인터뷰의 잘못 된 점 / interview / 고용 / 면접방법의 잘못 / 실패사례 / 아마존 프라임 에어 창업자 실패 / 데니얼 부시뮬러 / 고용을 잘못 한 사례 / 드론


인터뷰 실패 사례


개인적으로 이런 글들을 좋아한다. 우린는 사실 측정할 수 없는 것들을 측정하려 많은 노력을 한다. 그리고 그 측정방법이 옳았다는 것을 증명하기 위해 잘된 경우들만을 늘어놓는다.

하지만 경험 해 본 우리는 그것이 전적으로 옳지 않다는 것을 안다. 하지만 믿을 만한 근거를 제시하기가 쉽지 않다.

그런 의미에서 이런 글들이 많아져야만 우리는 더 나은 방법을 찾을 수 있다고 생각한다.

from: ref. 1, Robert Sweeney, Founder and CEO at Facet

I turned down Daniel Buchmueller for a job at Netflix. After a 60 minute interview I was on the fence, so I concluded that he "wasn't senior enough." He went to Amazon instead where he co-founded Amazon Prime Air (their drone delivery service) and was #2 on Fast Company's "Most Creative People" list. At some point, we programmers are going to have to admit that we really can't judge another programmers technical abilities in a 60 min interview. We end up hiring programmers that are good at interviewing, but not necessarily good at doing the job. And we miss out on engineers like Daniel.

해석

나는 넷플릭스에 있을 때 Daniel Buchmueller 를 채용하지 않았다. 1시간의 인터뷰를 한 후에도 나는 확신이 들지 않았다. 그래서 나는 그가 senior 에 적합하지 않다고 결론 내렸다.

그는 대신에 Amazon 에 갔고, 그는 Amazon Prime Air (그들의 드론 배달 서비스)를 공동설립 했고 Fast Company 의 "가장 창조적인 사람" 리스트에서 2위를 차지했다.

어떤 점에서 우리 프로그래머들은 우리가 다른 프로그래머들의 기술적인 역량을 60분의 면접후에 판단할 수 없다는 것을 인정해야만 한다.

우리는 "면접에서 좋아 보이지만 일을 잘하지는 않는 프로그래머들"을 고용하는 것을 관뒀다.   그리고 우리는 (여전히?) Daniel 같은 엔지니어를 놓친다.


Refrences

  1. Robert Sweeney on LinkedIn, 2019-05-03