Web/PHP2018.07.10 21:27

php는 배열 index값으로 string도 쓸 수 있네


php 테스트에 좋은 사이트

http://phptester.net/


<?php


$title = array("test1", "test2", "test3");



$number = 10;

for($b=0; $b<2; $b++)

{

for($a=0; $a<count($title); $a++)

{

$member[$b][$title[$a]] = $number++;

}

}



for($b=0; $b<2; $b++)

{

for($a=0; $a<count($title); $a++)

{

echo $title[$a].':'.$member[$b][$title[$a]].'<br>';

}

}


?>

'Web > PHP' 카테고리의 다른 글

[PHP] 2차원 배열 표현하기.  (0) 2018.07.10
반드시 알아야 할 PHP 보안 30가지  (0) 2014.06.08
이클립스 PHP 환경설정  (0) 2013.08.16
세션 시작문제  (0) 2013.07.21
파일 업로드 다운로드 삭제  (0) 2013.07.07
php 엑셀  (0) 2013.07.07
Posted by 허정욱
plan2017.05.13 10:49
구글타임라인 안드로이드는 한국 지원 안 함.
https://www.google.com/maps/timeline?force-no-redirect=true&pb=!1m2!1m1!1s2017-02-26

'plan' 카테고리의 다른 글

구글 타임라인  (0) 2017.05.13
Posted by 허정욱
Programming Language/C++2014.08.15 03:13

[출처] http://www.winapi.co.kr/ApiBoard/content.php?table=tblqa&pk=13489

FormatMessage()라는 함수인데, GetLastError()로 얻은 에러 코드가
무슨 에러인지 알고 싶으면???

char buffer[128];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(),
NULL, buffer, 128, NULL);
MessageBox(hWnd, buffer, "Error", MB_ICONHAND);


에러코드와 대응 상수 ----------------------------------------

NO_ERROR equ 0
ERROR_SUCCESS equ 0
ERROR_INVALID_FUNCTION equ 1
ERROR_FILE_NOT_FOUND equ 2
ERROR_PATH_NOT_FOUND equ 3
ERROR_TOO_MANY_OPEN_FILES equ 4
ERROR_ACCESS_DENIED equ 5
ERROR_INVALID_HANDLE equ 6
ERROR_ARENA_TRASHED equ 7
ERROR_NOT_ENOUGH_MEMORY equ 8
ERROR_INVALID_BLOCK equ 9
ERROR_BAD_ENVIRONMENT equ 10
ERROR_BAD_FORMAT equ 11
ERROR_INVALID_ACCESS equ 12
ERROR_INVALID_DATA equ 13
ERROR_OUTOFMEMORY equ 14
ERROR_INVALID_DRIVE equ 15
ERROR_CURRENT_DIRECTORY equ 16
ERROR_NOT_SAME_DEVICE equ 17
ERROR_NO_MORE_FILES equ 18
ERROR_WRITE_PROTECT equ 19
ERROR_BAD_UNIT equ 20
ERROR_NOT_READY equ 21
ERROR_BAD_COMMAND equ 22
ERROR_CRC equ 23
ERROR_BAD_LENGTH equ 24
ERROR_SEEK equ 25
ERROR_NOT_DOS_DISK equ 26
ERROR_SECTOR_NOT_FOUND equ 27
ERROR_OUT_OF_PAPER equ 28
ERROR_WRITE_FAULT equ 29
ERROR_READ_FAULT equ 30
ERROR_GEN_FAILURE equ 31
ERROR_SHARING_VIOLATION equ 32
ERROR_LOCK_VIOLATION equ 33
ERROR_WRONG_DISK equ 34
ERROR_SHARING_BUFFER_EXCEEDED equ 36
ERROR_HANDLE_EOF equ 38
ERROR_HANDLE_DISK_FULL equ 39
ERROR_NOT_SUPPORTED equ 50
ERROR_REM_NOT_LIST equ 51
ERROR_DUP_NAME equ 52
ERROR_BAD_NETPATH equ 53
ERROR_NETWORK_BUSY equ 54
ERROR_DEV_NOT_EXIST equ 55
ERROR_TOO_MANY_CMDS equ 56
ERROR_ADAP_HDW_ERR equ 57
ERROR_BAD_NET_RESP equ 58
ERROR_UNEXP_NET_ERR equ 59
ERROR_BAD_REM_ADAP equ 60
ERROR_PRINTQ_FULL equ 61
ERROR_NO_SPOOL_SPACE equ 62
ERROR_PRINT_CANCELLED equ 63
ERROR_NETNAME_DELETED equ 64
ERROR_NETWORK_ACCESS_DENIED equ 65
ERROR_BAD_DEV_TYPE equ 66
ERROR_BAD_NET_NAME equ 67
ERROR_TOO_MANY_NAMES equ 68
ERROR_TOO_MANY_SESS equ 69
ERROR_SHARING_PAUSED equ 70
ERROR_REQ_NOT_ACCEP equ 71
ERROR_REDIR_PAUSED equ 72
ERROR_FILE_EXISTS equ 80
ERROR_CANNOT_MAKE equ 82
ERROR_FAIL_I24 equ 83
ERROR_OUT_OF_STRUCTURES equ 84
ERROR_ALREADY_ASSIGNED equ 85
ERROR_INVALID_PASSWORD equ 86
ERROR_INVALID_PARAMETER equ 87
ERROR_NET_WRITE_FAULT equ 88
ERROR_NO_PROC_SLOTS equ 89
ERROR_TOO_MANY_SEMAPHORES equ 100
ERROR_EXCL_SEM_ALREADY_OWNED equ 101
ERROR_SEM_IS_SET equ 102
ERROR_TOO_MANY_SEM_REQUESTS equ 103
ERROR_INVALID_AT_INTERRUPT_TIME equ 104
ERROR_SEM_OWNER_DIED equ 105
ERROR_SEM_USER_LIMIT equ 106
ERROR_DISK_CHANGE equ 107
ERROR_DRIVE_LOCKED equ 108
ERROR_BROKEN_PIPE equ 109
ERROR_OPEN_FAILED equ 110
ERROR_BUFFER_OVERFLOW equ 111
ERROR_DISK_FULL equ 112
ERROR_NO_MORE_SEARCH_HANDLES equ 113
ERROR_INVALID_TARGET_HANDLE equ 114
ERROR_INVALID_CATEGORY equ 117
ERROR_INVALID_VERIFY_SWITCH equ 118
ERROR_BAD_DRIVER_LEVEL equ 119
ERROR_CALL_NOT_IMPLEMENTED equ 120
ERROR_SEM_TIMEOUT equ 121
ERROR_INSUFFICIENT_BUFFER equ 122
ERROR_INVALID_NAME equ 123
ERROR_INVALID_LEVEL equ 124
ERROR_NO_VOLUME_LABEL equ 125
ERROR_MOD_NOT_FOUND equ 126
ERROR_PROC_NOT_FOUND equ 127
ERROR_WAIT_NO_CHILDREN equ 128
ERROR_CHILD_NOT_COMPLETE equ 129
ERROR_DIRECT_ACCESS_HANDLE equ 130
ERROR_NEGATIVE_SEEK equ 131
ERROR_SEEK_ON_DEVICE equ 132
ERROR_IS_JOIN_TARGET equ 133
ERROR_IS_JOINED equ 134
ERROR_IS_SUBSTED equ 135
ERROR_NOT_JOINED equ 136
ERROR_NOT_SUBSTED equ 137
ERROR_JOIN_TO_JOIN equ 138
ERROR_SUBST_TO_SUBST equ 139
ERROR_JOIN_TO_SUBST equ 140
ERROR_SUBST_TO_JOIN equ 141
ERROR_BUSY_DRIVE equ 142
ERROR_SAME_DRIVE equ 143
ERROR_DIR_NOT_ROOT equ 144
ERROR_DIR_NOT_EMPTY equ 145
ERROR_IS_SUBST_PATH equ 146
ERROR_IS_JOIN_PATH equ 147
ERROR_PATH_BUSY equ 148
ERROR_IS_SUBST_TARGET equ 149
ERROR_SYSTEM_TRACE equ 150
ERROR_INVALID_EVENT_COUNT equ 151
ERROR_TOO_MANY_MUXWAITERS equ 152
ERROR_INVALID_LIST_FORMAT equ 153
ERROR_LABEL_TOO_LONG equ 154
ERROR_TOO_MANY_TCBS equ 155
ERROR_SIGNAL_REFUSED equ 156
ERROR_DISCARDED equ 157
ERROR_NOT_LOCKED equ 158
ERROR_BAD_THREADID_ADDR equ 159
ERROR_BAD_ARGUMENTS equ 160
ERROR_BAD_PATHNAME equ 161
ERROR_SIGNAL_PENDING equ 162
ERROR_MAX_THRDS_REACHED equ 164
ERROR_LOCK_FAILED equ 167
ERROR_BUSY equ 170
ERROR_CANCEL_VIOLATION equ 173
ERROR_ATOMIC_LOCKS_NOT_SUPPORTED equ 174
ERROR_INVALID_SEGMENT_NUMBER equ 180
ERROR_INVALID_ORDINAL equ 182
ERROR_ALREADY_EXISTS equ 183
ERROR_INVALID_FLAG_NUMBER equ 186
ERROR_SEM_NOT_FOUND equ 187
ERROR_INVALID_STARTING_CODESEG equ 188
ERROR_INVALID_STACKSEG equ 189
ERROR_INVALID_MODULETYPE equ 190
ERROR_INVALID_EXE_SIGNATURE equ 191
ERROR_EXE_MARKED_INVALID equ 192
ERROR_BAD_EXE_FORMAT equ 193
ERROR_ITERATED_DATA_EXCEEDS_64k equ 194
ERROR_INVALID_MINALLOCSIZE equ 195
ERROR_DYNLINK_FROM_INVALID_RING equ 196
ERROR_IOPL_NOT_ENABLED equ 197
ERROR_INVALID_SEGDPL equ 198
ERROR_AUTODATASEG_EXCEEDS_64k equ 199
ERROR_RING2SEG_MUST_BE_MOVABLE equ 200
ERROR_RELOC_CHAIN_XEEDS_SEGLIM equ 201
ERROR_INFLOOP_IN_RELOC_CHAIN equ 202
ERROR_ENVVAR_NOT_FOUND equ 203
ERROR_NO_SIGNAL_SENT equ 205
ERROR_FILENAME_EXCED_RANGE equ 206
ERROR_RING2_STACK_IN_USE equ 207
ERROR_META_EXPANSION_TOO_LONG equ 208
ERROR_INVALID_SIGNAL_NUMBER equ 209
ERROR_THREAD_1_INACTIVE equ 210
ERROR_LOCKED equ 212
ERROR_TOO_MANY_MODULES equ 214
ERROR_NESTING_NOT_ALLOWED equ 215
ERROR_BAD_PIPE equ 230
ERROR_PIPE_BUSY equ 231
ERROR_NO_DATA equ 232
ERROR_PIPE_NOT_CONNECTED equ 233
ERROR_MORE_DATA equ 234
ERROR_VC_DISCONNECTED equ 240
ERROR_INVALID_EA_NAME equ 254
ERROR_EA_LIST_INCONSISTENT equ 255
ERROR_NO_MORE_ITEMS equ 259
ERROR_CANNOT_COPY equ 266
ERROR_DIRECTORY equ 267
ERROR_EAS_DIDNT_FIT equ 275
ERROR_EA_FILE_CORRUPT equ 276
ERROR_EA_TABLE_FULL equ 277
ERROR_INVALID_EA_HANDLE equ 278
ERROR_EAS_NOT_SUPPORTED equ 282
ERROR_NOT_OWNER equ 288
ERROR_TOO_MANY_POSTS equ 298
ERROR_MR_MID_NOT_FOUND equ 317
ERROR_INVALID_ADDRESS equ 487
ERROR_ARITHMETIC_OVERFLOW equ 534
ERROR_PIPE_CONNECTED equ 535
ERROR_PIPE_LISTENING equ 536
ERROR_EA_ACCESS_DENIED equ 994
ERROR_OPERATION_ABORTED equ 995
ERROR_IO_INCOMPLETE equ 996
ERROR_IO_PENDING equ 997
ERROR_NOACCESS equ 998
ERROR_SWAPERROR equ 999
ERROR_STACK_OVERFLOW equ 1001
ERROR_INVALID_MESSAGE equ 1002
ERROR_CAN_NOT_COMPLETE equ 1003
ERROR_INVALID_FLAGS equ 1004
ERROR_UNRECOGNIZED_VOLUME equ 1005
ERROR_FILE_INVALID equ 1006
ERROR_FULLSCREEN_MODE equ 1007
ERROR_NO_TOKEN equ 1008
ERROR_BADDB equ 1009
ERROR_BADKEY equ 1010
ERROR_CANTOPEN equ 1011
ERROR_CANTREAD equ 1012
ERROR_CANTWRITE equ 1013
ERROR_REGISTRY_RECOVERED equ 1014
ERROR_REGISTRY_CORRUPT equ 1015
ERROR_REGISTRY_IO_FAILED equ 1016
ERROR_NOT_REGISTRY_FILE equ 1017
ERROR_KEY_DELETED equ 1018
ERROR_NO_LOG_SPACE equ 1019
ERROR_KEY_HAS_CHILDREN equ 1020
ERROR_CHILD_MUST_BE_VOLATILE equ 1021
ERROR_NOTIFY_ENUM_DIR equ 1022
ERROR_DEPENDENT_SERVICES_RUNNING equ 1051
ERROR_INVALID_SERVICE_CONTROL equ 1052
ERROR_SERVICE_REQUEST_TIMEOUT equ 1053
ERROR_SERVICE_NO_THREAD equ 1054
ERROR_SERVICE_DATABASE_LOCKED equ 1055
ERROR_SERVICE_ALREADY_RUNNING equ 1056
ERROR_INVALID_SERVICE_ACCOUNT equ 1057
ERROR_SERVICE_DISABLED equ 1058
ERROR_CIRCULAR_DEPENDENCY equ 1059
ERROR_SERVICE_DOES_NOT_EXIST equ 1060
ERROR_SERVICE_CANNOT_ACCEPT_CTRL equ 1061
ERROR_SERVICE_NOT_ACTIVE equ 1062
ERROR_FAILED_SERVICE_CONTROLLER_CONNECT equ 1063
ERROR_EXCEPTION_IN_SERVICE equ 1064
ERROR_DATABASE_DOES_NOT_EXIST equ 1065
ERROR_SERVICE_SPECIFIC_ERROR equ 1066
ERROR_PROCESS_ABORTED equ 1067
ERROR_SERVICE_DEPENDENCY_FAIL equ 1068
ERROR_SERVICE_LOGON_FAILED equ 1069
ERROR_SERVICE_START_HANG equ 1070
ERROR_INVALID_SERVICE_LOCK equ 1071
ERROR_SERVICE_MARKED_FOR_DELETE equ 1072
ERROR_SERVICE_EXISTS equ 1073
ERROR_ALREADY_RUNNING_LKG equ 1074
ERROR_SERVICE_DEPENDENCY_DELETED equ 1075
ERROR_BOOT_ALREADY_ACCEPTED equ 1076
ERROR_SERVICE_NEVER_STARTED equ 1077
ERROR_DUPLICATE_SERVICE_NAME equ 1078
ERROR_END_OF_MEDIA equ 1100
ERROR_FILEMARK_DETECTED equ 1101
ERROR_BEGINNING_OF_MEDIA equ 1102
ERROR_SETMARK_DETECTED equ 1103
ERROR_NO_DATA_DETECTED equ 1104
ERROR_PARTITION_FAILURE equ 1105
ERROR_INVALID_BLOCK_LENGTH equ 1106
ERROR_DEVICE_NOT_PARTITIONED equ 1107
ERROR_UNABLE_TO_LOCK_MEDIA equ 1108
ERROR_UNABLE_TO_UNLOAD_MEDIA equ 1109
ERROR_MEDIA_CHANGED equ 1110
ERROR_BUS_RESET equ 1111
ERROR_NO_MEDIA_IN_DRIVE equ 1112
ERROR_NO_UNICODE_TRANSLATION equ 1113
ERROR_DLL_INIT_FAILED equ 1114
ERROR_SHUTDOWN_IN_PROGRESS equ 1115
ERROR_NO_SHUTDOWN_IN_PROGRESS equ 1116
ERROR_IO_DEVICE equ 1117
ERROR_SERIAL_NO_DEVICE equ 1118
ERROR_IRQ_BUSY equ 1119
ERROR_MORE_WRITES equ 1120
ERROR_COUNTER_TIMEOUT equ 1121
ERROR_FLOPPY_ID_MARK_NOT_FOUND equ 1122
ERROR_FLOPPY_WRONG_CYLINDER equ 1123
ERROR_FLOPPY_UNKNOWN_ERROR equ 1124
ERROR_FLOPPY_BAD_REGISTERS equ 1125
ERROR_DISK_RECALIBRATE_FAILED equ 1126
ERROR_DISK_OPERATION_FAILED equ 1127
ERROR_DISK_RESET_FAILED equ 1128
ERROR_EOM_OVERFLOW equ 1129
ERROR_NOT_ENOUGH_SERVER_MEMORY equ 1130
ERROR_POSSIBLE_DEADLOCK equ 1131
ERROR_MAPPED_ALIGNMENT equ 1132
ERROR_INVALID_PIXEL_FORMAT equ 2000
ERROR_BAD_DRIVER equ 2001
ERROR_INVALID_WINDOW_STYLE equ 2002
ERROR_METAFILE_NOT_SUPPORTED equ 2003
ERROR_TRANSFORM_NOT_SUPPORTED equ 2004
ERROR_CLIPPING_NOT_SUPPORTED equ 2005
ERROR_UNKNOWN_PRINT_MONITOR equ 3000
ERROR_PRINTER_DRIVER_IN_USE equ 3001
ERROR_SPOOL_FILE_NOT_FOUND equ 3002
ERROR_SPL_NO_STARTDOC equ 3003
ERROR_SPL_NO_ADDJOB equ 3004
ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED equ 3005
ERROR_PRINT_MONITOR_ALREADY_INSTALLED equ 3006
ERROR_WINS_INTERNAL equ 4000
ERROR_CAN_NOT_DEL_LOCAL_WINS equ 4001
ERROR_STATIC_INIT equ 4002
ERROR_INC_BACKUP equ 4003
ERROR_FULL_BACKUP equ 4004
ERROR_REC_NON_EXISTENT equ 4005
ERROR_RPL_NOT_ALLOWED equ 4006




'Programming Language > C++' 카테고리의 다른 글

[C++] GetLastError()  (0) 2014.08.15
[계절학기 C++] Class  (0) 2014.07.09
[계절학기 C++] Array  (0) 2014.07.09
[강좌#3] Expressions and Interactivity  (0) 2014.06.30
[강좌2] 3일차  (0) 2014.06.27
vector...  (0) 2013.07.10
Posted by 허정욱
Web/backbone.js2014.07.29 15:08

백본 (Backbone) : 

자신에게 연결되어 있는 소형 회선들로부터 데이터를 모아 빠르게 전송할 수 있는 대규모 전송회선.

백본 홈페이지 : http://backbonejs.org/

굿모닝3

백본 예제


backbone-master.zip



도움이 될만한 사이트 모음


백본 첫 개발자를 위한 내용

http://armigar.blog.me/220066638455


백본 피피티 만들 때 도움 되는 것

http://www.slideshare.net/gyutaejo/backbonejs-m-v


투토리얼 동영상 (추천, 처음일경우 꼭 보셈)

https://www.youtube.com/watch?v=FZSjvWtUxYk


백본 시작하기,,

http://linuxism.tistory.com/1488


프론트엔드 웹앱 프레임웍

http://www.slideshare.net/iolo/ss-16821763


백본 괜찮은 예제

http://dogfeet.github.io/articles/2012/backbonejs-by-example.html


네이버 프론트엔드, 백엔드 개념 알차다!

http://helloworld.naver.com/helloworld/819776



 

개발을 위한 AMD와 Require.js

(http://helloworld.naver.com/helloworld/591319)

JavaScript 개발은 웹 사이트의 규모가 커질수록 소스를 관리하고 배포하는 비용이 커지는 경향이 있습니다. 또한 오래된 소스의 의존성 파악이 어려워 섣불리 수정하지 못하는 상황에 처하기도 합니다. 더 나은 웹 사이트 혹은 웹앱을 위해서는 해결해야 할 과제이며, 이는 RequireJS를 사용하여 라이브러리 차원에서 보완할 수 있습니다.

이 글에서는 RequireJS의 바탕이 되는 AMD(Asynchronous Module Definition)의 기본 개념을 살펴보고 RequireJS를 이용한 개발 가이드를 제시합니다.



백본 장점

(http://itsnat.sourceforge.net/php/spim/spi_manifesto_en.php 참고)

-프론트 앤드 프레임 워크
-패턴을 조합하여, 사상을 만들어낸 디자인 아키텍처
-MVC 패턴이다.
-Model, View, Controller(Router)
-클라이언트 코드를 깔끔하고 쉽게 만들고 관리할 수 있다. 가볍고, 애플리케이션 관리 방식을 해치지 않는다. 클라이언트 코드 확장 쉽다.
-자바스크립트에서 클래스를 생성해서 관리하는 방식의 일종이다.
-화면 갱신 x -> Single Page Application 개발을 대단히 용이하게 해준다.
-서버사이드와의 연동관련 기능 -> 데이터의 CRUD(저장, 조회, 갱신, 삭제) 편리하게 구현할 수 있다.
-Underscorejs 의존성이 있다. 많이 유용한 편이다.
-jQuery와 함께 사용할 수 있다.
-Single Page Application??
-하나의 HTML파일로된 애플리케이션을 의미한다.
-Location.jash를 사용하면, 하나의 HTML파일에서도 즐겨찾기가 가능하도록 URL을 변경해가면서 다양한 View를 보여줄 수 있다.
-화면 갱신이 일어나지않아, UX 에서의 장점이 있으며, 현재 트위터 등이 그렇게 쓰이고 있다.
-Ajax 집중적 사용 방지하는 이유는?
-웹 애플리케이션과 웹사이트 : 웹 개발 두 분야에서는 웹 해법 두 종류를 구별하기 위해 사용됩니다.
-웹사이트에서 Ajax집중적인 사용이 문제가 된다. 아작스는, URL이 동일한 페이지를 변경할 수 있기 때문에, 최종 사용자는 북마크로 페이지 콘크리트(상태)를 저장할 수 없습니다.
-Ajax로 페이지를 구축하면, 구글링이나 네이버 검색 등 웹사이트 탐색 크롤러 인덱싱이 되지 않습니다.
-페에지 방문에 따라 서비스 : 페이지가 로드되는 수가 중요한 사이트가 많다. 사용자 경험을 필요로 하는 사이트, 광고사이트 등,,, Ajax는 방해된다.
-팝업 창에 대한 제어 수시로 필요하다.
-=> 그렇기 때문에, Ajax는 웹사이트에 좋지, 웹 애플리케이션에는 비추다!
-=> 현재는 웹사이트와 웹 애플리케이션 사이의 차이가 불분명해지고 있는 것이 사실이다.
-페이지 기반의 탐색 및 개발의 단점은?
-대역폭 낭비, 처리 시간 증가, 전체 페이지의 재구축 문제, iFrame
-비효율적이고 코딩 스타일 제로!


1. Backbone이 무엇인가?

프론트엔드 유지하기 쉽게 만들 수 있는... 초경량 라이브러리이다. 4킬로바이트~!

클라이언트 사이드 웹애플리케이션 개발에 MVC 패턴 적용을 가능하게 해주는 자바스크립트 프레임워크 중 하나.

참고로 자바스크립트 MVC패턴 프레임워크에는, JavaScriptMVC, Spine.js, SproutCore->Ember.js 가 있다.


backbonejs MVC 패턴

M(model, 데이터)

V(view, UI)

C(controller, 로직, 데이터 처리)

코드의 역할을 나눠서 작성하고 관리할 수 있게 한다.

프로그램의 구조를 체계화 할 수 있게 된다.


Models - MVC에서 model이다. 개별 데이터이다.

Collections - model의 집합이다. view와 연결하여, model에 변화가 생길 때 손 쉽게 UI를 갱신할 수 있다.

Router - MVC에서의 controller이다. location.hash의 변경에 따른 처리를 담당한다.

Views - MVC에서 view이다. 화면에 나타나는 UI를 담당한다. 프론트엔드의 특성상, view가 controller의 성격도 가지고 있다.


2. 왜 backbone을 사용하는가?

뭐, 백본을을 사용 안 해도 된다. 이것은 필수가 아닌 선택이다.

하지만, 편리한 기능을 말해주겠다.

(1) Collection과 View가 연동되어 데이터에 변화가 생길 때, 화면 UI 갱신해주는 일을 편리하게 할 수 있다.

(2) Router가 location.hash 변경에 따른 View의 갱신을 처리하는데 이는 Single Page Application의 개발을 대단히 용이하게 해준다. 사용자 UX에서의 장점이고, 트위터 등의 현재 그렇게 되어있다-

(3) 서버사이드와의 연동관련 기능도 있다. 데이터의 CRUD를 편리하게 구현할 수 있다.

(4) Underscore.js를 꼭 사용해야하는데, 여기 유용한 기능들이 많다.

(5) jQuery와 함께 쓸 수 있다.


끝으로,

백본은 유지보수가 매우 어려운 코드로부터 우리를 벗어나게 해준다.

DOM에서 데이터와 상태를 저장하는 것은 잘못된 생각이다.

템플릿은 개발할 때 절대적으로 필요하다, 자바스크립트 내부에 HTML을 두는 것은 당신에게 악업을 제공한다!


귤 껍데기를 까놓고 알맹이를 버리는 것과 같다.
백본은 내부적으로 자동으로 처리해주는 것들이 있다...
이걸 잘 모르면, 오류가 났을 때 원인을 찾지 못해서 헤메는 경우가 종종 있다.



- 추가

프론트앤드 자바스크립트 프레임워크의 시작은 백본의 이해이다-

MVC 패턴에 대해 설명해주고, Backbonejs에서 MVC 패턴이 무엇인지 말해준다.

그리고 하나씩 Model, Router, View, Collection 을 설명해준다.

마지막으로 코드가 어떻게 줄어지는 지 설명하고, 리펙터링 된 것들을 보여준다.

그리고 오브젝트로 된 것들을 보여준다.
끝끝ㄲ끝끝


예제 : http://dogfeet.github.io/articles/2012/backbonejs-by-example.html






Backbone.js 사전
http://documentcloud.github.io/backbone/#Model


backbone.js 구조
http://nodeqa.com/nodejs_ref/53

backbone.js 한 번 보셈
http://seye2.egloos.com/category/javascript

backbone.js 여기서 짜보기
http://jsfiddle.net/thomas/C9wew/6/


'Web > backbone.js' 카테고리의 다른 글

[backbone.js] 개념  (0) 2014.07.29
Posted by 허정욱
Programming Language/C++2014.07.09 17:43

7.1  Abstract Data Types (추상적데이터타입)


7.2  Object-Oriented Programming (객체지향프로그래밍)


7.3  Introduction to Classes

class Square

  {

   private:

 int side;

   public:

 void setSide(int s)

 { side = s; }

 int getSide()

 { return side; }

  };


7.4  Introduction to Objects

Square sq1, sq2;



7.5  Defining Member Functions


7.6  Constructors (생성자)


7.7  Destructors (소멸자)


7.8  Private Member Functions


7.9  Passing Objects to Functions

 pr7-09 참고


7.10  Object Composition

 pr7-11 참고


7.11  Separating Class Specification,  Implementation, and Client Code

(클래스 사양, 구현 및 클라이언트 코드를 분리)

 pr7-12 , 13참고


7.12  Input Validation Objects (입력 유효성 검사 개체)


7.13  Structures


 pr7-15 참고


7.15 Introduction to Object-Oriented Analysis and Design



7.16  Screen Control



'Programming Language > C++' 카테고리의 다른 글

[C++] GetLastError()  (0) 2014.08.15
[계절학기 C++] Class  (0) 2014.07.09
[계절학기 C++] Array  (0) 2014.07.09
[강좌#3] Expressions and Interactivity  (0) 2014.06.30
[강좌2] 3일차  (0) 2014.06.27
vector...  (0) 2013.07.10
Posted by 허정욱