파이썬(Python)을 이용한 카카오톡 알림 메시지 발송 기능 실현

미국의 마케팅 학자인 도나 호프만(Donna Hoffman)과 톰 노박(Tom Novak)은 하이퍼 미디어 컴퓨터 매개 환경에서의 마케팅(Marketing in Hypermedia Computer-Mediated Environments)이라는 제목의 논문에서 일반적으로 상호작용은 인간과 인간 사이에 이루어지는 인간-상호작용과 인간과 도구 사이에 이루어지는 기계-상호작용으로 나눌 수 있습니다고 설명했습니다.


모바일을 매개로 이루어지는 상호작용 도 인간-상호작용과 기계-상호작용으로 나눌 수 있는데, 모바일 미디어가 전통적인 대인 미디어에서 멀티미디어로 발전되어 가면서 기계-상호작용의 중요성이 매우 커지게 되었습니다.


기계-상호작용은 모바일 컨텐츠와 사용자 사이에 이루어지는 상호작용 형태로, 사용자는 모바일 미디어가 제공하는 서비스를 직접 이용할 수도 있고, 무선 인터넷과 같이 모바일 미디어를 매개로 다른 정보원에 접근할 수도 있게 되었습니다.


이러한 기계-상호작용은 산업 및 연구분야에서도 사용될 수 있습니다.

예를 들어 공장 또는 연구실에 설치되어 있는 장비의 정보를 무선 인터넷을 통해 모바일로 전송하는 방법이 가능합니다.


인포라드는 국내에서 가장 많이 사용되고 있는 메시지 애플리케이션인 카카오톡의 기능을 이용해 진공 센서의 측정값이 미리 설정해놓은 설정값을 벗어나는 경우 카카오톡 메시지를 받아볼 수 있는 서비스를 개발하고 있습니다.


이번 시간에는 카카오 디벨로퍼스(Kokoa Developers)를 이용해 해당 기능을 구현하는 과정과 기능 구현에 사용된 파이썬에 대해 알아보도록 하겠습니다.

파이썬(Python)


프로그래밍 언어(Programming Language)는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어로, 컴퓨터 프로그래밍에서 알고리즘을 구현하는데 사용됩니다.


컴퓨터는 기종에 따라 각각 고유의 기계어 명령을 갖고 있지만 기계어는 0과 1의 2진수로 밖에 표현할 수 없고, 사람이 2진수 통해 소프트웨어를 작성하는데는 엄청난 어려움이 따르기 때문에 원활한 작업을 위해 프로그래밍 사람의 언어와 비슷한 프로그래밍 언어를 사용합니다.

프로그래밍 언어는 쉽게 말해 사람이 컴퓨터에게 직접적으로 명령하기 위한 가장 기본적인 수단인 것입니다.


파이썬은 수 많은 프로그래밍 언어 중 하나로, 네덜란드의 개발자 귀도 반 로섬(Buido van Rossum)이 1991년에 만들었습니다.

로섬은 1989년 12월부터 본격적으로 파이썬을 개발하기 시작했고, 2018년 7월 영구 휴가를 발표할 때까지 수석 개발자로서 프로젝트를 전적으로 책임졌습니다.


원래 파이썬이라는 이름은 그리스 신화에 나오는 뱀을 뜻하지만 로섬이 파이썬이라는 이름을 붙인 것은 신화 때문이 아니라, 자신이 좋아하는 코메디 프로그램 'Monty Python's Flying Circus'에서 따온 것으로 알려져 있습니다.


프로그래밍 언어 중 하나인 파이썬(Python)의 로고

출처 : Wikipedia

https://en.wikipedia.org/wiki/Python_(programming_language)



파이썬은 다중 패러다임 프로그래밍 언어로, 객체 지향 프로그래밍과 구조화 프로그래밍이 완벽하게 지원되며, 많은 기능이 기능 프로그램과 측면 지향 프로그래밍을 지원합니다.

또한 파이썬은 플랫폼에 독립적이며 인터프리터식, 동적 타이핑을 지원하는 언어입니다.


파이썬의 문법은 매우 쉬워 초보자들이 처음 프로그래밍을 배울 때 추천되는 언어 중 하나이며, 학습용으로 좋은 언어인 동시에 실사용률과 생산성도 매우 높은 강력한 언어이기 때문에 접근성과 응용력이 좋습니다.


2010년 후반대에 이르러서는 풍부한 머신러닝 라이브러리와 프레임워그로 머신러닝, 딥러닝 등 인공지능 개발을 위한 언어로서 각광받고 있습니다.

실제로 현재 파이썬은 대형 글로벌 기업부터 스타트업까지 다양하게 안정적으로 활용되고 있는데, 구글, 야후, 유럽 입자 물리 연구소(CERN), 미국 항공 우주국(NASA) 등이 파이썬을 이용해 서비스를 구축하고 있습니다.

카카오톡 알림 메시지 발송 기능 구현


위에서 언급한 것처럼 인포라드는 카카오톡의 기능을 이용해 진공 센서의 측정값이 미리 설정해놓은 설정값을 벗어나는 경우 카카오톡 메시지를 받아볼 수 있는 서비스를 개발하고 있습니다.


해당 기능을 구현하기 위해서는 카카오 디벨로퍼스(Kakao Developers) 사이트를 이용해야 합니다.

카카오 개발자 웹사이트인 카카오 디벨로퍼스에서 애플리케이션을 등록하면 카카오톡 메시지 API를 이용해 자신이나 카카오톡 친구에게 메시지를 보낼 수 있는 기능을 이용할 수 있으며, 서비스 서버나 앱에서 메시지 보내기를 API로 요청할 수 있습니다.


카카오톡 플랫폼에서 제공하는 대부분의 API는 오픈 API로, 플랫폼 정책 범위 안에서 애플리케이션 등록을 통해 누구나 무료로 이용할 수 있습니다.


오픈 API를 이용해 다양한 애플리케이션을 구현할 수 있는 카카오 디벨로퍼스의 메인 화면

출처 : 카카오 디벨로퍼스

https://developers.kakao.com/



카카오톡 알림 메시지 기능 구현 과정


1. 카카오 디벨로퍼스에 로그인 후 애플리케이션을 생성합니다.

처음 카카오 디벨로퍼스를 이용할 경우 로그인 및 이용 약관의 동의가 필요하며 애플리케이션 이름과 사업자명 등을 입력해야 합니다.


2. REST API 키 저장

REST API 키는 내 애플리케이션 - 앱 설정 - 요약 정보에 있습니다.

REST API 키를 저장해 두어야 합니다.





3. 활성화 설정

제품 설정에서 카카오 로그인을 선택한 후 활성화 설정에서 OFF된 설정을 ON으로 변경합니다.

아래 Redirect URI를 클릭해 URI를 입력합니다.




4. REST API 이동

상단에서 카테고리의 문서를 클릭한 후 REST API를 클릭하면 나오는 화면에서 [Ctrl+F] 를 누른 후 Request를 입력합니다.

URL이란 항목 안에 아래와 같은 코드를 확인할 수 있습니다.



5. 인증 코드 받기

위의 URL을 이용해 주소를 만들면 아래와 같은 주소가 됩니다.

https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_rui={REDIRECT_URI}&resonse_type=code

이 주소를 따로 저장해 놓은 후 {REDIRECT_URI}에는 3번의 Redirect URI를 붙여넣고 {REST_API_KEY}에는 2번의 REST API 키를 붙여넣은 후 웹브라우저의 주소창에 넣고 실행시킵니다.

카카오 정책에 동의한 후 계속하기를 누르면 사이트에 연결할 수 없는 페이지가 나타납니다.

이 페이지의 전체 주소를 복사해 놓습니다.




6. 사용자 토큰 받기

Visual Studio Code를 실행한 후, Access Token과 API 코드를 넣어주고 저장합니다.

원하는 내용을 입력하고 Redirect 될 링크까지 연결하면 카카오톡 알림 메시지 발송 기능이 구현됩니다.




인포라드의 카카오톡 알림 메시지 발송 기능은 현재 진공 센서의 측정값을 기반으로 Set Point값을 벗어나거나 도달할 경우 사용자에게 자동으로 카카오톡 알림 메시지가 발송되는 것을 목표로 개발되고 있습니다.


추후 진공 분야 뿐만 아니라 MFC의 기체 유량 측정 분야에서도 해당 기술을 접목해 현장이 아닌 외부에서도 언제 어디서나 카카오톡을 통해 측정 장비의 상태를 파악할 수 있는 기능을 제공할 예정입니다.

인포라드는 유량, 진공 관련 제품을 제공하는 동시에, 고객의 필요에 맞는 각종 산업 및 연구용 커스텀 장비의 제작을 진행하고 있습니다.


문의는 아래의 링크를 참고하시기 바랍니다.



https://www.inforad.co.kr/




참고


https://en.wikipedia.org/wiki/Donna_Hoffman

https://en.wikipedia.org/wiki/Tom_Novak

https://en.wikipedia.org/wiki/Programming_language

https://en.wikipedia.org/wiki/Python_(programming_language)

https://terms.naver.com/entry.naver?docId=833885&cid=42344&categoryId=42344

https://terms.naver.com/entry.naver?docId=3580815&cid=59088&categoryId=59096

https://terms.naver.com/entry.naver?docId=3607513&cid=58598&categoryId=59316

카테고리