JDA 가 불편하신 분들께

지인호·2021년 10월 31일
1

프로젝트 설명

목록 보기
1/1
post-thumbnail

자바진영의 새로운 DIscordAPI Client, Cacophony 를 소개드립니다!!

TL;DR

  • 기존 Client 의 불편함을 해결한 간단하고 편리한 Discord API Client 입니다
  • 체계적인 구조와 디테일보단 유연함과 단순함을 중점에 둔 라이브러리입니다
  • 디테일한 기능은 직접 JDA 를 통해 구현하실 수 있습니다
  • 자세한 내용은 깃허브 를 참고해주세요

Cacophony란?

Jda 가 불편하신 분들을 위해 만들어진 라이브러리

Cacophony 는 기존 JVM진영의 Major Discord API 클라이언트인 JDA 를 기반으로 개발된 Discord API Client Library 입니다.

기존 JDA 및 여타 Java DiscordAPI Client 들의 문제점을 해결함과 동시에 패셔너블하고 편리한 디스코드 API 클라이언트 개발 을 목표로 개발하였습니다.

어떤 불편함이 있었나요?

  • 간단한 기능, 복잡한 코드
    간단한 기능을 구현하려 해도 EventListenerClass 부터 비즈니스로직Class 까지 구현해야하는 불편함
  • 그래서 길드가 뭔가요?
    비표준 용어 사용으로 인한 Client 사용의 어려움
  • 이벤트, 다만 100보다 많은
    과할정도로 많은 이벤트 종류와 이벤트에 대한 부실한 설명으로 인한 각 이벤트에대한 해석의 어려움
    실제로 non deprecated 이벤트만 100개가 넘습니다.

그래서 Cacophony는

  • 간단한 기능, 더욱 간단한 코드
    when - do 블럭으로 이루어진 Flow System 을 구축하여 간단하게 봇을 개발할 수 있도록 하였습니다!
  • 길드에서 서버로
    기존 JDA 에서 사용하던 Guild 라는 단어를 Discord 공식 용어인 Server 로 변경하였습니다. 그리고 개인 메세지를 뜻하는 PrivateMessage 를 우리에게 조금 더 친숙한 용어인 DM(DirectMessage) 로 변경하는 등,
    더이상 네이밍으로 헷갈릴 일이 없도록 하였습니다.
  • 이벤트는 필요한것만
    봇 개발에 잘 사용하지 않는 이벤트들은 과감히 제거하고, 주로 사용되는 이벤트들만으로 클라이언트를 구성하였습니다
    만약 디테일한 이벤트가 필요할경우, 직접 JDA Event Listener 를 구현하실 수 있습니다!
  • 하지만 완벽하진 않기에
    버리고 단순화한것들이 많은 만큼, 디테일을 원하는 개발자분들에겐 Cacophony 가 또다른 불편으로 다가올 수 있기에, 직접 JDA 를 통해 여러 detail 을 추가하실 수 있도록 하였습니다!

어떻게 사용할 수 있나요?

코드 단 한줄만으로도 Cacophony 를 시작하실 수 있습니다!

Cacophony 는 Maven Central 에 등록되어있습니다. 따라서 Gradle, Maven 등의 의존성 관리도구를 통해 시작하실 수 있습니다!

또한, Spring의 편리함을 알고있기에, SprinBoot 에서 동작할 수 있는 cacophony-spring-boot-starter 모듈 또한 지원하고있습니다!

Java(Vanilla)에서 설치하기!

With Gradle

repositories {
    mavenCentral()
}

dependencies {
    //gradle 버전이 낮은경우, 'implementation' 을 'compile' 로 바꾸어주세요!
    implementation 'io.github.key-del-jeeinho:cacophony-lib:VERSION'
}

With Maven

<dependencies>
    <dependency>
        <groupId>io.github.key-del-jeeinho</groupId>
        <artifactId>cacophony-lib</artifactId>
        <version>VERSION</version>
    </dependency>
</dependencies>

다른 의존성 관리도구에서의 사용법은 다음문서 를 참고해주세요!

SpringBoot에서 설치하기!

With Gradle

repositories {
    mavenCentral()
}

dependencies {
    //gradle 버전이 낮은경우, 'implementation' 을 'compile' 로 바꾸어주세요!
    implementation 'io.github.key-del-jeeinho:cacophony-spring-boot-starter:VERSION'
}

With Maven

<dependencies>
    <dependency>
        <groupId>io.github.key-del-jeeinho</groupId>
        <artifactId>cacophony-spring-boot-starter</artifactId>
        <version>VERSION</version>
    </dependency>
</dependencies>

다른 의존성 관리도구에서의 사용법은 다음문서 를 참고해주세요!

🔔 많은 사용 부탁드립니다!!!
자세한 내용은 깃허브 를 참고해주세요

profile
테오의 스프린트 17기 퍼실리테이터

0개의 댓글