Tech
-
Google Drive API 사용하기Tech 2020. 8. 16. 22:22
Google Drive API 오늘은 Google Drive API를 사용해서 다수의 파일을 업로드하려 한다. 그냥 구글 드라이브 페이지에서 Drag&Drop하면 쉽게 되는데 왜 굳이 API를 사용하냐고? 파일 건 수가 18만 건 정도되니까 웹브라우저가 버티질 못 하고 오류가 나는 상황이 발생했기 때문이다. 사실, 크롤링한 이미지를 OCR을 통해 텍스트를 추출하는 과정을 진행하고 있었는데, 생각지도 못 한 난관을 만나게 되었다. 바로, 맥북 프로에서는 'GPU 연산을 가능'하게 해 주는 CUDA가 지원되지 않다는 것이다. 파일을 로컬에 보관하고, 바로 구현된 OCR 모델로 처리하려 했는데. 불가능하게 되었다. 그래서 Google에서 제공해 주는, Colab으로 넘어가서 코드를 실행하고자 하였고. 이를 위..
-
Headless Browser, PuppeteerTech/Development 2020. 7. 22. 23:24
Puppeteer! 그림과 이름만 봐도 대충 무엇인지 알 수 있을 것 같다. Puppeteer은 Chrome/Chromium 브라우저를 제어하도록 도와주는 Node.js 라이브러리이다. 구글에서 제공하는 공식 문서를 보면, 다음과 같은 목적으로 사용될 수 있음을 보여준다. 1. 웹 페이지 화면을 스크린샷이나 PDF로 생성할 수 있다. 2. SPA(Single Page Application & Client-Side Redering) / SSR(Server-Sied Rendering) 페이지를 크롤링할 수 있다. 3. 폼 입력, UI 테스트, 키보드 입력 등과 같은 기능을 자동화시킬 수 있다. 4. 더 나아가서, 웹 페이지(서비스)를 자동으로 테스트하는 도구를 만들 수 있다. 5. 웹 페이지의 Timelin..
-
Node with Python(python-shell)Tech/Development 2020. 7. 22. 19:25
Node에서 Python을 사용해야할 상황이 생겨서 이것저것 서칭해봤는데, 꽤 괜찮은 라이브러리를 찾았다. python-shell이라는 라이브러리인데, 비교적 간편하고 쉽게 사용할 수 있었다. 나중에 또 필요한 일이 있을까봐. 사용법을 정리해두고자 한다. 0. 라이브러리 설치하기 # python-shell 설치 npm install python-shell 1. Python code 간단하게 실행하기(runString) # runString(code, options, callback) const { PythonShell } = require('python-shell') PythonShell.runString('x=1+1; print(x)', null, (err, msg) => { console.log('e..
-
AWS SAA C01 시험 후기Tech/Devops 2020. 6. 16. 00:53
시험후기 사실 AWS SAA를 준비하면서 클라우드에 대해서 기본기를 튼튼히하고, 자격증도 따야겠다 다짐했으나 그러질 못 했다. 처음에 호기롭게 AWS 스토리지에 대한 글을 쓰면서 모든 AWS 서비스들도 정리하고, 기타 네트워크 지식도 열심히 정리해야지! 했으나. 방대한 양에 정말 놀랐다. AWS 서비스가 이렇게 많은 줄도 몰랐다. 그럴만도 한게, 매번 개발을 할 때마다 정해진 패턴대로만 행했기 때문인데. EC2 띄우고, Route53으로 도메인 설정, ACM과 로드밸런서 사용해서 HTTPS 적용, S3 사용해서 정적(이미지 등) 파일 서빙하는 것과 같이 정해진 AWS만 사용했고, 패턴도 일정했었다. 그래서 최적의 기간 안에 자격증을 취득하지 못할 것 같다는 생각에. 바로 마음을 고쳐먹었다. 우선, 기존 ..
-
AWS 스토리지 서비스 파고 들기Tech/Devops 2020. 4. 26. 01:20
1. 스토리지(Storage) 우선, 스토리지(Storage)란, 말 그대로 데이터를 저장하는 저장장소를 의미한다. 원래는 데이터 저장장치 그 자체를 스토리지 또는 스토리지 디바이스라고 불렀으나, 현재는 뜻이 확대되어 전문화, 네트워킹화, 대용량화된 저장기술을 총칭하게 되었다. 예를 들어, 조직 내 스토리지 인프라 구축을 위한 저장, 백업, 재난복구, 보안 등을 모두 고려하는 전문화된 대용량 저장기술을 총칭한다. 2. 스토리지 아키텍처(Storage Architecture) 스토리지의 종류는 다음과 같다. 우선, 서버 내 기본으로 내장 설치된 구조인 '로컬 스토리지', 그리고 서버 외부의 저장된 구조인 '외부 스토리지', 마지막으로 외부 스토리지와 같이 네트워크 기반의 스토리지를 가상화한 '클라우드 스토..
-
IP AddressTech/Network 2020. 4. 21. 21:23
What is IP/IP Address IP는 Internet Protocol의 약자로, 기기 간 정보를 주고 받기 위한 네트워크 통신을 할 때 사용하는 프로토콜이다. 또한, IP Address는 그러한 통신을 주고 받기 위해 필요한 기기들의 주소를 의미한다. 예를 들어, 특정 사이트에 접근할 때 HTML/CSS/JS를 비롯한 여러 파일들을 받아와야 하는데. 요청은 어느 주소로 보낼 것이며, 응답은 어느 주소로 받아야할지 알아야하는 것이 아닌가. 따라서 IP Address는 배달지 주소의 역할을 한다고 볼 수 있다. 또한, IP Address는 IPv4와 IPv6로 나누어지는데, IPv4는 3자리 숫자가 4마디로 표기되는 방식으로 총 2^32개 만큼의 IP 주소를 갖게 된다. 2^32개만 해도 충분히 많..
-
카카오톡 챗봇 만들기 - 1Tech/Development 2020. 4. 11. 14:24
카카오 i 오픈빌더를 통해 카카오톡 챗봇을 만들어 보려고 한다. 카카오 i 오픈빌더는, 카카오톡 채널 챗봇을 설계할 수 있는 카카오 AI 설계 플랫폼이다. 공식 문서에서 굉장히 잘 설명하고 있기 때문에 기본적인 부분들은 건너뛰고 스킬서버와 관련해 다루어 보고자 한다. 스킬서버 카카오에서는 챗봇을 아름답게 꾸며줄 수 있는 다양한 기능들이 존재한다. 예를 들어, 시나리오 설정 기능, 중요한 정보를 추출하기 위한 엔티티 태깅 기능, 머신러닝을 통한 학습 기능 등 많은 도구들을 제공해 준다. 그 중에서 스킬 기능은 대화의 흐름을 조금 더 유연하게 만들어 주는 도구이다. 예를 들어, 환율을 보여주는 응답일 경우, 모든 환율에 대한 데이터를 시시각각 저장하고 그에 대한 반응들을 만들어낼 수 없지 않은가. 그래서 모..