logo
logo
협업툴
Jandi
토스랩에서 제공하는 메신저 기반 업무용 협업툴
사용 기업
헬스케어
기타
techstack-logo
비브로스
techstack-logo
캐스팅엔
기술 블로그 글
카카오페이
사내 기술 공유 슬랙봇 앙몬드 개발기
lika.anne 앙몬드가 슬랙봇으로 변신?! 작은 아이디어가 사내에 어떤 변화를 줄 수 있는지 궁금하다면 읽어보세요! 톡톡 튀는 아이디어를 얻어가실 수 있을 거예요.cdragon.cd 업무용 메신저로 슬랙을 이용하고 있고, 슬랙봇을 활용해보고 싶은 분이라면 이 글을 추천합니다. 레츠와 가디가 개발한 앙몬드 봇으로 더 편하고 재미있게 기술 공유를 하고 있습니다.안녕하세요, 마이데이터클랜에서 FE 개발을 하고 있는 레츠입니다. 이번 글에서는 페이의 기술 공유 문화를 한층 더 재미있고 효율적으로 만들어준 슬랙봇 “앙몬드”를 소개해보려고 합니다.앙몬드는 같은 팀 FE 개발자 가디와 함께 만든 사내 사이드 프로젝트로, 사내 기술 공유 과정에 있던 비효율적인 복붙 업무를 자동화하고, 크루들이 쉽고 재미있게 기술 공유에 동참할 수 있도록 매력적인 기능들을 제공하고 있습니다.저희는 앙몬드 이야기를 두 편의 시리즈로 나누어 준비해 보았는데요.1편에서는 앙몬드의 주요 기능과 각 기능이 만들어지기까지 저희의 고민 과정들을 자세히 이야기해 볼 예정입니다. 또, 슬랙봇을 개발하며 겪은 문제와 이를 해결할 수 있었던 슬랙봇 개발팁도 준비해 보았으니 끝까지 재밌게 읽어주시면 감사하겠습니다. 2편에서는 분산시스템 환경에서의 앙몬드봇 배포와 운영 경험기를 다뤄 볼 예정입니다. 앙몬드가 ‘왜 분산시스템 환경에 배포되었는지?’, ‘슬랙봇이 분산시스템 환경에서 실행된다면 어떤 문제가 발생할지?’ 궁금하시다면 2편도 기대해 주세요!이 글이 사이드 프로젝트를 진행하거나 슬랙봇 개발에 관심 있는 분들께 도움이 되길 바라며 앙몬드 개발기 시작해 보겠습니다!앙몬드 봇을 처음 만들기 시작한 계기는 비효율적인 복붙 업무를 자동화하기 위함이었습니다.페이 FE 개발자들은 슬랙 채널에서 기술 아티클이나 개발 꿀팁 등을 활발히 공유하고 있는데요. 이때 공유된 글들은 한 주 단위로 모아서 ‘FE 위클리 아카이브’라는 제목으로 사내 게시판에 업로드되고 있습니다. 초기에는 이 글을 FE 개발자 한 분이 담당하여 매주 수기로 업로드해주셨는데요. 단순 복붙 작업임에도 시간이 꽤나 걸리는 번거로운 작업이었습니다. 개발자로서 이를 마냥 보고만 있을 수는 없었죠 🧐 그래서 가디와 의기투합하여 슬랙 API와 크론잡으로 이 과정을 자동화시켰습니다.이제는 더 이상 번거로운 작업 없이, 앙몬드가 매주 월요일 오전 9시에 ‘FE 위클리 아카이브’ 글을 올려주고 있답니다!앙몬드에 가장 먼저 관심 가져주신 폴!! 감사합니다 🤩사실 이 기능은 단순히 슬랙 conversations.history API만 호출하면 되기 때문에 굉장히 구현이 간단해 보였는데요. 실제로 구현해 보니 마냥 순조롭지만은 않았습니다😩 왜냐하면 슬랙 메시지를 마크다운 문법으로 보여주려면 꽤 번거로운 포맷팅 과정을 거쳐야 했기 때문인데요. 이 부분은 ‘슬랙봇 개발팁’에서 이어서 이야기해 보겠습니다!오늘 배운 내용(TIL)을 기록하고 공유해요앙몬드에서는 오늘 배운 내용인 TIL(Today I Learned)을 간편하게 기록할 수 있어요. 개발자라면 누
jandi
slack
비브로스
잔디 날씨 알림 봇 개발기
비브로스에서는 사내 업무용 메신저로 잔디를 사용합니다. 잔디에는 다른 서비스를 잔디에 연결해서 메시지 알림을 받거나 명령어를 입력하여 외부 서버에 메시지를 전달하고 그에 따른 응답을 받을 수 있는 잔디 커넥트라는 기능이 있습니 다. 잔디 커넥트를 이용하면 알림봇이나 검색봇, 번역봇같은 봇들을 만들어서 업무에 유용하게 사용할 수 있습니다. 비브로스 잔디 팀 대화방에는 이미 Github, JIRA, AWS CloudWatch, 개발 일정 알림, 똑닥 통계 및 병원 검색 등을 제공하는 봇들이 존재합니다. 저는 그 중에 기본적인 날씨를 알려주는 봇이 존재하지 않다는 것을 발견하고 날씨 알림 봇을 만들어보기로 했습니다. 날씨는 외출 전에 하루에 한번씩은 찾아보는 정보이기도 하고 기상청에서 제공하는 Open API가 있기 때문에 토이 프로젝트의 주제로 적합할 것 같다고 생각하였습니다. 그리고 얼마 지나지 않아 오늘 뭐먹을지 알 려주는 봇을 만들걸이라고 후회하게 됩니다. 기상청 API 기상청에서 제공하는 날씨 API는 약 34개의 여러가지 API가 있는데 이 중에서 저는 동네예보 조회서비스 와 중기예보 조회서비스 를 이용하여 날씨 정보를 조회해보기로 했습니다. 동네예보 조회서비스는 최근 1일간 특정 시간의 날씨 정보를 알려주는 초단기 실황 조회 서비스 와 1~4시간 이후의 예보 정보를 알려주는 초단기 예보 서비스 , 최대 3일까지의 날씨 예보를 조회할 수 있는 동네예보조회 서비스 등으로 구 성되어있습니다. 중기예보 조회서비스는 3일~10일 후까지의 강수확률과 날씨 예보를 알려주는 중기 육상 예보조회 서비스 와 최저/최고 기온을 알려주는 중기 기온조회 서비스 등으로 구성되어있습니다. 날씨 조회를 어떤식으로 할까 생각을 하다 현재 날씨 조회 , 오늘의 날씨 조회 , 한주간의 날씨 조회 기능을 만들기로 결정을 했는데 기능 구현을 위해 여러가지 기상청 API로 테스트를 하다보니 몇가지 불편사항이 발생하였습니다. 우선, 기상청의 중기 육상 예보조회 서비스와 중기 기온조회 서비스는 3일부터 10일까지의 예보를 조회할 수 있기 때문에 내일, 모레의 기상정보를 조회하려면 동네예보조회 서비스를 이용하고 3일 이후의 기상정보를 조회하려면 중기 육상 예보조회와 중기 기온조회를 조회해야하여 뒤에서 설명할 Geocoding과 미세먼지 API 등까지 포함하면 한번 호출할 때 5번 이상의 API가 호출되어 미리 조회를 하지 않고 실시간으로 조회하는 방식에서는 속도가 너무 느리다는 문제가 존재 하였습니다. 또한 기상청 API만의 특징인 장소조회 시 다른 API들에서 많이 사용하는 위, 경도 방식 조회가 아니라 기상청에서만 사용하는 X좌표 Y좌표가 따로 존재하여 추가 데이터베이스를 구축해 장소 매칭을 해줘야 한다는 단점이 있었습니다. 결국 기상청 API 대신 다른 API를 찾은 결과 OpenWeather 라는 API를 찾게 되었습니다. OpenWeather OpenWeather는 IT전문가와 데이터 사이언티스트로 구성된 영국의
jandi
nodejs
javascript
비브로스
잔디 날씨 알림 봇 개발기
> 안녕하세요. R&D부 백엔드팀 서민수입니다. 저희 백엔드팀에는 신규 입사자가 들어왔을 때 기본적인 입사 가이드를 진행하고 나서 마지막으로 > 사내 템플릿을 이용해 간단한 토이 프로젝트를 직접 만들어보는 시간이 있습니다. 이 시간에 제가 개발한 날씨 알림 봇 개발과정에 대해 > 알아보겠습니다. 잔디 날씨 알림 봇 개발기 주제 선정 비브로스에서는 사내 업무용 메신저로 잔디를 사용합니다. 잔디에는 다른 서비스를 잔디에 연결해서 메시지 알림을 받거나 명령어를 입력하여 외부 서버에 메시지를 전달하고 그에 따른 응답을 받을 수 있는 잔디 커넥트라는 기능이 있습니다. 잔디 커넥트를 이용하면 알림봇이나 검색봇, 번역봇같은 봇들을 만들어서 업무에 유용하게 사용할 수 있습니다. 비브로스 잔디 팀 대화방에는 이미 Github, JIRA, AWS CloudWatch, 개발 일정 알림, 똑닥 통계 및 병원 검색 등을 제공하는 봇들이 존재합니다. 저는 그 중에 기본적인 날씨를 알려주는 봇이 존재하지 않다는 것을 발견하고 날씨 알림 봇을 만들어보기로 했습니다. 날씨는 외출 전에 하루에 한번씩은 찾아보는 정보이기도 하고 기상청에서 제공하는 Open API가 있기 때문에 토이 프로젝트의 주제로 적합할 것 같다고 생각하였습니다. 그리고 얼마 지나지 않아 오늘 뭐먹을지 알려주는 봇을 만들걸이라고 후회하게 됩니다. 기상청 API 기상청에서 제공하는 날씨 API는 약 34개의 여러가지 API가 있는데 이 중에서 저는 동네예보 조회서비스와 중기예보 조회서비스를 이용하여 날씨 정보를 조회해보기로 했습니다. 동네예보 조회서비스는 최근 1일간 특정 시간의 날씨 정보를 알려주는 초단기 실황 조회 서비스와 1~4시간 이후의 예보 정보를 알려주는 초단기 예보 서비스, 최대 3일까지의 날씨 예보를 조회할 수 있는 동네예보조회 서비스 등으로 구성되어있습니다. 중기예보 조회서비스는 3일~10일 후까지의 강수확률과 날씨 예보를 알려주는 중기 육상 예보조회 서비스와 최저/최고 기온을 알려주는 중기 기온조회 서비스 등으로 구성되어있습니다. 날씨 조회를 어떤식으로 할까 생각을 하다 현재 날씨 조회, 오늘의 날씨 조회, 한주간의 날씨 조회 기능을 만들기로 결정을 했는데 기능 구현을 위해 여러가지 기상청 API로 테스트를 하다보니 몇가지 불편사항이 발생하였습니다. 우선, 기상청의 중기 육상 예보조회 서비스와 중기 기온조회 서비스는 3일부터 10일까지의 예보를 조회할 수 있기 때문에 내일, 모레의 기상정보를 조회하려면 동네예보조회 서비스를 이용하고 3일 이후의 기상정보를 조회하려면 중기 육상 예보조회와 중기 기온조회를 조회해야하여 뒤에서 설명할 Geocoding과 미세먼지 API 등까지 포함하면 한번 호출할 때 5번 이상의 API가 호출되어 미리 조회를 하지 않고 실시간으로 조회하는 방식에서는 속도가 너무 느리다는 문제가 존재하였습니다. 또한 기상청 API만의 특징인 장소조회 시 다른 API들에서 많이 사용하는 위, 경도 방식 조회가 아니라 기상청에서만 사용하는 X좌표 Y좌표가 따로 존재하여 추가 데
jandi
redis
토스랩
AWS 비용 얼마까지 줄여봤니?
이 포스팅은 총 2부로 이어지며 현재는 1부입니다. 1부 : AWS 비용 얼마까지 줄여봤니? 2부 : AWS Instance Scheduler Bot 적용기 최근 들어 스타트업의 인프라는 DevOps의 유행과 함께 IDC에서 클라우드로 급속도로 이전해가고 있습니다. 많은 클라우드 업체가 있지만 그중에서도 Amazon Web Service (AWS) 가 가장 선호되고 있고 잔디도 AWS를 이용하여 서버 인프라를 구성하고 있습니다. 하지만 AWS 비용은 예상보다 만만치 않습니다. 잔디에서는 비용을 줄이기 위해 여러 가지 노력을 하고 있는데 이 글에서는 스케쥴링 기능을 이용하여 비용을 줄이는 방법에 대해 공유하도록 하겠습니다. AWS는 저렴한가? AWS는 저렴한 비용을 자사 서비스의 큰 강점이라고 홍보하지만 실제 사용해보면 막상 과연 정말 저렴한가? 라는 의문을 가지게 됩니다. 여러 클라우드 업체의 비용을 비교한 리포트를 보더라도 AWS는 절대 저렴하지 않습니다. 오히려 클라우드 업체 중 가장 비싼 곳 중 하나입니다. 그렇다고 이제 와서 클라우드 업체를 옮기는 건 배보다 배꼽이 더 클 수도 (들어올때는 맘대로지만 나갈땐 아니란다.) 예약 인스턴스? 스팟 인스턴스? 온디맨드? AWS에서는 제공하는 요금 할인 방법은 예약 인스턴스나 스팟 인스턴스를 이용하는 것입니다. 예약 인스턴스는 계약 기간에 따라 최대 60%까지 저렴한 가격으로 이용할 수 있습니다. 하지만 정확한 기간과 수요예측을 하지 못한다면 잉여 인스턴스가 될 수 있습니다. 스팟 인스턴스는 입찰가격을 정해놓고 저렴할 때 이용할 수 있습니다. 하지만 그때가 언제일지도 알 수 없고 인스턴스를 가져갔다고 하더라도 더 높은 입찰가격을 제시한 사용자에게 인스턴스를 뺏길 수 있습니다. 마치 KTX를 입석 티켓으로 빈 좌석에 앉아서 가다가 좌석 티켓 주인이 나타나 내 자린데요? 하면 얄짤없면 좌석을 내줘야 하는 느낌입니다. 그때 느끼는 그 서러움은 느껴보지 못한 자는 알 수 없습니다. 온디맨드는 사용한 만큼 할인 없이 비용을 지불하는 것입니다. 언제든지 필요할 때 사용하고 사용한 만큼만 과금되어 가장 적절해 보이지만 예약이나 스팟에 비해 역시나 비쌉니다. 비싸지만 현실적으로 가장 많이 사용됩니다. 개발서버는 얼마 안쓰는데 좀 깍아줘! 일반적으로 개발서버도 라이브와 같이 구성합니다. 고가용성은 고려하지 않더라도 아키텍쳐는 똑같이 구성하게 됩니다. 그리고 아키텍쳐가 복잡해질수록 구성하는 서버도 많아지고 언제부턴가는 개발서버도 비용을 무시할 수 없는 수준에 이르게 됩니다. 하지만 개발서버는 24시간 사용하지도 않고 업무시간에만 사용합니다. 이쯤 되면 한 번쯤 이런 생각을 하게 됩니다. 개발서버는 실제로 얼마 쓰지도 않는데 좀 깍아줘야 되는 거 아냐? 개발서버뿐만 아니라 정해진 시간만 사용하는 모든 서버들이 해당될 것입니다. EC2 Scheduler AWS는 이러한 원성(?)을 들었는지 EC2 Scheduler 라는 간단한 솔루션을 소개했습니다. 내용을 보면 설정된 시간과 요일에 자동으로 EC2 인스턴스가
awsdynamodb
jandi
Copyright © 2025. Codenary All Rights Reserved.