본문 바로가기

python

(56)
thread - process, thread, multi thread 개요 process 실행 중인 프로그램을 의미한다. 자신만의 메모리를 확보하고 공유하지 않는다. thread light weight process 라고도 한다. 1개의 process 내에는 최소 1개의 thread가 존재한다. multi thread 다수의 thread를 사용하면 물론 결과적으로 실행 속도는 비슷하지만 thread를 번갈아가며 작업하기 때문에 여러개의 작업을 동시에 하는 것처럼 느끼게 할 수 있다. thread 를 사용하지 않는 경우 이전 작업이 끝나야 다음 작업이 실행된다. # process : 실행 중인 프로그램을 의미함. 자신만의 메모리를 확보하고 공유하지 않는다. # thread : light weight process 라고도 함. 1개의 process 내에는 최소 1개의 thread가..
socket - 기본구조, 메시지 송수신 net2_server # 서버 무한 루핑 import socket import sys # 모든 서버가 다 사용됨 # HOST = '' HOST = '127.0.0.1' PORT = 7878 serversock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: serversock.bind((HOST, PORT)) # ip,포트 바인딩 serversock.listen(5) # 동시 접속 최대 수 설정 (1 ~ 5) print('server start...') while True: conn, addr = serversock.accept() # 연결 대기 print('client info : ',addr[0], addr[1]) # ip address, port..
socket - 기본 구조 파이썬 socket docs python.org -> docs -> Library Reference -> socket 검색 https://docs.python.org/3/library/socket.html?highlight=socket#module-socket IP(internet protocol) 인터넷이 연결되어있는 장치를 식별하기 위한 고유주소이다. 패킷(packet) 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다.(제어 정보와 사용자 데이터로 이루어진다) UDP와 TCP 구분 UDP TCP 신뢰성 높음 낮음 연결성 연결 지향성 비 연결성 재전송 오류 및 패킷 손실 감지시 재전송 요청 재전송 없음 속도 비교적 느린 편 비교적 빠른 편 용도 신뢰성이 필요한 통신 총 패킷수가 적은 통신, 고속 ..
DB 연결 - 기본 db, sql문 예시 기본 sql 형태 학습하기 2022.10.12 - [database/MariaDB] - select, insert, update, delete 기본 db_connect config 관련 정보는 해킹에 취약하니 pickle로 저장하기 위해 별도로 코드를 작성한다 # MariaDB 연결 정보를 객체로 저장 config = { 'host':'127.0.0.1', 'user':'root', 'password':'123', 'database':'test', 'port':3306, 'charset':'utf8', 'use_unicode':True } import pickle with open('mydb.dat', mode='wb') as obj: pickle.dump(config, obj) sql 기본 시작 형태 ..
DB 연결 - select, insert, update, delete 기본 코드 전체보기 # 원격 데이터베이스 연동 프로그램 # pip install mysqlclient import MySQLdb # conn = MySQLdb.connect(host = '127.0.0.1', user = 'root', password='123', database='test') # print(conn) # conn.close() # sangdata table과 연동 config = { 'host':'127.0.0.1', 'user':'root', 'password':'123', 'database':'test', 'port':3306, 'charset':'utf8', 'use_unicode':True } try: conn = MySQLdb.connect(**config) # print(conn)..
DB - sqlite sqlite 개인용 DB 로 가벼운 것이 장점이고 java에서도 원한다면 사용이 가능하다 파이썬에는 기본내장되어 있다. https://www.sqlite.org/index.html execute()로 원하는 sql문을 사용할 수 있다. 자료 insert (추가) 형식은 크게 4가지가 있다. 파이썬은 java랑 다르게 오토커밋이 되지 않아서 직접 commit()을 입력해야한다. fetchone() 은 하나의 data만 가져온다 fetchall() 은 모든 data를 가져온다 # 개인용 DB : sqlite3 : 파이썬 기본 개인용 데이터베이스 import sqlite3 print(sqlite3.sqlite_version) print() conn = sqlite3.connect('exam.db') conn ..
file - 파일에서 특정 단어를 포함하는 줄만 출력(주소 출력기) 임의의 주소 파일 파일에서 특정 단어를 포함하는 줄만 출력 readline()은 read()와 다르게 한줄을 출력한다. 한줄 출력한 것을 split()으로 단어 기준으로 쪼개고 리스트에 담는다. 그 리스트의 특정 위치의 단어를 startswith()로 원하는 단어로 시작하는지 확인한다. if 조건에 맞는다면 형식에 맞춰 출력한다 이것을 while 반복문으로 돌린다. # 동 이름을 입력해 해당 동 관련 우편번호 및 주소 출력 try: dong = input('동 이름 입력: ') #print(dong) with open('zipcode.txt', mode='r', encoding='euc-kr') as f: line = f.readline() # print(line) while line: # split()..
file - file + with, pickle file + with with 블록을 사용하면 명시적으로 close() 메소드를 호출하지 않고도 파일을 닫을 수 있다. pickle (객체 저장) 객체 형식으로 저장하려먼 pickle 모듈을 import 한다 객체로 저장할때는 mode='wb'를 적고 pickle.dump를 사용한다 객체를 읽을 때는 mode='rb'를 적고 pickle.load를 사용한다 file + with 문의 기본적인 형태 # file i/0 + with 문 try: # 저장 with open('file_test3.txt', mode='w', encoding='utf8') as obj1: obj1.write('파이썬 문서저장\n') obj1.write('with문을 쓰면\n') obj1.write('명시적으로 close()를 하지..