전체 글278 [Node] node로 크롤러 개발 이슈들 정리 개발할 것특정 웹사이트 크롤링 개발 언어python의 셀레니움도 생각헀지만, 너무 흔하고 이미 해본 것이라 신선함도 느껴볼 겸 puppeteer를 써보기로 했다.puppeteer는 구글이 개발했다고 한다. 바로 신뢰도 200%. 타입스크립트로 진행했다. 무한스크롤 관련 이슈를 제외하면 개발 자체 난이도는 높지 않았다. 프로세스가 멈추었는지 여부를 보여주기 위해 프로그레스바를 이용해 진행 상태의 시각적 효과를 추가했다. 빌드는 webpack을 이용했다. 전달 방식에 대한 고민첫 번째 생각분명 상대방 컴퓨터의 node 설치관련 문제가 있을 거라 생각했다.그래서 pkg라는 라이브러리로 바이너리 실행파일을 만들어 전달하려고 했지만, puppeteer가 문제였다. 직접 브라우저를 조작하여 크롤링하기 때문에 바.. 2023. 5. 15. 마이크로서비스 핵심 개념 6가지 독립적 배포하나의 마이크로 서비스만 단독으로 배포 가능해야함.도메인을 중심의 모델링한 마이크로서비스, 한 기능(즉, 결합도를 최대한 낮춰야함)고유한 상태를 가짐마이크로서비스 간 DB를 고유하지 않음. 데이터를 공유하지 않음크기가 적당해야함마이크로서비스는 조직이 다룰 수 있는 개수 이상을 넘어가지 말아야함(복잡도를 키우지 말아야한다는 뜻인듯)마이크로서비스 간의 경계를 명확하게 정의유연함판을 키우지 말고 점진적으로 마이크로서비스로 넘어가는 것을 권장마이크로서비스는 옵션이기 때문에 맹목적으로 매몰될 필요는 없다라고 해석됨전 회사에서도 MSA로 가기로 결정 후 장바구니 관련 서비스를 따로 마이크로서비스로 뺐었음아키텍쳐와 조직을 맞추기조직 구조를 아키텍쳐에 맞게, 도메인에 맞게 편성프론트팀, 백엔드팀, 데브옵스팀.. 2023. 5. 13. 쿼리로 랜덤한 문자열 생성 - MySQL UUID() - MSSQL NEWID() 이렇게 생성된 GUID는 128비트의 크기를 가지고 있기에 가능한 GUID의 조합은 2^128개이다. 2023. 4. 19. 암호학에서의 솔트(salt) 암호학에서 솔트(salt)는 데이터, 비밀번호, 통과암호를 해시 처리하는 단방향 함수의 추가 입력으로 사용되는 랜덤 데이터이다. 솔트는 스토리지에서 비밀번호를 보호하기 위해 사용된다. 사용자의 비밀번호를 암호화처리할 때, 단순히 암호화하는 것이 아니라 사용자의 비밀번호에 랜덤한 솔트값(소금같은 존재라 salt인듯...)을 더해서 해시 처리한다. 예를 들면, 비밀번호가 1234라고 하고 솔트값이 abcd라고 하면1234abcd로 해시 처리하는 것. 그래서 솔트가 무슨 의미가 있는가?솔트값 없이 비밀번호를 암호화한다면 같은 패턴으로 암호화되기 때문에 동일한 비밀번호는 동일한 해시값을 가지게 된다. 솔트값을 추가함으로써 동일한 비밀번호를 가진 두 사용자의 해시값이 다르게 저장되므로, 해커가 해시값을 추측.. 2023. 4. 12. [k8s] 마스터, 워커 쿠버네티스는 일반적인 클러스터 시스템과 비슷하게 크게 마스터와 워커 노드로 구분된다. 마스터kube-apiserver: 마스터로 전달되는 모든 요청을 받아들이는 REST API 서버etcd: 클러스터내 모든 메타 정보를 저장하는 저장소쿠버네티스 클러스터에 필요한 모든 데이터를 저장하는 분산형 key-value DB 역할 수행. 고가용성을 위해 etcd 클러스터를 구축하여 안정성을 높힐 수 있다kube-scheduler: 사용자의 요청에 따라 적절하게 컨테이너를 워커 노드에 배치하는 스케줄러kube-controller-manager: 현재 상태와 바라는 상태를 지속적으로 확인하며 특정 이벤트에 따라 특정 동작을 수행하는 컨트롤러지속적으로 control loops을 돌며 현재 상태(current state.. 2023. 4. 12. 이전 1 ··· 36 37 38 39 40 41 42 ··· 56 다음