[파이썬] 소켓프로그래밍-간단한 채팅프로그램 구현
·
Python/Basic
import socket import threading # 서버 소켓 생성 및 바인딩 ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ss.bind(('192.168.0.26', 5555)) # 서버의 IP 주소와 포트를 지정합니다. ss.listen(5) # 클라이언트의 연결 요청을 기다립니다. print('채팅 서버 서비스 중........') users = [] # 연결된 클라이언트들을 저장할 리스트 # 클라이언트와 채팅을 수행하는 함수 def chatUser(conn): name = conn.recv(1024) # 클라이언트로부터 이름을 받아옵니다. data = '^^ ' + name.decode('utf-8') + '님 입장' print(data..
[파이썬] Thread(스레드)
·
Python/Basic
스레드란? 스레드(Thread)는 프로그램이 동작할 때, 동시에 여러 작업을 수행할 수 있게 해주는 중요한 개념입니다. 이는 파이썬뿐만 아니라 모든 프로그래밍 언어에서 중요한 개념으로 사용됩니다. 프로세스와 스레드 프로세스는 운영체제 상에서 실행 중인 하나의 프로그램을 나타냅니다. 각 프로세스는 독립적으로 실행되며, 각각이 별도의 메모리 공간을 가집니다. 이와 달리, 스레드는 프로세스 내에서 동작하며, 같은 프로세스 내의 스레드들은 메모리를 공유합니다. 이를 통해 작업을 빠르게 처리할 수 있습니다. import threading def function1(): for i in range(50000 + 1): print("function1: ", i) def function2(): for i in range..
[파이썬] Socket(소켓)
·
Python/Basic
소켓이란? 소켓은 프로그램과 운영 체제 간의 인터페이스 역할을 합니다. 프로그램에서 소켓 작업을 요청하면, 운영 체제는 그 요청을 받아들여 새로운 소켓을 생성합니다. 이 소켓을 통해서만 외부 네트워크와 통신할 수 있습니다. 비유로 설명하자면, 소켓은 프로그램 내부에서 "창구" 역할을 하며, 실제 통신은 소켓들 간에 이루어집니다. 예를 들어, 채팅 프로그램에서 우리가 메시지를 보내면, 실제로는 소켓을 통해 상대방에게 전달되고, 그 소켓을 통해 메시지가 받아지게 됩니다. 채팅 프로그램 자체는 외부 네트워크와 직접 통신하지 않습니다. 또한, 소켓은 양쪽 프로그램 간의 통신을 중개하는 역할을 합니다. 예를 들어, 소켓 A는 프로그램 1과 통신하고, 소켓 B는 프로그램 2와 통신하며, 소켓 A와 B는 서로 메시지..
[파이썬] 원격 database(MariaDB)와 연동
·
Python/Basic
MariaDB는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, Python에서 이를 활용하여 데이터베이스 작업을 수행할 수 있습니다. 이번 포스팅에서는 Python에서 MariaDB와 연동하고, 데이터베이스 작업을 수행하는 예제 코드를 다뤄보겠습니다. 1. 라이브러리 설치 먼저, Python에서 MariaDB를 활용하기 위해 MySQLdb 라이브러리를 설치합니다. 아래 명령을 사용하여 설치할 수 있습니다. pip install mysqlclient 2.데이터베이스 연결설정 import MySQLdb config = { 'host':'127.0.0.1', 'user':'사용자', 'password':'패스워드', 'database':'사용하는 데이터베이스명', 'port':3306, 'cha..
[파이썬] Pickle 활용방법
·
Python/Basic
pickle이란? pickle은 파이썬에서 사용하는 딕셔너리, 리스트, 클래스 등의 자료형을 변환 없이 그대로 파일로 저장하고 이를 불러올 때 사용하는 모듈입니다. ▶ 즉, 단순한 텍스트를 저장하는 것이 아니라 규칙이 있는 데이터를 파일로 저장할 때는 데이터 형식을 유지할 수 있어야 하는데, 파이썬에서 형식을 유지하면서 데이터를 저장하는 가장 쉬운 방법은 pickle 모듈을 사용하는 것입니다. # '피클링(일반 객체 및 복합 객체 file i/o) - object type으로 저장' 출력 print('피클링(일반 객체 및 복합 객체 file i/o) - object type으로 저장') # pickle 모듈을 임포트합니다. import pickle try: dictData = {'tom': '111-11..
[파이썬] File I/O
·
Python/Basic
1. 파일 열기 (open()) - open() 함수를 사용하여 파일을 엽니다. 이 함수는 파일 객체를 반환합니다. # file 입출력 import os print(os.getcwd()) # 현재 작업하고 있는 모듈의 경로명 반환 # mode='r(read)','w(write)','a(append)','b(binary)','t(text)' # 파일을 읽기 모드로 열기 file = open("파일 경로", "r") # 파일을 쓰기 모드로 열기 file = open("파일 경로", "w") # 파일을 추가 모드로 열기 file = open("파일 경로", "a") "r": 읽기 모드 (기본값) "w": 쓰기 모드 "a": 추가 모드 (파일 끝에 내용을 추가) 2. 파일 읽기 (read()) read() 함수..
[파이썬] 에러의 종류
·
Python/Basic
파이썬에서 에러의 종류 1. Syntax Error (문법 오류) 코드의 문법적인 구조가 잘못되어 발생하는 오류입니다. 2. Logic Error (논리 오류) 프로그램 실행 중에 발생하는 오류로, 프로그램이 비정상적으로 종료되는 오류입니다. 주로 프로그램의 논리나 알고리즘이 잘못된 경우에 발생합니다. 3. Exception Error (예외 오류) 코드를 실행하는 중에 발생하는 에러입니다. try ~ except 문을 사용하여 예외를 처리할 수 있습니다. try: # 예외가 발생할 수 있는 코드 except SpecificExceptionType as e: # 구체적인 예외 처리 except AnotherSpecificExceptionType as e: # 다른 특정 예외 처리 except Except..
[파이썬] Singleton Pattern
·
Python/Basic
싱글톤 패턴(Singleton Pattern)class SingletonClass: inst = None def __new__(cls): if cls.inst is None: cls.inst = object.__new__(cls) return cls.inst def aa(self): print('난 메소드야')위 코드에서 SingletonClass는 싱글톤 패턴을 구현한 클래스입니다. 이 클래스는 inst라는 클래스 레벨 변수를 가지고 있습니다. __new__ 메서드를 오버라이드하여 이미 인스턴스가 존재하는지 확인하고, 존재하지 않는 경우에만 새로운 인스턴스를 생성합니다. +) cls는 파이썬에서  "클..
richpotato
'Python/Basic' 카테고리의 글 목록 (2 Page)