Sangjun 개발 블로그
    • 게시글
    • db
    • devops
      • docker
    • framework
      • django
    • os
      • linux
      • windows
    • programming
      • golang
      • python
    • algorithm
      • leetcode
    Hero Image
    golang cron 스케줄링 라이브러리 사용법

    go언어에서 cron 처럼 동작하는 스케줄링 외부 라이브러리 사용법 cron 함수는 지정한 주기마다 동작시키는 기능으로 별도의 비동기함수로 실행된다. main 함수가 종료되면 go 프로세스가 종료되어 비동기 함수도 종료된다. cron 기능을 사용할려면 main 함수가 종료되지 않도록 적절한 조치를 해야한다. 1. 라이브러리 설치 go version : 1.17 > go get github.com/robfig/cron/v3@v3.0.0 2. 예제코드 select : 복수 채널이 대기하면서 준비된 (데이터를 전송받은) 채널을 실행하는 기능이다. case 채널들이 준비되지 않으면 계속 대기하게 되고, 가장 먼저 도착한 채널의 case를 실행한다.

    December 21, 2021 Read
    Hero Image
    golang fcm(firebase cloud messaging) push 메세지 사용법

    Firebase Cloud Messaging(FCM)은 firebase에서 무료로 메시지 전송할 수 있는 교차 플랫폼 메시징 솔루션이다. 최대 4,000바이트의 페이로드를 클라이언트 앱에 전송할 수 있다. 아래의 예제는 Go언어 기반의 백엔드 서버 예시이며 fcm token이 이미 발급받았다는 가정하에 진행된다. 1. 라이브러리 설치 > go get firebase.google.com/go/v4 > go get google.golang.org/api 2. Firebase APP 초기화 사용자 인증 정보 제공의 안내에 따라 서비스 계정의 비공개 키 파일을 다운받는다. 해당 파일에는 다음과 같은 정보가 있다. 파일명은 serviceAccountKey.json라고 가정한다.

    December 18, 2021 Read
    Hero Image
    golang postgreDB CURD

    golang에서 postgre데이터 베이스의 SQL 생성, 수정, 읽기, 삭제 기능의 간단한 사용법이다. postgreDB가 이미 설치되어 있다는 전제하에 진행한다. 로컬 설정 : PostgreDB 설치 도커 이미지 : PostgreDB, pgadmin4 도커 설치 방법 1. 라이브러리 설치 go version : 1.17 > go get github.com/lib/pq 2. 테이블 구조 postgreDB에 아래와 같은 구조의 User 테이블이 선언된 상태로 진행한다. CREATE TABLE user ( id SERIAL PRIMARY KEY, name VARCHAR(20), age INT ); 3. DB 설정 초기화 package main import ( "database/sql" "fmt" _ "github.

    December 16, 2021 Read
    Hero Image
    Django crontab 라이브러리 사용법

    django-crontab 라이브러리는 OS의 cron/crontab 서비스를 사용하는것으로 해당 서비스 설치가 되지 않았다면 별도로 설치를 해야함. windows 환경에서는 docker를 설치하여 진행 1. 라이브러리 설치 $ pip install django-crontab 2. django 설정 임의의 app 디렉터리내 cron.py 생성 아래의 함수를 작성한다. 반복 실행할 임의의 함수 선언 def hello_every_minute(): print("hello world") settings.py django_crontab 앱 추가 INSTALLED_APPS = [ 'django_crontab', ... ] CRONJOBS 변수 선언 첫번째 매개변수 : 실행주기 설정으로 기존 cron 사용법(분,시,일,월,요일)과 동일하다. * * * * * : 매분마다 실행 */10 * * * * : 10분마다 실행 0 * * * * : 매시간마다 실행 0 0 * * * : 자정마다 실행 두번째 매개변수 : 반복 실행할 함수 세번째 매개변수 : cron 실행로그 저장 경로 (선택사항) .

    December 9, 2021 Read
    Hero Image
    python json 파일 읽기/쓰기 성능

    python 언어에서 대용량 json 읽기/쓰기 성능은 사용방법과 라이브러리에 따라서 성능 차이가 있다. 테스트 기준은 동일한 json 파일을 100번씩 반복 실행하였다. json 라이브러리의 파일 읽기/쓰기 모두 byte 모드가 상대적으로 빠르다. 라이브러리 버전 python : 3.8.10 ujson : 5.1.0 orjson : 3.6.5 1. json ========================= json_r = 0.045 sec json_w_dump = 0.186 sec json_w_dumps = 0.065 sec ========================= json_rb = 0.034 sec json_wb_dumps = 0.055 sec 1.1. read with open('github.json', "r") as json_file: data = json.

    December 6, 2021 Read
    Hero Image
    Django 소셜로그인(oauth) google 연동

    django restframework 기반의 구글(google) 인증 로그인 백엔드서버로 별도의 auth관련 라이브러리는 설치하지 않고 구현한다. Google Cloud Platform에서 로그인에 사용하는 환경변수를 설정하고 진행한다. 1. 로그인 환경변수 설정 1.1. 프로젝트 생성 Google Cloud Platform에서 [프로젝트 만들기] 메뉴로 간다. 프로젝트 이름을 지정하고 [만들기] 클릭한다. 1.2. 사용자 인증 정보 설정 [사용자 인증 정보] → [사용자 인증 정보 만들기] → [OAuth 클라이언트 ID] 선택 애플리케이션 유형: 웹 애플리케이션 선택 후 앱 이름 지정 승인된 자바스크립트 원본: 로그인 테스트 서버 주소입력

    November 22, 2021 Read
    Hero Image
    Django 소셜로그인(oauth) naver 연동

    django restframework 기반의 네이버(naver) 인증 로그인 백엔드서버로 별도의 auth관련 라이브러리는 설치하지 않고 구현한다. 네이버 개발자 사이트에서 로그인에 사용하는 환경변수를 설정하고 진행한다. 1. 로그인 환경변수 설정 1.1. 애플리케이션 생성 및 웹 로그인 설정 네이버 개발자 사이트 가입하고 아래의 과정을 진행한다. [Application] → [애플리케이션 등록] → 애플리케이션 이름 지정 → [사용 API] 네이버 로그인 선택한다. 사용자 제공 정보 선택에서 [이메일 주소]를 필수로 선택한다.(회원가입 확인 용도로 사용예정) 서비스 환경의 PC 웹을 선택한다. 서비스 URL 과 로그인 Callback URL을 작성하고 [등록하기]를 클릭한다.

    November 12, 2021 Read
    Hero Image
    Django 소셜로그인(oauth) kakao 연동

    django restframework 기반의 카카오(kakao) 인증 로그인 백엔드서버로 별도의 auth관련 라이브러리는 설치하지 않고 구현한다. 카카오 개발자 사이트에서 로그인에 사용하는 환경변수를 설정하고 진행한다. 1. 로그인 환경변수 설정 1.1. 애플리케이션 생성 카카오 개발자 사이트에 가입후 [내 애플리케이션] → [애플리케이션 추가하기] 클릭한다. 앱 아이콘(선택), 앱 이름, 사업자명을 등록한다. 정상적으로 등록되어 애플리케이션 목록에서 확인할 수 있다. 1.2. 웹 로그인 설정 생성한 앱을 클릭하면 키 정보를 확인하고 [플랫폼 설정하기] 클릭한다. 예시코드 kakao login 기능에서는 REST API 키를 사용한다.

    October 11, 2021 Read
    Hero Image
    Django drf_yasg Swagger 기본 사용법

    drf_yasg : REST 프레임워크용 swagger/openAPI 문서 자동화 라이브러리 swagger : 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 테스트를 도와주는 오픈소스 소프트웨어 프레임워크 drf_yasg : 1.20.0 호환버전 Django Rest Framework : 3.10, 3.11, 3.12 Django : 2.2, 3.0, 3.1 Python : 3.6, 3.7, 3.8, 3.9 라이브러리 설치 pip install -U drf-yasg 1. 프로젝트 생성 환경 : windwos 10 # 가상환경 생성 및 접속 > python -m venv venv > venv\Scripts\activate # 라이브러리 설치 (venv)> pip install django (venv)> pip install djangorestframework (venv)> pip install drf-yasg # 프로젝트 및 앱 생성 (venv)> django-admin startproject config .

    September 24, 2021 Read
    Hero Image
    golang learn-go-with-tests GitBook 정리

    사이트 주소 원본 링크 한글 번역 링크 5. struct, method & interface struct 구조체의 변수 첫글자는 대문자여야한다. (외부에서 사용 가능하도록) type Rectangle struct { Width float64 Height float64 } 구조체 필드이름을 선택적으로 지정할 수 있다. {shape: Rectangle{Width: 12, Height: 6}, want: 72.0}, {shape: Circle{Radius: 10}, want: 314.1592653589793}, methods func (receiverName ReceiverType) MethodName(args) r Rectangle 수신자 변수를 유형의 첫 번째 문자로 지정하는 것이 Go의 관례이다. func (r Rectangle) Area() float64 { return 0 } interface Go에서 인터페이스 자료형은 암시적 이다.

    August 2, 2021 Read
    Hero Image
    golang gopacket 라이브러리를 이용한 통신

    gopacket : 이더넷 어댑터 설명(dev.Description)명칭으로 ethernet 통신하는 라이브러리이다. 예제 코드 package main import ( "fmt" "log" "net" "strings" "time" "github.com/google/gopacket" "github.com/google/gopacket/layers" "github.com/google/gopacket/pcap" ) var ( device string = "Realtek PCIe GbE Family Controller" eth_name string currentIP string snapshot_len int32 = 1522 promiscuous bool = false err error timeout time.Duration = 30 * time.Second handle *pcap.Handle buffer gopacket.SerializeBuffer options gopacket.SerializeOptions ) func main() { devices, err := pcap.FindAllDevs() if err !

    July 29, 2021 Read
    Hero Image
    python을 이용한 windows10 시스템 정보 및 사용량 모니터링

    운영체제 : windows 10 설치환경 : python 3.8.8, powershell 7.1 1. WMI WMI(Windows Management Instrumentation)는 Windows 시스템 관리를 위한 다양한 정보를 일관되게 표시하는 기술이다. WMI가 표시하는 정보의 양이 제한되어 있기 때문에 WMI 개체에 액세스하기 위한 PowerShell cmdlet인 Get-CimInstance 개체 가져오기 도구를 사용한다. 해당 WMI 개체 정보 조회 Get-CimInstance -ClassName (WMI 개체이름) | select * WMI 개체이름 정보 Win32_OperatingSystem 운영체제 및 메모리 정보 Win32_Processor CPU 정보 Win32_PhysicalMemory 물리 메모리 정보 Win32_DiskDrive 물리 디스크 정보 Win32_LogicalDisk 논리 디스크 정보 Win32_VideoController 그래픽카드 정보 Get-CimInstance 옵션 매개변수로 Select-Object사용하면 WMI 클래스 인스턴스에서 반환되는 속성을 선택할 수 있다.

    June 16, 2021 Read
    • ««
    • «
    • 1
    • 2
    • 3
    • 4
    • 5
    • »
    • »»
    바로가기
    • About
    • Recent Posts
    Contact me:
    • sangjuncha.dev@gmail.com

    Toha Theme Logo Toha
    Copyright 2020. SangjunCha all rights reserved.
    Powered by Hugo Logo