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