Sangjun 개발 블로그
    • 게시글
    • db
    • devops
      • docker
    • framework
      • django
    • os
      • linux
      • windows
    • programming
      • golang
      • python
    • algorithm
      • leetcode
    Hero Image
    Docker failed to copy files 에러 해결

    1. 문제 증상 Docker 빌드를 수정하면서 자주 하게 되면 아래와 같은 에러가 발생한다. failed to copy files: copy file range failed: no space left on device 2. 에러 원인 Windows Docker에서 사용하는 WSL2 가상디스크 용량이 자동으로 확장되다가 더 이상 확장할 수 없을때 발생하는 에러이다. 파일경로 C:\Users\[username]\AppData\Local\Docker\wsl\data\ext4.vhdx 하지만 더 이상 사용하지 않은 데이터가 있더라도 가상디스크 용량은 자동으로 축소되지 않는다. 3. 해결 Windows 관리자 권한으로 diskpart도구를 사용하면 해결할 수 있다. > diskpart Microsoft DiskPart 버전 10.

    June 12, 2022 Read
    Hero Image
    [golang] gui 라이브러리 fyne

    1. 개요 Fyne는 사용하기 쉬운 UI 툴킷과 Go로 작성된 앱 API로 데스크탑 및 모바일 환경을 지원합니다. fyne git 1.1. 사전 설정 Fyne 사용시 필요한 개발환경 Go 버전 1.14 이상 C 컴파일러 및 시스템 개발 도구 tdm-gcc download 테스트 시스템 환경 분류 버전 OS Windows 10 go 1.17 fyne 2.1.2 1.2. 라이브러리 설치 > go get fyne.io/fyne/v2 2. 간단한 사용법 2.1. 예제 코드 package main import ( "fyne.io/fyne/v2/app" "fyne.io/fyne/v2/container" "fyne.io/fyne/v2/widget" ) func main() { a := app.

    February 21, 2022 Read
    Hero Image
    [python] 테스트 프레임워크 pytest 사용법

    1. 개요 및 설정 pytest는 에러 없는 좋은 코드를 개발만들기 위한 목적으로 개발된 Python 테스트 프레임워크이다. pytest 특징 다른 testing 라이브러리에 비해 사용법이 간단하다. 테스트를 병렬로 실행할 수 있다. 특정 테스트를 스킵할 수 있다. 다양한 서드 파트 라이브러리들이 있다. 설치 pip install -U pytest 2. 기본 사용법 2.1. 기본 테스트 test_sample.py # 테스트 대상 기능 def inc(x): return x + 1 # 테스트 실행 함수 def test_answer1(): assert inc(3) == 5 def test_answer2(): assert inc(3) == 4 pytest 실행 결과

    February 8, 2022 Read
    Hero Image
    Django 파일 다운로드

    django에서 구현가능한 파일 다운로드 방법 예시 로컬파일 다운로드 - Blob 장점 브라우저에서 파일다운로드 완료시점을 알 수 있음 임시로 생성된 파일을 다운받을 경우 완료시점에 따른 파일 삭제가 가능함 단점 파일 용량만큼 브라우저 메모리 사용 대용량 파일다운로드에 부적합 from django.http import FileResponse from rest_framework.views import APIView import os class DownloadView(APIView): def get(self, request): ... file_handle = open(filepath, 'rb') response = FileResponse(file_handle, content_type='application/zip') response['Content-Length'] = os.path.getsize(filepath) response['Content-Disposition'] = 'attachment; filename="%s"' % os.path.basename(filepath) return response 로컬파일 다운로드 - URL 장점

    February 5, 2022 Read
    Hero Image
    python boto3라이브러리 이용한 AWS s3 사용법

    1. 개요 및 설정 Boto3는 python 애플리케이션과 AWS 서비스를 연결시키기 위해 사용하는 python 라이브러리이다. boto3 라이브러리 설치 pip install boto3 라이브러리 import 및 AWS key 설정 conf.py import os AWS_ACCESS_KEY_ID = "ACCESS_KEY_ID" AWS_SECRET_ACCESS_KEY = "SECRET_ACCESS_KEY" AWS_REGION = "REGION" AWS_BUCKET_NAME = "BUCKET_NAME" 2. boto3 기본 사용법 2.1. client client Low-level 인터페이스 service description에 의해 만들어짐 botocore 수준제어 (botocore는 AWS CLI와 boto3의 기초가 되는 라이브러리) AWS API와 1:1 매핑 메소드가 스네이크 케이스로 정의되어 있음 import boto3 from conf import * client = boto3.

    January 10, 2022 Read
    Hero Image
    Django 소셜로그인(oauth) facebook 연동

    django restframework 기반의 페이스북(facebook) 인증 로그인 백엔드서버로 별도의 auth관련 라이브러리는 설치하지 않고 구현한다. 페이스북 개발자 사이트에서 사용하는 환경변수들이 등록되어있다는 가정하에 진행한다. 페이스북의 경우 다른 소셜로그인과는 용어나 흐름이 달라 추가로 설명하고 시작한다. 1. 페이스북 auth 용어 및 각 페이지 설명 1.1. Graph API 용어 Graph API는 Facebook 플랫폼에서 데이터를 요청 및 응답받는 기본적인 수단이다. 프로그래밍 방식으로 데이터 쿼리, 새 스토리 게시, 광고 관리, 사진 업로드를 비롯한 다양한 작업을 수행할 수 있는 HTTP 기반 API이다.

    January 7, 2022 Read
    Hero Image
    golang Socket, TimeRotateFile logging

    1. 개요 golang 기본 로깅에서는 지원하지 않는 TimeRotate 로깅은 별도의 외부 라이브러리를 사용한다. go get github.com/lestrrat-go/file-rotatelogs 이후에 소켓 통신을 같이 사용한 logging 프로그램까지 구현한다. 2. TimeRotateFile logging 해당 file-rotatelogs 라이브러리는 단일 파일 작성만 지원한다. 멀티 파일 작성은 다른 라이브러리를 사용해야 한다. 2.1. OPTIONS Patterm 로그저장 경로 및 파일이름 패턴지정(required) 예시: rotatelogs.New("log/%Y-%m-%d.log") Clock (default: rotatelogs.Local) 시간대 시스템 로컬 시간으로 설정 예시: rotatelogs.WithClock(rotatelogs.Local) RotationTime (default: 86400 sec) 로테이션 반복 주기 지정한 시간간격으로 파일 로테이션 동일파일 존재시 로그 추가작성으로 동작 time.

    January 7, 2022 Read
    Hero Image
    Django 소셜로그인(oauth) apple 연동

    django restframework 기반의 애플(apple) 인증 로그인 백엔드서버로 별도의 auth관련 라이브러리는 설치하지 않고 구현한다. 애플 개발자 사이트에서 사용하는 환경변수들이 등록되어있다는 가정하에 진행한다. 1. 라이브러리 설치 $ pip install django # restframework $ pip install djangorestframework $ pip install djangorestframework-simplejwt # pyjwt[crypto] $ pip install pyjwt[crypto] 2. Apple 로그인 변수 설정 import os APPLE_CONFIG = { "APPLE_TEAM_ID": TEAM_ID, "APPLE_CLIENT_ID": 모바일 로그인시 Bundle ID or 웹 로그인시 Service ID, "APPLE_REDIRECT_URI": "https://domain/REDIRECT_URI", "APPLE_KEY_ID": KEY_ID, "APPLE_KEY_PATH": ".

    December 28, 2021 Read
    Hero Image
    python 날짜와 시간 계산

    python 날짜 및 시간 계산은 python 표준 라이브러리 datetime, 확장 라이브러리 dateutil 2개의 라이브러리가 있으며 단위의 차이가 있다. datetime : 마이크로초, 밀리초, 초, 분, 시, 일, 주 단위 사용 dateutil : 마이크로초, 초, 분, 시, 일, 주, 월, 년 단위 사용 1. datetime 라이브러리 날짜와 시간을 조작하는 클래스를 제공하는 python 표준 라이브러리 1.1 사용예시 now : 현재 날짜 및 시간 import datetime as dt now = dt.datetime.now() print(f"now = {now}") now = 2021-12-27 11:24:27.

    December 26, 2021 Read
    Hero Image
    golang db nullable 데이터 처리

    golang에서는 타입별로 정해진 zero value가 있는데, DB colume 타입의 zero value와 맞지 않을 때 다음과 에러가 발생한다. panic: sql: Scan error on column index : converting NULL to string is unsupported 각 타입별 zero value 문자열 타입 string : "" 부울린 타입 boolean : false 정수형, Float등 숫자형 타입 : 0 기타 타입 : nil 1. 사전환경 아래의 글을 진행했다는 가정에서 설명한다. golang postgreDB CURD 2. 에러가 발생한 코드 기존에 작성한 코드에서 Update 함수의 name 부분을 nil 값으로 수정하여 실행한다.

    December 23, 2021 Read
    Hero Image
    golang 도커 이미지 만들기

    간단한 golang 웹 프로그램을 Docker 이미지로 실행방법으로 golang 코드보다는 docker 설정 위주로 설명한다. 1. 예제 코드 사용예시는 아래의 주소를 git clone 받는다. > git clone https://github.com/olliefr/docker-gs-ping docker-gs-ping 2. 예제 프로그램 실행 git clone 받은 프로젝트 경로에서 터미널을 실행하고 진행한다. > go run main.go 설정한 웹주소로 접속 요청시 간단한 response 메세지를 응답한다. > curl localhost:8080 Hello, Docker! <3 3. Dockerfile dockerfile 명칭은 Dockerfile.<something> 또는 <something>.Dockerfile 형식으로 생성한다. 도커 명령어 FROM : 기본 이미지 지정 WORKDIR : 작업 디렉터리 지정 COPY : 소스코드 복사 https://docs.

    December 22, 2021 Read
    Hero Image
    도커 경량화 이미지 만들기

    Docker Image 경량화의 장점 저장공간 절약 이미지 빌드 및 배포시간 단축 클라우드 서비스를 이용한 배포의 경우 비용 절약 1. 가벼운 Base image 사용 Base image에는 사용하지 않은 기능들이 포함되어 있기때문에 Debian계열과 Alpine 계열등 다양한 Base image를 사용하여 용량을 줄일 수 있다. 단, 필요한 패키지나 파일이 없어 별도의 설치가 필요할 수 있다. 기본 python 이미지와 slim형 이미지를 각각 빌드한다. image-test1 FROM python:3.8.10 image-test2 FROM python:3.8.10-slim-buster 각각 빌드된 이미지 크기는 다음과 같다.

    December 21, 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