뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예
DESCRIPTION
This slide introduces about Backdrum fairy IRC Bot based on the PircBotX Framework written in Java.TRANSCRIPT
![Page 1: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/1.jpg)
사용자 요구 반영의 나쁜 예
Seong-ho ChoGnome Korea Organizer
뒷북요정으로 알아보는
Nov 23 2013
![Page 2: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/2.jpg)
뒷북요정 ?• 뒷북요정 [email protected]
• CJK friendly modified PircBotX framework
• 그놈 한국 공식 IRC 봇
• 팬픽 없음 !
• http://github.com/mmx900/ManalithBot
• 개발 / 실험실 : #[email protected]
![Page 3: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/3.jpg)
왜 만들었나 ? (1)• 대화 중에 각자가 필요한 정보를 웹에서 찾기 귀찮아서
• 이전에 사용하던 IRC 봇에 잡다한 기능이 많이 들어감
• 공개된 기존의 IRC 봇 소스 코드에는 정작 필요한 기능에 대한 소스 코드가 공개되지 않음
• 구현한 단위 기능의 ( 거의 모든 ) 소스 코드를 공개하기로 함 ( 저작권 문제 최소화 전제 )
• 무엇보다 “ 그냥 재미로” , 단 다수에게 불편을 끼치지 않게 하는 것을 전제로 함
![Page 4: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/4.jpg)
왜 만들었나 ? (2)
![Page 5: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/5.jpg)
기능 목록
![Page 6: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/6.jpg)
개발 기반
• Maven -> Gradle• SpringFramework• Apache-commons• Selemium• Jsoup• Jackson• 그 외 잡다 …
![Page 7: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/7.jpg)
참여 인원
• Setzer(mmx900) – Maintainer
• DarkCircle
• Changwoo
• egogun ( to come )
![Page 8: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/8.jpg)
구성
MainMain
ManalithBotManalithBot
CommandParser
CommandParser
ApplicationContext (XML)
ApplicationContext (XML)
Plugins ……Plugins ……
EventLoggerEventLogger
PluginManager
PluginManager
![Page 9: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/9.jpg)
기능 반영하기
• http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon
![Page 10: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/10.jpg)
누구나 뻔히 알고 있는 설계 3단계
• UI/UX Design
• Functional Design
• Algorithm Design
• 은 ( 는 ) 생략함
![Page 11: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/11.jpg)
WTH Program is?! – (1)
![Page 12: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/12.jpg)
WTH Program is? – (2)
![Page 13: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/13.jpg)
WTH Program is? – (3)
![Page 14: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/14.jpg)
What does curex for?
• curex : CURrency EXchange rate
• 환율 표시 , 환율 계산
• 그런데 ?
![Page 15: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/15.jpg)
Source Data Table
자료 제공 : 네이버 , 외환은행 . It will be changed to openexchange api due to license issue.
![Page 16: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/16.jpg)
기능 정리
• 데이터 테이블에 명시된 데이터를 모두 활용하여 금융권에서 사용하는 모든 항목에 대한 계산기능 지원을 의도함 .
• 대략 2 년 여간 사용추세를 지켜본 결과 , “ 매매기준율” 만 사용해도 됨 .
![Page 17: 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예](https://reader036.vdocuments.net/reader036/viewer/2022081504/5588f556d8b42a59138b46de/html5/thumbnails/17.jpg)
결론 및 향후 과제
• 수천 줄에 달하는 “ 오버킬” 완성 \-.-/
• 필요 없는 코드 제거 및 기능 단순화
• 기존 모듈 소스 코드 총 점검