0. 개요파이썬 기반인 Airflow 로 파이프라인 개발 진행 시,plugins 디렉토리 내에 Operator 나 Hook 등, 모듈화하여 사용하는 소스를 개발하는 경우가 발생한다.이때 IDE 의 경로 인식에서 불편한 점에 대한 해결책에 대한 기록이다. 1. 문제점python 은 sys.path 를 출력하면 아래의 이미지처럼 우리가 사용하는 라이브러리에 대한 경로를 넣어두고 임포트 시 해당 경로부터 인식된 라이브러리를 임포트 하게 된다. Airflow 개발 시 DAG 에서 [plugins] 디렉토리에 개발된 내용을 임포트해서 사용하게 될텐데...Airflow 내에서는 plugins 디렉토리 이후 경로로 인식하고 IDE 에서는 root 경로부터 인식을 시작하기 때문에 개발할때 여간 불편한게 아니다. ..
1. JWT JWT는 상호 간에 정보를 JSON 개체로 안전하게 전송하기 위한 방법을 개방형 표준(RFC 7519) 입니다. 정보는 디지털 서명을 통해 신뢰성을 가지도록 하며 HMAC 알고리즘을 이용한 보안 방식과 RSA 또는 ECDSA 암호화 방식을 사용한 public/private key 페어 방식을 사용합니다. JWT는 대표적으로 Authrization, Information Exchange 에 사용되는데 header와 payload를 사용하여 서명을 계산하므로 컨텐츠가 변조되지 않았는지 확인이 가능합니다. 2. 구조 JWT는 Header, Payload, Signature 로 구성되어있고 지정한 알고리즘으로 인코딩 된 형태를 하고 있습니다. Header 헤더에는 일반적으로 토큰 유형(typ)과 사..
1. 개요 스케줄러 사용 시에 보통 많이 사용되는 크론(Cron) 표기법에 대한 설명 글입니다. (매번 찾기 귀찮아서...) 2. Cron? Cron은 소프트웨어 유틸리티로 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러입니다. 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron이 사용됩니다. 3. 표기법 표기법은 분, 시, 일, 월, 요일 처럼 5가지로 사용되기도 하지만 초(sec)와 연(year) 도 포함하여 사용되는 경우도 있습니다. 각 스케줄러 사용법에 따라 다를 수 있으니 확인해보고 사용하시길 바랍니다. (각 필드의 분기는 ' ' 공백으로!) a. 필드 각 필드와 허용 범위 및 사용되는 특수 문자입니다. 필드 명 범위 허용 특수문자 초 (Second) 0 ..
1. 개요 팀플 시작하면서 깃헙 작업 내용을 알림으로 받을 겸 Slack - Github 연결 작업을 진행하였다. 내가 Commit 내용으로 적은 내용을 Merge(또는 Pull Request) 시, 슬랙에서 자동으로 메시지가 작성되도록 하는 작업이다. 2. Slack - GitHub 연동 어떤 사이트에서 작업해야는지 헛갈릴 수 있으니 각 주제 옆에 괄호로 작업되는 위치를 달아두었으니 참고하자. a. GitHub App 설치 (Slack) 먼저 Slack에 Git Repository를 연결하기 위한 GitHub App을 설치해줘야한다. 설치가 되어있지 않다면 Slack 좌측 Apps 탭에서 Add apps 버튼을 클릭하고 GitHub를 검색해서 설치하면 된다. b. Invite GitHub (Slack)..
1. 개요 기존에는 SDK 설치할때 IDE 또는 프레임워크 Init 프로젝트 만들때 설치하거나 직접 사이트를 들어가서 설치하는 경우가 많았다. 이런 귀찮은 부분을 해결해주는 툴을 토비님의 스프링부트 강의를 듣는 중에 SDK MAN 소개가 나와서 포스팅 해보려한다. 2. SDK MAN SDK MAN의 공식 홈페이지에 들어가면 Unix 시스템에서 여러 소프트웨어 개발 키트를 손쉽게 관리할 수 있는 툴이라고 소개되어 있다. 버전 관리와 변경에 용이하고 apt, pip, RVM, rbenv 와 Git 과 같은 CLI(Command Line Interface)에서 영감을 받아 개발되었다고 한다. 특징은 아래 이미지와 같다. 3. Install 설치는 MacOS 기준으로 작성하였으며, Windows 환경에서는 별도..
1. 개요 동적 사이트를 크롤링 할때 많이 사용되는 라이브러리 중 하나가 셀레니움이다. 셀레니움은 브라우저를 직접 컨트롤하여 얻어지는 내용을 파싱하여 사용하는 형태이기 때문에 브라우저를 컨트롤할 드라이버가 필수이다. 하지만 기존 셀레니움을 이용하여 크롤링을 진행하는 분들은 알겠지만 웹 브라우저의 버전과 드라이버의 버전이 맞지 않으면 실행이 되지 않는 문제를 쉽게 볼 수 있다. 이 때문에 브라우저의 자동 업데이트를 못하게 막는 등의 작업이 들어갔을 것이다. (이 작업도 완벽하진 않아서 자동 업데이트가 되버리는 경우가 종종 발생한다.) 이런 문제를 해결하고자 나온 것이 webdriver-manager 이다. webdriver-manager Library provides the way to automatica..
이전 팀프로젝트 중 WebRTC 기능을 이용한 다대다 음성채팅 기능을 구현하였는데 Notion에 휘갈기듯 정리한거 빼고 남아있는게 없어서 이 참에 블로그에 정리하고자 한다. WebRTC? WebRTC(Web Real-Time Conmunication)는 웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API이다. W3C에서 제시된 초안이며, 음성 통화, 영상 통화, P2P 파일 공유 등으로 활용될 수 있다. WebRTC를 뒷바침하는 기술은 개방형 웹 표준으로 구현되며, 모든 주요 브라우저에서 일반 자바스크립트 API로 제공하며 Android 및 IOS 애플리케이션과 같은 네이티브 클라이언트의 경우 동일한 기능을 제공하는 라이브러리를 사용할 수 있다. WebRTC는 오픈소스이며 현재 ..
이번에 파이썬 크롤러를 만들면서 크롤러 트리거로 HTTP 를 이용할까 하여, 파이썬 웹 프레임워크인 플라스크(Flask)에 대해 알아보았다. 1. Flask? 플라스크(Flask)는 파이썬으로 작성된 마이크로 웹 프레임워크의 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. 플라스크 프레임워크를 사용하는 애플리케이션은 핀터레스트, 링크드인 등이 있다고 한다. 2. Flask VS Django VS FastAPI? 전 세계적으로 어느걸 더 많이 검색할까 궁금해서 현재 기준으로 구글 트랜드에 세가지를 비교해보았는데, Django가 가장 높지만 바로 아래 Flask 검색 량이 많았다. 사실 상 요즘 개발자 채용시장에서도 파이썬 기반인 경우 Django 가 더 많이 보이긴 하였다. 추세는..
Google 간편로그인 구현 시, GCP (Google Cloud Platform) 에 OAuth 관련 등록이 필요합니다. 그 과정에 대한 포스팅을 진행하고자 합니다. 0. 관련 포스팅 * OAuth 2.0 개념 정리 * [Spring] 간편로그인 구현하기 (feat. 구글, 카카오) 1. GCP 콘솔 접속 a. GCP 사이트 접속 우선 검색창에 GCP 검색을 한 후, Google Cloud Platform 홈페이지에 접속해 줍니다. b. 콘솔 접근 로그인 후, 왼쪽 상단에 콘솔 버튼을 눌러줍니다. (Google관련 API, 클라우드 서비스, 보안 등의 관련 기능은 콘솔 창에서 사용하게 됩니다.) 2. 프로젝트 OAuth 설정 a. 프로젝트 설정 왼쪽 상단에 현재 선택된 프로젝트가 표기 되어 있습니다. ..
1. OAuth? OAuth 는 Open Authorization의 줄임말로, 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 쉽게 말하자면 카카오나, 구글, 애플 등에서 유저 인증과 유저 정보를 제공 받는 인터넷 프로토콜의 종류라 생각하면 된다. 2. OAuth 배경 2006년 트위터, Ma.gnolia(소셜 북마크 사이트)는 OpenID를 활용함에 있어 서비스에 접속하는 인증방식을 필요로 하였는데 블레인 쿡, 크리스 메시나, 래리 하프, 데이비드 리코던은 OpenID를 활용해 트위터나 Ma.gnolia의 API로 인증을 위임하는 방법을 논의하였고 ..