Transcript
Page 1: 무엇을 어떻게 할까 ?

무엇을 어떻게 할까 ?What and How

Page 2: 무엇을 어떻게 할까 ?

발표자 소개

• 안병욱 elaborate

Page 3: 무엇을 어떻게 할까 ?

세미나 목적

• 여러분께 질문을 던지기 위한 세미나

• 모르셔도 이제 공부하면 된다

Page 4: 무엇을 어떻게 할까 ?

발표 순서

• 우리가 만들 것

• 우리가 알아야 할 것

• 우리가 준비 할 것

Page 5: 무엇을 어떻게 할까 ?

우리가 만들 것

• 설마 모르지는 않겠죠 ?– 모바일 페이지

– 일반 웹페이지와 다른 점은 ?– 만드는 이유는 ?– 고려할 점은 ?

• http://www.drostdesigns.com/mobile-web-design-principles-to-consider-top-7/

• http://naradesign.net/wp/2011/05/27/1483/

Page 6: 무엇을 어떻게 할까 ?

우리가 알아야 할 것

• 웹 페이지의 구성 (HTML, CSS, Javascript)• 서버와 클라이언트 (HTTP)• DB• VCS (esp. mercurial)• TDD• Other useful Keywords

Page 7: 무엇을 어떻게 할까 ?

Web Page(HTML)• HTML

– HTML version (4.0, 5.0)– Markup Language

• Tags, attributes

– Right thing to right use (ex. Submit and Link)• http://osan.kaist.ac.kr/~elaborate/seminar_ready/form_and_lin

k.php

– Use Standard • http://www.w3.org/MarkUp/• http://validator.w3.org/

Page 8: 무엇을 어떻게 할까 ?

Web Page(CSS)• CSS

– CSS2, CSS3– #id .class (usually)– Overriding property– Browser dependency– Also use standard

• http://www.w3.org/Style/CSS/• http://jigsaw.w3.org/css-validator/

Page 9: 무엇을 어떻게 할까 ?

Web Page (Javascript)• JavaScript

– It has nothing to JAVA (ex. Car & Carpet)– Easy to use, Easy to be wrong– Please do little tutorial

• http://www.w3schools.com/js/default.asp

– Don’t make it HEAVY– Browser Dependency

• Different API, Different performance

– Lots of Library - Jquery, Prototype, mootools …– Most things happens in Web Browser – Please use standard

• http://www.jslint.com/

Page 10: 무엇을 어떻게 할까 ?

Server• What is it?– Generates and give page (response)– Save your state (session)– Data (DB)– Python(Django), PHP(PHPCake), other

framework can be used– It has webserver (ex. Apache, LightHttpd…)

Page 11: 무엇을 어떻게 할까 ?

Client• In your project

– Your web browser in Mobile– A thing that requests– Limited Cache– Limited session – Slower than other Desktop Web Browser– A variety of Web Browsers Engine

• IE, FF, Opera, Chrome …

Page 12: 무엇을 어떻게 할까 ?

HTTP• It is a protocol• POST and GET• Request(Client Action – What page?)• Response (Server Action – Webpage)• You should understand how it works– Or you will make foolish webpage

Page 13: 무엇을 어떻게 할까 ?

DB• That saves data

– SQL– In Django, it uses ORM (What is it?)– ARA Mobile may not use this, but it is better to

know this– DBMS - MySQL, SQLite, PostgreSQL …– Server gets Data from DB and use it for Page

generation

Page 14: 무엇을 어떻게 할까 ?

중간점검Server Client

Request Web BrowserWeb Page

HTML, CSS, JavaScript --> POST /account/login/ HTTP/1.1 Host: ara.kaist.ac.kr Connection: keep-alive Referer: http://ara.kaist.ac.kr/ Content-Length: 33 Cache-Control: max-age=0 Origin: http://ara.kaist.ac.kr User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.71 Safari/534.24 Content-Type: application/x-www-form-urlencoded Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: UTF-8,*;q=0.5 Cookie: [value was stripped]

click

Page 15: 무엇을 어떻게 할까 ?

중간점검Server

Request

DB

Django

Check ID and PWPage Generate - HTML - CSS - Javascript

query

Web Server

Handler

ResponseSession saveData Save ……

Page 16: 무엇을 어떻게 할까 ?

Project Management &Bug/Issue Track

• 목표가 무엇인지

• 무엇을 구현할지

• 어떻게 구현할지

• 임무를 부여하고 , 상태를 보고 하고 , 개발상황을 점검한다

Page 17: 무엇을 어떻게 할까 ?

VCS• Version Control System

– 프로그램 개발을 하면서 중간중간 단계를 저장하는 것

• This will be covered by someone• There are good maxims

– 커밋은 저장이 아니다 . ( 기능의 단위 , 생각의 단위로 커밋을

하여 후에 되돌릴 수 있도록 한다 )– 커밋하기 전에 생각하자 (3 번 , 나중에 후회하지 않도록 )– 설명은 명확하고 플젝하는 사람이면 이해할 수 있게

Page 18: 무엇을 어떻게 할까 ?

TDD

• Test Driven Development• Software Development Process • 심플하게 표현하면

–테스트를 만족시키는 걸 짜니 프로그램이

완성이 되더이다 허허……

Page 19: 무엇을 어떻게 할까 ?

다시 점검

테스트 코드 작성

실행결과 확인

구현

TDD 도 나중에 더 자세히

시작

저장소PushPull

VCS 에서 더 자세히 다룰 것이다

여러분 개발 공간

Page 20: 무엇을 어떻게 할까 ?

우리가 준비할 것

• 환경구축

– Vim, mercurial, etc… – Don’t waste your type!

• 코드를 분석하기

– Get what they have done!

• 잡다한 공부하기

– Please know as much as possible

Page 21: 무엇을 어떻게 할까 ?

• 질문 있으신가요 ?• Programming ≠ coding


Recommended