'전체 글'에 해당되는 글 101건

  1. 2018.07.10 [PHP] 2차원 배열 표현하기.
  2. 2017.05.13 구글 타임라인
  3. 2014.08.15 [C++] GetLastError()
  4. 2014.07.29 [backbone.js] 개념
  5. 2014.07.09 [계절학기 C++] Class
  6. 2014.07.09 [계절학기 C++] Array
  7. 2014.07.01 [regex] tutorial
  8. 2014.06.30 [강좌#3] Expressions and Interactivity

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 허정욱

구글 타임라인

plan 2017.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 허정욱

[출처] 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 허정욱

백본 (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 허정욱

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 허정욱

8.1  Arrays Hold Multiple Values

int tests[ISIZE];


8.2  Accessing Array Elements

tests[0] = 79;

cout << tests[0];

cin  >> tests[1];

tests[4] = tests[0] + tests[1];

cout << tests;


8.3  Inputting and Displaying Array Contents

const int ISIZE = 5;

int tests[ISIZE]; // Define 5-elt. array

cout << "Enter first test score ";

cin  >>  tests[0];


8.4  Array Initialization

const int ISIZE = 5;

int tests[ISIZE] = {79,82,91,77,84};


8.5  Processing Array Contents

if (principalAmt[3] >= 10000)

   interest = principalAmt[3] * intRate1;

 else

   interest = principalAmt[3] * intRate2;

tests[i]++;  // adds 1 to tests[i]

  tests[i++];  // increments i, but has

             // no effect on tests 


8.6  Using Parallel Arrays

const int ISIZE = 5;

string name[ISIZE];   // student name

float average[ISIZE]; // course average

char grade[ISIZE];    // course grade


8.7  The typedef Statement

typedef unsigned int Uint;

Uint tests[ISIZE];


8.8   Arrays as Function Arguments

       // Function prototype

     void showScores(int []); 

     // Function header

     void showScores(int tests[]) 

     // Function call

     showScores(tests);


8.9   Two-Dimensional Arrays

 int exams[4][3];


8.10 Arrays with Three or More Dimensions

void getRectSolid(short [][3][5]);


8.11 Vectors

scores.push_back(75);

howbig = scores.size();

scores.pop_back();

scores.clear();

while (!scores.empty()) 


8.12 Arrays of Class Objects

class Square

{ private:

    int side;

  public:

    Square(int s = 1)

    { side = s; }

    int getSide()

    { return side; }

};

Square shapes[10]; 



'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 허정욱

http://solarianprogrammer.com/2011/10/12/cpp-11-regex-tutorial/


http://milennium9.blog.me/20194692544

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

[regex] tutorial  (0) 2014.07.01
Posted by 허정욱

- statc_cast<int>

- const




cout 기본 입출력

http://young_0620.blog.me/50189720699

- setw(x)

- fixed

- setprecision(x)

- showpoint

- left, right


// This program illustrates the use of the left and right manipulators.

#include <iostream>

#include <iomanip>        // Needed to use stream manipulators

#include <string>

using namespace std;


int main()

{  

string month1 = "January",

  month2 = "February",

  month3 = "March";

int days1 = 31,

   days2 = 28,

days3 = 31;


double high1 = 22.6,

  high2 = 37.4,

  high3 = 53.9;


cout << fixed << showpoint << setprecision(1);

cout << "Month        Days    High\n";


cout << left  << setw(12) << month1 

<< right << setw(4)  << days1 << setw(9) << high1 << endl;

cout << left  << setw(12) << month2 

<< right << setw(4)  << days2 << setw(9) << high2 << endl;

cout << left  << setw(12) << month3 

    << right << setw(4)  << days3 << setw(9) << high3 << endl;


   return 0;

}



#include <iomanip> 

cout.setf(ios :: fixed);

cout.setf(ios :: showpoint);

cout.precision(3);

 

세개는 붙어다니는 하나의 세트라고 봐도 좋을 것 같다.

 

cout.setf(ios :: fixed); 가 뜻하는 것은 고정 소수점 출력,

cout.setf(ios :: showpoint); 는 소수점을 보여준다는 것,

cout.precision(3);는 소수점 이하 3자리를 뜻한다.





cin

- getline(cin, string)

#include <iostream>

#include <string>

using namespace std;


int main()

{

string name;

string city;


cout << "Please enter your name: ";

getline(cin, name);

cout << "Enter the city you live in: ";

getline(cin, city);


cout << "Hello, " << name << endl; 

cout << "You live in " << city << endl;

return 0;

}

- cin.get(x)





String

- strcpy(x,y)





#include <cmath>

- sqrt()




#include <cstdlib>

- rand()

- srand()




#include <fstream>


[파일 쓰기]

#include <iostream>

#include <fstream>               // Needed to use files

using namespace std;


int main()

{

ofstream outputFile;

outputFile.open("demofile.txt");


cout << "Now writing information to the file.\n";

// Write 3 great names to the file

outputFile << "Bach\n";

outputFile << "Beethoven\n";

outputFile << "Mozart\n";


// Close the file

outputFile.close();

cout << "Done.\n";

return 0;

}


[파일 읽기]

// This program uses the >> operator to read information from a file.

#include <iostream>

#include <fstream>                 // Needed to use files

#include <string>                    

using namespace std;


int main()

{

ifstream inFile;

string name;


inFile.open("demofile.txt");

cout << "Reading information from the file.\n\n";

inFile >> name;                // Read name 1 from the file

cout << name << endl;          // Display name 1

inFile >> name;                // Read name 2 from the file

cout << name << endl;          // Display name 2

inFile >> name;                // Read name 3 from the file

cout << name << endl;          // Display name 3


inFile.close();                // Close the file

cout << "\nDone.\n";

return 0;

}





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

[계절학기 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
c++ 동기화객체  (0) 2013.07.08
Posted by 허정욱