SlideShare uma empresa Scribd logo
1 de 17
뒷북요정으로 알아보는

사용자 요구 반영의 나쁜 예

Nov 23 2013

Seong-ho Cho
Gnome Korea Organizer
뒷북요정 ?
• 뒷북요정 !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 )
구성
Command
Command
Parser
Parser

Main
Main
Application
Application
Context (XML)
Context (XML)

Event
Event
Logger
Logger
Plugin
Plugin
Manager
Manager

ManalithBot
ManalithBot

Plugins ……
Plugins ……
기능 반영하기
• http://stackoverflow.com/questions/84556/w
hats-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 년 여간 사용추세를 지켜본 결
과 , “ 매매기준율”만 사용해도 됨 .
결론 및 향후 과제
• 수천 줄에 달하는 “오버킬” 완성 -.-/
• 필요 없는 코드 제거 및 기능 단순화
• 기존 모듈 소스 코드 총 점검

Mais conteúdo relacionado

Semelhante a 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예

오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)Channy Yun
 
즐겁게 배우는 SQL 기획 소개
즐겁게 배우는 SQL 기획 소개즐겁게 배우는 SQL 기획 소개
즐겁게 배우는 SQL 기획 소개Jay Park
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15Chanwoong Kim
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)Jaewon Choi
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기Dexter Jung
 
2020년 3월 7일 개발 이야기 정리
2020년 3월 7일 개발 이야기 정리2020년 3월 7일 개발 이야기 정리
2020년 3월 7일 개발 이야기 정리Jay Park
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성noerror
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)창완 장
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작Changwon Choe
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈NAVER D2
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
레이더즈 기술 사례
레이더즈 기술 사례레이더즈 기술 사례
레이더즈 기술 사례기룡 남
 
2020년 11월 21일 개발자 이야기
2020년 11월 21일 개발자 이야기2020년 11월 21일 개발자 이야기
2020년 11월 21일 개발자 이야기Jay Park
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3XpressEngine
 

Semelhante a 뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예 (20)

오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
오픈소스 개발 방법론 - Mozilla 사례 중심 (2010)
 
즐겁게 배우는 SQL 기획 소개
즐겁게 배우는 SQL 기획 소개즐겁게 배우는 SQL 기획 소개
즐겁게 배우는 SQL 기획 소개
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
 
2020년 3월 7일 개발 이야기 정리
2020년 3월 7일 개발 이야기 정리2020년 3월 7일 개발 이야기 정리
2020년 3월 7일 개발 이야기 정리
 
06_게임엔진구성
06_게임엔진구성06_게임엔진구성
06_게임엔진구성
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
Slackbot with Python
Slackbot with PythonSlackbot with Python
Slackbot with Python
 
NDC17 장창완(최종)
NDC17 장창완(최종)NDC17 장창완(최종)
NDC17 장창완(최종)
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
 
About Programmer 2021
About Programmer 2021About Programmer 2021
About Programmer 2021
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
레이더즈 기술 사례
레이더즈 기술 사례레이더즈 기술 사례
레이더즈 기술 사례
 
2020년 11월 21일 개발자 이야기
2020년 11월 21일 개발자 이야기2020년 11월 21일 개발자 이야기
2020년 11월 21일 개발자 이야기
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3Github 100% 활용하기 - XE Open seminar #3
Github 100% 활용하기 - XE Open seminar #3
 

Mais de gnomekr

Korean input overview in the linux desktop
Korean input overview in the linux desktopKorean input overview in the linux desktop
Korean input overview in the linux desktopgnomekr
 
20180519 hangul processing
20180519 hangul processing20180519 hangul processing
20180519 hangul processinggnomekr
 
The way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessThe way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessgnomekr
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)gnomekr
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glancegnomekr
 
My ubuntu life-dklee
My ubuntu life-dkleeMy ubuntu life-dklee
My ubuntu life-dkleegnomekr
 
Vision and dream for youth startup company
Vision and dream for youth startup companyVision and dream for youth startup company
Vision and dream for youth startup companygnomekr
 
Gnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfGnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfgnomekr
 
System hacking basics
System hacking basicsSystem hacking basics
System hacking basicsgnomekr
 

Mais de gnomekr (9)

Korean input overview in the linux desktop
Korean input overview in the linux desktopKorean input overview in the linux desktop
Korean input overview in the linux desktop
 
20180519 hangul processing
20180519 hangul processing20180519 hangul processing
20180519 hangul processing
 
The way of approaching to foss for nursing care business
The way of approaching to foss for nursing care businessThe way of approaching to foss for nursing care business
The way of approaching to foss for nursing care business
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)
 
Gnome on wayland at a glance
Gnome on wayland at a glanceGnome on wayland at a glance
Gnome on wayland at a glance
 
My ubuntu life-dklee
My ubuntu life-dkleeMy ubuntu life-dklee
My ubuntu life-dklee
 
Vision and dream for youth startup company
Vision and dream for youth startup companyVision and dream for youth startup company
Vision and dream for youth startup company
 
Gnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdfGnome.asia.summit2013 report-pdf
Gnome.asia.summit2013 report-pdf
 
System hacking basics
System hacking basicsSystem hacking basics
System hacking basics
 

뒷북요정으로 알아보는 사용자 요구 반영의 나쁜 예