Sangjun 개발 블로그
    • 게시글
    • db
    • devops
      • docker
    • framework
      • django
    • os
      • linux
      • windows
    • programming
      • golang
      • python
    • algorithm
      • leetcode
    Hero Image
    Django models AutoOneToOneField 사용법

    model 상속할때 테이블 컬럼 데이터 자동 생성방법 라이브러리 설치 pip install django-annoying models 설정 django의 models.OneToOneField는 데이터 변경없이(default 설정) 저장하면 해당 데이터(row)가 생성되지않음 models.AutoOneToOneField는 데이터가 default값이어도 데이터(row) 생성됨 from annoying.fields import AutoOneToOneField # User모델 Save에서 제어 class User(models.Model): name = models.CharField(max_length=30) def save(self): is_new = False if self.pk is None: is_new = True if is_new: Profile.objects.create(user=self) class Profile(models.Model): user = AutoOneToOneField(User, primary_key=True) home_page = models.URLField(max_length=255, blank=True) icq = models.IntegerField(blank=True, null=True) 참고사항 문제점 : TypeError: __init__() missing 1 required positional argument: 'on_delete' 에러 발생

    March 31, 2021 Read
    Hero Image
    pyinstaller 라이브러리 사용법 (Pyinstaller Library Guide)

    python 파일을 윈도우에서 python 이나 가상환경 설정없이 실행이 가능한 .exe 으로 변환해주는 라이브러리 1. 설치 설치환경 : Windows 10 python 실행이 가능한 가상환경 터미널에서 아래의 명령어 실행 pip install pyinstaller 2. 간단한 사용예제 pyinstaller --clean --distpath . -F -n [프로그램이름] [변환시킬 파일].py 3. 옵션 옵션 설명 –clean 빌드하기 전에 PyInstaller 캐시를 정리하고 임시파일 제거 -F, –onefile 단일 실행파일로 생성(실행시 사용한 라이브러리 임시파일 생성됨) -D, –onedir 실행 파일을 포함하는 단일 폴더로 생성 –distpath DIR 실행파일 생성 경로(default: .

    March 10, 2021 Read
    Hero Image
    Go 언어 문법 (Golang grammar)

    1. 디렉토리 관련 함수 2021년 3월 3일 수요일 오전 8:55:31 1.1. 단일 디렉토리 생성 os.Mkdir(path, permission) err := os.Mkdir("tmp", 0755) if err != nil { log.Fatal(err) } 1.2. 다중 디렉토리 생성 os.MkdirAll(path, permission) : err := os.MkdirAll("tmp/new", 0755) if err != nil { log.Fatal(err) } 1.3. 현재 작업 디렉토리 얻기 os.Getwd() path, err := os.Getwd() if err != nil { log.Println(err) } fmt.Println(path) 1.4. 디렉토리 존재유무 확인 os.Stat(paht) if _, err := os.

    March 2, 2021 Read
    Hero Image
    pyshark 라이브러리 사용법 (pyshark Library Guide)

    설치환경 : Windows 10, python 3.7 1. 설치 와이어샤크 프로그램에 포함된 npcap 설치 필요 https://www.wireshark.org/download.html pip install pyshark 2. 사용법 캡쳐파일 읽기 capture = pyshark.FileCapture('./test.pcapng') 실시간 패킷캡처 interface capture = pyshark.LiveCapture(interface='이더넷', bpf_filter='ether src host 11:22:33:44:55:66', use_json=True, include_raw=True) 패킷 캡처 패킷 1개 캡처하거나 10ms 경과하면 캡처 결과 반환 capture.sniff(packet_count=1, timeout=10) 패킷 10개 캡처하거나 10ms 경과하면 캡처 결과 반환 capture.sniff(packet_count=10, timeout=10) 패킷 bytes 형태로 반환 print(capture[0].get_raw_packet()) 모든 패킷을 실행하고 읽은대로 각 패킷과 함께 주어진 콜백(함수) 호출

    February 10, 2021 Read
    Hero Image
    scapy 라이브러리 사용법 (Scapy Library Guide)

    설치환경 : Windows 10 1. 설치 와이어샤크 프로그램에 포함된 npcap 설치 필요 https://www.wireshark.org/download.html pip install --pre scapy[basic] 2. Client 예제 from scapy.all import * from scapy.utils import rdpcap import datetime as dt # PCAP 파일 읽기 # could be used like this rdpcap("filename",500) fetches first 500 pkts pkts = rdpcap("./pcap/test.pcapng", -1) pkts = pkts[21:100] cnt = 0 repeat = 10 s_time = dt.datetime.now() for _ in range(repeat): for pkt in pkts: # print(f"hexdump(pkt) = {hexdump(pkt)}") # Send one or more packets at 2 layer sendp(pkt, inter=0, loop=0, count=1, iface=None) # Send one or more packets at 3 layer # send(pkt, inter=0, loop=0, count=1, iface=None) cnt += 1 print(cnt) sendp(b'', inter=0, loop=0, count=1, iface=None) time.

    February 9, 2021 Read
    Hero Image
    paramiko-scp 라이브러리 사용법 (paramiko-scp Library Guide)

    paramiko, scp 라이브러리 연계 사용한 ssh 파일 전송 라이브러리 암호화 여부 속도 paramiko 로그인:암호화 / 파일전송:암호화 느림 paramiko+scp 로그인:암호화 / 파일전송:평문 보통 실습환경 : windows10, 원격서버환경 : linux(RHEL8) 사전에 ssh 접속가능한 linux를 구축한 후 실습 진행 1. 라이브러리 설치 pip install paramiko pip install scp paramiko : SSH 접속 및 종료 기능 Docs URL - http://docs.paramiko.org/en/stable/ scp : 파일 전송 및 다운로드 기능 Docs URL - https://pypi.org/project/scp/ 2. 사용예제 코드 2.

    January 6, 2021 Read
    Hero Image
    리눅스 NFS 설정 (Linux NFS Setting)

    설치환경 : 레드햇8 (RHEL8) 1. NFS 서버 설정 (Server Setting) 1.1. NFS 패키지 설치 yum패키지 설치 도구로 nfs-utils 패키지 설치 yum install nfs-utils 1.2. NFS서버 서비스 실행 및 OS재부팅시 활성화 nfs서버 데몬 실행하고, OS 재부팅시 자동실행되도록 활성화 systemctl start nfs-server systemctl enable nfs-server 1.3. 외부에서 접근할 디렉토리 설정 공유할 디렉토리 생성 mkdir /NFSVOL01 외부에서 접근할 디렉토리, 외부 접근IP, 접근권한을 exports 파일로 설정 vi /etc/exports /NFSVOL01 192.168.0.0/255.255.255.0(rw) /NFSVOL01 : 공유할 디렉토리

    January 6, 2021 Read
    Hero Image
    LeetCode Python (Easy)

    1. Two Sum 문제 링크 nums 리스트 속성값 중 두개의 값이 target 값과 동일할때 해당 속성 값의 index 반환 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: for i, num in enumerate(nums): for j, num2 in enumerate(nums[i+1:]): if i != j+i+1: if target == num+num2: return [i, j+i+1] 2020-11-27 Runtime: 40 ms, faster than 97.02% of Python3 online submissions for Two Sum. Memory Usage: 14.5 MB, less than 89.

    December 1, 2020 Read
    Hero Image
    pyftpdlib 라이브러리 사용법 (pyftpdlib Library Guide)

    1. 라이브러리 설치 pip install pyftpdlib 실습 버전 : pyftpdlib 1.5.6 2. Server ftp server 실행 후 client 테스트 가능 from pyftpdlib.authorizers import DummyAuthorizer # 사용자 인증을 생성하는 모듈 from pyftpdlib.handlers import FTPHandler # 사용자 인증, 파일 전송, 로깅 등 FTP서버를 조작하는 모듈 # from pyftpdlib.handlers import TLS_FTPHandler from pyftpdlib.servers import FTPServer # FTP서버를 실행하는 모듈 # from pyftpdlib.servers import ThreadedFTPServer import os class FileServer: def __init__(self): self.ftpServerIP = "127.

    November 16, 2020 Read
    Hero Image
    libmagic 라이브러리 사용법 (libmagic Library Guide)

    미디어 타입(media type), MIME 타입(MIME type) 1. 라이브러리 설치 실행환경 : windows 10 pip install libmagic pip install python-magic-bin 실행환경 : linux pip install libmagic pip install python-magic libmagic : 파일타입을 MIME 타입으로 확인해주는 라이브러리 python-magic-bin : 윈도우용 magic 라이브러리 python-magic : 리눅스용 magic 라이브러리 2. 예제 코드 import magic r1 = magic.from_file("test1.txt") r2 = magic.from_file("test1.txt", mime=True) print(f"filetype = {r1}, \nmime = {r2}") # filetype = UTF-8 Unicode text, with CRLF line terminators, # mime = text/plain file_data = open('test1.

    November 5, 2020 Read
    Hero Image
    PostgreDB SQL 명령어 (PostgreDB SQL Command)

    1. DATABASE 생성 DATABASE 생성 PostgreDB의 경우 대문자인식은 ““으로 감싸야 사용가능하다. CREATE DATABASE "{database_name}"; 2. USER 생성 USER 생성 CREATE USER {user_name} WITH PASSWORD '{user_password}' SUPERUSER 권한부여(개발용 계정으로 사용 예정) ALTER USER {user_name} WITH SUPERUSER; 유저에게 특정 권한 부여 GRANT {permissions} ON DATABASE {db_name} TO {user_name}; 참고 URL : https://www.postgresql.org/docs/current/sql-grant.html 예시 GRANT ALL ON DATABASE "ABCD_DB" TO abcd_user; 계정 부여권한 해제 REVOKE ALL ON DATABASE {db_name} FROM {user_name}; 계정 삭제

    October 20, 2020 Read
    Hero Image
    MSSQL SQL 명령어 (MSSQL SQL Command)

    1. 테이블 생성 (Create Table) CREATE TABLE 테이블명( 컬럼명 타입(크기) NOT NULL, --NULL 값이 들어갈 수 없음 컬럼명 타입 NULL DEFAULT(값), --초기값 지정 CONSTRAIN PK이름 PRIMARY KEY(컬럼명) --PK설정 ) 컬럼 타입 : INT / NVARCHAR / VARCHAR / DATETIME CREATE TABLE MY_TABLE( NO_EMP NVARCHAR(10)NOT NULL, -- NULL 값이 들어갈 수 없음 NM_KOR NVARCHAR(40)NOT NULL, -- NULL 값이 들어갈 수 없음 AGE INT NULL DEFAULT (0), --초기값 = 0 TODAY DATETIME DEFAULT(GETDATE()), --초기값 현재날짜 ) --CONSTRAINT PK_MY_TABLE PRIMARY KEY(NO_EMP)--PK : NO_EMP ) CREATE TABLE MY_TABLE2( ID int PRIMARY KEY, DATA_JSON nvarchar NULL, CODE nvarchar(20) NOT NULL, IMAGE_PATH nvarchar(300) NOT NULL, IMAGE_NAME nvarchar(100) NOT NULL, IMAGE_TYPE nvarchar(5) NOT NULL, IN_DATE datetime default(GETDATE()) NOT NULL ) 2.

    October 13, 2020 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