Sangjun 개발 블로그
    • 게시글
    • db
    • devops
      • docker
    • framework
      • django
    • os
      • linux
      • windows
    • programming
      • golang
      • python
    • algorithm
      • leetcode
    Hero Image
    Django socketio 라이브러리 활용한 통신

    1. 라이브러리 설치 1.1. server 라이브러리 설치 pip install python-socketio 1.2. client 라이브러리 설치 pip install "python-socketio[client]" 2. Server django settings projectname/wsgi.py ... import socketio from appname.views import sio # sio code path ... # application = get_wsgi_application() sio.register_namespace(TransferNamespace('/transfer')) django_app = get_wsgi_application() application = socketio.WSGIApp(sio, django_app) appname/views.py import socketio sio = socketio.Server(async_mode='threading', async_handlers=True, ping_interval=60) class TransferNamespace(socketio.Namespace): def on_connect(self, sid: str, environ: dict): ''' 클라이언트 접속 ''' print(f"connect address = {environ['REMOTE_ADDR']}, sid = {sid}") def on_disconnect(self, sid: str): ''' 클라이언트 접속 종료 ''' print(f"disconnect Client disconnected = {sid}") def send_event(self, sid: str): ''' 특정 sid 클라이언트에 이벤트 전송 ''' print("send_event") self.

    June 11, 2021 Read
    Hero Image
    클래스 인스턴스 변수(self)와 함수 로컬변수 처리속도차이

    설치버전 : python 3.8.8 1. 클래스 인스턴스 변수(self)와 함수 매개변수 처리속도 차이 1.1. 예제 코드 import timeit class CheckTime: def __init__(self): self.a = 0 self.b = 0 self.c = 0 def process_self(self): self.a + self.b + self.c def process_argument(self, a, b, c): a + b + c def get_time(self): self.a = 1 self.b = 2 self.c = 3 def test1(): self.process_self() process_self_time = timeit.Timer(stmt=test1).repeat(number=1000000) a = self.a b = self.

    May 24, 2021 Read
    Hero Image
    python opencv 사용법

    설치버전 : opencv-python 4.5.1.48 docs url 라이브러리 설치 pip install opencv-python 라이브러리 import import cv2 이미지 파일 읽기 cv2.imread(filename[, flags]) -> retval img = cv2.imread(image_full_path) 매개변수 이름 설명 filename 로드할 파일 이름 flags cv2 값을 사용할 수 있는 플래그 이미지 파일 저장 cv2.imwrite(filename, img[, params]) -> retval 이미지 형식은 파일 이름 확장자에 따라 선택됨 cv2.imwrite(image_full_path, img) 메모리 버퍼로 인코딩 이미지를 ext형식으로 변환하여 메모리 버퍼로 인코딩 cv2.imencode(ext, img[, params]) -> refval, buf retval, buffer = cv2.

    May 21, 2021 Read
    Hero Image
    python numpy 사용법

    선형대수 기반의 python 라이브러리 루프없이 배열 연산이 가능하여 연산속도가 빠름 설치버전 : numpy 1.20.2 라이브러리 import import numpy as np 1. 생성 arange np.arange([start,] stop, [step,] dtype) 지정한 숫자 범위의 array 생성함수 np.arange(10) # [0 1 2 3 4 5 6 7 8 9] np.arange(0, 5, 0.5) # [0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5] zeros np.zeros(shape, dtype) 0으로 선언된 array 생성 np.zeros((2,4)) # [[0. 0. 0.

    May 21, 2021 Read
    Hero Image
    Windows10 WSL2(Windows Subsystem for Linux) 사용법

    1. WSL(Windows Subsystem for Linux)2 리눅스용 윈도우 하위 시스템(Windows Subsystem for Linux)은 Windows 10에서 네이티브로 리눅스 실행 파일을 실행하기 위한 호환성 계층 프로그램이다. 2. 사전 설정 microsoft store에서 Windows Terminal 설치한다. Windows Terminal 프로그램을 관리자 권한으로 실행한다. 2.1. WSL2 활성화를 위한 DISM 명령어 실행후 재부팅 > dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart > dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 2.2. Windows Store 에서 설치하는 모든 Linux 배포판 포맷을 WSL 2로 설정 > wsl --set-default-version 2 3.

    May 7, 2021 Read
    Hero Image
    mssql 2017 도커 이미지 설치 및 컨테이너 실행방법

    1. mssql docker 도커 설치 방법 1.1. 도커 허브에서 이미지 검색 docker search <검색할 이미지 이름> 1.2. pull - 도커 이미지 다운받기 docker pull mcr.microsoft.com/mssql/server:2017-latest 1.3. docs 예시 docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name mssql2017 -h mssql2017 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2017-latest Docker on Windows 의 호스트 볼륨 매핑은 현재 /var/opt/mssql 디렉토리가 아닌 /var/opt/mssql/data 등의 하위 디렉터리를 호스트 머신에 매핑할 수 있다.

    May 6, 2021 Read
    Hero Image
    PostgreDB, pgadmin4 도커 설치 방법

    1. Postgres Docker 이미지 설치 Postgres Version : 13.2 1.1. 다운로드 및 설정 아래 명령어를 실행한다. $ docker run -p 15432:5432 --name postgres -e POSTGRES_PASSWORD=password1! -d postgres -d : 백그라운드에서 컨테이너 실행 -p 15432:5432 : 호스트와 컨테이너 간의 배포(publish)포트/바인드(bind)포트 호스트 15432번 포트를 컨테이너 5432번 포트에 매핑 --name : 생성할 컨테이너 이름 -e : 도커 컨테이너의 환경변수 설정 POSTGRES_PASSWORD : PostgresDB 관리자 비밀번호 실행 결과 Unable to find image 'postgres:latest' locally latest: Pulling from library/postgres 75646c2fb410: Pull complete 2355d0ffeb55: Pull complete 7e98825f6d67: Pull complete cfd3ce06be45: Pull complete c7b7bb83e8f7: Pull complete c67869305108: Pull complete 19614baa7ddd: Pull complete af508737d813: Pull complete b60c3437a436: Pull complete 424da1ff3ea9: Pull complete 076f107f1898: Pull complete 7b398ea488bf: Pull complete e0fcc114ae29: Pull complete 67d927dd9b8a: Pull complete Digest: sha256:b25265ac1dfa19224fd47dd9f5744aa177248fd64e89f407446559cc7dbc7a23 Status: Downloaded newer image for postgres:latest 47d090f5c4a593b833c237cef181f960571e71004ace5ebc804907f4feae1433 1.

    April 29, 2021 Read
    Hero Image
    Django json 데이터 반환하기

    api 서버 등 json 데이터로 통신하는 서버에서 사용할 수 있는 예제이다. 1. 사전 설정 프로젝트 생성 후 user 앱의 User 모델을 생성한다. 임의의 user 데이터를 2개 등록한다. models.py class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=20, unique=True) 2. 사용 예시 2.1. QuerySet(Model Instance)을 json형태로 변환할 경우 .all() serializers.serialize('json', value_name) 함수를 사용하여 json 형태로 변환시킨다. views.py from django.core import serializers res_data = User.objects.all() # <QuerySet [<User: User object (1)>, <User: User object (2)>]> res_data = serializers.

    April 20, 2021 Read
    Hero Image
    도커의 개요 및 windows10 버전 설치 방법

    1. 개요 도커(Docker)는 리눅스 컨테이너를 기반으로 특정 서비스를 패키징하고 배포할 수 있는 오픈소스 프로그램이다. 컨테이너 : 리눅스 커널 네임 스페이스, cgroup의 기능을 활용하여 호스트 시스템의 모든 프로세스와 격리된 시스템의 프로세스 2. 도커를 사용하는 이유 도커는 소프트웨어 버전관리, 애플리케이션 배포, 개발환경 구성등 사전에 생성하고 도커 이미지를 배포하고 배포한 이미지를 컨테이너에 담아서 사용된다. 도커 이미지 : 컨테이너의 파일시스템과 애플리케이션 실행에 필요한 모든 항목(모든 종속성, 구성, 스크립트, 바이너리, 환경변수, 실행하는 기본 명령)이 포함된다.

    April 8, 2021 Read
    Hero Image
    Django model 참조 객체 호출하기

    1. 정참조와 역참조 객체 호출 데이터베이스의 임의의 테이블로 User, Occupation 생성한다. 두 테이블은 User 모델의 객체가 Occupation 모델의 객체를 N:1 참조관계를 가진다. models.py 설정 class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() job = models.ForeignKey('Occupation', on_delete=models.CASCADE) class Occupation(models.Model): name = models.CharField(max_length=50) 2. 정참조 객체 호출하기 user1 객체가 Occupation 모델을 참조키(ForeignKey)로 정참조하여, Occupation 모델의 속성을 사용할 수 있다. user1 = User.objects.get(id = 1) user1.job.name >>> 'Developer' 3. 역참조 객체 호출하기 역참조 관계에서는 정참조와 같이 바로 참조한 모델의 속성을 사용할 수 없다.

    April 7, 2021 Read
    Hero Image
    Django 동적 모델 및 테이블 생성

    1. Django 동적 모델 및 테이블 생성 django는 makemigrations, migrate 명령어를 통하여 테이블 생성한다. 이때 웹서버는 실행중일 경우 중단하고 다시 재시작한다. 운영환경에 따라서 웹서버가 중단되지 않고 운영이 필요한경우에는 위의 방법이 아닌 동적 모델 및 테이블 생성방법이 필요하다. 2. 예시코드 2.1. 상속받을 추상모델 작성 models.py from django.db import models class Board(models.Model): title = models.CharField(max_length=100) contents = models.CharField(max_length=500) class Meta: abstract = True 2.2. 동적 모델 생성 및 삭제 from .models import Board TABLE_MAP = {} def create_model(name: str): ''' 동적 모델 생성 ''' baseclass = Board tablename = board2 # attrs 를 dict 형태로 지정한다.

    April 7, 2021 Read
    Hero Image
    Django QuerySet 객체 접근방식 및 조회

    1. QuerySet 이란? Database에서 응답받은 결과 목록(list)으로 Python 코드가 SQL 구문으로 맵핑(mapping)되고 DB로 전달하여 받은 응답값을 QuerySet 자료형으로 반환한다. 2. 사전설정 django version : 3.2 models.py from django.db import models class User(): name = models.CharField(max_length=20) age = models.models.PositiveSmallIntegerField() >>> python manage.py shell #shell 실행 >>> from user.models import User #모델클래스 임포트 >>> user1 = User(name='Foo', age=15) # 데이터추가 >>> user1.save() # 데이터 저장 >>> user2 = User(name='Bar', age=20) # 데이터추가 >>> user2.

    April 6, 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