#%EC%9D%B8%EC%9A%A9

BotKit by Fedify :botkit:botkit@hollo.social
2025-04-21

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 #ActivityPub 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 #연합우주(#fediverse) 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 #커스텀_에모지 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 #인용 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!

BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

#fedidev #커모지 #커스텀_이모지 #에모지_반응 #이모지_반응 #에모지_리액션 #이모지_리액션

2025-03-23

어떤 말에 반응하고 어떤 말을 모르는 척해야 할지 귀신같이 아는 사람들로 가득한 타임라인 #인용 맞아 이거 땜에 지금처럼 흘러가는 형식의 슨스하는 거임...

2025-03-11

인용에 알림이 가야한다는 사고가 상업 소셜 미디어식 접근 같아요. 인용의 본질은 사고의 출처를 표기하기 위함일 뿐이고, 사고는 통제할 수 없으니까요.

#소셜미디어 #인용

Ritskogrindieta
2025-02-17

무한한 슬픔은 크기가 같아서 더 큰 슬픔과 더 작은 슬픔이 다르지 않다고 생각했어. 아니야. 아침 햇살을 받아 선명하게 빛나는 나무를 보고 비 온 뒤에도 세상이 맑고 아름답다고 감탄했다가 원래 여기는 새벽안개가 없다는 말을 들었을 때, 나는 슬펐어. 더 작은 슬픔이 더 큰 슬픔을 게걸스럽게 먹어치우듯이 슬펐어.

-정소연 <미정의 상자> p.172

2025-01-15

> 대통령이나 총리가 중범죄를 저지를 때, 민주주의는 그 누구도 법 위에 군림하지 않는다는 사실을 보여줘야 한다. p.331

“어떻게 극단적 소수가 다수를 지배하는가”

#독서 #인용 #민주주의 #법치 #어떻게극단적소수가다수를지배하는가

2025-01-09

> 두려움은 때로 사회를 독재로 되돌리려는 원동력으로 작용한다. 정치권력을 잃게 될지 모른다는 두려움, 더 중요하게는 기존의 지배적인 사회적 지위를 잃어버리게 될지 모른다는 두려움이 바로 그러한 힘으로 작용한다.

“어떻게 극단적 소수가 다수를 지배하는가” 52쪽

#독서 #인용 #독재 #민주주의 #백래시 #어떻게극단적소수가다수를지배하는가

Ritskogrindieta
2025-01-06

때로는 <인내와 시간>이 힘과 분노보다 더 효과적이다.
-엘리자베스 1세

한국 사람에게는 넘나 힘든 것...🫠

2024-12-10

> 국민을 보호해야 하는 국가가 오히려 국민을 탄압하고 죽이는 행태는 한국에서도 찾아볼 수 있습니다. '제주 4·3 사건'이 그런 사례입니다. ... 과연 이 당시 한국 정부에 국가는 국민을 보호해야 한다는 개념이 있었는지를 따져 묻지 않을 수 없습니다. 국민을 지키는 일에 가장 앞장서야 할 군대와 경찰이 오히려 국민을 살해하는 도구가 되어버린 이유를 한 번쯤 생각해 봐야 합니다.
> 이처럼 일본군이 주도한 전쟁에서 특히 돌출되었던 제노사이드 문제가, 전쟁이 끝난 이후 일본의 영향을 받은 여러 동아시아 국가들에서 재현되었다는 점도 되짚어봐야 할 문제입니다. pp.619-20

> 무장한 군인이 민간인을 해치는 것은, 마치 건장한 청년이 노약자를 폭행하는 것과 마찬가지로 일방적인 폭력 행위로서, 사후에라도 반드시 엄중하게 처벌해야만 합니다. 오늘 일본이 벌인 전쟁 과정에서 자행된 제노사이드의 사례를 통해서, 이러한 문제에 대해 한 번쯤 생각해 볼 기회가 되었으면 합니다. p.621

“일본사 시민강좌”

#독서 #역사 #일본 #일본군 #군대 #제노사이드 #학살 #제주43사건 #인용

2024-12-05

> 역사의 중요한 교훈 중 하나는 우리가 자연스럽고 영원하다고 생각하는 많은 것들이 사실은 인간이 만들었으며, 바뀔 수 있다는 것이다. 하지만 분쟁이 불가피한 것이 아니라고 해서 안주해서는 안 된다. 오히려 그 반대다. p.547

“넥서스” 유발 하라리

AI에 대한 대목이지만, 12·3 불법 계엄 때문에 다른 이야기로도 들린다.

#인용 #민주주의 #넥서스 #유발하라리

2024-12-02

> 우리는 인간의 모든 상호작용을 제로섬 권력 투쟁으로 환원하는 것을 거부해야 하는데, 이는 과거를 더 충실하고 다면적으로 이해하는 데 중요할 뿐만 아니라, 미래에 대한 더 희망적이고 건설적인 태도를 갖기 위해서도 중요하다. 만일 권력이 유일한 현실이라면, 갈등을 해결하는 방법은 폭력밖에 없을 것이다. (557쪽)

#넥서스 #유발하라리 #인용 #독서 #권력

2024-11-27

> 크리스마스 날 '마태 수난곡'을 들으면서 “신약성경”을 읽는 것도 좋습니다. 크리스마스를 혼자 보내도 전혀 두렵지 않아요!

“지적인 어른을 위한 최소한의 교양수업”, 사이토 다카시 저, 신찬 역, 더퀘스트, 87쪽

#인용 #독서 #크리스마스 #성경 #클래식

2024-11-25

> 제대로 기능하는 민주주의에서는 시민들이 선거 결과, 법원의 판결, 언론 보도, 과학 분야의 연구 결과를 신뢰한다. 하지만 일단 사람들이 권력이 유일한 현실이라고 생각하게 되면, 이 모든 기관에 대한 신뢰가 무너지고, 민주주의는 붕괴하며, 강력한 지도자가 모든 권력을 장악할 수 있다. (208쪽)

> 선거관리위원회, 법원, 신문 등의 관료 조직이 유독 신뢰받지 못할 때 질서를 유지하는 유일한 방법은 신화에 더 많이 의존하는 것이다. (209쪽)

“넥서스”, 유발 하라리

#독서 #인용 #넥서스 #유발하라리 #민주주의 #포퓰리즘 #독재

2024-11-19

>> 수많은 거대 기술회사가 성역 없는 토론과 '자유로운 발언'이라는 이름으로 이런 집단들을 무의식적으로 부추겨왔다. 이 잘못된 길잡이 때문에 지지자들은 '햇빛은 최고의 소독제다'라는 미국 대법원관 루이스 브랜다이스의 말을 인용하며 오픈 플랫폼이 혐오와 테라리즘의 부정을 만천하에 드러낼 것이라고 주장한다. 하지만 우리가 레딧과 트위터, 고대디, 클라우드플레어 등 다양한 플랫폼에서 얻은 교훈은 공개적인 노출이 이러한 신념을 지속적으로 일상화하고, 장려하고, 증폭시킨다는 것이다. (엘런 파오) (238쪽)

> 이렇기에 온라인 괴롭힘에 대한 소셜미디어의 안일한 대응은 그것을 양산하는 온라인 소굴을 더욱 급진화하고 통합하는 데 일조할 뿐이다. (242쪽)

#인셀테러 #인용
#소셜미디어 #혐오 #인터넷커뮤니티 #사이버불링

2024-11-08

> “바이시클 사람들은 기본적으로 그런 영화밖에 안 만들어. 독재의 공포, 전체주의의 해악을 묘사하는 작품들뿐이지.”
> 그런 영화들을 보여주고 젊은이와 아이 관객들에게 앙케트를 받아 감상을 들어보니 뜻밖의 결과가 나왔다.
> “절반 이상의 관객이 독재자 쪽에 공감했다더군. 자기도 그렇게 세상을 지배하고 싶다고.”

“고구레 사진관” 하, 미야베 미유키, 250쪽.

#인용 #소설 #미야베미유키 #독재 #전체주의 #미디어

2024-11-04

> “현실감은 전혀 없지만, 그렇다면 우리는 행복한 거네.”
> “징병제도도 없고.”
> “언젠가 어떤 정치인이 우리나라에도 징병제도를 부활시켜야 한다고 발언한 적이 있지? 그때 우리 아버지가 혹시라도 그런 일이 벌어지면 무슨 수를 써서든 나는 해외로 도망치게 해준다고 했어.”
> ―내 아들에게 전쟁 따윈 시킬 수 없어.
> “좋은 얘기네.”
> “뭐, 조금 의미가 다르긴 했지만.”
> 덴코가 웃었다.
> “나도 전쟁을 해본 적이 없는데 너한테만 체험시킬 순 없다는 거였지.”

“고구레 사진관” 하, p.232

#소설 #인용 #전쟁 #징병제 #독서 #미야베미유키

Ritsko 🪴ritsko@kono.pub
2024-11-03

1921년 카렐 차페크는 희곡 <알유알(RUR: Rosiumis Unitesl (Robocs)>을 체코 프라하에서 최초로 공개한 뒤, 이듬해 뉴욕에서 막을 올리기 위해 대사를 영어로 번역했다. 카렐은 극에 등장하는, 공장에서 생산한 휴머노이드 노동자들에 붙일 이름이 필요했다. ’일‘을 의미하는 라틴어 ’labor'를 토대로 새로운 단어를 만들 생각이었다. 그때 그의 형 요제프가 '강제 노동'을 의미하는 옛 체코어 robota가 어떠냐고 제안했다. Robot은 그렇게 탄생했다.

-<100 단어로 본 영어의 역사> p.237

#인용

Ritsko 🪴ritsko@kono.pub
2024-11-02

하지만 외부로 가서 가장 성공한 스코틀랜드 표현에 상을 준다면 전통적으로 새해에 부르는 로버트 번스의 시 <Auld Lang Syne>에 돌아가야 할 것이다. 이는 ‘old long since‘의 방언으로 '옛날을 위해'라는 뜻이다.
(중략)
영국의 일개 지역 방언으로서는 나쁘지 않은 성과다.

-<100단어로 본 영어의 역사> p.100

#인용
내가 짐작했던 <올드 랭 사인> 영문이 한 단어도 맞는 게 없었구만. 🙄 맨날 한글로만 봐서.

Ritsko 🪴ritsko@kono.pub
2024-11-02

내가 보기에 가장 이상한 것은 horroshow다. 이 단어는 앤서니 버지스가 <시계 태엽 오렌지(Clockwork Orange)>에서 창조한 단어다. '훌륭한’이라는 뜻의 러시아 단어를 소리 나는 대로 쓴 것으로, 이 책을 통해 영어 속어로 편입되었다. 누군가 ‘<100단어로 본 영어의 역사>란 책은 horroshow하다'고 말해준다면 나로선 정말 기쁠 것이다.

-<100단어로 본 영어의 역사> P.97
#인용

호오...

Ritsko 🪴ritsko@kono.pub
2024-10-18

한강 <서랍에 저녁을 넣어 두었다>
#인용

Ritsko 🪴ritsko@kono.pub
2024-10-05

나는 무엇을 하고 무엇을 생각하고 앉았는가?
자는 아내를 깨워볼까 자는 아기들을 깨워볼까 이들을 깨우기만 하면 이 외로움은 물러갈 것인가?
인생의 외로움은 아내가 없는데, 아기가 없는데 그치는 것일까. 아내와 아기가 옆에 있되 멀리 친구를 생각하는 것도 인생의 외로움이요, 오래 그리던 친구를 만났으되 그 친구가 도리어 귀찮음도 인생의 외로움일 것이다.

-이태준 <무서록> p.50

#인용

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst