개발 강좌 9

디스코드봇(Components) - 03ㅣComponents를 상호작용해보자.

안녕하세요. 지난 강의에서는 디스코드 봇(Components)을 통하여 버튼을 만들어 보도록 하였습니다. 저번 강의가 생각보다 내용이 많았던 것 같았어요. 사실 이번 강의는 2편에 넣으려고 했던 내용이었지만, 내용이 길어지다 보니 어쩔 수 없이 분리하게 됐습니다. 그래서 그렇게 저번처럼 매우 길어지지는 않을 거라고 봅니다. 저번 강의에서는 디스코드 봇(Componnents)을 통하여 버튼을 만들어 보았더라면, 이번 강의에서는 버튼을 클릭한 여부, 즉 상호작용을 해보도록 하겠습니다. 이번 강의는 discord.py(Python)을 기준으로 강의를 진행할 예정이며, discord.py(v1.7 기준) 내에는 기본적으로 지원하지 않기 때문에, 저희는 discord.py 내에 있는 웹소켓을 받아서 직접 상호작용..

디스코드봇(Components) - 02ㅣComponents를 통하여 버튼을 만들어보자!

안녕하세요. 이번 강의에서는 디스코드 봇(Components)을 통하여 버튼을 만들어 보도록 하겠습니다! 우선 오늘 배우는 것은 discord.py를 사용할 거지만, discord.py를 굳이 사용하지 않고, aiohttp나 requests 등을 통하여 HTTP 세션을 보낼 수 있다면, 충분히 가능합니다 우선 이번 강좌도 저번 강좌에 예고했듯이 난이도가 있는 편입니다. 본인이 "네트워크에 대한 지식이 없다", "프로그래밍 언어에 대한 기초 지식이 없다.", "디스코드 봇을 모른다" 그러면 많은 어려움이 따를 수 있습니다. 최소한 네트워크 지식을 알고 하시는 것을 추천합니다. 우선 Components를 활용한 버튼을 만드는 작업은 정식적으로 discord.py에서 지원해주지 않기 때문에 API를 통해야 합..

디스코드봇(Components) - 01ㅣComponents에 대하여 알아보자.

안녕하세요. 이번 강의에서는 디스코드 봇(Components)에 대하여 알아보도록 할 것입니다. Components에 대한 강의는 총 3편으로 구성될 예정이며, 이번 편에서는 Components에 대한 개념을 알려드릴 껍니다. 여러분들은 동적(반응형) 디스코드 보라고 들어보신 적 있나요? 동적(반응형) 디스코드 보란 사용자와 디스코드 봇을 서로 상호작용하는 것을 의미합니다. 예를 들어 사용자는 특정 명령어를 요구한다면, 봇은 그것에 대한 정보를 반환합니다. 사용자는 그 정보를 기반으로 다시 특정 명령어를 요구하게 되고, 봇은 또 새롭게 들어온 특정 요구에 대하여 정보를 반환하는 것이라고 보면 됩니다. Components는 "동적(반응형) 디스코드 봇"을 만들기 위해선 필수 요소라고 생각합니다. 기존에는 ..

크롤링 05 | select를 사용하여 값을 불러오자

저번에는 ".find"를 통하여 성공적으로 크롤링을 마쳤습니다. 이번 시간에는 ".select"문을 활용하여 크롤링이 아닌 파싱을 해보도록 하겠습니다. 사실 이번 강좌가 크롤링의 마지막 강좌입니다. 지금까지 읽어주시는 모든 독자분들께 감사의 말씀드리겠습니다. # 업로드전 수정, ".select"으로 하는것은 크롤링이 아닌 파싱이라고 합니다. 강의중에선 ".select"도 크롤링하는거라고 하지만 파싱이라고 하니 오해하지 마시기 바랍니다. .select 문에 대해 알아보자. 우선 시작 전에 기존 시간처럼 ".select"문에 대해 알아보아야 합니다. 사실 ".select"는 ".find"는 여러 요소를 지정하여 찾을 수 있는 반면에 ".select"는 하나만 딱 지정한 CSS 스타일로 값을 찾을 수 있다고 ..

크롤링 04 | find를 사용하여 값을 불러오자

이번 강좌에서는 기존 3편에 이어서 ".find"문을 활용하여 크롤링을 해볼 것입니다. 이번 강좌는 기존 2편, 3편을 이어서 진행하는 것이기 때문에 기존 강좌를 보고 오시는 것을 추천드립니다. .find 문에 대해 알아보자. 우선 시작전에 ".find" 문에 대해 알아보아야 합니다. 기존 시간에는 ".select"를 통해 파싱을 할 수 있었고, ".find" 를 통해 크롤링을 할 수 있다고 했었습니다. 우선 ".find" 방식과 ".select" 방식의 차이점으로 보자면 ".find"는 하나하나 직접 찾아 작성하기 때문에 대부분 오차율이 적은 편입니다. (사이트가 형식이 바뀌게 될 경우 ".select", ".find" 방식 둘 다 다시 짜줘야 한다는 점 참고하시기 바랍니다.) 대신, 코드가 상당히 길..

크롤링 03 | 크롤링을 하기전에 알아야 할것

이번 강좌에서는 크롤링을 시작하기 전 기초에 대해 알아보도록 하겠습니다. 우선 크롤링을 하기 전에 알아야 할 기초지식과 기본적인 HTML 속성 그리고 크롤링 데이터를 만들어보는 방법에 대해 알아보도록 합시다. 우리가 가져와야할 HTML에 대해 먼저 알아보자. 우선 우리가 가져올 웹사이트들은 대부분 HTML로 구성되어 있습니다. API가 아닌 이상 99%가 HTML과 CSS로 구성되어있을 겁니다. CSS는 웹사이트의 디자인 요소이기 때문에 필요 없고 HTML안에 데이터 값이 존재하기 때문에 우리는 HTML을 가져와야 합니다. 그러나, 가져오기 전 HTML의 기본적인 것을 알고 지나가야 합니다. 따라서 크롤링에만 필요한 HTML을 좀 알아보도록 합시다. 우선 HTML의 구성 요소에 대해 알아보고자 합니다. ..

크롤링 02 | 파이썬을 통하여 html를 불러오자.

이번 강좌에서는 파이썬을 통하여 html를 불러오는 다양한 방법을 알아보고자 합니다. 우선 시작하기전에 알아두어야 할 것이 있습니다. http에는 두 가지 프로트콜이 존재합니다. GET과 POST 방식으로, 각각 "GET=가져오다." "POST=부치다." 라는 뜻이 있습니다. 대부분의 웹사이트에서는 GET 방식을 사용하여, 사이트를 불러오며 GET은 어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식입니다. 반대로 POST는 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식입니다. 이것을 알아두시고 이제부터 시작해보도록 하겠습니다. 1. Requests 를 사용하여 html을 가져오자! requests를 대부분 크롤링할 때 사용합니다. requests가 제일 사용하기 간단하기 때문입니다..

크롤링 01 | 크롤링이란?

안녕하세요. YBOT과 PUBG BOT을 제작하고 디스코드 봇 개발자라고 합니다. 이번에 커뮤니티에서도 나오고, DM으로도 크롤링이란 게 어렵다는 분들이 많아서 크롤링에 대한 강의를 작성해보고자 합니다. 크롤링이란 건 사실 이해하면 매우 쉬운 것 중 하나로 저도 처음에는 이해하는 과정에서 어려움을 많이 느꼈습니다. 이번 시간에는 크롤링에 대해 알아보고, 크롤링을 하는 방법에 대해 서술하고자 합니다. 언어는 처음에는 파이썬을 기반으로 작성하려고 합니다. 크롤링이란? 우선 크롤링이란것에 대해 알아야 할 것 같습니다. 크롤링이란 웹페이지에서 특정한 데이터를 사용자에게 보여주는 것입니다. 크롤링을 하는 프로그램은 "크롤러"라고 부르기도 합니다. 위 사진과 같이 크롤링을 통하여 다양한 정보값을 구할 수 있습니다...

Discord Bot Gateway Intent란?

#본 내용의 일부는 discord.py 기준으로 작성했습니다. 그러나 discord.js, JDA 등 타 언어를 사용하는 디스코드 봇들도 해당사항이니 참고해주시기 바랍니다. ​ 여러분들은 Whitelist Gateway Intent에 대해 아시나요? Whitelist Gateway Intent란? 디스코드 봇 개발자 인증제도와 동시에 같이 도입된 제도로 실질적을 디스코드 API v8부터 적용되었습니다. ​ 참고로, discord.py 1.5 버전, discord.js v12 버전 이상 일경우 디스코드 API v8를 사용합니다. 비록 2020년 초반부터 시행한 제도지만 실질적으로 알려진 계기는 10월 27일 디스코드 API v6 이하 버전의 일부 기능을 차단함으로써 많은 개발자들이 알게 된 기능입니다. ​..