하나의 프로젝트(프로그램)를 개발하기 위해서는 Front End부터 서버 / DB / 메인 기술 등이 필요하다. 그리고 각각 구축된 것을 하나로 결합하기 위한 과정이 필요하다.
특정 프로젝트에서 필자는 메인 기술 개발을 담당했다. 이 프로젝트의 메인 기술은 객체 인식이었다. 하지만, 객체 인식은 한 프로젝트 내 일부에 해당되기에, 좀 더 완성도 있는 프로젝트를 구축하기 위해서는 클라이언트에게 객체 탐지 정보(예 : 객체명 / 객체 탐지 시간 등)를 보여주기 위한 작업을 수행해야 했다. 이 정보는 서버팀에게 보내주어야 했다.
객체 인식은 Python을 통해 프로그래밍 했으나 서버는 Python이 아닌 Java로 개발되고 있었다. 서버팀에 보내기 위해서는 Java 형식에 맞게 변환해주어야 하는데, 이를 어떻게 해결할 수 있을지 막막했다.
또한, Python의 형식에서 Java 형식으로 변환을 성공적으로 하였다 하더라도, 이를 어디로 보내야 서버를 구축한 인원이 수신할 수 있을까도 문제였다.
즉, 직면 문제를 정리하면 아래와 같다.
위 문제를 해결하기 위해 열심히 구글링을 하여 다음과 같은 결과를 얻게 되었다.
이를 프로그래밍한 코드는 아래와 같다.
import requests # 보내고자 하는 ip로 전송하기 위해 라이브러리
import json # python data 형식을 json 형식으로 변환하기 위한 라이브러리
# URL(Pulic IP)
url = "http://1.2.3.4" # 해당 IP는 설명하기 위한 IP이지, 작성자가 사용하는 IP가 아님.
# headers
headers = {
"Content-Type": "application/json"
}
# 서버팀에 보내고자 하는 것을 key - value 형식으로 작성. 작성한 것을 temp라는 변수에 대입
# 모두 소문자로 구성해줄 것
temp = {
"name":'HongGilDong', # 여기서 name이 key, HongGilDong이 value에 해당
"age": "25",
"job": "student"
}
# 보내고자 하는 Data를 JSON 형식으로 변환
data = json.dumps(temp)
# 변환된 Data를 보내고자 하는 URL에 보내기
response = requests.post(url, headers=headers, data=data)
# 송신 결과 확인
print("response: ", response)
print("response.text: ", response.text)
-> Irish Github