πŸžν”„λ‘œκ·Έλž˜λ°

[정보] 파이썬 λ„€νŠΈμ›Œν¬ 톡신 ν”„λ‘œκ·Έλž˜λ° μ’…λ₯˜ 및 예제

TwoIceFish 2023. 2. 15. 12:29

νŒŒμ΄μ¬μ—μ„œ λ‹€λ₯Έ 원격지에 μžˆλŠ” ν”„λ‘œκ·Έλž¨κ³Ό ν†΅μ‹ ν•˜λŠ” 방법은 μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ λŒ€ν‘œμ μΈ 방법 쀑 일뢀와 κ°„λ‹¨ν•œ 예제 μ½”λ“œμž…λ‹ˆλ‹€.

 

1. HTTP(S) ν”„λ‘œν† μ½œμ„ μ΄μš©ν•œ μ›Ή μ„œλΉ„μŠ€ νŒŒμ΄μ¬μ—μ„œλŠ” requests 라이브러리λ₯Ό μ΄μš©ν•˜μ—¬ HTTP(S) μš”μ²­μ„ 보내고 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

import requests

url = 'https://example.com/api/v1'
headers = {'Content-Type': 'application/json'}
data = {'param1': 'value1', 'param2': 'value2'}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    print(response.json())
else:
    print('Request failed with status code:', response.status_code)

 

2. TCP/IP μ†ŒμΌ“ ν”„λ‘œκ·Έλž˜λ° Pythonμ—μ„œλŠ” socket λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜μ—¬ TCP/IP μ†ŒμΌ“ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 
import socket

host = 'remote_host.com'
port = 1234

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((host, port))
    s.sendall(b'Hello, world')
    data = s.recv(1024)

print('Received:', data)

 

3. λ©”μ‹œμ§€ 큐 Pythonμ—μ„œλŠ” pika 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ RabbitMQ와 같은 λ©”μ‹œμ§€ 큐 μ‹œμŠ€ν…œκ³Ό 톡신할 수 μžˆμŠ΅λ‹ˆλ‹€.

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
queue_name = 'my_queue'
message = 'Hello, world'

channel.queue_declare(queue=queue_name)
channel.basic_publish(exchange='', routing_key=queue_name, body=message)
print("Sent message:", message)

def callback(ch, method, properties, body):
    print("Received message:", body.decode())

channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
channel.start_consuming()

μœ„ μ˜ˆμ œ μ½”λ“œλŠ” κ° λ°©λ²•μ˜ κΈ°λ³Έμ μΈ μ˜ˆμ œ μ½”λ“œμΌ λΏ, μƒν™©μ— λ”°λΌ λ” λ‹€μ–‘ν•œ νŒŒλΌλ―Έν„°λ‚˜ κΈ°λŠ₯을 μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μ΄μ— λ”°λΌ λ” λ³΅μž‘ν•œ μ½”λ“œκ°€ ν•„μš”ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.