PowerPoint Presentation

Similar documents
Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

TTA Journal No.157_서체변경.indd

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_ pptx


SproutCore에 홀딱 반했습니다.

PowerPoint 프레젠테이션

ibmdw_rest_v1.0.ppt

PowerPoint 프레젠테이션

Spring Boot

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

2파트-07

Week13


±¹Á¦ÆòÈŁ4±Ç1È£-ÃÖÁ¾

대규모 자바스크립트 웹어플리케이션개발하기 with BackboneJS and RequireJS 넷스루개발 2 팀이병주

삼성955_965_09

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Intro to Servlet, EJB, JSP, WS

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

untitled

슬라이드 1

<FEFF E002D B E E FC816B CBDFC1B558B202E6559E830EB C28D9>

Web Scraper in 30 Minutes 강철

Network seminar.key

서현수

슬라이드 1

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

(......).hwp


Apache Ivy

초보자를 위한 ASP.NET 2.0

Index

슬라이드 1

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Voice Portal using Oracle 9i AS Wireless

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

PowerPoint 프레젠테이션

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

본책- 부속물

소프트웨어개발방법론

쿠폰형_상품소개서

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

슬라이드 1

쉽게 풀어쓴 C 프로그래밊

Stage 2 First Phonics

[Brochure] KOR_TunA

Prototype에서 jQuery로 옮겨타기

슬라이드 1

·Ôµ¥11³â6¿ùÈ£2Â÷pdf

VS 2013 Global Launch in a Box

consulting

coverbacktong최종spread


Portal_9iAS.ppt [읽기 전용]

0405_ITB-5000FHD매뉴얼

K7VT2_QIG_v3

Orcad Capture 9.x

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

놀이동산미아찾기시스템

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

파워포인트 템플릿

untitled

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

5장 SQL 언어 Part II

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

- 이벤트의처리 <input type= button id= button1 value= 확인 /> <input type= button id= button2 value= 확인 /> 자바스크립트인경우 : document.getelementbyid( button1 ).oncl

歯sql_tuning2

슬라이드 1

I care - Do you?

Example. Do It Yourself

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

<BFEFBBEA20BDBAC5E4B8AE20C5DAB8B52DBEC6B9F6C1F6BFCD20B1CDBDC5B0EDB7A12E687770>

슬라이드 1

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

496 찾아보기 선언적레이아웃 61 싱글턴구성 30, 212 싱글턴뷰 431 ㅇ 아이패드 239 안드로이드설치 47 애플리케이션아키텍처 31 액티비티 140 액티비티연결 63 에뮬레이터구성 54 엔터티 35, 112, 330 오브젝티브-C 240 웹요청 72 윈도우생성

Microsoft PowerPoint - TimeTable System.pptx

슬라이드 1

Windows 8에서 BioStar 1 설치하기

49-9분동안 표지 3.3

초보자를 위한 분산 캐시 활용 전략


contents 표지설명 2015년 겨울방학특강 초등과학 잡아주는 과학상식 - 눈에 보이지 않는 공기의 힘 4회차를 마치고 강사와 아이들이 함께 찍은 사진 입니다. Seogang Library on paper 통권 제25호 2015년 4월 15일 발행 발행 마포구립서강

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

Remote UI Guide

(참고1) 의결서 (HWP).hwp

슬라이드 1

<35B9DAC1F6BCF62CC0CCBFECC8C62CB7F9B5BFBCAE2E687770>

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

PowerPoint 프레젠테이션

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

Rails_3

슬라이드 1

MVVM 패턴의 이해

untitled

DIY 챗봇 - LangCon

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

게시판 스팸 실시간 차단 시스템

Transcription:

Ruby on Rails 와함께하는 애자일웹개발 2007-05-31 유스풀패러다임김석준 (sjoonk@gmail.com)

Start! 2

1. 프로젝트준비 미션 타겟팅 & 사용자조사 서비스 Ideation 개발프레임워크의선택 개발환경 RoR의기본개념들 3

미션 (Mission) 사람들의인맥관리를 도와주는서비스 4

타겟팅 SI vs. 웹서비스 사용자의특정성? User Segmentation 브레인스토밍 + 직관 (?) 타겟프로파일 20대후반 ~ 40대 직장인또는자영업자 인터넷사용자 타겟유저인터뷰 5

사용자조사 일주일에한번 전화 Day 를정하거나하루한시간정도시간을내어친지, 지인에안부를묻는다. 상대방에대해지속적으로관심을가질수있어야. 인맥관리리스트가있으면좋겠다. 인맥은연결될수록강해지는근육질같은것. 좋은인맥을많은사람에게소개해줄수있으면... 처음소개받고명함교환하고정답게인사했다하더라도차츰잊혀지기시작 잠자는인맥을 깨우고, 연결하고, 각성시켜주는 그런장치가있으면좋겠다. 6

페르소나 (Persona) 김일점 / 34 세 ( 남 ) 직업 : 외국계 IT 회사시스템관리자 자주가는사이트 : SCR 클럽, DC 인사이드 인맥보다는일처리가더중요하다고생각했어요. 사교적이지못하기도하구요. 그러나최근인맥의중요성을실감합니다. 이런내가인맥을관리할수있도록도와주는도구가있으면좋겠습니다. 허무회 / 40 세 ( 남 ) 직업 : 개인사업가 ( 부동산 ) 자주가는사이트 : 머니투데이, 조선닷컴 아는사람은많은데, 그렇게친하다고는생각되지않습니다. 막상혼자있을때전화를걸거나만날사람을떠올리면? 글쎄요. 지속적으로관계를이어나갈수있는무언가가있으면좋을것같군요. 7

서비스 Ideation : 주요기능도출 8

서비스 Ideation : Paper Prototyping 9

개발프레임워크의선택 Ruby on Rails Django ErlyWeb Struts ASP.NET PHP... Why? 10

개발환경 RadRails LAMP Subversion Team Wiki 모임기록 피드백 정보공유 11

RoR 의기본개념들 MVC 아키텍처 액티브레코드, 액션팩 ( 액션뷰, 액션컨트롤러 ) 구성보다관례 (Convension over Configuration) 스캐폴딩 ERb 템플릿 레일스라우팅 ORM 데이터베이스마이그레이션 자바스크립트 & Ajax 통합 12

2. Iteration I 1 차개발 가치중심사용자스토리 즉석설계 개발시작 사용자별페이지만들기 첫릴리즈 자바스크립트와 Ajax Ajax 어디까지적용할것인가? RJS or Not? 13

가치중심사용자스토리 14

스토리 : 선택과추정 xxx xx 3 xxxxx 4 4 xxxx xx xxxxx 0.5 xxxxxxx 4 xxxxx xxx 4.5 4 4 xxxx xx 4 xxxxxxx 4 xxx xxx 사용자가치우선 무엇을했을때사용자가가장가치를느낄까? 시단위작업추정 1 주단위로구분 간략한서술 알아볼수만있으면 기능 / 비기능포함 예 : 테스터에이메일발송 15

스토리 : 작업관리 새로운가치발견 오늘할일 피드백 할일목록 4 4 xxxx xx xxxxx 배포 완료한일 (Wiki 에기록 ) 적용 ( 구현 ) 테스트 16

즉석설계 Paper Prototyping 스토리보드 17

개발시작 Person 모델만들기 script/generate model Person / migration Scaffold 생성하고수정하기 script/generate scaffold people main index 헬퍼메서드만들기와각종폼헬퍼들사용하기 Data-only migration 인맥리스트만들기 새스토리추가하기 person Story 모델추가하기 Post-back 액션 has_many :stories, :order => created_at DESC 18

사용자별페이지만들기 User 모델추가 script/generate model User migration 추가하기 Route 추가 user.connect :user, :controller => main, :action => list HTTP_Authentication 플러그인 svn co http://dev.rubyonrails.org/svn/rails/plugins/http_aut hentication/ http_authentication 19

첫릴리즈 20

사용자별페이지라우팅 http://localhost:3000/me http://localhost:3000/me/recent user.connect :user, :controller => main map.connect :user/:action, :controller => main 식별 (recognize) :controller => main, :action => index, :user => user :controller => main, :action => recent, :user => user 생성 (generate) url_for :user => me url_for :user => me, :action => recent user_url me 21

사용자로그인기능구현 가장간단한방법? 직접구현 Rails Recipes #31, #32 등 HTTP Authentication 직접구현? or 플러그인 Httpasswd, http_authentication 등 3rd Party Library & Plugins 활용 Login Engine Login Generator Acts as authenticated 등 22

자바스크립트와 Ajax 특정인의상세정보를집중해서볼수있었으면.. 지난스토리를다볼수있었으면.. Prototype 을이용한 Ajax 호출구현 link_to_remote pagination_links_remote Control.Modal Modal Window Lightbox (http://livepipe.net/projects/control_modal/) 23

Ajax Pagination list.rhtml 파셜 _summary.rhtml 더보기 Close more_msg.rhtml 1 2 3 24

pagination_links_remote module ActionView module Helpers module PaginationHelper def pagination_links_remote(paginator, page_options={}, ajax_options={}, html_options={}) name = page_options[:name] DEFAULT_OPTIONS[:name] params = (page_options[:params] DEFAULT_OPTIONS[:params]).clone pagination_links_each(paginator, page_options) do n params[name] = n ajax_options[:url] = params link_to_remote(n.to_s, ajax_options, html_options) end end end # PaginationHelper end # Helpers end # ActionView 25

Ajax, 어디까지적용할것인가? 26

RJS or Not? remote_form_for :user, :update => userlist, :position => :bottom, :url => { :action => } do <div id= userlist > 액션 : render :partial => :user, :locals => Vs. 파셜 remote_form_for :user, :url => { :action => } do rjs: page.insert_html :bottom, userlist, :partial => :user, :locals => 27

3. ClosedAlpha 사용자테스트와피드백 회고와코드리뷰 28

사용자테스트와피드백 29

회고와코드리뷰 ThreeFs * Facts/ 사실, 한일 Feelings/ 느낌, 감정 Findings/ 배운점, 교훈 코드리뷰 중복제거 (Don t Repeat Yourself!) 고약한냄새 새로운가치의발견? * http://xper.org/wiki/xp/threefs 30

4. Iteration II - 2 차개발 코드리팩터링 사용자가치추가해나가기 vcard와 ERb ( 인맥 ) 관계지도그리기 미처구현하지못한가치들 레일스테스팅프레임워크 31

코드리팩터링 MVC : 역할분담 컨트롤러나누기 파셜뷰와헬퍼의활용 before_filter Post-back 액션 respond_to... RESTful? 32

사용자가치추가해나가기 인맥이한눈에들어오는관계지도... 개인별정보를다운로드받을수있게... 오늘연락할사람을콕찍어줘!... 33

vcard 와 ERb vcard, hcard, Microformats 루비 vcard 라이브러리 ERb 템플릿 def export_vcard @person = Person.find(params[:id]) render :layout => false, :content_type => 'text/x-vcard' end BEGIN:VCARD VERSION:3.0 N:<%= @person.name %> FN:<%= @person.name %> BDAY:<%= @person.birthday.strftime("%y%m%d") %> PHOTO;VALUE=URI:http://example.com/image.png TEL:<%=@person.phone %> TEL;TYPE=office,pref:<%= @person.phone_office %> EMAIL;TYPE=pref:<%= @person.email %> END:VCARD 34

( 인맥 ) 관계지도그리기 The Rails Way Prototype & Script.aculo.us 라이브러리 레일스내장헬퍼메서드 인라인 (inline) 자바스크립트 High-level abtraction The jquery Way Low-level JavaScript 접근 Unobtrusive, 다수의플러그인 Prototype과공존? * 그림출처 : Google 이미지검색 35

미처구현하지못한가치들 오늘꼭연락해야할사람 ( 자동 ) 추천하기 내가아는사람을다른사람과연결짓기 사용자정의필드추가하기 내가지금인맥관리를제대로하고있나? 통계 좀더쉽고편한사용자인터페이스 예 : ㄱ, ㄴ, ㄷ,.., 기타별탭네비게이션 예쁜디자인 성능 ( 최적화 ) 36

레일스테스팅프레임워크 Unit 테스트 Functional 테스트 Integration 테스트 RSpec Selenium, Waitr, Fitnesse 37

5. ClosedBeta 배포와확장 검색기능과 RESTful 레일스 사용자테스트, 측정과분석 38

배포와확장 (scaling) WEBrick (Apache & FCGI) Mongrel Mongrel cluster mod_proxy_balance mongrel Rails App. REQ httpd static (cache) 39

검색기능과 RESTful 레일스 검색기능추가하기 SELECT * WHERE ooo LIKE % 뭐뭐 % Ferret / Acts As Ferret Any other? RESTful 레일스? 리소스 URL CRUD 컨트롤러 map.resources 추가 다양한클라이언트응대 (respond_to) ActiveResource 라이브러리 40

RESTful 레일스로리팩터링 class StoriesController < ApplicationController # GET /stories # GET /stories.xml def index @person = Person.find(params[:person_id]) @stories = Story.find(:all, :conditions => {:person_id => params[:person_id]}) respond_to do format format.html { render :layout => false } format.xml { render :xml => @stories.to_xml } end end # GET /stories/1 # GET /stories/1.xml def show @story = Story.find(params[:id], :conditions => {:person_id => params[:person_id]})... 41

레일스의미래 현재레일스 2.0 모델액티브레코드액티브레코드 뷰 ERb Markaby, DRYML, HAML, Liquid, 컨트롤러 일반컨트롤러 CRUD 컨트롤러 ( 리소스 ) 자바스크립트통합 Prototype 중심 jquery 수용 웹서비스액티브웹서비스액티브리소스 테스팅기능테스트 Rspec 배포 Apache + mongrel Nginx + mongrel 42

사용자테스트, 측정과분석 베타테스팅 ASAP 초대방식과커뮤니케이션 측정과분석 로그분석 Survey 사용자인터뷰 43

6. Lessons Learned 프로젝트반추 성공의이유 다시시작한다면? 고민거리와개인적으로얻은것들 Why RoR? 높은추상화의 DSL... 쉬운접근, 높은생산성 관례에따르기 개방성 ( 루비언어자체, 플러그인등 ) 44

Thank you! 45